||
部分內容主要是關于TFTP服務器的搭建,特別單獨拿出來講解一下。
一、TFTP服務器的搭建與測試:
TFTP是用來下載遠程文件的最簡單網絡協議,它其于UDP協議而實現。嵌入式linux的tftp開發環境包括兩個方面:一是linux服務器端的tftp-server(服務器)支持,二是嵌入式目標系統的tftp-client(客戶端)支持。因為u-boot本身內置支持tftp-client,所以嵌入式目標系統端就不用配置了。下面就詳細介紹一下linux服務器端tftp-server的配置
實際上我們同樣可以在windows上搭建TFTP服務器,之后的話我可能會對這部分內容作一些補充。但這里我主要講解一下在Linux下的TFTP服務器搭建:
1、搭建TFTP服務器我們需要三個東西:xinetd、tftp、tftpd,在保證聯網的情況下安裝它們。
sudo apt-get install xinetd
sudo apt-get install tftp
sudo apt-get install tftpd
2.建立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
}
代碼格式如下圖所示(用tab鍵隔開,不建議使用空格)
其中的server_args是tftp 服務器的目錄。TFTP 客戶端就是從這個目錄里面獲取服務器上的文件的。上圖使用的是/var/tftpboot,用戶可以自己定義。
3、創建目錄:mkdir /var/tftpboot
4、改變權限:chmod 777 /var/tftpboot
5、啟動xinetd服務:sudo /etc/init.d/xinetd restart
6、測試TFTP服務器:
輸入命令:netstat -a | grep tftp
出現上圖的情況說明配置成功
我們可以本地測試一下tftp服務器:
①在tftpboot目錄下創建一個文本文件,隨便寫點什么:
例如vi /var/tftpboot/tftptest
輸入“This is TFTPTEST!”,保存退出。
②隨便進入一個你常用的目錄,作為下載文件的目的目錄,輸入tftp(也可以寫成tftp localhost或者tftp 127.0.0.1),連接到本地的tftp服務器。
③get test下載文件到目的目錄,q退出,ls就可以看到文件已經到了你的當前目錄。cat test 就可以看到了文件內容。
7、TFTP操作:
注意tftp命令行下是不支持Linux命令的,它有自己獨特的命令,使用?命令可以看到。
connect:連接到遠程tftp服務器
mode:文件傳輸模式
put:上傳文件
get:下載文件
quit:退出
verbose:顯示詳細的處理信息
tarce:顯示包路徑
status:顯示當前狀態信息
binary:二進制傳輸模式
ascii:ascii傳送模式
rexmt:設置包傳輸的超時時間
timeout:設置重傳的超時時間
?:幫助信息
8.開發板連接tftp客戶端
注:在連接開發板和ubuntu的tftp服務器之前,一定要首先保證開發板和ubuntu的ping通,
在保證ubuntu和開發板能夠ping通的條件下,就可以使用tftp服務器了。
①把需要下載的文件拷貝到/var/tftpboot目錄下,
②開發板下載文件:
命令格式tftp [option] ... host [port]
[option]:
-g表示下載文件(get)
-p表示上傳文件(put)
-l表示本地文件名(local file)
-r表示遠程主機的文件名(remote file)
例如:tftp -g -l helloworld -r helloworld 192.168.1.109