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