前面将交叉编译后的hello文件下载到开发板,使用了U盘拷贝的方式。这样比较繁琐,且需要时刻准备一个U盘。 这篇笔记就记录如何通过搭建TFTP服务器来实现文件传输。只需要一根网线就可以了。后续的学习中都采用这种方式。 搭建TFTP服务器,需要在电脑Ubuntu和开发板上分别进行设置。设置略显麻烦,但是一劳永逸。
二、Ubuntu 2.1 搭建首先安装 xinetd,然后安装 tftp 和 tftpd
sudo apt-get install xinetdsudo apt-get install tftp tftpd新建 TFTP 的配置文件:
vi /etc/xinetd.d/tftp文件内容如下: 其中server_args 设置的/var/tftpboot 目录是 tftp 服务器的目录。 我们在本地建立此目录,修改目录权限后,重启xinetd 服务:
mkdir /var/tftpbootchmod 777 /var/tftpbootsudo /etc/init.d/xinetd restart 2.2 测试在tftp 服务器的目录下创建一个test文件用于测试,在test内写入简单信息,如:test
启动另外一个终端
tftp 127.0.0.1这时就会变成tftp>开头,指示可以使用tftp指令
使用get 文件名指令获取文件此处就是:
get test可以看到文件长度和耗时。 获取完成后输入 q 即可退出 tftp。
查看获取结果。在当前目录下使用 ls 查看,可以发现多了一个 test 文件,使用cat查看test内容,与我们创建的测试文件一致。 也可以修改下服务器目录下的test内容,重新get一下,可以获取到最新的文件。
2.3 疑问创建的test文件内只有一个test。但是在上面的截图中可以看出,使用cat查看时,多输出一个空行,且通过tftp服务器获取时,文件长度是6。
三、开发板通过网线实现TFTP传输,需要开发板、Ubuntu在同一网段。也就是IP地址和子网掩码进行位与,得到结果一致即可。
3.1 查看IP首先查看开发板的IP地址: IP=192.168.1.230 子网掩码=255.255.255.0
查看windows下的IP地址 IP=192.168.1.102 子网掩码=255.255.255.0
再查看下Ubuntu的IP地址 IP=192.168.1.72 子网掩码=255.255.255.0
3.2 测试网络因为子网掩码为255.255.255.0,所以只要IP的前3段一样,那么位与结果就一样了。开发板已经与windows、Ubuntu在同一网段了,首先用开发板ping一下windows: 再用开发板ping一下Ubuntu:
3.3 从Ubuntu获取文件现在使用命令tftp -g -l test -r test 192.168.1.72来测试下: 命令的第一个test是获取到开发板后的名称,可以随意命名;第二个test是Ubuntu端要获取的文件名称,Ubuntu要确实有该文件才行,否则会获取超时;最后的IP地址是Ubuntu的IP地址。
查看下test内容,与Ubuntu一致: