tftpd-hpa是一个功能增强的TFTP服务器。它提供了很多TFTP的增强功能,它已经被移植到大多数的现代UNIX系统。在嵌入式系统中,bootloader一般都支持,在引导程序中有类似于客户端的实现功能,PC作为服务器,开发板作为客户端,进行引导程序、内核和文件系统的镜像的下载。安装使用下面的命令来安置 tftpd-hpa服务器:
$ sudo apt-get install tftpd-hpa tftp-hpa注:若server未安装xinetd则会自动下载openbsd-inetd并安装,使用tftp过程中出错很多时候是因xinetd版本问题;
建立共享目录:1.sudo mkdir/tftpboot2.sudo chmod 777/tftpboot配置tftp-hpa 的配置文件为/etc/default/tftpd-hpa
RUN_DAEMON="yes" OPTIONS="-l -c -s /tftpboot" -c为可创建新文件,若无此参数,put命令则可能出现错误提示,此时只能覆盖原有文件不能创建新文件;
无论何种方式配置tftp-server-c参数决定是否能正常写入数据; 这里指定 tftpd 使用的目录为 /tftpboot,注意要修改目录属性:chmod 777tftpboot
关闭selinux和防火墙:(ubuntu不需要)
setenforce 0
service iptables stop(实际不能关闭防火墙)
在fedora19以上的版本中需要手动关闭防火墙:打开防火墙图形界面,在Zone项选择public,然后对右边Services里面tftp和tftp-client进行勾选勾选。启动 # /etc/init.d/tftpd-hpa start停止 # /etc/init.d/tftpd-hpa stop
本机测试tftp服务:1.cd /home/canux2.touch test.txt3.cd /tftpboot4.tftp 127.0.0.15.tftp>gettest.txt
链接到开发板
设置好pc
gatewayip=192.168.1.1
netmask=255.255.255.0
serverip=192.168.1.2
连接好网线
设置好uboot
setenv ipaddr 192.168.1.230 // 开发板IP
setenv serverip 192.168.1.2 //Linux IP
setenv gatewayip 192.168.1.1 // 网关
saveenv
ping 192.168.1.2 #只能开发板ping到pc |