欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ZYNQ uboot 无法成功通过nfs挂载根文件系统

程序员文章站 2022-07-10 19:57:11
...

项目场景:

ZYNQ uboot nfs 挂载根文件系统:
在uboot 中设置nfs在启动时自动挂载根文件系统


问题描述:

正常设置bootcmd与bootargs后,在开机时仍不能自动挂载

setenv bootargs 'console=ttyPS0,115200 root=/dev/nfs rw nfsroot=192.168.23.33:/home/username/linux/nfs/rootfs ip=192.168.23.34:192.168.23.33:192.168.23.1:255.255.255.0::eth0:off'
setenv bootcmd 'tftpboot 8000 zImage; tftpboot 103cdda8 system.dtb; bootz 8000 - 103cdda8'
saveenv
pri

原因分析:

uboot 环境设置正常,那么问题就可能出现在kernel或者rootfs中
rootfs是我们需要挂载的,那么问题就非常可能出现在kernel的设置中。


解决方案:

在ubuntu上进入petalinux工程文件夹:

echo "alias sptl='source $PETALINUX/settings.sh'" >> ~/.bashrc   //设置别名
sptl //设置环境变量,已设置好的可忽略
petalinux-config  //进入petalinux设置图形界面

进入Image Packging Configuration:

ZYNQ uboot 无法成功通过nfs挂载根文件系统
进入根文件系统类型设置:
ZYNQ uboot 无法成功通过nfs挂载根文件系统
选择NFS
ZYNQ uboot 无法成功通过nfs挂载根文件系统
返回保存,其他设置不变。

利用petalinux-build重新创建petalinux系统

petalinux-build  

利用下面的命令生成BOOT.BIN文件

petalinux-package --boot --fsbl ./images/linux/zynq_fsbl.elf --fpga --u-boot --force 

将image文件夹下的BOOT.BIN文件考入sd卡BOOT分区
插入开发板,启动,进入uboot界面,按照之前的步骤(设置bootcmd,bootargs,serverip)进行设置,然后boot启动,会发现根文件系统成功挂载到了ubuntu上。
ZYNQ uboot 无法成功通过nfs挂载根文件系统
此时如果选择默认启动,也会自动通过nfs挂载到ubuntu上的根文件系统。

相关标签: linux ubuntu