Banana Pi用の起動可能なSDカードを手動で作成する方法

Banana Pi用の起動可能なSDカードを手動で作成する方法

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そのパーティションにファイルシステムを作成するために使用しました。画像ファイル確認時に出力になるため、partedFAT 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とインターフェースします。

BananaPro 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バイナリをコンパイルすることです。

関連情報