11
我遇到的问题的解决办法是:
OKMX8MPX-C V2.0 开发板
不要在文档中 复制 他们的 命令行,
直接 手动 抄写一遍。先别怀疑人家的文档,
先确定 自己是真正的按照 文档一步一步的做的
下面那个地方是两个冒号,
我想当然的 写了一个冒号
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.53:192.168.99.50:192.168.99.1:255.255.255.0::eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.53:192.168.99.50:192.168.99.1:255.255.255.0::eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
Ubuntu18.04系统中,开发板linux2.6.35.7内核通过NFS挂载根文件系统失败的解决方法
https://blog.youkuaiyun.com/qq_40897531/article/details/106784915
https://blog.youkuaiyun.com/weixin_52372485/article/details/121183020
https://blog.youkuaiyun.com/chihiro_s/article/details/114393046
TFTP+NFS环境搭建以及TFTP加载内核和设备数,NFS挂载文件系统的方法(也可以使用NFS加载内核和设备树)
http://www.openedv.com/forum.php?mod=viewthread&tid=302907&extra=page=2
https://blog.youkuaiyun.com/qq_21479819/article/details/125416513
sudo cat /proc/fs/nfsd/versions
rpcinfo -p | fgrep nfs
sudo /etc/init.d/nfs-kernel-server restart
⑤ 检查nfs服务器中挂载的目录。
showmount -e
有空 整理
File systems —>
Network File Systems —>
NFS file system support ## 必选
[*] Provide NFSv3 client support ## 可选
[*] Root file system on NFS ## 必选
Networking —>
[*] Networking support
Networking options —>
[*] IP: kernel level autoconfiguration ## 必选
NFS 的默认传输协议是 UDP,而PC机与嵌入式系统通过UPD交互时就会出现严重的网卡丢包现象.可用的解决方案是:在客户端改用TCP协议,使用下面的命令,
mount -t nfs -o intr,nolock,tcp,rsize=1024,wsize=1024 192.168.100.10:/home/nfs /mnt/nfs
mount -t nfs -o nolock -o tcp 192.168.100.10:/home/nfs /mnt/nfs
https://www.jianshu.com/p/a54007f400f5%20
https://www.youkuaiyun.com/tags/MtTakg5sOTE1NTItYmxvZwO0O0OO0O0O.html
https://blog.youkuaiyun.com/qq_45531502/article/details/125428004
https://blog.youkuaiyun.com/weixin_42385943/article/details/115868863?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-115868863-blog-113961375.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-115868863-blog-113961375.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=7
http://t.zoukankan.com/wahaha02-p-9559345.html
https://www.kernel.org/doc/html/latest/admin-guide/nfs/nfs-client.html
https://www.jianshu.com/p/aad01daf1447
修改完成后, 保存并退出“ /etc/exports” 文件。然后新建“ /nfsroot”目录,并为该目录
设置最宽松的权限:
vmuser@Linux-host:~$ sudo mkdir /nfsroot
vmuser@Linux-host:~
s
u
d
o
c
h
m
o
d
−
R
777
/
n
f
s
r
o
o
t
v
m
u
s
e
r
@
L
i
n
u
x
−
h
o
s
t
sudo chmod -R 777 /nfsroot vmuser@Linux-host ~
sudochmod−R777/nfsrootvmuser@Linux−host sudo chown -R nobody /nfsroot
3、 启动 NFS 服务
在虚拟机命令框执行如下命令,可以启动 NFS 服务:
vmuser@Linux-host ~$ sudo /etc/init.d/nfs-kernel-server start
执行如下命令则可以重新启动 NFS 服务:
vmuser@Linux-host ~$ sudo /etc/init.d/nfs-kernel-server restart
执行启动命令后,其操作结果如图 所示,表示 NFS 服务已正常启动。
Networking support
–>Networking options
–>TCP/IP networking
–>IP:kernel level autoconfiguration
File systems
–>Network File System
–>NFS client support
–>Root file system on NFS
https://www.cnblogs.com/wahaha02/p/9559345.html
mount -t nfs -o nolock 192.168.0.24:/ /mnt
https://blog.youkuaiyun.com/weixin_35945480/article/details/116693706
NFS client support
https://baijiahao.baidu.com/s?id=1734413681962454306&wfr=spider&for=pc
https://www.jianshu.com/p/a6fdb865d0b1
linux中查看nfs日志,NFS服务日志分析
linux中查看nfs日志,NFS服务日志分析
showmount -e 192.168.161.133 #成功检测到共享
cat /var/log/messages |grep nfs
2)举例说明:
NFS Server IP :192.168.168.0.200
客户端: 192.168.0.201
#snoop 192.168.0.200 192.168.0.201
这行命令表示抓 192.168.0.200和192.168.0.201之间的数据流。抓取的信息如图3所示。
showmount -e 显示某台主机的/etc/exports所共享的目录数据
showmount -a 显示当前主机与客户端NFS联机共享状态
showmount -e
https://www.youkuaiyun.com/tags/MtzaAgxsOTk2MjctYmxvZwO0O0OO0O0O.html
在查看对应的挂载信息的时候,也可以使用命令nfsstat,如下所示:
[root@nfsclient~]# nfsstat -m(查看挂载的NFS的信息)
/opt from192.168.1.70:/
Flags: rw,relatime,vers=4,rsize=16384,wsize=16384,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.63,minorversion=0,local_lock=none,addr=192.168.1.70
著作权归作者所有:来自51CTO博客作者mb5fdb131956bf3的原创作品,请联系作者获取转载授权,否则将追究法律责任
NFS网络文件系统-问题解决方法
https://blog.51cto.com/u_15060545/2654275
解决方案:
将rpcbind服务启动即可。
[root@nfsserver~]# /etc/init.d/rpcbind start(启动rpcbind服务)
Startingrpcbind: [ OK ]
https://blog.51cto.com/u_15060545/2654275
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/net/sunrpc/xprtsock.c?id=7e3d3620974b743b91b1f9d0660061b1de20174c&context=3&ignorews=0&dt=1
forlinx=>
forlinx=> printenv
baudrate=115200
board_name=OK8MP-C
board_rev=iMX8MP
boot_fit=no
bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; elif test ${fastboot_dev} = mmc1 && run loadupdate; then run sdargs; run mmcupdate; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi;
bootcmd_mfg=run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; else booti ${loadaddr} ${initrd_addr} ${fdt_addr}; fi; else echo "Run fastboot ..."; fastboot 0; fi;
bootdelay=1
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc1,115200
emmc_dev=2
eth1addr=16:c9:54:28:ed:b5
ethaddr=16:c9:54:28:ed:b4
ethprime=eth1
fastboot_dev=mmc2
fdt_addr=0x43000000
fdt_file=OK8MP-C.dtb
fdt_high=0xffffffffffffffff
fdtcontroladdr=43000000
gatewayip=192.168.99.1
image=Image
initrd_addr=0x43800000
initrd_high=0xffffffffffffffff
ipaddr=192.168.99.46
jh_clk=
jh_mmcboot=setenv fdt_file imx8mp-evk-root.dtb;setenv jh_clk clk_ignore_unused; if run loadimage; then run mmcboot; else run jh_netboot; fi;
jh_netboot=setenv fdt_file imx8mp-evk-root.dtb; setenv jh_clk clk_ignore_unused; run netboot;
kboot=booti
loadaddr=0x40480000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadupdate=mmc dev 1;fatload mmc 1:1 ${loadaddr} config.ini;
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc clk_ignore_unused
mmcargs=setenv bootargs ${jh_clk} console=${console} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fit} = yes || test ${boot_fit} = try; then bootm ${loadaddr}; else if run loadfdt; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; fi;
mmcdev=2
mmcpart=1
mmcroot=/dev/mmcblk2p2 rootwait rw
mmcupdate=fatload mmc 1:1 ${loadaddr} kernel/Image;fatload mmc 1:1 ${initrd_addr} ramdisk.img;fatload mmc 1:1 ${fdt_addr} kernel/${fdt_file};booti ${loadaddr} ${initrd_addr} ${fdt_addr};
nandfit_part=yes
netargs=setenv bootargs console=ttymxc0,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
netboot=echo Booting from net ...; run netargs; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; ${get_cmd} ${loadaddr} ${image}; if test ${boot_fit} = yes || test ${boot_fit} = try; then bootm ${loadaddr}; else if ${get_cmd} ${fdt_addr} ${fdt_file}; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; fi;
netmask=255.255.255.0
script=boot.scr
sd_dev=1
sdargs=setenv bootargs ${jh_clk} console=${console} root=/dev/ram0 rootwait rw
serial#=1b2ac8003a729973
serverip=192.168.99.50
soc_type=imx8mp
splashimage=0x50000000
video_hdmi=on
video_lvds=off
video_mipi=off
Environment size: 2939/4092 bytes
forlinx=>
setenv netargs setenv bootargs console=ttymxc0,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off \ nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
setenv netboot 'run netargs; tftpboot ${loadaddr} ${image}; tftpboot ${fdt_addr} ${fdt_file}; booti ${loadaddr} - ${fdt_addr}'
run netboot
forlinx=> printenv
baudrate=115200
board_name=OK8MP-C
board_rev=iMX8MP
boot_fit=no
bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; elif test ${fastboot_dev} = mmc1 && run loadupdate; then run sdargs; run mmcupdate; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi;
bootcmd_mfg=run mfgtool_args;if iminfo ${initrd_addr}; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr}; else booti ${loadaddr} ${initrd_addr} ${fdt_addr}; fi; else echo "Run fastboot ..."; fastboot 0; fi;
bootdelay=1
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc1,115200
emmc_dev=2
eth1addr=16:c9:54:28:ed:b5
ethaddr=16:c9:54:28:ed:b4
ethprime=eth1
fastboot_dev=mmc2
fdt_addr=0x43000000
fdt_file=OK8MP-C.dtb
fdt_high=0xffffffffffffffff
fdtcontroladdr=43000000
gatewayip=192.168.99.1
image=Image
initrd_addr=0x43800000
initrd_high=0xffffffffffffffff
ipaddr=192.168.99.46
jh_clk=
jh_mmcboot=setenv fdt_file imx8mp-evk-root.dtb;setenv jh_clk clk_ignore_unused; if run loadimage; then run mmcboot; else run jh_netboot; fi;
jh_netboot=setenv fdt_file imx8mp-evk-root.dtb; setenv jh_clk clk_ignore_unused; run netboot;
kboot=booti
loadaddr=0x40480000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadupdate=mmc dev 1;fatload mmc 1:1 ${loadaddr} config.ini;
mfgtool_args=setenv bootargs console=${console},${baudrate} rdinit=/linuxrc clk_ignore_unused
mmcargs=setenv bootargs ${jh_clk} console=${console} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fit} = yes || test ${boot_fit} = try; then bootm ${loadaddr}; else if run loadfdt; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; fi;
mmcdev=2
mmcpart=1
mmcroot=/dev/mmcblk2p2 rootwait rw
mmcupdate=fatload mmc 1:1 ${loadaddr} kernel/Image;fatload mmc 1:1 ${initrd_addr} ramdisk.img;fatload mmc 1:1 ${fdt_addr} kernel/${fdt_file};booti ${loadaddr} ${initrd_addr} ${fdt_addr};
nandfit_part=yes
netargs=setenv bootargs console=ttymxc0,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
netboot=run netargs; tftpboot ${loadaddr} ${image}; tftpboot ${fdt_addr} ${fdt_file}; booti ${loadaddr} - ${fdt_addr}
netmask=255.255.255.0
script=boot.scr
sd_dev=1
sdargs=setenv bootargs ${jh_clk} console=${console} root=/dev/ram0 rootwait rw
serial#=1b2ac8003a729973
serverip=192.168.99.50
soc_type=imx8mp
splashimage=0x50000000
video_hdmi=on
video_lvds=off
video_mipi=off
Environment size: 2692/4092 bytes
forlinx=>
Loading Environment from MMC... OK
[*]-Video Link 0fail to find output device
probe video device failed, ret -19
[0] lcd-controller@32fc6000, video
fail to find output device
probe video device failed, ret -19
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF f1d7187
- U-Boot 2020.04-00012-g7f68cd5a24-dirty
switch to partitions #0, OK
mmc2(part 0) is current device
a1007 auth ok!
flash target is MMC:2
Net: config yt8521
eth0: ethernet@30be0000
Fastboot: Normal
Normal Boot
Autoboot in 1 seconds
switch to partitions #0, OK
mmc2(part 0) is current device
28150272 bytes read in 638 ms (42.1 MiB/s)
Booting from mmc ...
67111 bytes read in 16 ms (4 MiB/s)
## Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
Using Device Tree in place at 0000000043000000, end 0000000043013626
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.4.70-2.3.0 (forlinx@ubuntu) (gcc version 9.2.0 (GCC)) #2 SMP PREEMPT Wed Aug 3 20:14:21 PDT 2022
setenv netargs setenv bootargs console=ttymxc0,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off \ nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off \ nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off \ nfsroot=192.168.99.50:/nfs_rootfs,tcp
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off \ nfsroot=192.168.99.50:/nfs_rootfs,tcp
setenv netboot 'run netargs; tftpboot ${loadaddr} ${image}; tftpboot ${fdt_addr} ${fdt_file}; booti ${loadaddr} - ${fdt_addr}'
run netboot
mmcargs
setenv netboot 'run mmcargs; tftpboot ${loadaddr} ${image}; tftpboot ${fdt_addr} ${fdt_file}; booti ${loadaddr} - ${fdt_addr}'
run netboot
mount -t nfs4 -o vers=4 192.168.99.50:/nfs_rootfs /mnt
mount -t nfs -o vers=3 192.168.99.50:/nfs_rootfs /mnt
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
bootcmd=mmc dev ${mmcdev};
if mmc rescan; then
if run loadbootscript; then
run bootscript;
elif test ${fastboot_dev} = mmc1 && run loadupdate; then
run sdargs; run mmcupdate;
else
if run loadimage; then run mmcboot;
else run netboot;
fi;
fi;
fi;
setenv mmc_nfs_boot 'echo Booting from mmc ...; run netargs; if test ${boot_fit} = yes || test ${boot_fit} = try; then bootm ${loadaddr}; else if run loadfdt; then booti ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; fi;'
setenv boot_nfs_cmd 'mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; elif test ${fastboot_dev} = mmc1 && run loadupdate; then run sdargs; run mmcupdate; else if run loadimage; then run mmc_nfs_boot; else run netboot; fi; fi; fi;'
run boot_nfs_cmd
setenv netargs setenv bootargs console=ttymxc0,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
sudo /etc/init.d/nfs-kernel-server restart
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw nfsroot=192.168.99.50:/nfs_rootfs,v3 ip=192.168.99.46:192.168.99.50:192.168.99.1:255.255.255.0:eth0:off
setenv netargs setenv bootargs console=ttymxc1,115200 root=/dev/nfs rw ip=192.168.99.53:192.168.99.50:192.168.99.1:255.255.255.0::eth0:off nfsroot=192.168.99.50:/nfs_rootfs,v3,tcp
setenv ipaddr 192.168.99.53