为了加快应用的开发速度,比较推荐的方式是在引导kernel之后通过网络挂载到主机设置的nfs文件夹中。减少了来回拷贝的麻烦
开发环境
主机:ubuntu 16.04 x64
开发板:NUC980 linux-4.4内核
NFS服务器配置
sudo apt install nfs-kernel-server // 安装NFS服务器
sudo vim /etc/exports // 配置NFS文件夹
exportfs -r // 检查NFS配置
sudo /etc/init.d/nfs-kernel-server restart // 重启服务器
sudo ufw disable // 关闭防火墙
NFS文件夹配置
配置文件位置为 /etc/exports,写完后通过exportfs -r检查
/NFS_ROOT_NAME (rw,sync,insecure,all_squash)
ro 该主机对该共享目录有只读权限
rw 该主机对该共享目录有读写权限
root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
sync 资料同步写入到内存与硬盘中
async 资料会先暂存于内存中,而非直接写入硬盘
insecure 允许从这台机器过来的非授权访问
all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
anonuid 将客户机上的用户映射成指定的本地用户ID的用户
anongid 将客户机上的用户映射成属于指定的本地用户组ID
内核配置
在内核的menuconfig中,打开以下选项
打开网络相关选项
Networking support --->
Networking options --->
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
[*] IP: DHCP support
[*] IP: BOOTP support
[*] IP: RARP support
打开NFS文件系统相关选项
File systems --->
[*] Network File Systems --->
NFS client support
NFS client support for NFS version 2
NFS client support for NFS version 3
[*] Root file system on NFS
内核引导参数
root=/dev/nfs
nfsroot=s.s.s.s/path
ip=localAddress:serverAddress:gateway:netmask