#系统环境:
上位机系统平台:opensuse13.2 x86_64(KDE)
下位机:mini2440开发板
系统IP:192.168.1.108
防火墙状态:已关闭
说明:本次安装基于终端命令方式,并且使用的时root权限,其中#开头的表示该行是终端输入的命令,非# 开头的代码表示修改内容,如遇到问题,可以留言。
opensuse上安装TFTP服务器及客户端
安装tftp服务器:zypper install tftp xinet
安装tftp客户端:zypper install atftp
配置tftp服务器:
在/etc/xinetd.d/下建立一个配置文件tftp
sudo vi tftp
在文件中输入以下内容:
service tftp
{
socket_type = dgram #协议分类
protocol = udp #协议类型
wait = yes
flags = IPv6 IPv4 #支持IPV4和IPV6
user = root
server = /usr/sbin/in.tftpd #tftp服务器目录
server_args = -u tftp -s /opt/samsung/mini2440/image #tftp传输文件工作目录
per_source = 11
cps = 100 2
disable = yes #开机是否启动
}
启动tftp服务器:service xinetd restart
本地进行测试:
方式一:
#tftp 192.168.1.100
tftp> get uImage_N35
tftp> put uImage_N35
tftp> q
方式二:
tftp命令:
tftp [-v][-m mode] [host [port]] [-c command]
-v 显示详细报告。可有可无,查错时可使用。
-m 使用哪种模式传送 –m binary (使用二级制模式)
host tftp服务端ip地址或主机名称
port 未输入则使用默认UDP端口69传送或接收数据。
-c 下达各个命令
测试:
从服务器获取文件:tftp -v -m binary 192.168.1.100 2 -c get uImage
将文件传输至服务器:tftp -v -m binary 192.168.1.100 2 -c put uImage
#mini2440上使用busybox中的tftp命令传输文件
1、从Server下载文件到Client时,使用下面的命令:
tftp –g –l 目标文件名 –r 源文件名 服务器地址
如命令:
tftp -g -l uImage -r uImage_N35 192.168.1.100
作用:从server中的tftp根目录下,下载文件uImage_N35
到Client并更名为uImage;若不更名,uImage就改为uImage_N35
.
2、从Clinet上传文件到Server时,使用下面的命令
tftp –p –r 目标文件名 -l 源文件名 服务器地址
如命令:
tftp –p –r uImage_N35 –l uImage 192.168.1.2
作用:从Client上传文件uImage到Server的tftp根目标下,并更名为uImage_N35;若不更名,uImage_N35就改为uImage.
这个命令一般是用于下载或上传后进行更改文件名,如若不更改文件名,可使用以下简单命令:
从Server上传文件到Clinet时,使用下面的命令
tftp –g –l A.txt 192.168.1.2
从Clinet上传文件到Server时,使用下面的命令
tftp –g –r A.txt 192.168.1.2
#问题
问题一:Permission denied
tftp 192.168.1.100
tftp> get uImage_N35
tftp> put uImage_N35
Error code 0: Permission denied
tftp> ^C
tftp> q
解决办法:
chmod -R 755 /opt/samsung/mini2440/image
问题二:File not found
linux-q4hr:/opt # tftp 192.168.1.100
tftp> put uImage
Error code 1: File not found
tftp> ^[[A
?Invalid command
tftp> put uImage
Error code 1: File not found
tftp>
解决办法:
服务器上没有该文件,需要通过touch 命令在服务器上创建该文件。