【前言】學習嵌入式,須要配置tftp服務,在網上搜了搜,不少,可是配置了,個人總是出現Error code 1: File not found錯誤,通過探索和一個大哥的博客http://blog.csdn.net/haiwil/article/details/6606648,終於配置出來了,記錄以下:vim
1:安裝服務,共3個服務socket
1 sudo apt-get install tftp-hpa tftpd-hpa xinetd
2:新建配置文件 /etc/xinetd.d/tftp學習
1 sudo vim /etc/xinetd.d/tftp
注意:若是不是root用戶,則加sudo,不然系統不容許tftp,出現錯誤測試
"/etc/xinetd.d/tftp" E212: Can't open file for writing
修改/etc/xinetd.d/tftp內容爲:spa
1 service tftp 2 { 3 disable = no 4 socket_type = dgram 5 protocol = udp 6 wait = yes 7 user = root 8 server = /usr/sbin/in.tftpd 9 server_args = -s /tftpboot -c 10 per_source = 11 11 cps = 100 2 12 }
注意:第九行中.net
server_args = -s /tftpboot -c
-c參數是容許上傳用的,參數/tftpboot則是你的tftp目錄,修改爲你的目錄便可,可是筆者建議在根目錄下,方便rest
3:修改配置文件/etc/default/tftpd-hpacode
1 sudo vim /etc/default/tftpd-hpa
修改成:server
1 # /etc/default/tftpd-hpa 2 TFTP_USERNAME="tftp" 3 TFTP_DIRECTORY="/tftpboot " //改爲你想要的那個tftpboot 4 TFTP_ADDRESS="0.0.0.0:69" 5 TFTP_OPTIONS="-l -c -s" //這裏是選項
4:在根目錄下新建tftpboot目錄,並修改權限blog
1 mkdir /tftpboot 2 sudo chmod 777 -R /tftpboot
5:在/tftpboot中新建一個測試文件test
1 touch test
6:【重要】重啓服務,修改配置文件的任何地方都要重啓服務
1 sudo /etc/init.d/xinetd reload 2 sudo /etc/init.d/xinetd restart
7:測試服務tftp是否啓動
netstat -a|grep tftp
顯示 :
udp 0 0 *:tftp *:*
則啓動服務了
8:測試tftp
進入另外一個目錄【不是/tftpboot目錄,好比用戶jyg目錄】
cd /home/jyg
測試如圖:
9:出現錯誤:
【錯誤】Error code 0: Permission denied,是由於tftpboot文件夾沒有權限,或者是要上傳和下載的文件沒有權限。
【解決】修改權限
sudo chmod 777 -R /tftpboot
【錯誤】Error code 1: File not found,緣由1:指定的文件不存在;緣由2:tftpd啓動參數中沒有指定-c選項;緣由3:目錄有問題,由於安裝的時候默認的tftp目錄是【/var/lib/tftpboot】,您能夠把test文件放在這個目錄中從新測試一下,若是正確說明猜測是正確的。
【解決】緣由1和緣由2都好解決,這裏只解決緣由3:重啓服務或者重啓系統