TFTP(Trivial File Transfer Protocol,簡(jiǎn)單文件傳輸協(xié)議),是TCP/IP協(xié)議族中用來(lái)在客戶機(jī)和服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議,開(kāi)銷很小。TFTP通常用于內(nèi)核調(diào)試。在嵌入式Linux開(kāi)發(fā)過(guò)程中,內(nèi)核調(diào)試是其中一個(gè)基礎(chǔ)、重要的環(huán)節(jié)。調(diào)試內(nèi)核通常是與 Bootloader配合使用,只需在Bootloader中實(shí)現(xiàn)了網(wǎng)卡驅(qū)動(dòng)和TFTP客戶端,就可以使用TFTP進(jìn)行傳輸內(nèi)核。使用TFTP協(xié)議傳輸文件,還需要在主機(jī)安裝TFTP服務(wù)端,可以在 Linux系統(tǒng)下實(shí)現(xiàn),也可以在Windows系統(tǒng)下實(shí)現(xiàn),下面在Linux(Ubuntu)系統(tǒng)下安裝TFTP服務(wù)端進(jìn)行測(cè)試。
安裝服務(wù)器、客戶端和守護(hù)進(jìn)程
elf@ubuntu:~$?sudo apt-get install tftp-hpa tftpd-hpa xinetd |
服務(wù)器配置
首先,在/home/elf目錄下創(chuàng)建tftpboot文件夾,并把屬性改成任意用戶可讀寫。
elf@ubuntu:~$?mkdir tftpboot
elf@ubuntu:~$ chmod 777 tftpboot |
然后,進(jìn)入目錄/etc/xinetd.d/,并在其中新建文件tftp。
elf@ubuntu:~$?cd /etc/xinetd.d/?
elf@ubuntu:~$?sudo vim tftp? |
添加以下內(nèi)容到tftp文件。
service tftp
{ disable = no 138 socket_type = dgram protocol = udp wait = yes user = elf server = /usr/sbin/in.tftpd server_args = -s /home/elf/tftpboot -c per_source = 11 cps = 100 2 } |
最后,修改配置文件/etc/default/tftpd-hpa。
elf@ubuntu:~$ sudo vim /etc/default/tftpd-hpa |
修改為:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/elf/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure -l -c -s" |
注意:將“TFTP_DIRECTORY” 改為自己創(chuàng)建的tftpboot目錄所在的路徑。
重新啟動(dòng)服務(wù)
elf@ubuntu:~$ sudo /etc/init.d/xinetd reload
[ ok ] Reloading xinetd configuration (via systemctl): xinetd.service. elf@ubuntu:~$ sudo /etc/init.d/xinetd restart [ ok ] Restarting xinetd (via systemctl): xinetd.service. elf@ubuntu:~$ sudo /etc/init.d/tftpd-hpa restart [ ok ] Restarting tftpd-hpa (via systemctl):tftpd-hpa.service. |
測(cè)試服務(wù)器
在tftpboot文件夾下創(chuàng)建一個(gè)文件。
elf@ubuntu:~/tftpboot$ touch abc |
進(jìn)入任意一個(gè)目錄,如/home下。
elf@ubuntu:~/tftpboot$ cd /home/
elf@ubuntu:/home$?sudo tftp 192.168.0.51 ????//192.168.0.51為本機(jī)IP tftp> get abc tftp>?quit elf@ubuntu:/home$?ls abc??elf |
如果可以下載abc文件說(shuō)明服務(wù)器已經(jīng)安裝成功。