私は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サーバーを設定してtftpboot
u-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
それらのうちどれがカーネルイメージであるかを判断できます(上記の推測は正しいとは思われません)。