![]() |
||||||||||||||||||||||||||||
配置主機交叉開發環境 |
||||||||||||||||||||||||||||
1.配置控制臺程序 要查看目標板的輸出,可以使用控制臺程序。在各種操作系統上一般都有現成的控制臺程序可以使用,例如,Windows操作系統中有超級終端(HyperTerminal)工具;Linux/UNIX操作系統有minicom(使用“minicom”命令啟動該軟件)等工具。無論什么操作系統和通信工具,都可以作為串口控制臺。如果在Windows平臺上運行Linux虛擬機,這個串口通信軟件可以任選一種。配置一個超級終端,如圖1.1所示,配置minicom(使用“minicom –s”命令進入配置界面),如圖1.2所示,配置參數包括串口號、通信速率、數據位數、停止位數、奇偶校驗、數據流控制等設置。一次配置成功后可以將結果保存,供以后使用。
2.配置tftp服務 tftp是一個傳輸文件的簡單協議,它基于UDP協議實現。此協議設計時是進行小文件傳輸的,因此它不具備通常的FTP的許多功能,只能從文件服務器上獲得或寫入文件,不能列出目錄,不進行認證,只能傳輸8位數據。 tftp服務分為客戶端服務和服務器端服務兩種。通常,首先在宿主機上開啟tftp服務器端服務,設置好tftp的根目錄內容(也就是供客戶端下載的文件),然后,在目標板上開啟tftp的客戶端程序(tftp客戶端主要在Bootloader交互環境下運行,幾乎所有Bootloader都提供該服務,用于下載操作系統內核和文件系統)。這樣,把目標板和宿主機用直連線相連之后,就可以通過tftp協議傳輸可執行文件。下面分別講述在Linux下和Windows下的配置方法。 1)Linux下的tftp服務配置 Linux下tftp的服務是由xinetd(還有openbsd-inetd等其他服務)所設定的,默認情況下是處于關閉狀態。 首先,要修改tftp的配置文件,開啟tftp服務,如下所示: $ vim /etc/xinetd.d/tftp 在這里,主要是要將“disable=yes”改為“disable=no”。另外,通過“server_args”可以看出,tftp服務器端的默認根目錄為“/tftpboot”,用戶可以根據需要更改為其他目錄。 接下來,重啟xinetd服務,使剛才的更改生效,如下所示: $ /etc/init.d/xinetd restart 然后,使用命令“netstat -au”以確認tftp服務是否已經開啟,如下所示: $ netstat –au | grep tftp 這時,用戶就可以把所需的傳輸文件放到“/tftpboot”目錄下,這樣,主機上的tftp服務就建立起來。用網絡交叉線把目標板和宿主機連起來,并且將其配置成一個網段的地址,再在目標板上啟動tftp客戶端程序(注意:不同的Bootloader所使用的命令會有所不同,讀者可以查看幫助來獲得確切的命令名及格式,本書以U-Boot為例講解),如下所示: # tftp 0x30008000 zImage 可以看到,此處目標板使用的IP為“192.168.1.120”,宿主機使用的IP為“192.168.1.112”,下載到目標板的地址為0x33000000,文件名為“zImage”。 2)Windows 在Windows下配置tftp服務需要使用tftp服務器軟件,常見的有Tftpd32,讀者可以自行從網上下載。要注意的是,該軟件是tftp的服務器端,而目標板上則是tftp的客戶端。打開該軟件,如圖1.3所示。 接下來,用戶可以在Settings中配置服務器端的各個選項,如IP地址等,如圖1.4所示。 另外,還需要在Browse中選擇tftp的服務器端根目錄。這時,tftpd會提示用戶重啟該軟件,使修改的參數生效。至此,tftp的服務就配置完畢。此時可以用直連線連接目標機和宿主機,且在目標機上開啟tftp服務進行文件傳輸。
3.NFS文件系統 NFS為Network File System的簡稱,早是由Sun公司提出發展起來的,其目的就是讓不同的機器、不同的操作系統之間可以彼此共享文件。 NFS可以讓不同的主機通過網絡將遠端的NFS服務器共享出來的文件安裝到自己的系統中,從客戶端看來,使用NFS的遠端文件就像是使用本地文件一樣。在嵌入式系統中使用NFS會使應用程序的開發變得十分方便,并且不用反復地燒寫鏡像文件。 NFS的使用分為服務器端和客戶端,其中服務器端提供要共享的文件,而客戶端則通過掛載“mount”這一動作來實現對共享文件的訪問操作。在嵌入式開發中,通常NFS服務端在宿主機上運行,而客戶端在目標板上運行。 NFS服務器端是通過讀入它的配置文件“/etc/ exports”來決定所共享的文件目錄的,在這個配置文件中,每一行都代表一項要共享的文件目錄,以及所指定的客戶端對其的操作權限。客戶端可以根據相應的權限,對該目錄下的所有目錄文件進行訪問。 配置文件中每一行的格式如下: [共享的目錄] [客戶端主機名稱或IP]([參數1,參數2…]) 在這里,主機名或IP是可供共享的客戶端主機名或IP,若對所有的IP都可以訪問,則可用“*”表示。這里的參數有很多種組合方式,表1.1列出了常見的參數。 表1.1 NFS配置文件的常見參數
下面是配置文件“/etc/exports”的一個示例: $ cat /etc/exports 在設定完配置文件之后,需要啟動nfs服務和portmap服務,這里的portmap服務允許NFS客戶端查看NFS服務所用的端口,在它被激活之后,就會出現一個端口號為111的sun RPC(遠端過程調用)的服務,這是NFS服務中必須實現的一項,因此,也必須把它開啟,如下所示: $ /etc/init.d/portmap restart 可以看到,系統在啟動NFS服務時就已經啟動了mountd進程,它是NFS掛載服務,用于處理NFSD遞交過來的客戶端請求。另外還會激活至少兩個以上的系統守護進程,然后開始監聽客戶端的請求,用dmesg命令(或者cat /var/log/messages)可以看到操作是否成功。另外,與NFS相關的還有兩個命令,可以方便NFS的使用。 其一是exportfs,它可以重新掃描“/etc/exports”,使用戶在修改“/etc/exports”配置文件時不需要每次重啟NFS服務,其格式為: exportfs [選項] 表1.2所示為exportfs的常見選項。 表1.2 exportfs的常見選項
另一個是showmount,它可以顯示nfs服務器的掛載信息,其格式為: showmount [選項] 表1.3所示為showmount的常見選項。 表1.3 showmount的常見選項
用戶若希望NFS服務在每次系統引導時自動開啟,可使用以下命令: # /sbin/chkconfig nfs on 本文選自華清遠見嵌入式培訓教材《從實踐中學嵌入式Linux應用程序開發》 熱點鏈接:
1、搭建嵌入式交叉編譯環境 |