ubuntu下的NFS和TFTP服务

  在嵌入式linux的开发过程中,我们需要在linux上搭建一些服务来进行更好的软件开发。在linux下交叉编译后,使用这些服务(FTP、NFS)将可执行文件下载到板子嵌入式系统中运行。通过FTP方式有些麻烦,影响效率,并且无法实现在线调试。因此建立NFS服务,实现linux服务器上的特定分区共享到嵌入式目标系统上,同时可以在线对程序进行调试和修改,提高了开发效率。

  那么,如何配置NFS开发环境呢?首先,嵌入式linux的NFS开发环境的实现包括2个方面,一方面是:linux服务器端的NFS服务器端支持;二是嵌入式目标系统的NFS客户端支持。

  首先配置linux服务器端的NFS服务器。

  执行:sudo apt-get install nfs-kernel-server 下载并安装。

  重启服务:sudo /eetc/init.d/nfs-kernel-server

  配置:sudo vi /etc/exports  (nfs允许挂载的目录及权限在文件/etc/exports中进行了定义)

添加:/source/rootfs  *(rw, sync, no_root_squash)

  • 其中,/source/rootfs 为要共享的目录, * 代表允许所有的网络段访问,rw是可读写权限,sync是资料同步写入内存和硬盘,no_root_squash是nfs客户端分享目录使用者的权限。例如:/home/zrh 192.168.1.* (rw, sync, no_root_squash) 则表示允许IP范围在192.168.1.*的计算机以读写的权限访问/home/zrh目录。

  linux服务器端验证,关闭PC和虚拟机的防火墙。

  执行:sudo mount -t  NFS 192.168.1.223:/home/zrh  /mnt

  然后查看/mnt下能否看到/home/zrh目录中的内容。

  其次,配置嵌入式目标系统NFS客户端配置。在配置内核的时候,需要添加一些选项。(支持NFS客户端的选上即可)

  

  linux服务器端执行:sudo mkdir /mnt/nfs

  sudo mount -t NFS -o nolock 192.168.1.223:/home/zrh  /mnt/nfs

  最后嵌入式目标系统上验证。我使用的是mini2440板子,首先连接好开发板的串口、网线、USB线,选择NOR FLASH启动,终端上输入'q’ 进入,执行:

  supervivi>param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.131:/home/zrh ip=192.168.1.230:192.168.1.131:192.168.1.1:255.255.255.0:sbc2440.arm9.net:eth0:off" 

  回车。boot重启。此时目标板则通过NFS方式启动了系统,进入后可以操作。

TFTP服务:  

1)安装tftp-hpatftpd-hpa, xinetd

sudo apt-get install tftp-hpa , tftpd-hpa, xinetd

2) /etc/xinetd.d/下创建并配置tftp文件

sudo vim /etc/xinetd.d/tftp

-c 用于开启上传功能。

3)配置tftpd-hpa

sudo vim /etc/default/tftpd-hpa 

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -l -c -s"

4)设置tftpboot文件夹的权限

sudo chmod a+wr /var/lib/tftpboot

5)重启xinetd服务

sudo /etc/init.d/xinetd restart

  

原文地址:https://www.cnblogs.com/zhou2011/p/2852753.html