使用tftp协议传输镜像文件到开发板上。小编来告诉你更多相关信息。
使用tftp协议传输镜像文件到开发板上
如果想知道使用tftp协议传输镜像文件到开发板上的内容,接下来就是全面介绍。
一、整体流程
tftpboot是Linux开发中的非常重要的软件,通过它可以实现服务器与开发板之间收发数据,常用于在开发板下载服务器端交叉编译后的可执行文件
。
使用tftpboot的步骤如下:
1.确保服务器(电脑)和开发板各连一条网线,确保都有各自的ip地址。【同一网段】
2.连接USB转串口线,因为要用到SecureCRT,方便电脑给开发板写指令。
setenv serverip 192.168.2.2setenv ipaddress 192.168.2.10
3.启动开发板,在uboot可以查看开发板的ip。若发现开发板没有分配ip地址,可以查看help,如何配置serverip ,开发板的ip地址。
这里以某芯片的命令为例:
crb106s> ping 192.168.2.2Waiting for RPM0 LMAC3 link status... SGMII [1G]Using rvu_pf#3 devicehost 192.168.2.2 is alive
4.输入“ping 开发板的ip“,完成开发板向服务器端的网络连接。
5.电脑端(tftp服务器)输入“ping 开发板的ip“,完成服务器向开发板的网络连接。
注意:tftp服务器需要在配置文件中指定tftp根目录,并且在linux中创建对应的目录,并赋予读写权限。
6.确保文件上传/下载的路径正确。
二、服务器安装tftp服务器
【步骤】:
1.安装tftp服务
以ubuntu服务器为例:
sudo apt-get update sudo apt-get install tftpd-hpa
2.tftp服务配置
安装完成后,我们需要对tftp服务器进行配置。打开终端并执行以下命令:
# 修改配置文件权限sudo chmod 777 /etc/default/tftpd-hpa#修改tftp配置文件sudo vi /etc/default/tftpd-hpa
在配置文件中,找到以下行:
#TFTP_USERNAME=\"tftp\" #TFTP_DIRECTORY=\"/var/lib/tftpboot\" #TFTP_ADDRESS=\":69\" #TFTP_OPTIONS=\"--secure\"
将这些行的注释符号(#)去掉,并根据需要进行修改。例如,你可以设置TFTP的用户名、目录和地址。配置完成后,保存并关闭文件。
4.创建tftp目录
打开终端,使用以下命令:
cd /var/lib/ sudo mkdir tftpboot
5.创建完成后,我们需要更改该目录的权限:
sudo chmod 777 /var/lib/tftpboot:/var/lib/tftpboot$cd /var/lib/tftpboot# 将需要供别人下载的文件都放在这里/var/lib/tftpboot$ lsImage-SDK12.23.10-ramdisk
6.重新启动系统
以确保所做的更改生效。可以使用以下命令重启系统:
reboot#注意重启之后,可能与开发板连接的tftp服务器的网口ip会丢失,# 由于之前是ip address add 配置的,所以需要再次配置tftp的IP地址。# 并检查iptable,执行iptable -F 关闭防火墙
使用tftp协议传输镜像文件到开发板上。小编来告诉你更多相关信息。
使用tftp协议传输镜像文件到开发板上
7.重启服务器之后,重启tftp服务。
sudo service tftpd-hpa restart# 查看tftp服务状态sudo service tftpd-hpa statuszheng@:/var/lib$ sudo service tftpd-hpa status● tftpd-hpa.service - LSB: HPA\'s tftp server Loaded: loaded (/etc/init.d/tftpd-hpa; generated) Active: active (running) since Mon 2024-01-08 17:44:54 CST; 17s ago Docs: man:systemd-sysv-generator(8) Process: 4897 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=0/SUCCESS) Tasks: 1 (limit: 18982) Memory: 396.0K CPU: 12ms CGroup: /system.slice/tftpd-hpa.service └─4905 /usr/sbin/in.tftpd --listen --user tftp --address :69 /var/lib/tftpboot# 或者$ netstat -a | grep tftpudp 0 0 0.0.0.0:tftp 0.0.0.0:*udp6 0 0 [::]:tftp [::]:*$ netstat -tuln | grep 69udp 0 0 0.0.0.0:69 0.0.0.0:*udp6 0 0 :::69 :::*
三、开发板使用tftpboot下载文件
从tftp服务器下载文件,注意使用绝对路径启动开发板,进入Uboot目录
crb106s> tftpboot $loadaddr /var/lib/tftpboot/Image-SDK12.23.10-ramdiskWaiting for RPM0 LMAC3 link status... SGMII [1G]Using rvu_pf#3 deviceTFTP from server 192.168.2.2; our IP address is 192.168.2.10Filename \'/var/lib/tftpboot/Image-SDK12.23.10-ramdisk\'.Load address: 0x40080000Loading: ################################################## 904.8 MiB 26.4 MiB/sdoneBytes transferred = 948787712 (388d5a00 hex)
四、boot启动镜像
直接在内存启动Image和Kenel
crb106s> booti $loadaddr - $fdtaddr
以上是网关于使用tftp协议传输镜像文件到开发板上的详细方法介绍,大家作为一个参考建议。