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阿尔法




相关文章
|
2天前
|
linux命令详细说明以及案例
本文介绍了常用的 Linux 命令及其详细说明和示例,包括:`ls`(列出目录内容)、`cd`(更改目录)、`rm` 和 `mv`(删除与移动文件)、`grep`(搜索文本)、`cat`(显示文件内容)以及 `chmod`(更改文件权限)。每个命令均配有功能描述、选项说明及实际案例,帮助用户更好地掌握 Linux 命令的使用方法。
82 56
|
5天前
|
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
49 19
|
19天前
|
Linux 常用文件查看命令
`cat` 命令用于连接文件并打印到标准输出,适用于快速查看和合并文本文件内容。常用示例包括:`cat file1.txt` 查看单个文件,`cat file1.txt file2.txt` 合并多个文件,`cat > filename` 创建新文件,`cat >> filename` 追加内容。`more` 和 `less` 命令用于分页查看文件,`tail` 命令则用于查看文件末尾内容,支持实时追踪日志更新,如 `tail -f file.log`。
45 5
Linux 常用文件查看命令
|
2天前
|
linux常用命令详细说明以及案例
本文介绍了Linux中几个常用的命令及其用法,包括:`ls`(列出目录内容)、`cd`(切换目录)、`mkdir`(创建目录)、`rm -p`(删除目录及内容)和`mv`(移动或重命名文件/目录)。每个命令都配有详细说明、语法格式、常见选项及实用案例,帮助用户更好地理解和使用这些基础命令。内容源自[linux常用命令详细说明以及案例](https://linux.ciilii.com/show/news-285.html)。
|
25天前
|
Linux od命令
本文详细介绍了Linux中的 `od`命令,包括其基本语法、常用选项和示例。通过这些内容,你可以灵活地使用 `od`命令查看文件内容,提高分析和调试效率。确保理解每一个选项和示例的实现细节,应用到实际工作中时能有效地处理各种文件查看需求。
55 19
u-boot引导友善之臂Linux内核
u-boot引导友善之臂Linux内核 作者:kangear                        Email:kangear@163.com                       Blog:kangear.blog.chinaunix.net 当我刚接触u-boot时,不想自产自用,先用人家移植好的。
890 0
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
103 24
Linux系统之whereis命令的基本使用
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
164 25
|
2月前
|
Linux查看内存命令
1. free free命令是最常用的查看内存使用情况的命令。它显示系统的总内存、已使用内存、空闲内存和交换内存的总量。 free -h • -h 选项:以易读的格式(如GB、MB)显示内存大小。 输出示例: total used free shared buff/cache available Mem: 15Gi 4.7Gi 4.1Gi 288Mi 6.6Gi 9.9Gi Swap: 2.0Gi 0B 2.0Gi • to
48 2
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
77 11