Banana PiのようなデバイスからSDカードイメージを起動する方法をよく理解していないようです。詳細は次のとおりです。
バナナパイとバナナプロがあります。各デバイスには、デバイスに挿入されたSDカードに特定のディストリビューション(Banana Pro - > Arch Linux、Banana Pi - > Bananian)のイメージがあります。画像は以下からダウンロードできます。ここそしてここ。これは素晴らしい作品です。
ただし、Banana Pi/ProにはSATAポートがあるので、ルートシステムが接続されているハードドライブから起動できるとよいでしょう。読むことができるようにこここれは非常に簡単に行うことができます。
しかし、今私が悩んでいる部分がここにあります。 4GBのSDカード全体(またはより大きなSDカード)をリリースイメージとしてフラッシュし、50MBのパーティションのみを使用することは少し無駄に見えます。だから、小さなSDカードを使ってみました。
パーティションfdisk
(サイズ50MB)を作成し、mkfs.vfat -F 16 /dev/sdXX
そのパーティションにファイルシステムを作成するために使用しました。画像ファイル確認時に出力になるため、parted
FAT 16に設定しました。
。
その後、イメージのパーティション/tmp/boot
をにマウントしましたsudo mount -o loop,offset=1048576 ArchLinux_For_BananaPro_v1412.img /tmp/boot
。オフセット値は parted 出力の開始値です。
ファイル(script.bin、uEnv.txt、uImage)を自分のSDカードパーティションにコピーし、uEnv.txtのルートパスを変更します。 SDカードを同期して取り外します。
すべてが大丈夫に見えます。イメージ全体のSDカードのブートパーティションとブートパーティションのみのSDカードを比較しても同じです(によるとfdisk
)。
ただし、Banana Pi / ProはSDカードを使用して起動できず、起動パーティションでのみu-bootファイルを提供します。
この行動を知っている人はいますか?
修正する:
@BananaFreakのおかげで私の間違いを実現しました。実際にブートローダがありませんが、このガイドに従った後もレメックBananaProを起動できません。 lemaker Wikiページの奇妙な点の1つは最初の文です。
注:この手順は、Banana Pro / PiではなくLinuxコンピュータに適用されます。
答え1
ブートローダーを見逃したようです。 U-BootはSDになければなりません。 Banana Pi/ProのSDレイアウトがどのように見えるかをご覧ください。
http://wiki.lemaker.org/BananaPro/Pi:Setting_up_the_bootable_SD_card#SD_Card_Layout
答え2
これは、BananaPro / Piの起動プロセスを詳しく見ていくことです。最初に必要なのはRS232シリアル-TTL UARTコンバータオンボードUARTとインターフェースします。
その後、対応するシリアルデバイスを開いて起動プロセスを調べることができます(TTL-UARTコンバータのVCCピンをボードに接続しないように注意してください。)コンバータが5V TTLを使用している場合、BananaProが損傷する可能性があるため、VCCピンを接続しないしないでください。
端末から次の出力を取得します。
U-Boot SPL 2014.04-10733-gbb5691c (Dec 18 2014 - 12:54:35)
Board: BananaPro
DRAM: 1024 MiB
CPU: 960000000Hz, AXI/AHB/APB: 3/2/2
spl: not an uImage at 1600
U-Boot 2014.04-10733-gbb5691c (Dec 18 2014 - 12:54:35) Allwinner Technology
CPU: Allwinner A20 (SUN7I)
Board: BananaPro
I2C: ready
DRAM: 1 GiB
MMC: SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: dwmac.1c50000
Hit any key to stop autoboot: 0
reading uEnv.txt
354 bytes read in 17 ms (19.5 KiB/s)
Loaded environment from uEnv.txt
Running uenvcmd ...
reading /script.bin
50564 bytes read in 100 ms (493.2 KiB/s)
reading /uImage
Error reading cluster
** Unable to read file /uImage **
## Booting kernel from Legacy Image at 48000000 ...
Image Name: Linux-3.4.103
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4822880 Bytes = 4.6 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
** Can't read partition table on 0:0 **
** Invalid partition 1 **
起動プロセスが失敗した後、u-bootが提供するシェル環境に入る可能性が高くなります。ここでは、u-bootツールを使用していくつかの診断を実行できます。ここに一つあります。コマンドリストしかし、これらすべてを使用できるわけではありません。
私の場合、ブート出力の最後の数行を見ると、u-bootが2番目のパーティションを見つけ、最終的にいくつかのデータにCRCを構築する方法でコンパイルされるという結論に至ります。私の目標は2番目のパーティションを省略することですので、唯一の解決策は必要な修正を適用してu-bootバイナリをコンパイルすることです。