U-boot:無効なマジックナンバー

U-boot:無効なマジックナンバー

私はArduino Yunを使用しており、NFS経由でrootfsをマウントしたいと思います。

openwrtソースコードをダウンロードしてプロジェクトをビルドした後、build_dir/target-mips_34kc_musl-1.1.15/root-ar71xx以下から結果rootfsをコピーしました。/home/user/srv/nfs/root-ar71xx

ubootプロンプトで使用するコマンドラインは次のとおりです。

setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.1:/home/user/srv/nfs/root-ar71xx ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::off; bootm

uboot 環境変数:

ar7240> printenv
bootcmd=bootm 0x9fea0000
bootdelay=4
baudrate=115200
ethaddr=0xb4:0x21:0x8a:0x00:0x00:0x10
ipaddr=192.168.1.2
serverip=192.168.1.1 
stdin=serial
stdout=serial
stderr=serial
ethact=eth0
bootargs=root=/dev/nfs rw nfsroot=192.168.1.1:/home/user/srv/nfs/root-ar71xx     
ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::off

Environment size: 319/65532 bytes

しかし、私は次のようになります。

## Booting image at 81000000 ...
Bad Magic Number

私は読んだこのリンク、U-Bootがカーネルを「理解する」ためにはカプセル化が必要です。 rootfsも同じですか?

別の質問がありますが、トピックとは関係ありません。プロジェクトをビルドした後、以下にいくつかのバイナリ(24)があります bin/ar71xx/

openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin 
openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-sysupgrade.bin
openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-factory.bin
...

カーネルイメージが1つだけ必要です。このイメージはすべて何をすべきですか?

よろしくお願いします。

編集する:

コマンドラインを次のように変更しました。

setenv bootargs root=/dev/nfs rw nfsroot=192.168.1.1:/home/bou6/srv /nfs/root-ar71xx ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0::off;  bootm 0x9fea0000

もはやその権限がありませんが、Bad Magic Numberまだ質問があります。

1-カーネルのロードアドレスをどのように知ることができますか?

2-イーサネットケーブルに分岐がないにもかかわらず、カーネルはまだYunにフラッシュされたデフォルトのファイルシステムを引き続き使用していることがわかりました。これを無効にする方法はありますか?

ベストアンサー1

bootargsただ設定して呼び出すだけでは不十分ですbootm。どこかでカーネルイメージをロードする必要があります。したがって、質問1に対する答えは、「RAMにあり、目的のアドレスに合う十分なスペースがある限り、目的のアドレスを選択してください」です。カーネルイメージがロードされます。」

カーネルイメージをロードするには、tftpサーバーを設定してtftpbootu-bootコマンドを使用します。例えば

tftpboot <address> openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-tftp.bin

(私はこれがカーネルイメージを含むファイルだと思いますが、おそらくそうではありません。) - たとえば、bootm次のコマンドを使用できます。

bootm <address>

手がかりを見つけることもできます。ここ

しかし、ip=...カーネルコマンドラインの形式は次のとおりです。

ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>

offだから私の考えには前に2つのコロンがあるべきだと思います。

ip=192.168.1.2:192.168.1.1:192.168.1.1:255.255.255.0:::off

しかし、私が間違っている可能性があります。

質問2に関しては、起動が失敗し、u-bootがプロンプトに戻ることを望みます。続行せずにフラッシュのファイルシステムを使用してください。

最後に、24個のファイル名をすべてリストして、bin/ar71xxそれらのうちどれがカーネルイメージであるかを判断できます(上記の推測は正しいとは思われません)。

おすすめ記事