Linux —— tftp 使用

本文详细介绍tftp命令在网络配置及使用中的应用,包括开发板与上位机的网络配置步骤、tftp服务的搭建与配置方法,以及uBoot系统与Linux系统下tftp命令的具体用法。

提示:tftp 命令在 uBoot 系统和 Linux 系统下的使用是不一样的


前言

在 Linux 移植过程或裸机开发中,经常要使用到 tftp 命令,本文围绕该命令相关的网络配置及使用做出记录,本文中,开发电脑命名为上位机,新移植硬件或开发板均称为开发板。


一、网络条件

本文网络条件限定:开发板与上位机处于同个路由器情况下,开发板与上位机均能正常连接路由器。
设备与路由器是否能正常连接,首先检查设备 ip 是否正常,然后可以使用 ping 命令进行测试,处于同一网段的主机才能 ping 通。设备需要处于同一网段
对于开发板仅有 uBoot 状态,需要手动设置 IP,如果是首次 Linux 启动成功,也需要手动设置 IP。
开发板与上位机可以 ping 通,并且上位机关闭了防火墙,才能使用 tftp 获取文件。

tftp 的使用需要手动关闭防火墙,不然无法获取文件
Ubuntu 下关闭防火墙的命令为:sudo ufw disable
windows 下关闭杀毒软件所带的防火墙即可

开发板 uBoot 命令行设置 IP 的相关命令为:

// 设置开发板 IP
setenv ipaddr 192.168.31.9
// 设置开发板网卡地址,uBoot 阶段随意设置,跟其他设备不冲突即可
setenv ethaddr 00:04:9f:04:d2:35
// 设置网关地址
setenv gatewayip 192.168.31.1
// 设置子网掩码
setenv netmask 255.255.255.0
// 设置上位机地址
setenv serverip 192.168.31.7
// 保存环境变量,只用一次的话不需要保存
saveenv
ping 192.168.31.7

uBoot 命令一般还还配置有 env set / env print / env save,可以替代 setenv
配置开发板网卡地址后,也可以用 dhcp 命令自动获取下服务器信息

开发板 Linux 系统下如果不能自动获取 IP,那么也需要手动设置 IP 并且重启网卡,相关命令为:

ifconfig eth0 up
udhcpc -i eth0
ifconfig

二、使用 tftp 上位机需要如何配置

使用 tftp 命令的上位机系统一般为 Linux 系统,本文以 uBuntu 为例。

1. 首先在 UBuntu 上安装 xinetd ,相关命令为:

sudo apt-get install xinetd

2. 完成安装后,更改 xinetd.conf 配置

完成安装后,查看 /etc/ 目录下是否存在 xinetd.conf 文件,没有的话需要自己生成。打开 xinetd.conf 文件后,编辑 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 use log_on_success 
# and log_on_failure. The default is the following : 
# log_type = SYSLOG daemon info 
} 
includedir /etc/xinetd.d

3. 新建文件传输目录

在上位机新建 tftp 传输用目录,这里建立在/home/zona/linux目录下,目录名为tftp。将tftp目录赋予可读可写可执行权限,相关代码为:

mkdir -p /home/zona/linux/tftp 
sudo chmod 777 /home/zona/linux/tftp/ 
cd /home/zona/linux/ 
ls

4. 开启 tftp-hpa 和 tftpd-hpa 服务程序

在 UBuntu 下开启 tftp-hpa 和 tftpd-hpa 服务程序,相关命令为:

sudo apt-get install tftp-hpa tftpd-hpa

5. 将 tftp 服务定位至文件目录

安装好 tftp-hpa 和 tftpd-hpa 服务程序后,打开 tftpd-hpa 配置文件,修改我们自己建立的文件目录为 tftp 服务器工作目录,修改配置文件的命令为:

sudo vi /etc/default/tftpd-hpa

修改(没有的话就新建)配置文件 /etc/xinetd.d/tftp
更改为:

server tftp 
{ 
socket_type = dgram 
wait = yes 
disable = no 
user = root 
protocol = udp 
server = /usr/sbin/in.tftpd 
server_args = -s /home/zona/linux/tftp -c
#log_on_success += PID HOST DURATION 
#log_on_failure += HOST per_source = 11 cps =100 2 flags =IPv4 
}

记得更改服务路径为自己新建文件夹的路径

6. 保存后重启

保存配置文件后,重启 tftp 服务,相关命令为:

sudo service tftpd-hpa restart
sodu service xinetd restart

三、开发板上 tftp 的使用

1.uBoot 系统下

由于没有文件系统支持,所以 tftp 命令会将下载的文件放在内存上指定的位置处,相关命令如下:

tftp 0x48000000 shall.bin

2. Linux 系统下

Linux 系统下使用 tftp 服务,上位机中新建的 tftp 文件夹下的 文件将会被下载至开发板中当前目录下,Linux 系统默认新下载的文件将会被去除可执行权限,如果新下载的文件是需要运行的文件,那么下载后记得增加权限后才能使用。

tftp -g -r shall.bin 192.168.31.182

总结

在开发板挂接好 nfs 文件系统后,一般将不会再使用 tftp 命令来进行文件下载,本文将 tftp 使用方式记录下来,备忘。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值