www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]前言:   最近試著在嵌入式系統(tǒng)建立一個ftp服務(wù)器。從網(wǎng)上搜羅了一大堆,但是下載下來編譯的時候卻發(fā)現(xiàn)自己對交叉編譯方面的知識知道的太少了。哎,于是抱著網(wǎng)絡(luò),狂搜了一通,終于多少有點頭緒。但是運氣比

前言:

  最近試著在嵌入式系統(tǒng)建立一個ftp服務(wù)器。從網(wǎng)上搜羅了一大堆,但是下載下來編譯的時候卻發(fā)現(xiàn)自己對交叉編譯方面的知識知道的太少了。哎,于是抱著網(wǎng)絡(luò),狂搜了一通,終于多少有點頭緒。但是運氣比較差,很多程序源碼都不能正確的編譯,目前只有這個vsftpd和tftp編譯通過了。真的好不容易呀,對于我這種菜鳥來說。所以,還是將這期間的一些東西記錄下來,也免得健忘的我以后再也回憶不起來了。

  正題:

  1. FTP相關(guān)知識

  1.1 綜述

  文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)的目的是在互聯(lián)網(wǎng)上進(jìn)行平臺無關(guān)的數(shù)據(jù)傳輸,它基于客戶機(jī)Client/服務(wù)器Server框架。RFC959規(guī)定FTP將通過兩個信道(端口)傳輸,一個傳輸數(shù)據(jù)(端口20),另外一個傳輸控制信息(端口21)。在控制信道之上,雙方交換用于發(fā)起數(shù)據(jù)傳輸?shù)拿睢?

  一個FTP連接包含4個步驟:用戶鑒權(quán);建立控制信道;建立數(shù)據(jù)信道;關(guān)閉連接。

  FTP的連接控制使用傳輸控制協(xié)議(Transmission Control Protocol,TCP),從而保證了數(shù)據(jù)的可靠傳輸。因此,F(xiàn)TP在數(shù)據(jù)傳輸中不需要關(guān)系分組丟失和數(shù)據(jù)錯誤檢測。

  1.2 vsftpd

  在UNIX和Linux中,從安全角度上考慮的話,首推的就是VSFTPD(Very Secure FTP Daemon)

  ,它可以運行在諸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服務(wù)器不支持的特征。比如: 非常高的安全性需求

  帶寬限制

  良好的可伸縮性

  創(chuàng)建虛擬用戶的可能性

  IPnG(譯注:IPv6)支持

  中等偏上的性能

  分配虛擬 IP 的可能性 高速

 ?。ㄆ鋵嵰陨系木C述是我東拼西湊出來了,因為我目前也還沒有感到它的優(yōu)點。呵呵?。?

  1.3 tftp

  TFTP
(Trivial File Transfer Protocol,簡單文件傳輸協(xié)議)也是TCP/IP協(xié)議族中的用于客戶機(jī)與服務(wù)器之間進(jìn)行簡單文件傳輸?shù)膮f(xié)議,只是其提供不復(fù)雜、開銷不大的文件傳輸服務(wù)。值得注意的是TFTP承載在UDP上,故而不提供可靠的數(shù)據(jù)流傳輸服務(wù)、不提供存取授權(quán)與認(rèn)證機(jī)制,其通過超時重傳方式來保證數(shù)據(jù)的到達(dá)。與FTP相比,TFTP要小的多,所以它只能從遠(yuǎn)程服務(wù)器上讀、寫文件(郵件)或者讀、寫文件傳送給遠(yuǎn)程服務(wù)器,不能列出目錄并且用戶認(rèn)證。另外,與FTP不同的是,TFTP采用默認(rèn)端口69#來進(jìn)行傳輸。

  2. 編譯系統(tǒng)

  編譯環(huán)境:虛擬機(jī)Fedora3.0;

  交叉編譯工具:mipsel-linux;

  3. 源碼下載

  官方網(wǎng)站:http://vsftpd.beasts.org/

  下載地址:ftp://vsftpd.beasts.org/users/cevans/

 ?。ㄗ钚碌陌姹荆簐sftpd-2.0.5.tar.gz)

  http://sourceforge.net/

  (1.0的簡單版本的tftp server和client C程序)

  4. vstftp編譯細(xì)節(jié)

  為了避免出錯,我在寫該部分的時候?qū)φ麄€下載以及編譯過程重新執(zhí)行了一遍,確保在我的系統(tǒng)上是Success的。

  4.1 交叉編譯

  #tar -zxvf vsftpd-2.0.5.tar.gz

 ?。d vsftpd-2.0.5

 ?。i Makefile

  根據(jù)自己的編譯器修改CC選項,我的修改為: CC=mipsel-linux-gcc

 ?。ake

  如果順利的話,應(yīng)該生成vsftpd文件。

  4.2 安裝

  因為我們是要將其放置到我們的嵌入式系統(tǒng)中的,所以不能使用make install來直接安裝,需要我們自己手動來拷貝一些文件到自己系統(tǒng)的相關(guān)目錄下。這個從INSTALL文件中有很詳細(xì)的說明,但這里我還是羅嗦一下吧(備注:我這里提到了目標(biāo)路徑均是嵌入式系統(tǒng)的相關(guān)路徑):

 ?。p vsftpd /usr/local/sbin/ 或者 /usr/sbin/

 ?。p vstftpd.conf.5 /usr/local/man/man5/ 或者 /usr/share/man/man5/

  或者/usr/man/man5/

 ?。p vsftpd.8 /usr/local/man/man8 或者 /usr/share/man/man5/

  或者/usr/man/man5/

  #cp xinetd.d/vsftpd.conf /etc/vsftpd.conf

  注:vsftpd的配置選項均在vsftpd.conf文件中,根據(jù)自己的需求可以增添或者刪減一些內(nèi)容。

  4.3 運行模式

  現(xiàn)在大致我們已經(jīng)將vsftpd移植到我們的嵌入式平臺中去了。但是vsftpd有三種運行模式:inetd、xinted和standalone模式。對于RPM包管理的系統(tǒng),有xinted服務(wù)器一說,對于非RPM包管理系統(tǒng),沒有xinted,一般都使用inetd或者standalone來啟動和管理服務(wù)器,這也就是獨立運行模式。

  為了能讓vsftpd在系統(tǒng)中運行,我們必須檢查以下幾個方面:

  1) 是否存在用戶nobody

 ?。seradd nobody/ftp

  2) 目錄/usr/share/empty

  3) 如果支持用戶匿名訪問,在需要創(chuàng)建目錄/var/ftp

 ?。kdir /var/ftp/

 ?。seradd –d /var/ftp ftp

  在以上的基礎(chǔ)上,我們就可以按照以下三種方式來運行vsftpd。

 ?。?) inetd

  我們需要編輯配置文件/etc/inetd.conf,并在文中的FTP那行,有則修改無則增添如下項目:

  ftp stream tcp nowait root /usr/sbin/tcpd vsftpd

  (2) xinted

  需要修改源碼xinted.d/vsftpd文件。對如下的內(nèi)容需要在server欄填入4.2中的拷貝的vsftpd路徑,另外默認(rèn)disable=no,即每次開機(jī)會自動啟動該項服務(wù),如果需要手動啟動的話,將其更改為yes。

  service ftp

  {

  socket_type = stream

  wait = no

  user = root

  server = /usr/local/sbin/vsftpd

  # server_args = # log_on_success += DURATION USERID # log_on_failure += USERID nice = 10 disable = no } 通過service xinetd restart或者/etc/init.d/xinetd restart來啟動該項服務(wù)(在修改了以上配置或者采用手動啟動方式)。

  注:選用inted或者xinted模式運行的時候vsftpd.conf中的listen選項為no。

  (3) standalone模式

  選用standalone模式的時候需要將vsftpd.conf文件中l(wèi)isten選項改為yes。

  對于以上三種模式來說,均可以使用通用的vsftpd啟動模式,即:

  /usr/sbin/vsftpd & 或者/usr/local/vsftpd &

  通常會犯的錯誤就是在鍵入上述命令之后系統(tǒng)提示:“500 OOPS: could not bind listening IPv4 socket”的出錯信息,這往往是由于沒有修改好vsftpd.conf文件使得xinetd已經(jīng)啟動了vsftpd,而vsftpd卻設(shè)置成了standalone模式。所以,先使用service xinetd stop停止xinetd服務(wù),然后再通過上面的命令來啟動。或者如果僅使用standalone模式來啟動,可以刪除掉/etc/xinetd/vsftpd文件。

  當(dāng)然,你可以通過pgrep vsftpd來檢查vsftpd是否運行起來,當(dāng)屏幕上出現(xiàn)一個阿拉伯?dāng)?shù)字的時候,恭喜你,嵌入式系統(tǒng)中的vsftpd服務(wù)器已經(jīng)建立起來了。之后就可以與通信的另外一個PC主機(jī)或者同樣的嵌入式系統(tǒng)(當(dāng)然,這個系統(tǒng)中應(yīng)當(dāng)有ftp的客戶端程序,如:ftp命令、lftp以及gftp等工具)進(jìn)行測試連接了。

  5. tftp編譯細(xì)節(jié)

  5.1 交叉編譯

  #tar -zxvf tftp-1.0.tar.gz

 ?。d tftp-1.0

 ?。i Makefile

  根據(jù)自己的編譯器修改CC選項,我的修改為:

  CC=mipsel-linux-gcc

  同時,將strip 修改為mipsel-linux-strip.

 ?。ake

  如果順利的話,應(yīng)該生成tftpc(client端)和tftpd(server端)文件。

  5.2 安裝

  因為我們是要將其放置到我們的嵌入式系統(tǒng)中的,所以不能使用make install來直接安裝,需要我們自己手動將生成的tftpc和tftpd拷貝到自己系統(tǒng)的目錄下(我放到根目錄下,其實這個是個不好的習(xí)慣,應(yīng)該也放到sbin下)。

  5.3 運行

  現(xiàn)在我們已經(jīng)可以在嵌入式系統(tǒng)中運行tftp的server以及client了。當(dāng)通信鏈路建立起來之后,tftp server端可以通過運行./tftpd 來啟動。從端的啟動就要略微負(fù)責(zé)些了,因為要指定一些東西。比如我們需要從IP地址為192.168.81.123的tftp server端取到一個test.doc的文件,則需要在從端輸入如下命令:./tftpc 192.168.81.123 –P 69# -g test.doc

  簡單說明一下:-P 69#是指采用端口69通信;-g 從server端得到文件;-p就是發(fā)送文件到server端嘍。

  Tftp運行起來很簡單,且不需要鑒權(quán),但其目前還是不能提供目錄瀏覽的功能。

  6. 小結(jié)

  總結(jié)起來,在進(jìn)行以上編譯的時候,我不知道犯了多少錯誤,完全是Linux的菜鳥,但這一周以來我真的懂得了很多這方面的知識,所以加油、加油!我要繼續(xù)努力!
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉