歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Debian下的內核編譯

Debian下的內核編譯

日期:2017/2/28 13:55:52   编辑:Linux教程

如果你裝了一台Linux的機器,自己沒有重新編譯內核,那這台機器的效率就大打折扣了,因為默認安裝的機器會生成許多不需要的東西,在啟動的時候也會比較慢,而你要用的有些東西可能不能工作,比如,現在都把IPV6放在裡面,但我還不知道什麼時候能用到IPV6呢,啟動的時候老是找啊找的,心煩,而Fedora裡面的PPP默認是不配置的,你上來用不了撥號怎麼辦?所以,在Linux下編譯內核是一項必要的工作,好了,現在開始吧:

如果你總是想用最新的內核,那麼到kernel.org去下載最新的,如果你只是為了改更一些選項,那麼建議你還是直接用apt-get 下載Debian的內核吧。
seabird-debian:/usr/src# apt-get install linux-tree-2.6.18 kernel-package fakeroot
(如果你直接用root用戶,下不下fakeroot到無關緊要)
安裝並不是真的會把這個kernel安裝到你的系統,只是下載源文件而已,好了,進入/usr/src:
你會看到一個文件linux-source-2.6.18.tar.bz2

先把文件解壓
seabird-debian:/usr/src#tar jxvf linux-source-2.6.18.tar.bz2
文件被解壓後生成一個linux-source-2.6.18的目錄,進入該目錄:
seabird-debian:/usr/src#cd linux-source-1.6.18
seabird-debian:/usr/src/linux-source-1.6.18#

使用正在運行的配置文件:
seabird-debian:/usr/src/linux-source-1.6.18# make oldconfig

然後進行修改:
seabird-debian:/usr/src/linux-source-1.6.18# make menuconfig

生成新內核:
seabird-debian:/usr/src/linux-source-1.6.18# make-kpkg clean
seabird-debian:/usr/src/linux-source-1.6.18# make-kpkg --initrd --append-to-version=seabird --revision=1.0 kernel-image

查看如有錯誤,再次 make menuconfig 更改,如果順完成,會在/usr/src下生成如下文件:
linux-image-2.6.18lilin_1.0_i386.deb

好了,安裝新內核
seabird-debian:/usr/src# dpkg -i linux-image-2.6.18lilin_1.0_i386.deb
選中了曾被取消選擇的軟件包 linux-image-2.6.18lilin。
(正在讀取數據庫 ... 系統當前總共安裝有 119841 個文件和目錄。)
正在解壓縮 linux-image-2.6.18lilin (從 linux-image-2.6.18lilin_1.0_i386.deb) ...
Done.
正在設置 linux-image-2.6.18lilin (1.0) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Running postinst hook script /sbin/update-grub.
You shouldn't call /sbin/update-grub. Please call /usr/sbin/update-grub instead!
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.18lilin
Found kernel: /boot/vmlinuz-2.6.18-6-686
Found kernel: /boot/vmlinuz-2.6.18-5-686
Found kernel: /boot/vmlinuz-2.6.18-4-686
Updating /boot/grub/menu.lst ... done

seabird-debian:/usr/src#

注意紅色的那一行,按提示自己運行一下
seabird-debian:/usr/src# update-grub
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.18lilin
Found kernel: /boot/vmlinuz-2.6.18-6-686
Found kernel: /boot/vmlinuz-2.6.18-5-686
Found kernel: /boot/vmlinuz-2.6.18-4-686
Updating /boot/grub/menu.lst ... done
seabird-debian:/usr/src#

好了,新的kernel已經添加到啟動列表了,reboot,你就可以使用新內核了!

Copyright © Linux教程網 All Rights Reserved