linux的乙個重要的特點就是其源**的公開性,所有的核心源程式都可以在/usr/src/linux下找到,大部分應用軟體也都是遵循gpl而設計的,你都可以獲取相應的源程式**。全世界任何乙個軟體工程師都可以將自己認為優秀的**加入到其中,由此引發的乙個明顯的好處就是linux修補漏洞的快速以及對最新軟體技術的利用。
客套的話,空洞的話咱都不說了,說了也費勁,你還不一定看。下面以linux 2.6.15.5核心源**為例:
第二步:一般情況下要用下面命令來配置核心,可以使用下面命令的任意乙個,看自己喜歡了:
#make config(基於文字的最為傳統的配置介面,不推薦使用)
#make menuconfig(基於文字選單的配置選項)
#make xconfig(要求qt被安裝)
#make gconfig(要求gtk安裝) 其中最值得推薦的當然是menuconfig選項,不需要額外的庫,還直觀形象
選擇了自己要用的選項後儲存退出。我這裡為了以後能將自己寫的核心驅動模組加入核心,選擇了"enable loadable module support",嵌入式產品一般不需
要動態解除安裝模組,所以"可以解除安裝模組"不用選,當然你說哥非要選,就是要跟你做對,你能把我咋滴。說真的,我還真不能把你咋滴..
第三步:#cd ****進入核心原始碼目錄,,編譯核心,並將映像複製到相應的目錄:
#make bzimage (生成使用giz壓縮的核心,生成的檔案位於/usr/src/linux/arch/i386/boot 目錄)
#make modules modules_install (編譯核心模組並安裝到/lib/modules/2.6.15.5 目錄)
#cd /usr/src/linux
#mv arch/i386/boot/bzimage /boot/bzimage2.6.15.5
#mv system.map /boot/system.map-2.6.15.5 (system.map-2.6.15.5是編譯生成的linux 2.6.15.5核心的符號表)
#cd /boot
#mv system.map oldsystem.map
#ln –s system.map-2.6.15.5 system.map(建立相應的system.map符號鏈結)
第四步:修改啟動選項。以支援從linux 2.6.15.5啟動選擇選單
修改/boot/grub/grub.conf檔案,進行如下配置:
title red hat linux (2.6.15.5)
root (hd0,0)
kernel /boot/vmlinuz ro root=/dev/hda2 hdc=ide-scsi //---你的linux所在的分割槽
進過此配置後,linux啟動時就會出現選擇選單。
說明:最後在上面的linux 2.6.15.5啟動中,沒有設定initrd,這是因為我們直接把scsi,ext3等編譯進了核心。如果將他們編譯成模組,initrd則是必須的,否則
了,如果執行mkinitrd命令時,提示「no module dm-mem-cache found for kernel 2.6.29.4, aborting.」時,表明該版本的mkinitrd有bug。公升級mkinitrd或
1是當使用mkinitrd時,使用」–without-dmraid」這個引數。
2是在使用mkinitrd之前,先建立乙個noraid檔案。建立方法如下:
# echo "dmraid=no" > /etc/sysconfig/mkinitrd/noraid
# chmod 755 /etc/sysconfig/mkinitrd/noraid
然後再執行mkinitrd命令。
initrd(bootloader initialized ram disk)是指由bootloader初始化的記憶體盤。在linux核心啟動前,bootloader會將儲存介質中的initrd檔案載入到記憶體,核心
啟動時會在訪問真正的根檔案系統前先訪問該記憶體的initrd檔案系統。
為了啟動時載入initrd,只需修改grub.conf引導配置檔案,在最後新增"initrd /boot/initrd-2.6.15.5.img "這樣就沒問題了。
linux核心的編譯
1 解壓縮 tar jxvf linux 2.6.22.6.tar.bz2 2 打補丁,patch 補丁檔案 具體打到那裡去的目標位址 在補丁檔案裡面有,查詢diff的地方 進入linux核心目錄,cd linux 2.6.22.6 patch p1 linux 2.6.22.6 jz2440.pa...
編譯 linux 核心
一 準備工作 tpv te0 首先說明,下面帶 號的行都是要輸入的命令列,且本文提到的所有命令列都在終端裡輸入。ixpub技術部落格 rc0p a6zx j 啟動linux系統,並用根使用者登入,進入終端模式下。6i sb w,a0 ixpub技術部落格c gng,y y ixpub技術部落格 k,...
linux編譯核心
red hat linux版本的核心編譯 make j2 編譯 make modules make modules install make install cd boot mkinitramfs o initrd.img 2.6.30.10 2.6.30.10 此項可能不需要 vim boot g...