RootfsをNFS経由でマウントしようとしています。これらのカーネル構成を有効にしました:
CONFIG_NFS_FS=y (NFS support)
CONFIG_IP_PNP=y (configure IP at boot time)
CONFIG_ROOT_NFS=y (support for NFS as rootfs)
これは私のカーネルコマンドラインです:
debug nfsrootdebug loglevel=8 console=ttymxc1,115200 imx-fbdev.legacyfb_depth=32 consoleblank=0 ip=10.42.102.244:10.42.102.5::255.255.255.0::eth0: root=/dev/nfs nfsroot=10.42.102.5:/srv/nfs/dc10,v3,tcp noinitrd
ブートメッセージの関連部分は次のとおりです。
libphy: 63fec000.etherne:01 - Link is Up - 100/Full
IP-Config: Complete:
device=eth0, hwaddr=00:d0:93:2a:6c:8e, ipaddr=10.42.102.244, mask=255.255.255.0, gw=255.255.255.255
Host=10.42.102.244, domain=, nis-domain=(none)
bootserver=10.42.102.5, rootserver=10.42.102.5, rootpath=
ALSA device list:
#0: imx53-mba53-sgtl5000
Freeing init memory: 6332K
Welcome to Buildroot 2013.05!
Nfsを介したRPC通信とVFSマウントに関する行が表示されることを期待していましたが、カーネルパラメーターとして「debug」「nfsrootdebug」と「loglevel = 8」を提供するdepsiteで、そのいずれもエラーメッセージも出力されませんでした。
Nfsサーバー側のtcpdumpで、パケットが送信されていないことを確認しました。
ボードが起動したら、sshを使用してnfs-serverを実行しているコンピューターに接続できます。
誰かが何が間違っているのか、またはこれをさらにデバッグする方法について何か提案がありますか?
特にARM)を使用したことはありませんが、通常、NFSルートの場合、コマンドラインはroot=nfs:[Server IP]:/[Directory],[options]
(つまり、root=nfs:10.42.102.5:/srv/nfs/dc10,v3,tcp
)とinitrdのようになります。ルート情報を解析します。root=/dev/nfs
の使用は一般的に非推奨です(ファイル/dev/nfs
は実際にはマウントプロセスで使用されません。これは、NFSを使用する必要があることを示唆するだけですが、常に存在するとは限りません。より最近のinitrds。
コマンドラインでnoinitrd
を使用しているのを見ましたが、これには理由がありますか? initrdの役割は、ルートパーティションをマウントするための柔軟性を向上させることであり、この種のシナリオ(内部HDではないルートデバイスのマウント)に最適です。
また、カーネルコマンドラインはローカルディスクのパーティションから来ていますか?それとも、これはディスクレスシステム(PXEがNFSルートから起動する)ですか?可能であれば、デバッグ中にローカルディスクを削除して何が起こるかを確認すると便利ですが、カーネルコマンドラインがローカルディスクのboot
パーティションからのものである場合は、あまり実行可能ではありません。