IMX6ULL 移植篇-uboot 网络命令tftp

一.   tftp命令简介

tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载文件到 开发板的 DRAM 中。
本文学习 tftp 命令的使用。通过 tftp服务下载文件到开发板的 DRAM中。

二.  tftp命令

1.   tftp命令

uboot 中的 tftp 命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename] 

loadAddress 是文件在开发板的 DRAM 中 的存 放 地 址 ,
[[hostIPaddr:]bootfilename] 是要从 Ubuntu 中下载的文件。
但是和 nfs 命令的区别在于,  tftp 命令不需要输入文件在 Ubuntu 中的完整路径,只需要输入文件名即可。 

2.   搭建 tftp环境

(1)  Ubuntu 上搭建 TFTP 服务器, 需要安装 tftp-hpa tftpd-hpa。安装命令如下:

wangtian@wangtian-virtual-machine:/etc/apt$ sudo apt-get install tftp-hpa tftpd-hpa

(2)  NFS 一样,tftp 也需要一个文件夹来存放文件,在 ubuntu系统下创建目录。

操作如下:

wangtian@wangtian-virtual-machine:~/linux$ mkdir tftp_file
wangtian@wangtian-virtual-machine:~/linux$ cd tftp_file/
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ pwd
/home/wangtian/linux/tftp_file

(3)  更改所创建文件的访问权限,输入如下命令:

wangtian@wangtian-virtual-machine:~/linux$ chmod 777 tftp_file

(4)  配置 tftp:安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录就需要创建。

创建 /etc/inetd.d目录:

wangtian@wangtian-virtual-machine:/$ sudo mkdir /etc/xinetd.d
[sudo] wangtian 的密码: 
wangtian@wangtian-virtual-machine:/$ cd /etc/xinetd.d/
wangtian@wangtian-virtual-machine:/etc/xinetd.d$ 

创建 tftp 文件,如下:

wangtian@wangtian-virtual-machine:/etc/xinetd.d$ sudo gedit tftp

tftp文件内容如下:

server tftp
{
	socket_type = dgram
	protocol = udp
	wait = yes
	user = root
	server = /usr/sbin/in.tftpd
	server_args = -s /home/wangtian/linux/tftp_file
	disable = no
	per_source = 11
	cps = 100 2
	flags = IPv4
}

更改 /etc/default/tftpd-hpa 文件,如下:
打开 tftpd-hpa 文件,输入如下命令:
wangtian@wangtian-virtual-machine:~$ sudo gedit /etc/default/tftpd-hpa

tftpd-hpa文件更改如下:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/wangtian/linux/tftp_file"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

(5)  重启 tftp 服务器,输入如下命令:

wangtian@wangtian-virtual-machine:~$ sudo service tftpd-hpa restart
wangtian@wangtian-virtual-machine:~$ 

3.  下载 zImage

zImage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zImage 相应的权限,命令如下:
 
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ cp ../nfs_File/zImage ./
wangtian@wangtian-virtual-machine:~/linux/tftp_file$ ls -l
总用量 960
-rw-rw-r-- 1 wangtian wangtian 983040 7月   6 00:59 zImage

向开发板下载 zImage文件

前提工作: 开发板可以 ping通 ubuntu系统。如下:

=> ping 192.168.1.66
Using FEC1 device
host 192.168.1.66 is alive
=> 

开发板上电,进入 uboot命令模式下(即uboot刚启动完,可以输入 uboot命令的时刻),下载 zImage文件,输入命令如下:

=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'zImage'.
Load address: 0x80800000
Loading: #################################################################
	 ##
	 2.4 MiB/s
done
Bytes transferred = 983040 (f0000 hex)
=> 

可以看出:通过tftp服务成功下载文件到 开发板。

注意:如果下载失败,提示如下信息,可以通过更改 /linux/目录下的 zImage文件权限解决。

=> tftp 80800000 zImage
Using  FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'zImage'
Loading address: 0x80800000
Loading: *
TFTP error: 'Permission denied' (0)
Starting again

即给 zImage最大权限,即可解决:

wangtian@wangtian-virtual-machine:~/linux/tftp_file$ sudo chmod 777 zImage 

猜你喜欢

转载自blog.csdn.net/wojiaxiaohuang2014/article/details/131565692