TFTP(Trivial File Transfer Protocol),即普通文件传输协议,是用来传送文件的Internet程序,它比文件传输协议(FTP)使用简单,但是功能少。
在嵌入式系统中(特别是在开发初期),TFTP和NFS(网络文件系统)这两种方式常用来,为目标板从服务器上下载
。
debian源里自带了tftp,所以安装很简单。
安装:服务端tftpd
配置:/etc/inetd.conf 将其中默认的目录/tftpboot改为个人主目录下
$ mkdir ~/tftpboot
启动+测试:不知道怎么启动,后来发现没办法启动
查了一下资料:
tftp是有inetd控制的. inetd是管理其他守护进程的守护进程, 使用RPC的守护进程的端口号由portmap分配,未安装inetd。
sudo apt-get install netkit-inetd
发现可找到,但无论如何也安装不对。提示了一个信息要指定一个确定安装软件,有一个是openbsd-inetd。继续查找:
netkit-inetd已经由openbsd-inetd所替代.
(etch 預設的 inet 超級服務管理程式已由 netkit-inetd 替換為
openbsd-inetd。如果沒有設定任何服務,在預設上它將不會啟動。這個新預設的服務程式將會在升級的過程中被自動安裝進來。
)
openbsd-inetd:
/usr/sbin/inetd
启动的script: /etc/init.d/openbsd-inetd
$ sudo /etc/init.d/openbsd-inetd reload
$ sudo /etc/init.d/openbsd-inetd restart
安装:客户端 tftp
测试tftpd:
$ tftp localhost
tftp> get file (file 存在于tftpboot目录下)
timeout...
人品真是不好,sigh。
继续发现:
“在Ubuntu下,tftp是不能單獨運作的,需要xinetd這個網路管理的背景程式之支援。”
$ sudo apt-get install xinetd
配置 /etc/xinetd.conf,不过更好的办法是tftp配置文件:
(xinetd.conf引入專門存放設定檔的資料夾includedir /etc/xinetd.d)
$sudo vim /etc/xinetd.d/tftp
加入:
service tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot 替换为你的目录,注意权限。 disable = no per_source = 11 cps = 100 2 flags = IPv4}
將/etc/inetd.conf中关于tftp的部份注释掉:
#:BOOT: TFTP service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
$ sudo /etc/init.d/xinetd reload$ sudo /etc/init.d/xinetd restart
$ tftp localhost
$ get file ok!!
总结一下以上:
先安装xinetd,然后安装tftp tftpd ,配置xinetd关于tftp即可。
学习点:Linux关于网络部分的守护进程。
设置开发板:
连接:
参考资料:
%E8%88%87_xinetd_%E7%9A%84%E5%AE%89%E8%A3%9D:_Debian/Ubuntu
http://www.cublog.cn/u/13991/showart_108131.html
阅读(626) | 评论(0) | 转发(0) |