最近在学习TI Davinci 系列的SEED-DVS6467T开发板的使用,由于达芬奇技术芯片的开发需要进行交叉编译以及使用网络环境,所以需要配置相关的服务器,构建方便开发的开发环境。
TFTP一般用于向目标机下载镜像文件,嵌入式Linux的TFTP开发环境包括两个方面:一方面是Linux服务器端的tftp-server支持,另一方面是嵌入式目标系统的tftp-client支持。因为U-BOOT本身支持tftp-client,所以嵌入式目标系统端需要配置该服务器的相关参数。
下面介绍一下安装、配置步骤:
1、检查Linux系统是否已经安装了TFTP服务:
如果已经安装,则会出现已安装版本信息;如果为安装,则需要安装以下几个包(centos6.7):[root@luokh ~]# rpm -qa tftp
tftp-0.49-7.el6.i686.rpm
tftp-server-0.49-7.el6.rpm
xinetd-2.3.14-34.el6.i686.rpm
2、安装TFTP
我安装的方式是直接挂载centos6.7的安装系统镜像文件虚拟光盘
进入到系统所带的软件安装包文件下,里面有系统需要而没有安装的软件包。接下来我们将我们需要的软件包复制到我们的指定文件夹/luokh-yum下:[root@luokh ~]# cd /media/CentOS_6.7_Final/Packages/
[root@luokh Packages]# cp /media/CentOS_6.7_Final/Packages/tftp-0.49-7.el6.i686.rpm /luokh-yum/
复制完成后我们使用rpm -ivh tftp-0.49-7.el6.i686.rpm tftp-server-0.49-7.el6.rpm xinetd-2.3.14-34.el6.i686.rpm安装三个软件包。[root@luokh Packages]# cp /media/CentOS_6.7_Final/Packages/tftp-0.49-7.el6.i686.rpm /luokh-yum/
[root@luokh Packages]# cp /media/CentOS_6.7_Final/Packages/xinetd-2.3.14-34.el6.i686.rpm /luokh-yum/
# yum install tftp tftp-server xinetd
3、配置TFTP服务器
编辑vim /etc/xinetd.d/tftp文件,打开后如下图所示:
<span style="font-family:SimSun;"><span style="font-size:18px;"> 2 # description: The tftp server serves files using the trivial file transf er \ 3 # protocol. The tftp protocol is often used to boot diskless \ 4 # workstations, download configuration files to network-aware printers, \ 5 # and to start the installation process for some operating systems. 6 service tftp 7 { 8 disable = no //此处的默认为yes,改为no,开启tftp服务器</span> 9 socket_type = dgram 10 protocol = udp 11 wait = yes 12 user = root 13 server = /usr/sbin/in.tftpd 14 server_args = -s /tftpboot //此处为自己建立的tftp-server共享目录,我建立的是在根目录下</span> 15 per_source = 11 16 cps = 100 2 17 flags = IPv4 18 }</span></span>
4、设置自己建立的目录/tftpboot权限
[root@luokh ~]# chmod 777 /tftpboot
5、开启TFTP服务器
[root@luokh ~]# chkconfig tftp on
[root@luokh ~]# chkconfig xinetd on
[root@luokh ~]# service xinetd start
6、测试TFTP服务器
首先在/tftpboot目录下mkdir haha,然后修改权限:chmod 777 haha
然后进入到另外任意一个文件夹:
[root@luokh ~]# cd /home/luokuanh/MySelf/
[root@luokh MySelf]# tftp 202.115.10.48
tftp> get haha
如果没有出现错误且在该路径下出现haha文件,则证明TFTP服务器建立成功。
7、可能出现的错误:
tftp> 后Transfer timed out:出现此错误原因是tftpd服务没有启动
tftp> 后Error code 0:Permission denied,这是由于SELinux造成的。
可以通过如下方法解决:
编辑Vim /etc/sysconfig/selinux ,然后重启虚拟机。
<span style="font-family:SimSun;"><span style="font-size:18px;"> 1 2 # This file controls the state of SELinux on the system. 3 # SELINUX= can take one of these three values: 4 # enforcing - SELinux security policy is enforced. 5 # permissive - SELinux prints warnings instead of enforcing. 6 # disabled - No SELinux policy is loaded. 7 SELINUX=disabled //改为disabled</span> 8 # SELINUXTYPE= can take one of these two values: 9 # targeted - Targeted processes are protected, 10 # mls - Multi Level Security protection. 11 SELINUXTYPE=targeted 12 </span></span>
总结:本文参考了高玉龙, 白旭, 吴玮. 达芬奇技术开发基础、原理与实例[M]. 电子工业出版社, 2012.