




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、使用 TFTP 進(jìn)行文件傳輸(系統(tǒng)版本:Ubuntu10.10 或以上)在嵌入式系統(tǒng)開發(fā)中,經(jīng)常需要從主機(jī)上傳送映像、文件等到目標(biāo)機(jī)上。實(shí)現(xiàn)的方法有很多。如 tftp,scp 等。TFTP(TrivialFileTransferProtocol)是用來下載遠(yuǎn)程文件的最簡單的網(wǎng)絡(luò)協(xié)議,它基于UDP 協(xié)議而實(shí)現(xiàn)。一、TFTP的建立嵌入式 linux 的 tftp 開發(fā)環(huán)境包括兩個方面:一是 linux 服務(wù)器端的 tftp-server 支持,二是嵌入式目標(biāo)系統(tǒng)的 tftp-client 支持。 因?yàn)?u-boot 本身內(nèi)置支持 tftp-client,所以嵌入式目標(biāo)系統(tǒng)端就不用配置了。我們要做的
2、是在服務(wù)器端(即主機(jī))上安裝 TFTP 服務(wù),并且正確地配置 TFTP 服務(wù)的路徑和參數(shù)。下面我嘗試了兩種搭建 TFTP 的方法,都實(shí)測成功。1、安裝 tftp 所需軟件包:tftp 有好幾種版本, 其中 tftp 和 tftpd 是最經(jīng)典、 最常用的。 還有增強(qiáng)版, 如 atftp 和 atftpd、 tftp-hpa和 tftpd-hpa 等。所以配置 TFTP 的方法也不唯一。傳統(tǒng)方法(xinetd):sudoapt-getinstalltftpsudoapt-getinstalltftpdsudoapt-getinstallxinetdtftp 是客戶端,作用是從別人的 TFTP 服務(wù)
3、器端上傳/下載東西。tftpd 是服務(wù)端,字母 d 代表 daemon,作用是為別人提供 TFTP 服務(wù),供別人上傳/下載東西。xinetd 是 inetd 的擴(kuò)展。inetd 服務(wù)器是一個專門管理入網(wǎng)連接的網(wǎng)絡(luò)后臺程序,xinetd現(xiàn)在已經(jīng)取代 inetd,它一個守護(hù)進(jìn)程,用于處理對各種服務(wù)的請求。tftp 是要用 inetd 來控制的。另一種更簡單的方法:tftp-hpasudoapt-getinstalltftp-hpasudoapt-getinstalltftpd-hpatftp-hpa 與 tftp 作用相當(dāng),但兩者是沖突的,不能同時安裝。tftpd-hpa 與 tftpd 的關(guān)系同
4、理。這種方法下,不需要 inetd 服務(wù)就可以。網(wǎng)上也有人同時裝了 xinetd,不僅需要配置,似乎還容易出問題。2、創(chuàng)建 TFTP 目錄首先需要建立一個 TFTP 目錄,以供上傳和下載。當(dāng)然也可以使用現(xiàn)有的目錄。然后需要設(shè)定該目錄的權(quán)限,決定是否能夠下載和上傳文件。對于日常使用,我們一般就將其權(quán)限設(shè)置為最高,為所有用戶組都添加所有權(quán)限(讀+寫+執(zhí)行=4+2+1=7):sudomkdir/home/tftpbootcd/homesudochmod777tftpbootR我們的 TFTP 目錄為/home/example/tftp,其權(quán)限已經(jīng)是最高。3、修改配置文件對于 xinetd 方法,要在
5、/etc/xinetd.d/下,修改配置文件 tftp。如果是第一次使用,沒有這個文件,需要自己創(chuàng)建一個空文件??梢岳?touch 指令:cd/etc/xinetd.dtouchtftpsudogedittftp在打開的文件中輸入以下內(nèi)容:servicetftpsocket_type=dgramprotocol=udpwait=yesuser=rootserver=/usr/sbin/in.tftpdserver_args=-s/home/tftpbootdisable=noper_source=11cps=1002flags=IPv4)socket_type:網(wǎng)絡(luò)套接字類型,流或者數(shù)據(jù)包p
6、rotocol:IP 協(xié)議,通常是 TCP 或者 UDPuser:運(yùn)行進(jìn)程的用戶 ID,當(dāng)前用戶或 rootserver:執(zhí)行的完整路徑server_args:傳遞給 server 的變量或值。前面的-s 代表 tftp 參數(shù),后面/home/tftpboot 是 TFTP 的根目錄,可以根據(jù)自己實(shí)際情況來修改地址,如/home/example/tftp。對于 tftp-hpa 方法,不需要裝 inetd 就能使用,只要修改 tftpd-hpa 相應(yīng)的配置文件就可以。sudogedit/etc/default/tftpd-hpa原始的內(nèi)容如下:-/etc/default/tftpd-hpaTF
7、TP_USERNAME=tftpTFTP_DIRECTORY=/var/lib/tftpbootTFTP_ADDRESS=:69”TFTP_OPTIONS=-secure”我將其修改為:-/etc/default/tftpd-hpaTFTP_USERNAME=donghai”TFTP_DIRECTORY=/home/tftpboot”TFTP_ADDRESS=:69”TFTP_OPTIONS=-l-c-s”說明:TFTP_USERNAME 必須改為當(dāng)前的用戶名,或者 root;TFTP_DIRECTOR 丫我們設(shè)定的 TFTP 艮目錄;TFTP_OPTIONSTFT
8、P 啟動參數(shù)。意義如下:- l:以 standalone/listen 模式啟動 TFTP 服務(wù),而不是從 inetd 啟動。(這里也表明,再像前面一樣裝 xinetd,其實(shí)是多此一舉)- c:可創(chuàng)建新文件。默認(rèn)情況下,TFTP 只允許覆蓋原有文件,不能創(chuàng)建新文件。- s:改變 TFTP 啟動的根目錄。加了-s 后,客戶端使用 TFTP 時,不再需要輸入指定目錄,填寫文件的完整路徑,而是使用配置文件中寫好的目錄。這樣也可以增加安全性。我一開始沒有注意 TFTP_USERNAME一項(xiàng),隨便取了一個名字,一直沒有成功,后來改用自己的用戶名,才測試成功。4、重新啟動服務(wù)如果用 xinetd 法,修改
9、好 tftp 的配置文件后,需要重新啟動一下 xinetd。每次修改完配置文件后,都需要重新啟動該服務(wù):sudo/etc/init.d/xinetdrestart如果用 tftp-hpa 法,要重啟 tftpd-hpa 服務(wù):sudoservicetftpd-hparestart如果顯示如下,說明配置正確:tftpd-hpastart/running,process2290之前我沒有把 TFTPUSERNAM 駭為用戶名,而是隨便取了一個,則會提示如下:tftpd-hpastart/running對比發(fā)現(xiàn),這里并沒有啟動進(jìn)程,因?yàn)榕渲弥?TFTP_USERNAM 不正確,也就沒有成功開啟 TF
10、TF5、確認(rèn) tftp 服務(wù)是否已經(jīng)開啟下面確認(rèn) tftp 服務(wù)是否開啟(基于 tftp-hpa 方法)。查看 tftp 相關(guān)進(jìn)程可以用以下指令:psaux|greptftp彈出以下信息root22900.00.02364120?Ss19:450:00/usr/sbin/in.tftpd-listen-userdonghai-address:69-l-c-s/home/tftpboot可以看到,/usr/sbin/in.tftpd 已經(jīng)啟動,說明 TFTP 服務(wù)已經(jīng)開啟了,進(jìn)程號正是2290。-listen 對應(yīng)配置文件中的參數(shù)-l-userdonghai 就是配置文件中的 TF
11、TP_USERNAME/home/tftpboot 是配置文件中的 TFTP_DIRECTORY另一種方法:netstat-a|greptftp如果看到如下提示,說明 TFTP 服務(wù)開啟了。udp00*:tftp*:*二、TFTP的使用1、連接本機(jī)連接本機(jī)有三種方法,一是輸入真實(shí)的 IP 地址,可以用 ifconfig 查得;二是用 localhost來代表本機(jī);三是使用地址 ,這個 IP 地址始終代表本機(jī)的 IP。先在 TFTP 目錄下新建一個文件 a,在里面隨便寫一些內(nèi)容,然后修改其權(quán)限為 777。接著,輸入以下指令的任意一條,進(jìn)入 TFTP#令行。tftp192.168
12、.1.201(自己設(shè)定的 IP)tftplocalhosttftpTFTP 命令行的基本指令:put:將文件上傳到 TFTP 目錄get:取得 TFTP 目錄上的文件quit/q:退出 TFTP因?yàn)?TFTP 服務(wù)將某一設(shè)定的目錄視為根目錄,因此不需要打出完整的路徑。既然該目錄下已經(jīng)有一個文件 a,我們就下面輸入指令:tftpgetaReceived5bytesin0.0secondstftpputaSent5bytesin0.0seconds這樣就傳輸成功了。在方法 1 中,傳輸成功后會有時間的提示;而在方法 2 中,如果沒有任何提示,則說明傳輸成功。下面看看當(dāng)配置參數(shù)和文
13、件權(quán)限改變時,會出現(xiàn)什么現(xiàn)象。我列舉了一些常見問題:tftpgetaTransfertimedout.原因:tftpd 服務(wù)沒有啟動。需要注意的是,必須使 TFTP 的用戶名和當(dāng)前的系統(tǒng)的用戶名一致,否則就無法成功啟動 tftpd 服務(wù)。tftpgetapermissiondenied原因:操作者權(quán)限不夠,比如當(dāng)前的目錄是/etc,不能隨便 get 文件下來。需要提升權(quán)限。切換到 root 賬戶,或者直接執(zhí)行 sudotftp。tftpputt1tftp:t1:Nosuchfileordirectory原因:當(dāng)前目錄下沒有 t1 文件tftpgetdErrorcode1:Filenotfoun
14、d原因:TFTP 根目錄下沒有該文件Errorcode2:Onlyabsolutefilenamesallowed原因:TFTP 啟動配置參數(shù)沒有-s,或者在 DIRECTOR 沖沒有填寫目錄以下針對 xinetd 方法:tftpputaErrorcode2:Accessviolation原因:1TFTP 啟動配置中無-c,TFTP 目錄沒有同名文件2TFTP 啟動配置中無-c,TFTP 目錄有同名文件,但無寫權(quán)限解決:chmod777a以下針對 tftp-hpa 方法:tftpputbErrorcode1:Filenotfound原因:啟動配置參數(shù)無-c,根目錄下無同名文件(注意和前面情況的
15、區(qū)別,不是當(dāng)前目錄下沒有 b 文件,而是 TFTP 目錄下找不到同名文件b)tftpputbErrorcode2:Filemusthaveglobalwritepermissions原因:根目錄下有同名文件,該文件無寫權(quán)限(啟動配置參數(shù)有無-c 都這樣)經(jīng)測試,在 tftp-hpa 方法下,下列情況可以 put 成功:啟動配置參數(shù)無-c,根目錄下有同名文件,有寫權(quán)限啟動配置參數(shù)有-c,根目錄下無同名文件啟動配置參數(shù)有-c,根目錄下有同名文件,有寫權(quán)限在 xinetd 方法下,我?各 server_args=-s/home/tftpboot 改為 server_args=-s/home/tftp
16、boot-c 或server_args=-c-s/home/tftpboot試圖增加-c 參數(shù),但重啟 xinetd 后,卻發(fā)現(xiàn) tftp 基本的下載和上傳都不行了。因此在 xinetd 方法下,如需上傳,應(yīng)該讓 TFTP 目錄下有一個同名文件(開 w 權(quán)限),尚未找到直接上傳文件的方法。2、連接實(shí)驗(yàn)箱實(shí)驗(yàn)箱操作系統(tǒng)中的 TFTP 服務(wù)已經(jīng)裝好,是在 BusyBoxv1.12.0 中的。它的用法與本機(jī)的略有區(qū)別,但原理是一樣的?;緟?shù):- g:get,獲取文件- p:put,長傳文件- lFILE 本地的文彳名為 FILE- rFILE 遠(yuǎn)程的文彳名為 FILE實(shí)驗(yàn)箱的 IP 地址為 192.16
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年高考語文作文模擬題4篇
- 2025年晉中市稅務(wù)系統(tǒng)遴選面試真題帶詳解含答案
- 綿竹市文職輔警招聘考試真題
- 臨沂市費(fèi)縣文職輔警招聘考試真題
- 海洋企業(yè)品牌形象塑造
- 老年護(hù)理講課課件
- 老年護(hù)理便秘課件教學(xué)
- 老年健康講座課件
- 2025年百貨商業(yè)市場調(diào)查報告
- 2025年安全門行業(yè)市場趨勢分析報告
- 結(jié)直腸癌腹膜轉(zhuǎn)移診治專家共識(2025版)解讀
- 風(fēng)電運(yùn)維安全培訓(xùn)內(nèi)容課件
- 保密人員面試題及答案
- 軟件質(zhì)量標(biāo)準(zhǔn)與檢驗(yàn)指南
- DB35T 2192-2024河湖智慧監(jiān)管體系構(gòu)建導(dǎo)則
- 無人機(jī)課程培訓(xùn)大綱
- 車間洗手消毒管理制度
- 腹膜透析飲食知識
- 感染性疾病分子診斷試劑行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報告
- ISO45001 2024職業(yè)健康安全管理體系要求及使用指南
- 音樂劇排練流程
評論
0/150
提交評論