1、搭建NFS服务器
嵌入式Linux开发中,会经常使用NFS,目标系统通常作为NFS客户机使用,Linux主机作为NFS服务器。在目标系统上通过NFS,将服务器的NFS共享目录挂载到本地,可以直接运行服务器上的文件。在调试系统驱动模块以及应用程序,NFS都是十分必要的,并且Linux还支持NFS根文件系统,能直接从远程NFS root启动系统,这对嵌入式Linux根文件系统裁剪和集成也是十分有必要的。
安装nfs-kernel-server:
user@ubuntu: ~$ sudo apt-get install nfs-kernel-server
设置NFS-Server目录:
修改/etc/exports文件,在其中增加NFS服务器目录。一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行,编写格式如下:
NFS共享目录路径 客户机IP或者名称(参数1,参数2,...,参数n)
假定NFS共享目录是/home/user/nfs,允许所有客户机访问,/etc/exports文件可写为:
/home/user/nfs *(rw,sync,no_subtree_check,no_root_squash)
启动NFS服务器
user@ubuntu:~$ sudo service rpcbind start
user@ubuntu:~$ sudo service nfs-kernel-server start
用开发板验证NFS服务器
启动开发板,进入系统,配置好开发板的IP地址后,用mount命令挂载NFS服务器的NFS目录:
target# mount -t nfs 192.168.6.158:/home/user/nfs /mnt -o nolock
挂载成功后,可以在开发板的/mnt目录下看到NFS服务器上的文件。
通过NFS加载rootfs,在uboot下设置环境变量:
setenv bootargs console=ttymxc1,115200init=/linuxrc root=/dev/nfs nfsroot=192.168.1.8:/home/user/nfs/rootfs ip=192.168.1.18
如果NFS已经启动,修改了/etc/exports文件,执行如下命令,新的设置即可生效:
user@ubuntu:~$ exportfs -ra
2、搭建tftp服务器
安装xinetd:
user@ubuntu:~$ sudo apt-get install xinetd
安装tftp和tftpd:
user@ubuntu:~$ sudo apt-get install tftp-hpa tftpd-hpa
建立配置文件。建立/etc/xinetd.d/tftp文件,写入如下内容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/user/tftpfolder/ -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
说明:修改项server_args = -s
-c,其中处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。
更改配置文件/etc/default/tftpd-hpa。内容如下:
#/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/user/tftpfolder"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
重启Linux系统.
查看UDP 69端口是否启动:
netstat -an | more | grep udp
更改nfs、tftp目录,主机上要修改以下文件:
1、/etc/xinetd.d/tftp
2、/etc/default/tftpd-hpa
3、/etc/exports
#EOF#