u-boot下配置挂载NFS根文件系统

一、在linux系统主机下安装NFS服务器

       在ubuntu10.04下安装命令为:

       sudoapt-get  install nfs-kernel-server

二、配置nfs服务器

       在ubuntu下安装完ssh服务器后默认开机启动,其他linux发行版具体安装与启动在此不再说明。

       修改nfs服务器配置文件

       /etc/exports

在该文件最后添加一行:

       /home/liu/rootfs *(rw,sync,no_root_squash)

意义为通过nfs共享的目录为/home/liu/rootfs,其后的‘*’代表允许所有ip访问,也可以把‘*’换成‘192.168.0.*’等正则表达式,来限制访问的ip,括号里的两个参数意为可读可写,且无root权限限制,即若挂载该目录为根文件系统后可以具有root权限。

       执行exports –r使配置生效。

sudo mount –tnfs localhost:/home/liu/rootfs  /mnt

若成功则说明nfs设置成功。

三、确保内核支持nfs跟文件系统。

       makemenuconfig

       在选项File systems  --->Network File Systems  --->

下相关的nfs版本及nfs根文件系统的相关选项选上。

四、挂载nfs根文件系统。

方法一:先启动一个文件系统(无论是yaffs,ramdis等等),进入shell后

mount –t nfs192.168.0.22:/home/liu/rootfs  /mnt      -o nolock

chroot /mnt

即可进入nfs根文件系统。需要先配置好ip,可以把配置ip及以上两步操作写入启动脚本。

方法二:内核启动时直接挂载nfs根文件系统。

在u-boot下配置环境变量:

<1>setenv serverip192.168.0.22;setenv gatewayip 192.168.0.1;setenv netmask 255.255.255.0;setenv hostname ubuntu;

setenv rootpath  /home/liu/rootfs/p2020_rootfs;

<2>setenv bootargs 'root=/dev/nfs rw nfsroot=$serverip:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off  console=${consoledev},${baudrate} ${otherbootargs}'

注意每一项参数是一行,没有换行符,不能直接复制粘贴。带有’$’符号的为变量,根据自身板卡的情况填写。

若调试内核,使用tftp下载时命令如下:

<3>tftp ${loadaddr} ${bootfile};tftp${fdtaddr} ${fdtfile};bootm ${loadaddr} - ${fdtaddr}

若直接使用NOR上烧写好的内核和dtb映像的话,命令如下:

<4>bootm ef080000 - ef040000

注:powerpc下uboot 启动linux的命令bootm 需要3个参数: 内核地址 、ramdisk地址、 dtb地址。

例如uboot使用ramdisk启动内核,最后一条命令为

bootm ${loadaddr} ${ramdiskaddr} ${fdtaddr}

而不使用ramdisk时,uboot最后一条命令为

bootm${loadaddr} - ${fdtaddr}

其中${loadaddr}是内核镜像物理地址,${ramdiskaddr}是ramdisk镜像物理地址,$fdtaddr是dtb文件的物理地址。这三个文件都在flash上。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
U-Boot 是一个嵌入式Linux启动加载器,它通常用于引导和初始化像 Linux 内核这样的操作系统在嵌入式设备上。使用 U-Boot 进行 NFS 挂载是为了在设备启动过程中从远程网络文件系统NFS)加载文件或目录,这对于更新固件、配置文件或其他数据非常有用。 下面是使用 U-Boot 进行 NFS 挂载的基本步骤: 1. 配置NFS服务器: 在NFS服务器上设置共享目录,并确保网络连接可用。通常需要在NFS服务器上创建一个 exports 文件,指定要共享的路径及其访问权限。 2. 设置U-Boot环境变量: 在U-Boot的命令行中,你需要设置几个环境变量以便挂载NFS。这些变量包括: - `nfsargs`: 用于传递给内核的NFS挂载参数,如 `nfsroot=/path/to/server:/exported/directory`。 - `ipaddr`: NFS服务器的IP地址。 - `serverip`: 如果NFS服务器有多个IP地址,可以选择其中一个作为默认挂载地址。 - `tftp` 和 `tftpargs` (如果使用TFTP下载内核和启动文件) 或 `fdtaddr` 和 `fdtfile` (如果使用FDT文件):与NFS挂载无关但也是U-Boot常规配置的一部分。 3. 挂载NFS: 使用 `nfsload` 命令从NFS服务器下载文件到设备的内存中,然后使用 `fatload` 或 `bootm` 命令将内核和启动文件加载到内存中。 4. 启动内核: 使用 `bootm` 命令启动内核,带上之前配置NFS目录参数。 相关问题: 1. 如何在U-Boot中查看和设置环境变量? 2. 如果NFS服务器不可达,U-Boot有什么备用机制? 3. 如何通过U-Boot配置TFTP或者FDT文件?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值