1. 在内核里添加对nfs的支持
2. 设置/etc/exports
NFS_DIR *(rw,sync,no_root_squash)
3. 开启nfs server
sudo /etc/nfs-kernel-server restart
如果没有请安装.
4. 设置uboot nfs启动参数
setenv bootargs root=/dev/nfs nfsroot=SERVER_IP:NFS_DIR ip=BOARD_IP:SERVER_IP:GATEWAY:SUBNET_MASK:ETH_DEV:off console=CONSOLE,BAUD_RATE
例如:setenv bootargs root=/dev/nfs nfsroot=172.16.3.206:/home/cb/Desktop/MyProject/root_fs ip=172.16.3.40:172.16.3.206:172.16.3.1:255.255.255.0::eth0:off console=ttySAC0,115200
其中:
root=/dev/nfs并非真的设备,而是一个告诉内核要通过网络取得根文件系统。
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
参数nfsroot这个参数告诉内核以哪一台机器的哪个目录以及哪个网络文件系统选项作为根文件系统使用。
<server-ip> 指定网络文件系统服务端的IP地址。如果没有指定定,则使用nfsaddrs变量指定的值。
<root-dir> 服务端上要作为根文件系统要挂载的目录名称。
<nfs-options> 标准的网络文件系统选项,所有选项都以逗号分开。
nfsaddrs=<my-ip>:<serv-ip>:<gw-ip>:<netmask>:<name>:<dev>:<auto>
参数nfsaddrs设定网络通讯所需的各种网络接口地址。
如果没有给定这个参数,则内核核会试著使用反向地址解析协议或是启动协议(BOOTP)以找出这些参数。
<my-ip> 客户端的IP地址。
<serv-ip> 网络文件系统服务端的IP地址。
<gw-ip> 网关(gateway)的IP地址。
<netmask> 本地网络的网络掩码。如果为空白,则掩码由客户端的IP地址导出。
<name> 客户端的名称。如果空白,则使用客户端IP地址的ASCII标记值。
<dev> 要使用的网络设备名称。如果你只有一个设备,那么你可以不管它。
<auto> 用以作为自动配置的方法。