Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载

简介: Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为 69。


在 U-Boot 中也支持 TFTP 协议,可以通过 tftp 命令从服务端下载文件。服务端可以是 Linux,也可以是 Windows,只要支持 TFTP 服务就可以。


本文介绍如何在 Linux(虚拟机 Ubuntu 18.04) 下搭建 TFTP 服务,并实现在 U-Boot 中使用 tftp 命令下载 Linux 内核镜像文件到开发板 RAM 中。


搭建 TFTP 服务

  • 打开终端,执行命令安装 tftp-hpa 和 tftpd-hpa:
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
  • 在用户目录下新建 TFTP 工作目录,并赋予权限:
mkdir /home/alpha/tftpboot
chmod 777 /home/alpha/tftpboot

  • 新建文件 /etc/xinetd.d/tftp,填入以下内容:
server tftp
{
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /home/alpha/tftpboot/
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4
}

  • 启动 tftp 服务:
sudo service tftpd-hpa start
  • 修改 /etc/default/tftpd-hpa 文件:
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/alpha/tftpboot/"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s --secure"

  • 重启 tftp 服务:
sudo service tftpd-hpa restart

文件下载

  • 将 Linux 内核镜像文件拷贝到 TFTP 工作目录,并赋予权限:


  • 配置 U-Boot 网络相关的环境变量,注意服务端 IP 要设置正确,且开发板 IP 和服务端 IP 要在同一网段下:
setenv ipaddr 192.168.0.232      # U-Boor IP 地址
setenv ethaddr 00:aa:bb:cc:dd:ef # MAC 地址
setenv gatewayip 192.168.0.1     # 网关地址
setenv netmask 255.255.255.0     # 子网掩码
setenv serverip 192.168.0.120    # 服务器 IP 地址
saveenv                        # 保存环境变量

  • 保证开发板能够 ping 通服务端 IP:

  • 使用 tftp 命令下载文件,80800000 为 zImage 在 RAM 中的存放地址:
tftp 80800000 zImage


  • 通过终端打印的日志可以看到下载进度、传输速率等相关信息:

更多内容

  • CSDN博客:@Hello阿尔法
  • 哔哩哔哩:@Hello阿尔法
  • 知乎:@Hello阿尔法




相关文章
|
7天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
31 3
|
7天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
25 2
|
7天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
26 3
|
10天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
36 6
|
10天前
|
缓存 网络协议 Linux
Linux ip命令常用操作
Linux的 `ip`命令是一个强大且灵活的网络管理工具,能够执行从基本的网络接口配置到高级的路由和VLAN管理等多种操作。通过熟练掌握这些常用操作,用户可以更加高效地管理和配置Linux系统的网络环境。无论是在日常管理还是故障排除中,`ip`命令都是必不可少的工具。
12 2
|
Linux 网络架构
u-boot引导友善之臂Linux内核
u-boot引导友善之臂Linux内核 作者:kangear                        Email:kangear@163.com                       Blog:kangear.blog.chinaunix.net 当我刚接触u-boot时,不想自产自用,先用人家移植好的。
866 0
|
15天前
|
缓存 监控 Linux
|
18天前
|
Linux Shell 数据安全/隐私保护
|
19天前
|
域名解析 网络协议 安全
|
25天前
|
运维 监控 网络协议