在Linux系统的开发过程中,在移植好u-boot、Linux内核,并利用busybox制作好文件系统的各个目录及配置文件之后,做的第一件事就是配置系统的tftp、nfs服务,打通虚拟机Linux系统与主机的network,实现挂载网路文件系统,挂载成功后就可以根据需要制作相应的根文件系统了。所谓的网络文件系统就是让嵌入式系统的板子烧写完内核后无需再烧写文件系统,而是在板子内核启动后直接挂载pc的linux系统下设置的文件系统目录即可。
网络文件系统会陪伴开发人员从系统(包括内核、文件系统)的调试、应用程序的开发和调试的整个过程,直至产品的发布。
下面是挂载网络文件系统的方法和步骤:
一、
要确保Linux系统的网络畅通,能ping同主机和板卡:
1、
在克隆虚拟机时,默认的eth0会被占用(建议在刚刚copy虚拟并启动后选择“I moved it”),解决方法:
打开/etc/udev/rules.d/70-persistent-net.rules文件
将
#PCI device 0x1022:0x2000(vmxnet)
SUBSYSTM==”net”, ACTION==”add”, DRIVERS==”?*”, attr{address}==”00:0c:29:fe:88:e5”, ATTR{type}==”1”, KERNEL==”eth*”, NAME=”eth*”(保留最后一行)
全部删除,然后将留下的最后一行的”ethx”改成”eth0”,保存退出。
2、
设置网卡:
打开/etc/sysconfig/network-script/ifcfg-eth0文件
添加或修改
DEVICE=eth0
BOOTPROTO=static(或none)
IPADDR=192.168.0.55 (自己定义IP)
NETMASK=192.168.0.254 (自己定义IP)
ONBOOT=yes
(关键点)
3、
重启虚拟机;
4、
重启网卡:
/etc/init.d/network restart
选择右上角的小电脑图标,点击选eth0
二、
配置Linux的tftp服务器
1、
安装tftp的三个工具:
xinetd-2.3.14-18.fc9.i386.rpm
tftp-0.42-3.1.i386.rpm
tftp-server-0.42-3.1.i386.rpm
执行:
rpm –iv xinetd-2.3.14-18.fc9.i386.rpm
rpm –iv tftp-0.42-3.1.i386.rpm
rpm –iv tftp-server-0.42-3.1.i386.rpm
2、
配置/etc/xinetd.d/tftp文件
(安装工具之前没有此文件)
Service tftp
{
socket_type=dgram
protocol –udp
wait =yes
user =root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot –c
/tftpboot文件下载存放目录;-c
允许上船
disable =no
per_source = 11
cps = 100 2
flags =IPv4
}
3、
关闭防火墙:
/etc/init.d/iptables stop
4、
建立tftp工作目录:
到根目录下执行 mkdir tftpboot
Chmod 777 tftpboot
5、
测试一下:
执行tftp
三、
配置nfs服务器
一般情况下PC Linux系统都是默认安装的
1、
修改/etc/exports文件
/source/nfsroot
*(rw, sync, no_root_squash)
2、
使修改了的exports生效:
Exportfs
–rv
3、
建立nfs挂载目录:
根目录下执行
mkdir
source
mkdir
nfsroot
4、
开启nfs服务
/etc/init.d/nfs
start
5、
测试:
mount
–t nfs 192.168.0.55:/source/nfsroot /mnt
四、
板卡内核也要同时支持nfs服务,重新编译内核
make menuconfig
File system--->
[*]Network File system--->
<*>NFS client support
<*>Root file system on NFS
五、
设定u-boot挂载网络文件系统:
Setnev bootargs root=/dev/nfs nfsroot=192.168.0.55:/source/nfsroot ip=192.168.0.100 noinitrd console=ttyS0,115200