配置網絡文件系統服務NFS
在嵌入式Linux下進行應用程序的開發與在Windows下進行應用程序的開發方式有很大不同。在Windows環境下,可以直接在PC上使用各種集成開發工具,進行程序的編輯、編譯和運行,但是在嵌入式Linux環境下,缺少簡單、高效的開發工具,程序的開發需要在PC機和嵌入式Linux平台上共同完成。因此在程序的調試運行過程中,需要在PC機和嵌入式開發板之間交換信息,這通常是使用FTP(文件傳輸協議)的方式實現這種信息交換。即先在PC機上編輯源程序文件,再用交叉編譯工具生成可執行文件,然後通過FTP下載到嵌入式目標版系統中運行,如果有錯誤則再回到PC機上重新編輯、編譯,再下載到目標板上運行,直到程序正確運行為止。但是FTP方式缺點是每次在PC機上編譯完成後都要使用FTP下載到目標板中,這樣程序的開發效率比較低,沒法進行在線調試。在此次的便攜式衛星通信地球站監控系統的程序開發過程中,采用NFS(網絡文件系統)方式下的應用程序開發,這種方式使PC機和嵌入式目標板之間信息交換的效率更高。
NFS(Network File System)方式可以將遠程主機上的目錄通過網絡連接到本地主機,用戶可以很方便地在本地主機上操作遠程主機上的共享目錄。因此,可以通過建立網絡文件系統,把PC機上的特定目錄共享到嵌入式開發板系統上,這樣就可以直接在PC機上對嵌入式開發板進行操作,就能夠實時、在線地對程序進行編輯、編譯和運行等調試,這極大地提高了嵌入式Linux下的應用程序的開發效率。嵌入式Linux開發平台下的NFS開發環境配置,包括PC機的NFS配置和嵌入式開發板系統的NFS配置。
1.配置PC機的NFS
以超級用戶(root)方式進入PC機上的fedora7 Linux操作系統,編輯PC機和嵌入式目標板之間的共享目錄的配置文件exports,設定共享目錄和權限,操作命令如下:
[root@localhost /]#cd /etc;
[root@localhostetc]#vim /etc/exports ;
在exports文件中添加“/nfs *(rw,sync,no_root_squash)”後保存,“*”表示所有與PC機進行網絡連接的客戶機(這裡指嵌入式目標板)都可以共享PC機中的“/nfs”目錄,“rw”表示共享此目錄的客戶機對這個目錄擁有讀寫的權利,“no_root_squash”表示共享這個目錄的客戶機享有該主機的 root 身份。其作用是是將PC機的/nfs設置為共享目錄,則與此PC機相連的嵌入式目標板可以用讀寫方式訪問共享目錄/nfs。在Fedora7 Linux操作系統中默認開啟了防火牆,這會導致 NFS服務無法正常使用,所以先要關閉防火牆,可以用“lokkit”命令打開防火期設置界面,然後在其中選擇“禁用”,然後點擊“確定”後退出設置界面。接著啟動NFS服務,操作命令如下:
[root@localhostetc]#/etc/init.d/nfsstart ;
然後檢查Linux服務器的iptables、ipchains等選項和文件/etc/hosts.deny、/etc/hosts.allow來確保沒有屏蔽NFS使用的端口和允許通信的主機。配置完畢後,為了驗證共享目錄能否被訪問,可以在PC機上進行NFS服務器的環回測試,操作命令如下:
[root@localhostetc]# mount–t nfs localhost:/nfs /mnt
若配置成功,能夠在/mnt目錄中看到/nfs共享目錄中的內容。
2. 配置便攜式衛星通信地球站監控系統控制板板的NFS
首先要使運行在嵌入式目標板系統的Linux內核支持PC機上的NFS,這需要把NFS(網絡文件系統)編譯進目標板的Linux內核。操作命令如下:
[root@localhost/]#cd /home/arm/ linux-2.6.19;
[
[email protected]]#make menuconfig ; //啟動內核配置菜單界面
選擇內核配置菜單中的“Fils System--->”選項,按回車鍵後選擇下級菜單中的“Network File System--->”選項,按回車鍵後選中菜單中的“NFS system support”和“Provide NFSv3 client support”兩項,保存退出。然後分別運行以下操作命令:
[root@localhost linux-2.6.19]#make clean;//此命令清除以前生成的後綴“.o”和“.ko”的文件
[
[email protected]]#make dep;//建立內核文件之間的依賴關系
[
[email protected]]#make zImage;//編譯一個壓縮的內核啟動映像
這會在arch/arm/boot中生成一個內核映像文件zImage;然後將Linux內核文件zImage下載到嵌入式目標板系統的SDRAM,並燒寫到Flash中,在嵌入式開發板系統的下,這裡實際上是在PC機的超級終端上運行如下命令:
[root@localhost/]#mkdir /nfs ; //建立PC機上Linux輸出共享目錄的掛載點,
[root@localhost/]#mount –o nolock –t nfs localhost: /nfs /nfs; //此命令使PC機上的Linux的輸出目錄“/nfs”,通過NFS映射到了嵌入式目標板系統的目錄“/nfs”。