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