基于PC/104平臺嵌入式Linux系統(tǒng)核心定制方法
字符設(shè)備。其中有:
I2C support: I2C是Philips極力推動的微控制應(yīng)用中使用的低速串行總線協(xié)議。如果要選擇下面的Video For Linux,該項必選。
Mice:鼠標(biāo)?,F(xiàn)在可以支持總線、串口、PS/2、CT82C710 mouseport、PC110 digitizerpad。
Joysticks:手柄支持。Watchdog Cards:如果把這個選中,那么就會在/dev下創(chuàng)建一個名為watchdog的文件,它可以記錄系統(tǒng)的運行情況,一直到系統(tǒng)重新啟動的1min左右。有了這個文件,就可以恢復(fù)系統(tǒng)到重啟前的狀態(tài)了。
Video For Linux:支持有關(guān)的音頻/視頻卡。
Ftape,the floppy tape device driver:
PCMCIA character device support:上邊介紹了。
(21)Filesy stems文件系統(tǒng)。介紹以下幾項:
Quota support: Quota可以限制每個用戶可以使用的硬盤空間的上限,在多用戶共同使用一臺主機的情況中十分有效。
DOSFAT fssupport: DOSFAT文件格式的支持,可以支持FAT16、FAT32。
ISO 9660CD-ROM file system support:光盤使用的就是ISO9660的文件格式。
NTFS file system support:ntfs是NT使用的文件格式。
/proc file system support:/proc文件系統(tǒng)是Lnux提供給用戶和系統(tǒng)進(jìn)行交互的通道,應(yīng)該選上,否則有些功能沒法正確執(zhí)行。
還有另外3個大類是:Network File Systems(網(wǎng)絡(luò)文件系統(tǒng))、Partition Types(分區(qū)類型)、
NativeLanguageSupport(本地語言支持)。值得一提的是NetworkFileSystems里面的兩種:NFS和SMB分別是Linux和Windows相互以網(wǎng)絡(luò)鄰居的形式訪問對方所使用的文件系統(tǒng)。
(22)Console drivers控制臺驅(qū)動。一般使用VGA text console就可以了,標(biāo)準(zhǔn)的80325的文本控制臺。
(23)Sound聲卡驅(qū)動。
(24)USB supprotUSB支持。很多USB設(shè)備,比如鼠標(biāo)、調(diào)制解調(diào)器、打印機、掃描儀等,在Linux都可以得到支持。 (25)Kernel hacking配置此選項可以在系統(tǒng)崩潰時,也可以進(jìn)行一定的工作了。但對于普通用戶是用不著這個功能的。
內(nèi)核編譯
內(nèi)核配置結(jié)束后就可以編譯內(nèi)核了,內(nèi)核編譯只有幾個指令,但是內(nèi)核編譯的時間可能會很長。在執(zhí)行內(nèi)核配置之前可以先執(zhí)行#make mrproper命令,檢查內(nèi)核源程序,以發(fā)現(xiàn)內(nèi)核文件是否完備。
內(nèi)核編譯的命令如下:
#maked ep:使內(nèi)核正確設(shè)置所有模塊的依賴關(guān)系。
make clean:清除所有已存在的目標(biāo)文件,已存在的目標(biāo)文件主要由上次內(nèi)核編譯形成,如果忘記做這一步,生成的內(nèi)核將會非常龐大。
#make zImage/zdisk/bzImage/zlilo:生成一個經(jīng)過壓縮的內(nèi)核。如果要制作成啟動盤就使用make zdisk,而make zlilo則把生成的內(nèi)核加入LLO中,不過在最初幾次編譯內(nèi)核時不要使用此項,以免系統(tǒng)因生成的內(nèi)核有故障而不能啟動。make bzImage用于生成超過1M文件大小的內(nèi)核,makezImage生成小于1M的內(nèi)核。內(nèi)核文件是經(jīng)過壓縮處理的。如果內(nèi)核中使用了可裝卸的模塊,則需要依次運行以下指令:
#make modules:編譯內(nèi)核模塊。
#make modules_install:安裝內(nèi)核模塊。
編譯后的內(nèi)核文件存放在arch/i386/boot/目錄下。以下為一個內(nèi)核編譯配置腳本,采用該腳本編譯的內(nèi)核可運行于當(dāng)前所有x86平臺,不具備網(wǎng)絡(luò)和串口支持,內(nèi)核編譯后的大小在200K以內(nèi)。
#基于x86體系結(jié)構(gòu)
CONFIG_X86=y
#是內(nèi)核中最新功能(或處于實驗中的功能) 可用
CONFIG_EXPERIMENTAL=y
#選擇處理器類型和數(shù)學(xué)處理器仿真
CONFIG_M386=y
CONFIG_MATH_EMULATION=y
#設(shè)置進(jìn)程間通信協(xié)議
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
#設(shè)置可支持的二進(jìn)制文件格式
CONFIG_BINFMT_ELF=y
#塊設(shè)備支持,CFC和DOC在此設(shè)置不同
#設(shè)置內(nèi)核支持DE驅(qū)動器
CONFIG_BLK_DEV_DE=y
CONFIG_BLK_DEV_DEDISK=y
CONFIG_BLK_DEV_CMD640=y
CONFIG_BLK_DEV_RZ1000=y
CONFIG_BLK_DEV_DEPCI=y
CONFIG_BLK_DEV_DEDMA=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_CS5530=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_PARDE_PARPORT=y
#字符設(shè)備設(shè)置
CONFIG_VT=y
#文件系統(tǒng)設(shè)置
#支持/proc、ext2文件系統(tǒng)
CONFIG_PROC_FS=y
CONFIG_EXT2_FS=y
#支持字符型終端
CONFIG_VGA_CONSOLE=y
網(wǎng)絡(luò)與串口通信功能
Linux 內(nèi)核內(nèi)置對網(wǎng)絡(luò)和串口的支持,具體到內(nèi)核編譯,只要設(shè)置部分內(nèi)核參數(shù)即可。以下是網(wǎng)絡(luò)設(shè)備的支持,需要注意的是其中PCI設(shè)備支持選項和以太網(wǎng)設(shè)備支持選項,如果選擇網(wǎng)卡,這兩類設(shè)備都必須被支持。網(wǎng)卡的驅(qū)動程序如果未包含到內(nèi)核,則可以模塊形式加載。
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_QUIRKS=y
CONFIG_PCI_OLD_PROC=y
CONFIG_NETLINK=y
CONFIG_INET=y
CONFIG_NET_ETHERNET=y
以下是串口設(shè)置參數(shù),如果單純支持兩個串口,則設(shè)置CONFIG_SERIAL項即可。在系統(tǒng)需要4個以上串口支持,或需要基于串口的終端控制時,需要設(shè)置余下3個參數(shù)。
CONFIG_SERIAL=y
#CONFIG_SERIAL_CONSOLE
#CONFIG_SERIAL_EXTENDED
#CONFIG_SERIAL_NONSTANDARD
本項目中僅設(shè)置兩個串口支持。
文件系統(tǒng)定制
Linux 操作系統(tǒng)為方便管理把外存抽象成一個可隨時訪問的塊,為方便管理和使用又在塊設(shè)備層上再作抽象,把塊設(shè)備抽象成為文件系統(tǒng),由文件系統(tǒng)管理塊設(shè)備上的數(shù)據(jù)等,文件系統(tǒng)有很多種,不同文件系統(tǒng)有不同的管理方式,造成系統(tǒng)不兼容,為解決這個問題,在文件系統(tǒng)上又作一次抽象,提出了虛擬文件系統(tǒng)的概念。 Linux虛擬文件系統(tǒng)為用戶提供了一個公共的接口,而不需要了解物理設(shè)備或邏輯系統(tǒng)的細(xì)節(jié),系統(tǒng)允許系統(tǒng)管理員將在任何物理設(shè)備上的邏輯文件系統(tǒng)掛接在文件目錄中。
目錄結(jié)構(gòu)
Linux文件系統(tǒng)符合 FHS(Filesystem Hierarchy Standard)標(biāo)準(zhǔn),由一些目錄和文件組成。根據(jù)安裝的方式不同,這些目錄可能是不同的文件系統(tǒng)。通常,一個系統(tǒng)可以有多個文件系統(tǒng)組成:根分區(qū)文件系統(tǒng)(/),和安裝在/usr下的文件系統(tǒng),還有其他安裝在/home、/var文件系統(tǒng)。
Linux目錄結(jié)構(gòu)起始與根目錄,其中包含以下目錄:
/vmlinuz
內(nèi)核文件,內(nèi)核文件的位置可由系統(tǒng)引導(dǎo)程序指定。
/bin
包含系統(tǒng)可執(zhí)行程序,可以在這個目錄下找到linux常用的命令。
/boot
存放系統(tǒng)啟動時所需的各項文件。
/dev
包含所有的設(shè)備文件,這些設(shè)備是和系統(tǒng)的硬件有一定相互對應(yīng)關(guān)系的特殊文件,分為塊設(shè)備、字符設(shè)備和特殊設(shè)備,dev是設(shè)備(device)的英文縮寫。目錄中包含了所有Linux系統(tǒng)中使用的外部設(shè)備,但是這里并不是放的外部設(shè)備的驅(qū)動程序,它實際上是一個訪問這些外部設(shè)備的標(biāo)識。在Linux系統(tǒng)中,對外部設(shè)備的訪問和訪問一個文件、一個目錄沒有任何區(qū)別。
/cdrom
用于將光驅(qū)文件系統(tǒng)加載到這個目錄下。
/etc
Linux系統(tǒng)的絕大部分配置文件都存放在這里。比如網(wǎng)絡(luò)配置文件,文件系統(tǒng),XWindow配置文件,設(shè)備配置信息,設(shè)置用戶信息等都在這個目錄下。
/sbin
存放系統(tǒng)程序。和/bin目錄類似,但這些文件往往是用來進(jìn)行系統(tǒng)管理或提供系統(tǒng)服務(wù)的,一般只有root才有運行的權(quán)限。
/home
存放一般用戶個人目錄的主目錄,如果建立一個用戶,用戶名是“xx”,那么在/home目錄下就有一個對應(yīng)的/home/xx路徑。 linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論