TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議),是一個基于 UDP 協議實現的用于在客戶機和服務器之間進行簡單文件傳輸的協議,適合于開銷不大、不復雜的應用場合。TFTP 協議專門為小文件傳輸
而設計,只能從服務器上獲取文件,或者向服務器寫入文件,不能列出目錄,也不能進行認證。根據上面關于 TFTP 的介紹,實現 TFTP 需要搭建一個 TFTP 的服務器,iTOP-4418 開發板當做客戶端。
70.1 搭建服務器
打開虛擬機 Ubuntu 終端,進入 root 用戶,輸入“sudo apt-get install xinetd”命令安裝 xinetd,安裝完成如下圖。(如果報錯,注意檢查命令拼寫:xinetd) ![]()
接下來輸入“sudo apt-get install tftp tftpd”安裝 tftp 和 tftpd,安裝完成如下圖。 ![]()
然后建立 TFTP 的配置文件,使用命令“vi /etc/xinetd.d/tftp”建立文件,如下圖。 ![]()
寫入如下內容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/tftpboot/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
} 如下圖。 ![]()
注意:如上圖所示,這個文件在粘貼內容之后,必須按照上面的格式嚴格對齊。
退出并保存。其中 server_args 設置的/var/tftpboot 目錄是 tftp 服務器的目錄,TFTP 客戶端就是從這個目錄里面獲取服務器上的文件的。使用命令“mkdir /var/tftpboot”建立 tftp 服務器的目錄,然后設置/var/tftpboot 的訪問權限為 777,如下圖。 ![]()
輸入”sudo /etc/init.d/xinetd restart”命令重啟 xinetd 服務,如下圖。 ![]()
服務器到這一步就搭建好了,下面來進行測試。
70.2 服務器測試
本機測試:在/var/tftpboot 下面建立一個文件 test,在里面輸入 hello world,然后保存該文件,如下圖 ![]()
再啟動另一個終端,然后輸入 tftp 127.0.0.1,如下圖。 ![]()
輸入 get test 獲取 test 文件,然后輸入 q 退出 tftp,如下圖。 ![]()
由上圖可知,獲取到 13 字節的 test。
然后輸入 ls 查看當前目錄下是否有 test 文件了,通過查看,發現當前目錄下已經有 test 文件了,這就是/var/tftpboot 目錄下的那個 test 文件。然后使用 cat 命令查看一下 test 的內容,如下圖。 ![]()
通過上面的截圖,看到 test 文件里面的內容是 hello world,與/var/tftpboot 目錄的 test 是一樣的,至此的 TFTP 服務器端的配置和測試就完成了。
現 開發板實現 TFTP 輸 文件傳輸 :
開發板進入系統后,輸入“ifconfig”命令查看板子 ip,然后輸入“ping 192.168.1.3”命令來測試板子和虛擬機 Ubuntu 之間的網絡。如下圖。 ![]()
保證開發板和 ubuntu 在同一網段,開發板可通過修改/etc/eth0-setting 配置網絡, ![]()
用 ifconfig 查看到 ip 修改有效。在開發板串口輸入“tftp -g -l test -r test 192.168.1.3”,并用 cat 命令查看,如下圖。 ![]()
可以看到 ubuntu 端/var/tftpboot 里的 test 文件已經傳輸到了開發板。 ![]()
|