[size=0.76em]在嵌入式linux开发过程中需要使用tftp方式从Linux主机下载文件到板子中,因此需要在主机linux系统中安装tftp服务器。Ubuntu-9.10中安装tftp服务器的方法如下:[url=]4.2.1[/url]安装程序通过软件管理安装 tftp tftpd,前者是客户端,后者是服务程序。系统根据依赖会选上openbsd-inetd。在Ubuntu的终端下输入命令如下:sudo apt-get install tftp tftpdsudo apt-get install xinetd注:sudo命令意思是:使用管理权限。如果已经进入了管理员模式,那么上面命令就不用加sudo了。直接使用 apt-get install tftp tftpd即可进入管理模式方法是:1. 输入命令:sudo –i 随后输入密码即可(密码是不显示的,不要认为有问题哦O(∩_∩)O~)。2. 输入命令:sudo su 随后输入密码即可。上面两个命令的不同,在linux下试下就明白啦,或者使用百度哦。给个参考图: 使用sudo –i命令 使用sudo su命令[url=]4.2.2[/url]配置相关服务文件xinetd.conf在输入命令前,需要说明一下键盘上Tab键的使用,这是一个小技巧。例如你要想修改下面的xinetd.conf文件,你只需要输入cd /e然后按一下Tab键,系统会帮您自动补全文件或者文件夹名字。当然这是建立在文件名是唯一的基础上的,这个方法在开发板的linux下同样适用,详细的使用,大家百度下吧。配置相关服务文件。进入根目录下的etc文件夹(命令是cd /etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults{# Please note that you need a log_type line to be able to uselog_on_success# and log_on_failure. The default is the following :# log_type = SYSLOG daemon info}
includedir /etc/xinetd.d注:打开xinetd.conf文件(其他文件都是类似)的方法介绍两种。1、使用vimxinetd.conf(或者vi xinetd.conf)。打开后处于不能编辑状态,这时按下键盘的字母’I’键,即可进入编辑模式。可以使用copy方式,不过最好使用鼠标右键copy的方式,不要使用Ctrl+ c的方式。编辑完成后,按下键盘的Esc键进入vim的命令模式,这时输入冒号’:’(注意是英文冒号),然后输入wq即可保存退出。对于vim的详细介绍请参考vim的命令大全,百度即可。2、使用geditxinetd.conf。打开后跟windows的记事本操作类似,保存也是使用Ctrl+S,其他就不多说了。初学者推荐使用该方式。注意如果出现xinetd.conf修改完成后无法保存的问题,提示无权限。那么使用sudo chmod 777 xinetd.conf命令修改一下操作权限即可。[url=]4.2.3[/url]配置tftp服务器输入命令:sudo vim /etc/default/tftpd-hpa 或者sudo gedit /etc/default/tftpd-hpa打开tftpd-hpa文件,把内容修改成:TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" /tftpboot是你tftp服务器的工作目录,自行修改,注意,在新建工作目录时,最好修改其权限为777,命令sudo chmod777 /tftpboot。建立方法稍后介绍。[url=]4.2.4[/url]修改tftp文件使用命令:cd /etc/xinetd.d 进入xinetd.d文件夹。查看是否有tftp文件,如果没有就新建一个,如果有的话修改成下面的内容。输入命令vim tftp(或者gedit tftp),然后查看修改:service tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
#log_on_success += PID HOST DURATION
#log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的。[url=]4.2.5[/url]建立tftpboot文件夹及修改其权限输入命令:sudo mkdir /tftpboot然后修改成最宽松的权限:sudo chmod 777 /tftpboot[url=]4.2.6[/url]重新启动服务先输入命令:sudo /etc/init.d/xinetd reload重新加载一下进程。然后输入命令:sudo /etc/init.d/xinetd restart重启服务。注意,每次修改完配置文件后,都需要重新启动一下服务。[url=]4.2.7[/url]测试tftp服务器检查tftp是否打开:chkconfig--list 如果没有打开,则用这个命令也可以打开:sudo chkconfig tftp on。通过以上步骤就可以建立好tftp服务器了,可以在本地先进行一下测试。一、先在tftpboot建立一个文件,随意建立,然后在文件里随意输入信息。命令是: 1.输入:cd /tftpboot进入tftpboot文件夹。 2.输入:touch realarm.txt建立一个realarm.txt文件。3.输入:vim realarm.txt 然后输入”tftp test”编辑方法见4.2.2的“注”。或者使用gedit realarm.txt进行编辑。我使用的是gedit进行的编辑,如下图所示。二、进入另一个文件夹进行测试(是非tftpboot文件夹,统一一下,我们选择在根目录的mnt文件夹下测试) 1.先进入mnt文件夹:cd /mnt 2.输入命令:sudo tftp 127.0.0.1(或者sudo tftp localhost也就是本机ip地址) 3.输入命令:get realarm.txt 如果received提示,就说明传输成功了 4.输入命令:q退出tftp模式 5.输入命令:ls查看mnt目录是否有realarm.txt文件。先来看看mnt文件夹下有哪些文件可以看到只有hgfs文件夹,其他没有任何文件。tftp测试操作演示如下:可以看到操作成功。那么打开来看看内容是否一样。输入gedit realarm.txt或者使用vim realarm.txt。看下图所示可知,tftp建立与测试已经成功了,呵呵。又向成功迈进一步啦!上面测试的是接收文件,发送文件也是可以的,使用put命令。在mnt文件夹随意建立一个文件,随意输入信息。然后使用“put 文件名“即可。若在使用put时出现如下错误Access violation原因在于:tftp服务器默认可以下载,但是上传就必须在tftpboot目录下有一个同名文件,并且要有可读写的权限!解决方法如下:首先tftpboot目录要有读写权限,为了确保可使用命令sudo chmod 777 /tftpboot进行修改。在tftpboot目录下建立一个要上传的同名文件,并改变权限为777(或者666),就可以了正常put了。 busybox的tftp用法简要说明tftp [OPTION]...HOST [PORT]OPTION:-l FILE 本地文件-r FILE 远程文件-g 下载-p 上传例子:下载:tftp -r test.txt -g 192.168.1.100上传:tftp -l test.txt -rtest.txt -p 192.168.1.100
|