嵌入式Linux--tftp下载镜像

开发板:九鼎X210BV3S uboot-IP:192.168.1.20
虚拟机:ubuntu16.04 x64 IP:192.168.1.30


一、ubuntu搭建tftp环境

1.安装

sudo apt install tftp-hpa tftpd-hpa

tftp-hpa是客户端,tftpd-hpa是服务程序。

2.建立目录

mkdir /tftpboot 			# 在根目录下建立tftp传输目录,位置任意更改
sudo chmod 777 /tftpboot		# 修改权限
sudo touch /tftpboot/test.txt 		# 建立文件

3.配置

vi /etc/default/tftpd-hpa	# 编辑客户端文件
# 更改后内容如下:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot" 	# 这里是你的tftpd-hpa的服务目录
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"		#-l是以standalone/listen模式启动TFTP服务,-c是可以上传文件的参数,-s是指定tftpd-hpa服务目录

4. 重启服务

sudo service tftpd-hpa restart # 启动服务,采用独立的服务形式

5. 测试

cd /home
sudo touch test1.txt 		# 建立文件
tftp localhost  		# localhost 表示本机
tftp>get test.txt  		# 获取/tftpboot目录下的test.txt文件
tftp>put test1.txt 		# 把/home/test1.txt放到/tftpboot目录下
tftp>q

退出后,在/home目录下会有一个test.txt文件,在/tftpboot 目录下有test1.txt,表示tftp服务器安装成功!

二、配置uboot的环境变量

在uboot下面使用print命令可以打印出所有的环境变量,ipaddr为开发板IP,serverip为tftp服务器IP即ubuntu的IP,我的网络相关配置如下:

gatewayip=192.168.1.1
netmask=255.255.255.0
ipaddr=192.168.1.20
serverip=192.168.1.30

配置好了之后要确保开发板可以ping通ubuntu虚拟机,出现了host 192.168.1.30 is alive即说明配置成功。

x210 # ping 192.168.1.30   
dm9000 i/o: 0x88000300, id: 0x90000a46 
DM9000: running in 16 bit mode
MAC: 00:40:5c:26:0a:5b
operating at 100M full duplex mode
host 192.168.1.30 is alive

三、tftp下载镜像

上面两步成功之后,下面就要做最重要的事情了,从虚拟机下载镜像到开发板。于是出现了下面的情况:

x210 # tftp 30008000 zImage             
dm9000 i/o: 0x88000300, id: 0x90000a46 
DM9000: running in 16 bit mode
MAC: 00:40:5c:26:0a:5b
operating at 100M full duplex mode
TFTP from server 192.168.1.30; our IP address is 192.168.1.20
Filename 'zImage'.
Load address: 0x30008000
Loading: T T T T T T T T T T 
Retry count exceeded; starting again

???虽然ping得通,但是不能下载!百度了很久之后,发现问题的原因是ubuntu没有关闭防火墙!!

操作指令
关闭防火墙ufw disable
开启防火墙ufw enable
查询防火墙状态ufw status
卸载防火墙sudo apt remove iptables

关闭了防火墙之后,即可tftp下载镜像到开发板!
这里写图片描述


参考地址https://www.linuxidc.com/Linux/2016-07/133255.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值