TFTP服务器搭

  1. 安装服务器、客户端和守护进程

sudo apt-get install tftp-hpa tftpd-hpa xinetd

  1. 服务器配置

首先,在根目录下建一个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目录所在的路径。

  1. 重新启动服务、

sudo /etc/init.d/xinetd reload

sudo /etc/init.d/xinetd restart

sudo /etc/init.d/tftpd-hpa restart

  1. 测试服务器

测试一下,在/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:帮助信息
? :帮助信息

  1. 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即可

点赞