大家好,又见面了,我是你们的朋友全栈君。
前提:宿主机配置好了nfs服务
这里使用nfs主要是做rootfs挂载。开发板中运行kernel做nfs客户端,宿主机中运行nfs服务。在宿主机的nfs服务器中导出文件夹形式的rootfs目录,在客户端中去挂载这个文件夹形式的rootfs进而去启动系统。
步骤1:设置nfs启动方式的bootargs
在uboot命令行修改bootargs的参数:setenv bootargs root=/dev/nfs nfsroot=192.168.1.141:/work/rootfs/rootfs ip=192.168.1.10:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200
其中:
root=/dev/nfs并非真的设备,而是一个告诉内核要通过网络取得根文件系统。
nfsroot=<server-ip>:<root-dir>
参数nfsroot这个参数告诉内核以哪一台机器的哪个目录以及哪个网络文件系统选项作为根文件系统使用。 <server-ip> 指定网络文件系统服务端的IP地址。如果没有指定定,则使用nfsaddrs变量指定的值。 <root-dir> 服务端上要作为根文件系统要挂载的目录名称。
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> 用以作为自动配置的方法。
init=/linuxrc 指定初始化文件
console=ttySAC2,115200 控制台选择
在menuconfig中配置以下选项:
1、配置网络部分,主要是使能CONFIG_IP_PNP以在2中能够看到Root file system on NFS选项 Networking support Networking options [*]TCP/IP networking [*]IP: kernel level autoconfiguration [*] IP: DHCP support [*] IP: BOOTP support 2、配置开启nfs服务 File systems —> Network File Systems —> <*> NFS client support [*] NFS client support for NFS version 3 [*] NFS client support for the NFSv3 ACL protocol extension [*] NFS client support for NFS version 4 (EXPERIMENTAL) [*] NFS client support for NFSv4.1 (DEVELOPER ONLY) [*] Root file system on NFS
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188947.html原文链接:https://javaforall.cn