天天看點

如何讓Linux與Windows CE協同工作

背景介紹

Linux是一個類似于UNIX 的作業系統,它起源于芬蘭一個名為Linus Torvalds 的業餘愛好,但是現在已經是最為流行的一款免費作業系統。普通使用者在Linux 上辦公、浏覽網站、發送郵件以及玩遊戲,許多大學和科研機構也Linux 來完成日常 的計算任務。在商業領域,由于Linux 系統價格低、安全性能高并且非常穩定,許 多公司均将自己的伺服器建構在Linux的基礎上。根據國際商用資料公司(IDC)的統計,世界上大約有三分之一的網站伺服器使用Linux作為作業系統。

Windows CE,根據微軟公司在Windows CE and Pocket PC: FAQ 中的定義,是作業系統開發商用以建構專有作業系統的一系列元件。原始裝置制造商(OEM) 可以 向微軟公司購買一個稱為"Windows CE平台開發系統"的內建開發環境并利用該系 統組裝和編譯基于Windows CE的作業系統,該作業系統包括一系列基于Windows CE 的元件以及開發商自行開發的應用軟體或者是裝置驅動程式。由于基于Windows CE 的作業系統具有與微軟Windows 系列作業系統相類似的使用者界面,是以受到衆多最 終使用者以及開發商的青睐。目前Windows CE已經被廣泛應用在手機,掌上型電腦,個人數字助理,快譯通以及電子字典等便攜式裝置上。

長期以來,Windows CE裝置的使用者還需要配備一台基于Windows 9x/2000/NT的 主機用于與Windows CE裝置交換資料。在該主機上運作微軟公司提供的Windows CE 服務軟體,該軟體通過一條RS-232資料線與Windows CE裝置建立起點對點連接配接,用 戶可以通過這個服務軟體通路Windows CE裝置,但是區域網路裡面的其它計算機不能 夠通路該Windows CE裝置。如果需要使得區域網路裡面的其它計算機也能夠通路該裝置,則需要為該裝置安裝昂貴的專用網卡以及相關接入裝置,是一種非常不經濟的 解決方案。

本文利用Red Hat Linux 7.2作業系統自帶的PPP伺服器與Windows CE裝置之間 建立起TCP/IP連接配接,然後在Windows CE裝置上運作一個FTP伺服器使得Linux主機能 夠通路Windows CE裝置上的資源。由于本方法基于Windows CE裝置自帶的RS-232資料線,不需要購買額外的任何裝置,是以是一種經濟實用的解決方案。此外,本文 所介紹的解決方案,對Windows 9x/2000/NT主機同樣适用。

連接配接Linux與Windows CE

點對點資料傳輸協定(Point to Point Protocol, PPP)是一個通過序列槽線傳送 IP資料包的協定。使用PPP 協定,一台計算機能夠通過序列槽線、電話線等通訊裝置登陸到遠端主機并且利用該主機或者是主機所在網絡的資源。在點對點通訊中包括伺服器和客戶機兩個部分,其中客戶機向伺服器請求網絡連接配接,伺服器接收客戶機的請求建立網絡連接配接并配置設定給客戶機相應的網絡資源。當網絡連接配接建立起來以後,伺服器和客戶機之間是嚴格對等的。由于Linux作業系統通常都帶有PPP伺服器和客 戶端程式,而Windows CE作業系統通常僅帶有PPP用戶端程式,是以我們使用Linux 主機作為PPP伺服器,Windows CE裝置作為PPP用戶端。

為了使用Linux主機作為PPP伺服器,我們首先必須确認該主機上是否已經安裝有PPP伺服器程式pppd。通常該程式被安裝在/usr/sbin目錄下,我們可以利用下面 的指令查找該目錄下是否存在這個檔案:

ls /usr/sbin/pppd

最近正式發行的Linux作業系統(例如Red Hat Linux 6.x/7.x)通常都已經預先 安裝有PPP伺服器程式。如果Linux 主機尚未安裝PPP伺服器,那麼我們應該首先下 載并安裝一個PPP伺服器程式,例如pppd2.3.4。安裝該程式包可能還需要其它包的支援,由于應用程式的安裝已經超出了本文的讨論範圍,請感興趣的讀者自行參考 其它相關資料。

确認PPP伺服器已經安裝在Linux主機上之後,我們需要對Linux 主機進行一些必要的配置,為了進行這些配置我們需要擁有root權限。

建立檔案/etc/ppp/peers/wince,内容如下:

/dev/ttyS0 115200 crtscts
connect '/usr/sbin/chat -v -f /etc/ppp/wince.chat'
noauth
local
90.0.0.1:90.0.0.2
           

建立檔案/etc/ppp/wince.chat,内容如下:

TIMEOUT 3600
"CLIENT" "CLIENT\c"
"" "SERVER\c"
           

在上面的兩個配置檔案中,使用wince 作為檔案名僅僅是用來表示這個配置文 件是給一個Windows CE裝置使用的。讀者也可以自行選用其它的檔案名,例如palm 或者是handheld等等,但是必須保證兩個檔案名是一緻的。

配置檔案/etc/ppp/peers/wince指定使用序列槽ttyS0以115,200 bps的速率與客戶裝置建立連接配接,noauth參數說明在客戶機請求連接配接的時候不需要身份認證。在這 個對等連接配接中,伺服器(Linux 主機)的IP是90.0.0.1,客戶機(Windows Ce裝置)的 IP是90.0.0.2。配置檔案/etc/ppp/wince.chat中的TIMEOUT參數指定伺服器的等待時間,如果超過這個時間仍然沒有接收到客戶機的連接配接請求則終止目前的伺服器程式。如果有讀者需要更進一步的了解相關的配置,請自行參考chat以及pppd的相關 文檔。

在Windows CE裝置端需要做的配置相對來說比較簡單。由于Windows CE預設的自動連接配接功能占用了該裝置的序列槽,我們首先需要停止使用該功能。在開始菜單中選擇"設定->通訊->PC連線"并将其設定為不啟用與PC的連接配接即可停止該功能。然後我們重建立立一個連接配接,在開始菜單種選擇"程式->通訊->連接配接管理器",然後點選 "建立連接配接"圖示,将新的連接配接命名為Linux 并指定連接配接類型為"直線連接配接",在下一 步中指定使用COM1進行連接配接并設定其通訊速率為115,200,在TCP/IP 設定中指定該裝置的IP為90.0.0.2。點選OK存盤以後該連接配接會出現在"程式->通訊"菜單裡面。

利用如下指令在Linux主機上啟動PPP伺服器:

pppd call wince

在Windows CE 裝置上啟動建立的連接配接(程式->通訊->Linux)之後,網絡連線圖 标會出現在Windows CE裝置的工作列上,Linux 主機則顯示如下資訊表明已經成功 與Windows CE裝置建立起連接配接:

Serial connection established.
Using interface ppp0
Connect: ppp0 <--> ttyS0
found interface eth0 for proxy arp
local  IP address 90.0.0.1
remote IP address 90.0.0.2
           

我們還可以使用Linux 主機提供的ping指令來驗證是否已經成功與Windows CE 裝置建立連接配接:

ping 90.0.0.2

如果Linux 主機已經成功的與Windows CE裝置建立連接配接,那麼我們應該能夠看 到類似于下面的資訊:

PING 90.0.0.2 (90.0.0.2) from 90.0.0.1 : 56(84) bytes of data.
64 bytes from 90.0.0.2: icmp_seq=0 ttl=32 time=26.587 msec
64 bytes from 90.0.0.2: icmp_seq=1 ttl=32 time=19.928 msec
64 bytes from 90.0.0.2: icmp_seq=2 ttl=32 time=19.939 msec
64 bytes from 90.0.0.2: icmp_seq=3 ttl=32 time=19.947 msec
           

基于Windows CE的FTP軟體

當我們成功的在Linux主機與Windows CE裝置之間建立起PPP連接配接之後,下一步應該做些什麼呢?當然,我們需要一些合适的程式用來在Linux 主機與Windows CE 裝置之間進行檔案交換。我們現在已經能夠利用TCP/IP協定在Linux主機和Windows CE裝置之間傳輸資料,很顯然FTP程式是一個合适的選擇。

FTP(File Transport Protocol,檔案傳輸協定)是一種被廣泛使用的在網絡上進行檔案交換的協定。由于資料傳輸可靠性的要求,FTP 是一種基于TCP/IP的傳輸 協定。在一個FTP 會話中包括一個伺服器端和一個用戶端,用戶端主動連接配接到伺服器端并向伺服器發送檔案傳輸請求,伺服器端等待用戶端的接入并處理用戶端的文 件傳輸請求。

PE FTP Explorer是非常流行的基于Windows CE的FTP用戶端軟體,同時也是一 個功能齊全的檔案浏覽器。與在PC機上常用的Cute FTP和WS FTP等FTP 用戶端相類 似,使用者能夠利用滑鼠(指針)放縮本地端和伺服器端的目錄樹,上載或者是下載下傳檔案和目錄,也可以對檔案或者是目錄進行改名和删除。這個軟體可以從CE Archive 網站([url]http://www.cearchives.com/ftp.html[/url])獲得。在該網站讀者還可以找到另外 一個很流行的FTP用戶端vxFTP。

FTP 用戶端軟體的功能雖然已經非常的完備而且操作簡單,但是仍然不可避免的要收到便攜式裝置窄小的顯示器的限制。如果能夠在便攜式裝置上建立一個FTP 伺服器,那麼檔案傳輸操作就可以在Linux主機上利用常用FTP用戶端的進行。

ftpsrv.exe就是這樣一個基于Windows CE的FTP伺服器軟體。這個僅有28.5 KB 的小程式,除了不提供身份認證功能和Passive 傳輸模式以外,能夠處理大多數常 見的FTP 請求。利用微軟提供的Windows CE服務軟體将ftpsrv.exe上載到便攜式裝置的任意目錄下,啟動該程式以後在任務條上會出現一個類似于一台計算機連接配接兩個便攜式裝置的小圖示。利用指針點選該圖示以後會出現一個小小的控制視窗,在這裡我們可以改變FTP伺服器的端口号或者是終止該程式。

ftpsrv.exe可以從 [url]http://pda.tucows.com/[/url]或者是 [url]http://www.oohito.com/[/url]獲 得。在這兩個網站讀者還可以找到更多有用的小程式。

其它

如果有讀者使用的是Windows 9x/2000/NT主機,那麼也可以利用Windows 提供 的直線電纜連接配接功能與Windows CE裝置建立起PPP連接配接。

例如:在Windows 2000主機上,從開始菜單中選擇設定->網絡和撥接上網->建立連接配接。在随後出現的網絡連接配接向導中選擇直接連接配接到另一台計算機并将該機器配置為主機。

選擇合适的通訊端口并配置通訊速率以後,該主機作為PPP 伺服器等待 客戶機接入。同樣,在Windows CE裝置上建立一個連接配接,指定合适的通訊端口并配 置起通訊參數以後,即可與Windows主機建立起點對點連接配接。由于Windows主機已經配備了動态網絡位址配置設定(DHCP)伺服器,是以Windows CE裝置既可以使用實作指定的靜态IP位址,也可以使用伺服器實時配置設定的動态IP位址。但是,由于直線電纜連 接所允許的最高傳輸速率為19,200 bps,使用Windows 9x/2000/NT主機作為PPP 服 務器似乎比不上Linux主機實用。

如果将PPP 伺服器設定為網關,則區域網路裡面所有的機器都可以通過改網關訪 問已經連接配接到網絡上的Windows CE裝置。在Linux 主機上,可以通過ipchains将該 主機設定成透明網關;在Windows 9x/2000/NT 主機上,可以通過Win Proxy等代理伺服器軟體将其設定為透明網關。如果有讀者需要更進一步了解如何将Linux 或者是Windows主機設定為透明網關的方法,請自行閱讀其它參考資料。

作者: 蔣清野 出處:ibm

繼續閱讀