TFTP服务器搭建
1. 安装服务器、客户端和守护进程
#sudo apt-get install tftp-hpa tftpd-hpa xinetd
2. 服务器配置
首先,在根目录下建一个tftpboot,并把属性改成任意用户可读性:
#cd /
#sudo mkdir tftpboot
#sudo chmod 777 tftpboot
然后,进入目录/etc/xinetd.d/,并在其中新建文件tftp,把指定的内容加入到tftp文件中:
#cd /etc/xinetd.d/
#sudo vi tftp
添加以下内容到tftp文件
service tftp
{
disable = no 138
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot –c
per_source = 11
cps = 100 2
}
最后,修改配置文件/etc/default/tftpd-hpa,修改为
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -l -c -s"
注意:将”TFTP_DIRECTORY“改为新建tftpboot目录所在的路径。
3. 重新启动服务、
#sudo /etc/init.d/xinetd reload
#sudo /etc/init.d/xinetd restart
#sudo /etc/init.d/tftpd-hpa restart
4. 测试服务器
测试一下,在/tftpboot文件夹下新建立一个文件
#touch abc
进入另外一个文件夹
#tftp 192.168.2.51 (192.168.2.51为本机IP)
#tftp> get abc
如果可以下载说明服务器已经安装成功,将开发板同PC通过网线进行连接后即可使用tftp下载文件。
tftp命令用法如下
tftp your-ip-address
进入TFTP操作:
connect:连接到远程tftp服务器
mode:文件传输模式
put:上传文件
get:下载文件
quit:退出
verbose:显示详细的处理信息
tarce:显示包路径
status:显示当前状态信息
binary:二进制传输模式
ascii:ascii 传送模式
rexmt:设置包传输的超时时间
timeout:设置重传的超时时间
help:帮助信息
? :帮助信息
5. uboot使用tftp
(1). 用网线连接主机和开发板的网口并将编译好的内核镜像uImage和设备树文件复制到tftpboot目录下
(2). 进入到uboot阶段,修改环境变量并保存:
setenv ethaddr e6:97:d9:0c:f7:7a 设置MAC
setenv serverip 192.168.2.51 设置tftp服务器的IP
setenv ipaddr 192.168.2.85 设置本地的IP
setenv image imx6qdl/zImage 设置tftp服务器上要下载到本地的内核镜像
setenv fdt_file imx6qdl/imx6q-s3-sabresd.dtb 设置tftp服务器上下载到本地的设备树
setenv nfs_rootfs /nfs_rootfs/imx6qdl-rootfs 设置NFS文件系统位置
saveenv
(3). 在uboot菜单选择网络启动
重启开发板,在u-boot启动后,快速按下任意键,进入uboot菜单。
----------------------Main Menu-----------------------
0 -- exit to uboot shell
1 -- select boot mode
------------------------------------------------------
输入序号1进入到启动类型选择选项
----------------------BOOT MODE Menu-----------------------
0 -- exit to upper menu
1 -- boot from net
2 -- boot from emmc
------------------------------------------------------
输入序号1设置开发板从网络启动,之后重启开发板即可。
之后若想要从emmc启动,则同理选择boot from emmc即可