最近调试嵌入式开发板, 需要利用tftp下载内核文件,这时就需要在PC机上搭建一个tftp服务器了, 方法很简单,如下:
先安装tftp服务器: sudo apt-get install tftpd-hpa
再安装tftp客户端: sudo apt-get install tftp-hpa , 客户端主要用于本机自测, 保证tftp服务器是可以正常使用的。
然后配置一下tftp服务器, 主要是设置tftp的文件夹路径:
sudo vim /etc/default/tftpd-hpa
添加如下内容:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/hwlxhy/tftpboot"# 这个路径自行定义,我是定义在用户目录下的tftpboot文件夹
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
然后重启tftpd-hpa服务:
sudo service tftpd-hpa restart
这样就配置完了, 现在来试试是否搭建成功了:
先在/home/hwlxhy/下面创建tftpboot文件夹,并修改文件夹属性: chmod -R 777 tftpboot
然后在tftpboot文件夹下面创建一个文件:touch test并添加一些内容: echo "123456" > test
在任意路径下(这里选择在用户路径下,即/home/hwlxhy下)输入
tftp localhost,此时会进入到tftp客户端, 可以看到显示 tftp >等待下一步操作,此时输入get test,回车后,再输入quit退出tftp客户端。
然后 ls /home/hwlxhy/, 可以看到该路径下多了一个 test文件, 并且内容是123456。
这样就说明tftp服务器搭建成功了!!!
再说明一个情况, 如果客户端是在嵌入式板子上, 而且不是通过网线直连的方式连接到PC机, 比如通过路由等,
那么从PC机tftp服务器中下载文件需要执行以下命令:
tftp -g -r file_name ip_addr
其中 -g 代表 get, -r 代表远程主机, file_name代表你要下载的文件, ip_addr就是PC机的ip地址。
这里要特别说明的是, 如果是通过tftp上传文件到服务器, 比如上传test2文件,那么你会发现如果执行:
tftp -p -r file_name ip_addr
是不行的, 会提示文件不存在, 这是什么情况? 研究后发现, 需要你在tftp服务器上建立一个相同名字的文件,
并且是可读可写可执行权限,才可以上传。即先在tftp服务器上创建一个空文件test2,然后再执行上述命令即可。
至于为什么,还没有去研究,知道的大神请告知!!
怎么样? 很简单吧? 使用起来也很方便 。