Armadilloフォーラム

Armadillo-X1でNFSブートする方法

re.sakakibara

2023年1月18日 16時22分

Armadillo-X1でNFSブートをしたいのですが、うまくいかず困っています。

■やりたいこと
Armadillo-X1でNFSブートがしたいです。
IPアドレスはDHCPではなく固定IP設定で割り当てています。
NFSサーバ:ATDE8(IPアドレス:192.168.1.200)
NFSクライアント:Armadillo-X1(IPアドレス:192.168.1.100)

■環境詳細
<使用しているソフトウェア>
ブートローダ(u-boot):uboot_2016.07-at23.tar.gz
 ⇒製品マニュアルに記載の通りビルドしてSDカードに書き込みました。
カーネル:linux-4.9-x1-at27.tar.gz
initramfs:initramfs_x1-v2.1.1.cpio.gz
 ⇒製品マニュアルに記載の通りビルドしてSDカードのパーティション1にuImageとdtbを書き込みました。
  ※何もファイルは置いていませんが、SDにはパーティション2(ext4)も作ってあります。
ATDE8:atde8-amd64-20221124.tar.xz
ルートファイルシステム:debian-buster-armhf_ax1_20221118.tar.gz
 ⇒ATDE8に /work/linux/nfsroot というディレクトリを作り、そこに展開しました。

<カーネルコンフィグの変更点>
CONFIG_IP_PNP_DHCP を OFF にしました。
それ以外は x1_defconfig から変更していません。

<NFSサーバ側の設定>
nfs-kernel-server をインストールしました。
/etc/network/interfaceでenp0s3に固定IPアドレスを設定しました。
/etc/exportsに以下の内容を記述しました。
 /work/linux/nfsroot 192.168.1.100(rw,sync,no_root_squash)
/etc/hosts.allowに以下の内容を記述しました。
 portmap 192.168.1.100

<起動の仕方>
u-bootで以下のコマンドを打ってX1を起動しました。
=> setenv mmcargs setenv bootargs root=/dev/nfs nfsroot=192.168.1.200:/work/linux/nfsroot ip=192.168.1.100 noinitrd console=ttymxc4,115200 consoleblank=0 vt.global_cursor_default=0 rootwait rw
=> boot

起動途中でカーネルパニックが発生します。
ログを添付いたします。

お手数をおかけして申し訳ございませんがご確認お願いいたします。

ファイル ファイルの説明
nfsboot.log
コメント

溝渕です。

> IP-Config: Failed to open gretap0
> IP-Config: Incomplete network configuration information

上記ログより、ネットワーク設定が正しく行なわれていないように思います。Linuxカーネルソースに含まれる以下の資料より、

Documentation/filesystems/nfs/nfsroot.txt

"nfsroot="と、"ip="の設定を見直してみてください。もし不足しているのがデバイス設定のみであれば次のようにすると解決すると思います。

ip=192.168.1.100:::::eth0:off

溝渕様

ご返信頂き、ありがとうございます。

頂いた情報を参考にカーネルパラメータを見直し、以下の設定で起動したところカーネルパニックは起きなくなりました。
setenv mmcargs setenv bootargs root=/dev/nfs nfsroot=192.168.1.200:/work/linux/nfsroot,port=2049,tcp ip=192.168.1.100:192.168.1.200:192.168.1.1:255.255.255.0::eth0:off noinitrd console=ttymxc4,115200 consoleblank=0 vt.global_cursor_default=0 rootwait rw

しかし、起動の途中で止まってしまい、まだNFSブートは成功していない状態です。
⇒起動ログを添付します。

他に疑うべきことがありましたらアドバイス頂けますと助かります。

ファイル ファイルの説明
nfsboot_20230119.log

溝渕です。

ちなみにサーバーのnfsバージョンは何でしょうか? "nfsroot="の後ろに","で区切ってバージョンを指定可能です。また、eMMCで起動した状態で、nfsmountは可能でしょうか?

> IP-Config: Complete:
> device=eth0, hwaddr=00:11:0c:2d:0a:7e, ipaddr=192.168.1.100, mask=255.255.255.0, gw=192.168.1.1
> host=192.168.1.100, domain=, nis-domain=(none)
> bootserver=192.168.1.200, rootserver=192.168.1.200, rootpath=

上記、rootpathが未指定扱いされているのが気になります。起動パラメータに、"rootfstype=nfs"と加えるとどうなりますか?