嵌入式Linux開發(fā)環(huán)境的搭建之:嵌入式開發(fā)環(huán)境的搭建
接下來,需要創(chuàng)建一些重要文件。首先要創(chuàng)建/etc/inittab和/etc/fstab文件。inittab是Linux啟動之后第一個被訪問的腳本文件,而fstab文件是定義了文件系統(tǒng)的各個“掛接點”,需要與實際的系統(tǒng)相配合。接下來要創(chuàng)建用戶和用戶組文件。
以上用busybox構(gòu)造了文件系統(tǒng)的內(nèi)容,下面要創(chuàng)建cramfs文件系統(tǒng)映像文件。制作cramfs映像文件需要用到的工具是mkcramfs。此時可以采用兩種方法,一種方法是使用我們所構(gòu)建的文件系統(tǒng)(在目錄“/home/david/fs2410/cramfs”中),另一種方法是在已經(jīng)做好的cramfs映像文件的基礎(chǔ)上進行適當(dāng)?shù)母膭印O旅娴氖纠褂玫诙N方法,因為這個方法包含了第一種方法的所有步驟(假設(shè)已經(jīng)做好的映像文件名為“fs2410.cramfs”)。
首先用mount命令將映像文件掛載到一個目錄下,打開該目錄并查看其內(nèi)容。
[root@localhostfs2410]#mkdircramfs
[root@localhostfs2410]#mountfs2410.cramgscramfs–oloop
[root@localhostfs2410]#lscramfs
bindevetchomeliblinuxrcprocQtopiaramdisksbintestshelltmpusrvar
因為cramfs文件系統(tǒng)是只讀的,所以不能在這個掛載目錄下直接進行修改,因此需要將文件系統(tǒng)中的內(nèi)容復(fù)制到另一個目錄中,具體操作如下所示:
[root@localhostfs2410]#mkdirbackup_cramfs
[root@localhostfs2410]#tarcvfbackup.cramfs.tarcramfs/
[root@localhostfs2410]#mvbackup.cramfs.tarbackup_cramfs/
[root@localhostfs2410]#umountcramfs
[root@localhostfs2410]#cdbackup_cramfs
[root@localhostbackup_cramfs]#tarzvfbackup.cramfs.tar
[root@localhostbackup_cramfs]#rmbackup.cramfs.tar
此時我們就像用busybox所構(gòu)建的文件系統(tǒng)一樣,可以在backup_cramfs的cramfs子目錄中任意進行修改。例如可以添加用戶自己的程序:
[root@localhostfs2410]#cp~/hellobackup_cramfs/cramfs/
在用戶的修改工作結(jié)束之后,用下面的命令可以創(chuàng)建cramfs映像文件:
[root@localhostfs2410]#mkcramfsbackup_cramfs/cramfs/new.cramfs
接下來,就可以將新創(chuàng)建的new.cramfs映像文件燒入到開發(fā)板的相應(yīng)位置了。
2.NFS文件系統(tǒng)
NFS為NetworkFileSystem的簡稱,最早是由Sun公司提出發(fā)展起來的,其目的就是讓不同的機器、不同的操作系統(tǒng)之間通過網(wǎng)絡(luò)可以彼此共享文件。NFS可以讓不同的主機通過網(wǎng)絡(luò)將遠(yuǎn)端的NFS服務(wù)器共享出來的文件安裝到自己的系統(tǒng)中,從客戶端看來,使用NFS的遠(yuǎn)端文件就像是使用本地文件一樣。在嵌入式中使用NFS會使應(yīng)用程序的開發(fā)變得十分方便,并且不用反復(fù)地?zé)龑懹诚裎募?/p>
NFS的使用分為服務(wù)端和客戶端,其中服務(wù)端是提供要共享的文件,而客戶端則通過掛載(“mount”)這一動作來實現(xiàn)對共享文件的訪問操作。下面主要介紹NFS服務(wù)端的使用。在嵌入式開發(fā)中,通常NFS服務(wù)端在宿主機上運行,而客戶端在目標(biāo)板上運行。
NFS服務(wù)端是通過讀入它的配置文件“/etc/exports”來決定所共享的文件目錄的。下面首先講解這個配置文件的書寫規(guī)范。
在這個配置文件中,每一行都代表一項要共享的文件目錄以及所指定的客戶端對它的操作權(quán)限??蛻舳丝梢愿鶕?jù)相應(yīng)的權(quán)限,對該目錄下的所有目錄文件進行訪問。配置文件中每一行的格式如下:
[共享的目錄][客戶端主機名稱或IP][參數(shù)1,參數(shù)2…]
在這里,主機名或IP是可供共享的客戶端主機名或IP,若對所有的IP都可以訪問,則可用“*”表示。這里的參數(shù)有很多種組合方式,常見的參數(shù)如表5.1所示。
表5.1 常見參數(shù)
選項 | 參數(shù)含義 |
rw | 可讀寫的權(quán)限 |
ro | 只讀的權(quán)限 |
no_root_squash | NFS客戶端分享目錄使用者的權(quán)限,即如果客戶端使用的是root用戶,那么對于這個共享的目錄而言,該客戶端就具有root的權(quán)限 |
sync | 資料同步寫入到內(nèi)存與硬盤當(dāng)中 |
async | 資料會先暫存于內(nèi)存當(dāng)中,而非直接寫入硬盤 |
如在本例中,配置文件“/etc/exports”的代碼如下:
[root@localhostfs]#cat/etc/exports
/root/workplace192.168.1.*(rw,no_root_squash)
在設(shè)定完配置文件之后,需要啟動nfs服務(wù)和portmap服務(wù),這里的portmap服務(wù)是允許NFS客戶端查看NFS服務(wù)在用的端口,在它被激活之后,就會出現(xiàn)一個端口號為111的sunRPC(遠(yuǎn)端過程調(diào)用)的服務(wù)。這是NFS服務(wù)中必須實現(xiàn)的一項,因此,也必須把它開啟。如下所示:
[root@localhostfs]#serviceportmapstart
啟動portmap:[確定]
[root@localhostfs]#servicenfsstart
啟動NFS服務(wù):[確定]
關(guān)掉NFS配額:[確定]
啟動NFS守護進程:[確定]
啟動NFSmountd:[確定]
可以看到,在啟動NFS服務(wù)的時候啟動了mountd進程。這是NFS掛載服務(wù),用于處理NFS遞交過來的客戶端請求。另外還會激活至少兩個以上的系統(tǒng)守護進程,然后就開始監(jiān)聽客戶端的請求,用“cat/var/log/messages”命令可以查看操作是否成功。這樣,就啟動了NFS的服務(wù),另外還有兩個命令,可以便于使用NFS。
其中一個是exportfs,它可以重新掃描“/etc/exports”,使用戶在修改了“/etc/exports”配置文件之后不需要每次重啟NFS服務(wù)。其格式為:
linux相關(guān)文章:linux教程
評論