开发板无法通过nfs启动根文件系统

折腾了一个下午 也问了韦老大 他让我贴一个全的 bootages 内核打印出来的配置信息
因为系统的 minicom 无法显示完整的信息 所以…
然后我网上搜了一下 看到的大概意思就是 nfs 配置的问题了 (韦老大已经确认内核支持 root 启动 nfs 了)
另外:开发板正常启动的话 可也通过 nfs 挂载到 pc 机上的 一切正常
不过 在 OpenJTAG 模式下启动就不行了
nfs 已经设置为随系统启动
nfs 配置:

/var/nfs_share  *(rw,sync,no_root_squash,no_subtree_check)
/home/xuan/NFS-Share    *(rw,sync,root_squash,subtree_check)


具体过程:
启动到 OpenJTAG> 然后设置 bootargs 为

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.124:/home/xuan/NFS-Share/root/fs_qtopia.yaffs2 ip=192.168.0.110:192.168.0.124:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200

然后

save
reset

启动失败 提示信息为

LSA device list:
  No soundcards found.
TCP cubic registered
NET: Registered protocol family 1
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
IP-Config: Complete:
      device=eth0, addr=192.168.0.110, mask=255.255.255.0, gw=192.168.0.1,
     host=192.168.0.110, domain=, nis-domain=(none),
     bootserver=192.168.0.124, rootserver=192.168.0.124, rootpath=
Looking up port of RPC 100003/2 on 192.168.0.124
Looking up port of RPC 100005/1 on 192.168.0.124
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "nfs" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00        256 mtdblock0 (driver?)
1f01        128 mtdblock1 (driver?)
1f02       2048 mtdblock2 (driver?)
1f03     259712 mtdblock3 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

这个系统的 nfs 怎么配置才能让机器在 OpenJTAG> 模式下通过 nfs 启动 pc 上的文件系统呢

之前有过失败的例子 后来修改了启动参数解决了
启动参数:
mount -t nfs -o nolock,vers=3,tcp 192.168.0.124:/var/nfs_share /mnt

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.124:/var/nfs_share/fs_qtopia.yaffs2,vers=3,tcp ip=192.168.0.110:192.168.0.124:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 加上 nfs 参数也不行

rootdelay 加了吗?会不会是先来 nfs 后来网

e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/172454

从我的 iPhone 发送,使用 Tapatalk

加了 不过我加的没有像这个网页里面说的那样多 我再试试~谢啦 :heart_eyes: :heart_eyes: :heart_eyes:

还是不行~
正常启动是这样的:
OpenJTAG> print
bootargs=noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
bootcmd=nand read.jffs2 0x30007FC0 kernel; bootm 0x30007FC0
bootdelay=2
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ipaddr=192.168.7.17
serverip=192.168.7.11
netmask=255.255.255.0
stdin=serial
stdout=serial
stderr=serial
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:256k@0(bootloader),128k(params),2m(kernel),-(root)
partition=nand0,0
mtddevnum=0
mtddevname=bootloader

	Environment size: 443/131068 bytes   

然后我设置 ip 为同一个网段

	set ipaddr 192.168.0.110
	set serverip 192.168.0.124

然后我再设置启动参数:

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.0.124:/var/nfs_share/uImage-4.4.1,rootdelay=15,vers=3,tcp ip=192.168.0.110:192.168.0.124:192.168.0.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 

启动就这样了:

	drivers/rtc/hctosys.c: unable to open rtc device (rtc0)                         
	IP-Config: Complete:                                                            
		device=eth0, addr=192.168.0.110, mask=255.255.255.0, gw=192.168.0.1,      
		host=192.168.0.110, domain=, nis-domain=(none),                            
		bootserver=192.168.0.124, rootserver=192.168.0.124, rootpath=              
	Root-NFS: unknown option: rootdelay=15                                          
	Looking up port of RPC 100003/2 on 192.168.0.124                                
	Looking up port of RPC 100005/1 on 192.168.0.124                                
	nfs: server 192.168.0.124 not responding, timed out                             
	VFS: Unable to mount root fs via NFS, trying floppy.                            
	VFS: Cannot open root device "nfs" or unknown-block(2,0)                        
	Please append a correct "root=" boot option; here are the available partitions: 
	1f00        256 mtdblock0 (driver?)                                             
	1f01        128 mtdblock1 (driver?)                                             
	1f02       2048 mtdblock2 (driver?)                                             
	1f03     259712 mtdblock3 (driver?)                                             
	Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

到这里走不动了 。。。。。。
改天我自己再查一下内核的启动参数看看 root 模式的 nfs 是不是 y

我看了一下中文手册里面是这么说的:

https://www.suse.com/zh-cn/documentation/sles-12/book_sle_admin/data/sec_basicnet_manconf.html?view=print
提示:NFS 用作根文件系统
在通过网络以 NFS 共享形式装入根分区的 (无磁盘) 系统中, 配置可供访问 NFS 共享的网络设备
时需保持谨慎。
关闭或重引导系统时, 默认的处理顺序是关闭网络连接, 然后卸载根分区。对于 NFS 根分区, 这种
顺序会产生问题, 因为在尚未激活与 NFS 共享的网络连接的情况下, 根分区无法完全卸载。为防止
系统停用相关的网络设备, 请按第 16.4.1.2.5 节 “激活网络设备”中所述打开网络设备配置选项卡,
然后在设备激活窗格中选择通过 NFSroot。

16.4.1.2.5
 激活网络设备
如果使用结合 wicked 的方法, 便可以将设备配置为在引导期间、连接电缆时或检测到网卡时启动、以手
动方式启动或永不启动设备。要更改设备启动, 请如下继续操作:
1. 在 YaST 的系统 网络设置中, 于已检测到的网卡列表中选择一个网卡, 然后单击编辑。
 使用 YaST 配置网卡
2. 在常规选项卡中, 从设备激活选择所希望的项。
选择在引导时可在系统引导时启动设备。使用在电缆连接时将对任何现有物理连接监视接口。使
用在热插拔时, 可在接口可用时对其进行设置。这与在引导时选项很相似, 唯一区别是如果引导时
接口不存在, 将不会发生错误。选择手动可通过 ifup 手动控制接口。选择从不将不启动设备。通
过 NFSroot 与在引导时相似, 区别是使用 systemctl stop wicked.service 命令不会关闭接
口 ; 如果 wicked 处于活动状态, 则 network 服务还会处理 wicked 服务。如果您使用 NFS 或
iSCSI 根文件系统, 则选择此选项。
3. 要激活该配置, 请确认设置。
提示:NFS 用作根文件系统
在通过网络以 NFS 共享形式装入根分区的 (无磁盘) 系统中, 配置可供访问 NFS 共享的网络设备
时需保持谨慎。

这意思只能配置 wicked 了 刚才配置了一下 还是不行 估计那个细节没设置吧
挂不上估计就是这里的原因了
而且一旦配置了 wicked 任务栏都没有图标了 立马感觉心里没底了 :sweat: 无线网络也得自己整 我去~~~~头大!!! :question: