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