sudo chmod 777 /tftpboot
3. sudo in.tftpd -l /tftpboot
这样tftp服务器就启动了,下面可以做一个测试
4. cd /tftpboot
touch test
建立一个文件
5. cd /home/usrname
登录另一个目录
6. tftp 192.168.0.59
换成自己的ip
> get /tftpboot/test
打开目录 /etc/xinetd.d/
新建文件tftp
tftp内容:
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
}
重新启动服务:
sudo /etc/init.d/xinetd restart
sudo in.tftpd -l /tftpboot
安装过程中出现的问题及原因
现象一:
tftp> get test.log
Transfer timed out.
原因:
tftpd服务没有启动
现象二:
tftp> get test.log
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
cat /etc/default/tftpd-hpa
#Defaults for tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
设置的时候只要将server_args=改为你自己设定的服务器文件夹就行了
现象三:
tftp> put ex070416.log
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件
1. sudo apt-get install tftp-hpa tftpd-hpa
2. cd /
sudo mkdir /tftpboot
sudo chmod 777 /tftpboot
3. sudo in.tftpd -l /tftpboot
这样tftp服务器就启动了,下面可以做一个测试
4. cd /tftpboot
touch test
建立一个文件
5. cd /home/usrname
登录另一个目录
6. tftp 192.168.0.59
换成自己的ip
> get /tftpboot/test
如果能够得到文件,那么就成功了。
PS:不要忘了 sudo apt-get install xinetd
sudo apt-get install netkit-inetd
关于不能上传(put)的解决
打开目录 /etc/xinetd.d/
新建文件tftp
tftp内容:
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
}
重新启动服务:
sudo /etc/init.d/xinetd restart
sudo in.tftpd -l /tftpboot
uboot使用这个来下载kernel, 对ubuntu用户来讲,配置这个不是很友好。
安装程序
sudo apt-get install tftp tftpd
前者是客户端,后者是服务程序。
只这样是不行的,因为tftp是要inetd来控制的,而ubuntu或debian类的系统,默认是没有安装inetd的,安装一下:
sudo apt-get install netkit-inetd
在/目录下建一个tftpboot, 把属性改成777。
cd /
sudo mkdir tftpboot
sudo chmod 777 tftpboot
修改/etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
重新加载inetd进程
sudo /etc/init.d/inetd reload
测试一下,在/tftpboot文件夹下新建立一个文件
touch aaa
进入另外一个文件夹
tftp 10.0.0.1
tftp> get aaa
是不是工作正常了呢?
现在把你编译好的内核文件拷贝到/tftpboot下面,使用u-boot的tftp命令加栽内核到目标板内存了。
下面介绍我们接下来要安装的三个包:
1.xinetd:xinetd是一个守护进程,用于处理对各种服务的请求,当xinetd监控的服务请求出现时,xinetd会使用/etc/xinetd.conf文件 读取/etc/xinetd.d目录中的配置文件,然后,根据所请求服务的xinetd.conf文件内容,启动相应的程序.
2.tftpd :服务端
3.tftp:客户端
第一步:安装相关软件包
sudo apt-get install tftpd (服务端)
sudo apt-get install tftp (客户端)
sudo apt-get install xinetd
第二步:建立配置文件
cd /etc/xinetd.d/
vim tftp
输入
QUOTE:
service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } |
存盘退出
3、建立tftp服务文件目录
mkdir /tftpboot
4、从新启动服务
/etc/init.d/xinetd restart
提示:在执行了这个命令后,可能显示一些信息,但是不会影响使用(具体什么原因我也不太清楚),下面的步骤顺利通过就可以了。
安装完成!测试方法:
在/tftpboot 目录下随便放个文件abc
然后 运行tftp 服务器ip(比如tftp 192.168.1.1), 进入tftp命令行
输入get abc 看看是不是能把文件下下来,如果可以就可以了,也可以put 文件上去。