編譯Linux系統內核的方法步驟

  
 
 1.須要先安裝編譯環境
    進入 root 賬戶:
    > su
    輸入密碼
    安裝必要的工具:
    > apt-get install build-essential
    (安裝 gcc, make 等)
    > apt-get install libncurses-dev
    (安裝 make menuconfig 時必須的庫文件)
    > apt-get install kernel-package, fakeroot
    (Debian 系統裏生成 kernel-p_w_picpath 的一些配置文件和工具)
    > apt-get install initramfs-tools, module-init-tools
    2.安裝 kernel-source:
    能夠從 Ubuntu 的源安裝,這樣的好處是簡單,並且安裝的內核是Debian 化了的,缺點是內核不是最新的內核。
    > apt-get install linux-source
    也能夠從 www.kernel.org 下載內核安裝。kernel.org 的境象應該不少,選一個最快的來下載,由於要下載的文件很大。我這裏介紹的是安裝 2.6.24 的內核,加上了 ck 的補丁。
    下載 linux-2.6.24.tar.bz2 和 patch-2.6.24.bz2 ,而且把它們都存放在 /usr/src 目錄下。
    > tar xvjf linux-2.6.24.tar.bz2
    > ln -s linux-2.6.24 linux
    (若是已經有了 linux 目錄,則要先將其刪除)
    > cd linux
    > bzcat ../patch-2.6.24.bz2 | patch -p1
    至此,內核源文件以及補丁就都安裝好了。
    3.編譯內核
    把源碼包解壓到 /usr/src/linux-2.6.24,而後在/usr/src/下建立一個名爲linux的指向/usr/src/linux-2.6.24的連接(link)。
    在shell中輸入
   
root@FE2000 :~# cd ..
   
root@FE2000:/ # cd /usr/src/linux
    root@FE2000:/usr/src/linux # make mrproper
    root@FE2000:/usr/src/linux # make menuconfig
    或者make gconfig
    此時qconf已經讀取了默認配置,你也能夠這樣作:
    在qconf中點File->Load 去讀取其餘的設置文件。
    好比 /boot/config-2.6.18-23-686
    下面在qconf中配置.config文件。選「Y」(打勾)就是把它編譯到內核中,選「M」(打點)把它編譯成模塊,供內核動態調用。選「N」就是不安裝。也能夠保持默認選項……
    下面只是簡單提幾項:
    General setup
    Optimize for size (Look out for broken compilers!) 發燒友能夠選Y以得到更小的內核。
    Processor type and features
    Symmetric multi-processing support 若是你沒有多線程處理器這個能夠選N
    Processor family 根據你的CPU來選擇。
    High Memory Support 1G以上內存的選「4GB」, 1G如下的,未來也不打算升級到1G的,選「off」.
    Bus options (PCI, PCMCIA, EISA, MCA, ISA)
    PCI support
    PCI Express support 老式機器沒有PCI-E設備的能夠選N
    ISA support 較新的新機器沒有ISA設備,能夠選N
    MCA support 通常選N
    NatSemi SCx200 support 通常選N
    PCI Hotplug Support
    Support for PCI Hotplug (EXPERIMENTAL) 若是沒有PCI熱插拔設備,選N
    Device Drivers
    Block devices
    Packet writing on CD/DVD media
    Enable write caching (EXPERIMENTAL) 若是你有刻錄機,想啓用寫緩存功能,選Y
    ATA/ATAPI/MFM/RLL support
Include IDE/ATA-2 DISK support 若是你的/boot是放在IDE硬盤上,那麼這裏必定要選Y,選M都不行。不然啓動時會出現「waiting for root file system」的提示而停滯不前。
    SCSI device support 若是有SATA硬盤,就選Y
    SCSI disk support 若是你的/boot放在SATA硬盤上,必定要選Y。
    Character devices
    I2C support 通常能夠選Y或者M
    Graphics support 不建議把顯卡驅動編譯進內核。,選M,編譯成模塊方便往後升級驅動。
    Support for frame buffer devices
    VESA VGA graphics support 能夠選Y
    Logo configuration
    Bootup logo 若是想看到Linux啓動logo,選Y
    Sound
    Sound card support 選Y, 除非你沒有聲卡
    其餘的驅動,酌情添加刪除,根據機器配置刪除不須要的驅動能夠縮短編譯時間。你能夠在命令行下輸如lspci或者dmesg查看硬件信息。
    File systems
    CD-ROM/DVD Filesystems
    ISO 9660 CDROM file system support 通常選Y
    DOS/FAT/NT Filesystems
    VFAT (Windows-95) fs support 有FAT32分區就選Y吧
    NTFS file system support 有NTFS分區就選Y吧
    NTFS write support 若是想對 NTFS分區進行寫操做,選Y
    Native Language Support
    Simplified Chinese charset (CP936, GB2312) 選Y或者M使讀取FAT分區不會遇到中文亂碼現象
    設置完畢後,按一下保存按鈕,不管原先載入的是哪一個配置文件,qconfig都將設置保存到 /usr/src/linux/.config 這個隱含文件。
    下面輸入make開始編譯,這一過程大約須要40-100分鐘,具體的要看你的機器速度啦……
   
root@FE2000:/usr/src/linux # make
    安裝內核
   
root@FE2000:/usr/src/linux # make install
    編譯模塊
   
root@FE2000:/usr/src/linux # make modules
    安裝模塊
   
root@FE2000:/usr/src/linux # make modules_install
    而後
   
root@FE2000:/usr/src/linux # cd /
   
root@FE2000:/usr/src/linux # /usr/sbin/mkinitramfs -o /boot/initrd.img-2.6.24 2.6.24
    若是有出錯提示,多是由於 initramfs-tools 沒有裝,先把它裝上吧。
    若是沒有這一步驟,那麼開機就會出現提示
    ……
    initrd /initrd.img-2.6.24
    Error 15: File not found
    4.修改內核啓動選項
    最後打開 /boot/grub/menu.lst
    在 ## ## End Default Options ## 下面添加相似下面的兩段
    title Ubuntu, kernel 2.6.24
    root (hd0,4)
    kernel /vmlinuz-2.6.24 root=/dev/hdd6
    initrd /initrd.img-2.6.24
    savedefault
    boot
    title Ubuntu, kernel 2.6.24 (recovery mode)    root (hd0,4)    kernel /vmlinuz-2.6.24 root=/dev/hdd6 ro single    initrd /initrd.img-2.6.24    boot    注意 root和kernel字段要模仿menu.lst下面已有的內容寫。    下面是 (hd0,4),那麼你也寫(hd0,4),下面寫root=/dev/hdd6,你也寫root=/dev/hdd6,只是內核的版本號改成如今編譯的版本號。    而後把下面重複的savedefault刪除。    從新啓動計算機,在GRUB中選擇新內核啓動。
相關文章
相關標籤/搜索