| 導購 | 订阅 | 在线投稿
分享
 
 
 

Slackware官方內核源碼打造適合自己的內核

來源:互聯網  2008-06-01 03:18:35  評論

提要:

用Slackware官方提供的內核源碼和腳本來打造適合自己機器的內核,學習編譯內核並提高我們的學習和工作效率;

前言:

現在的機器配置越來越高,一個小小的筆記本,可能也能上到2G內存,另外服務器的應用,經常用到大內存,從實踐的情況來看,Slackware用默認的內核是不支持大內存的,最高支持800多M,可能1G都不到。另外Slackware在默認的情況下也不支持多CPU,如果您有多CPU的機器,也要編譯內核;

讓Slackware支持1G或者超過1G內存的機器,其實解決辦法也極爲簡單。要重新編譯一下內核,讓其支持 4G就好了。當然如果有有超過4G的,可以選64G的那個。

讓Slackware支持多CPU的機器,無非是在配置內核時讓他支持SMP,就是這個[*] Symmetric multi-processing support 選項;

只說如何如何解決還不行,一篇文章如果沒有操作實例,新手弟兄讀起來實在是困難。我寫的文章都是寫給新手的,我總怕我寫的文章新手看不懂,對老鳥來說又一文不值;如果真是新手弟兄看不懂,老手又不值得一看,我看我寫的東西一文不值。因此我寫東西的時候能詳細就詳細,最好是寫到初次用Linux的弟兄看了我所寫的文檔,也能一步到位的完成。

本文適合:初初級新手

在Slackware系統中最省力氣編譯內核的辦法,是用Slackware現有的官方資源來進行編譯,其它的軟件遇到問題,如果Slackware的官方有資源,我們同樣可以用這種解決辦法;

畢竟從 http://www.kernel.org 直接下載,自己配置內核還是有點辛苦。如果是初學Linux的弟兄可能要花好長時間來配置,但還不能保證成功。所以我們這些slack的追隨者來說,要充分利用Slackware的資源。

有內核編譯經驗的弟兄都知道,如果配制好後,編譯成功了,要把.config文件保存下來,以便下次爲了解決一些小問題,重編同一版本的內核而用;

相信Slackware ,相信Slacware的官方資源;這樣能讓我們事倍功半,尤其對初學Slackware的弟兄。其實Slackware的內核更新並不是太積極,這和 Slackware的傳統(安全)有關。其實一般的情況下,我們有一個比較穩定的內核足夠用,如果不是爲了解決特定的問題,我們沒有必要整天升級來升級去的。在我寫本文的時候,Slackware 10.1的內核版本是 2.4.29;而current(也就是開發版本)的test內核是 2.6.12.3 。由況下此看來Slackware不是追新族,是以安全和穩定爲主;

在本文我們以Slackware的 current的test內核來簡要的說明應用slackware的官方資源的好處,以及順便也解決一下大內存支持的問題;

一、下載官方current 的testing內核的源碼;

地址:http://www.slackware.com/getslack/

ftp://slackware.mirrors.tds.net/pub/slackware/slackware-current/testing/source/linux-2.6.12.3/

從上面的地址找鏡像,一般的情況下美國和日本的要快一點;

比如我們通過下面的地址得到 testing的內核 linux-2.6.12.3的源碼目錄;

我們要把他裏面的所有東西都下載下來,Slackware所提供我們的安裝包就是通過這些文件編譯生成的;人都都把配置文件和腳本寫好了,我們沒有必要不用;

比如我們FTP鏡像中的 linux-2.6.12.3所有文件都按他FTP提供的目錄結構存放在到 /usr/src/kernel26中;

下載好了,我們進入下一步;

二、利用Slackware官方提供的 config文件來簡單配置自己的內核配置文件 .config ;

1.解壓內核及一些基礎工作;

bash-3.00# pwd

/usr/src/kernel26

bash-3.00# ls

config-2.6.12.3 kernel-generic linux-2.6.12.3.tar.bz2.sign

kernel-modules linux-2.6.12.3.tar.bz2

bash-3.00#tar jxvf linux-2.6.12.3.tar.bz2

bash-3.00# mv linux-2.6.12.3 .. 把解壓手內核目錄移到上一級目錄中,也就是/usr/src中

bash-3.00# cd ..

bash-3.00# ls

kernel26 linux-2.4.29 linux-2.6.12.3.tar.bz2 speakup-2.4.29

linux linux-2.6.12.3 rpm

bash-3.00#cd linux-2.6.12.3

bash-3.00# pwd

/usr/src/linux-2.6.12.3

bash-3.00# cp ../kernel26/config-2.6.12.3 . 把內核配置文件複制到當前工作目錄linux-2.6.12.3

bash-3.00#cp config-2.6.12.3 .config 把config-2.6.12.3複制爲.config

2.簡要的配置內核;

bash-3.00#make menuconfig 進入配置內核的配置模式 ;

內核配置有兩種方法,一種是直接置入內核;另一種是編成模塊;兩種方法各有優點;直接編入內核的,比如設備的啓動,不再需要加載模塊的這一過程了;而編譯成模塊,則需要加載設備的內核支持的模塊;但直接把所有的東西都編入內核也不是可行的,內核體積會變大,系統負載也會過重。我們編內核時最好把極爲重要的編入內核;其它的如果您不明白的,最好用默認。slackware的內核配置文件是最好的教程;

1]移動鍵盤,選中 Load an Alternate Configuration File 項,把.config 調進來方便我們配置;因爲這個配置文件是Slackware已經配置好的,我們只是稍加修改就行。

2]針對自己機器存在的問題進行修改;比如我們在前文所提到的大內存支持的問題;

選擇自己機器的CPU;

移動鍵盤到 Processor type and features ---> ,然後按ENTER進入;

找到 Processor family (486) ---> 按ENTER進入;

進入後我們發現有好多CPU的型號可選;一般的情況下要根據

bash-3.00# cat /proc/cpuinfo 輸出的信息來選,比如我們的是Celeron (P4)一代的,應該選如下的,當然默認的 486也是可以正常運行的,既然我們重編一次內核,就得選中對應型號的,也許性能有所提高呢;

Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon)

對大內存支持;如果內存是1G或者1G以上,但小于4G的,就要選4G支持;如果超過4G的,要選64G的支持;

High Memory Support (4GB) --->

(X) 4GB

( ) 64GB

還有比如聲卡等硬件,需要我們一步一步的查看;如果有不明之處,就要按 [shift]+?的組合鍵來查看說明。一般的情況下,slackware的config文件早都配置好了,只需要我們來查看一下就可以了。

再舉個例子:比如我現在所用的聲卡是intel ac97的,我應該怎麽配置呢?

首先要知道自己的聲卡的芯片組,我們要通過lspci -v 來查看;

bash-3.00# lspci -v

只查看聲卡的,應該用如下的方法:

bash-3.00# lspci -v |grep audio

00:1f.5 Multimedia audio controller: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 03)

通過上面的輸出,我們知道這台機器用的是intel AC97聲卡;所以我們要特別注意AC97的配置;

找到 Device Drivers ---> Sound --->

< M > Sound card support 聲卡的支持,這個是一定要選中的吧;

< M > Advanced Linux Sound Architecture 對聲卡支持的ALSA驅動的支持;下面有OSS驅動,只是一部份。如果想用OSS的驅動更全的,可以去買;其它的就看如下的選吧;

< M > Sequencer support

< M > Sequencer dummy client

< M > OSS Mixer API

< M > OSS PCM (digital audio) API [*] OSS Sequencer API

< M > RTC Timer support [*] Verbose printk

[ ] Debug

然後我們再向下看有

Generic devices ---> 進入裏面

< M > Dummy (/dev/null) soundcard

< M > Virtual MIDI soundcard

< M > MOTU MidiTimePiece AV multiport MIDI

< M > UART16550 serial MIDI driver

< M > Generic MPU-401 UART driver

ISA devices ---> 如果您用ISA聲卡就在這裏面選;

PCI devices ---> 如果您用PCI聲卡,就在這裏面選,集成聲卡也在這裏;

USB devices ---> 這是USB聲卡內核支持選項;我有一個這樣的聲卡,但沒有試過;

PCMCIA devices ---> 這是PCMCIA聲卡的選項,我還沒有看過這樣的聲卡呢;如果您有,就在這裏面動動手吧。

因爲我用的是Intel 集成的聲卡,所以要在PCI中選擇,我們在 中可以看到有兩個與INTEL有關的;

< M > Intel/SiS/nVidia/AMD/ALi AC97 Controller 這個才是Intel AC97聲卡的;

< > Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL) 這個是機器集成的INTEL貓的蜂鳴器的;

因爲我發現如果把貓的蜂鳴器的驅動也選上,可能造成兩個沖突。所以只能選上面的那個;

我們再回到 Open Sound System ---> 中看看,與我用的聲卡是不是有關的?

< M > Open Sound System (DEPRECATED)

< M > Intel ICH (i8xx) audio support

< M > OSS sound modules

< M > Loopback MIDI device support

< M > Microsoft Sound System support

我們也可以看到Open Sound System中也有好多的聲卡驅動,大家根據前面的lspci -v 來選擇吧。

3]對于操作系統所采用的文件系統的支持要編入內核,最好不要編成模塊;(重要)

File systems --->

<*> Reiserfs support

比如我的Slackware所采用的文件系統用的是reiserfs ,所以我要把它直接編入內核;好處是不受模塊丟失或者損壞而不能啓動系統;而有時您把系統所采用的文件系統編譯成模塊,出現VFS錯誤,也有這方面的事,可能是您沒有把reiserfs加入到相應的加載模塊的配置文件中,所以我們爲了減少麻煩,把風險降到最低,還是要直接置入內模的好;

如果您還有其它的硬盤分區要讀取,比如是ext3、ext2、fat、fat32、ntfs等,這樣的可以編成模塊來支持;

再舉一例:如果您的的操作系統用的是ext3的文件系統,當然就要把ext3的直接編入內核,其它的可以編成模塊來支持了;

4]對于硬盤及RAID的支持,要直接編入內核;

比如ATA、SATA、SCSI及RAID的支持直接內核支持;有時編完內核後,啓動時不能識別硬盤和RAID,大多事情出在這裏;Slackware中在這方面有的是模塊支持,我們可以把它由< M >改成<*>來支持;

5]對于咱們所沒有的設備,可以在內核中不選,熟能生巧罷了;

比如我沒有ISDN設備 ,所以就把ISDN去掉;

ISDN subsystem --->

< > Linux telephony support

如果您沒有1394的設備 ,當然可以把1394的支持也去掉;

等等。。。。。。。

內核配置就說這麽多吧,太多了,我也說不清楚,水平有限啊;

配置好後先要保存

Save Configuration to an Alternate File

出來一個

Enter a filename to which this configuration ,should be saved as an alternate. Leave blank to abort.

.config

按回車就行了,這樣就保存住了;

然後退出 < Exit > ,這時也會出現保存 ;

如果你想把.config保存起來,可以再複制一份到安全一點的目錄,以備後用;

3.編譯內核

bash-3.00# make

bash-3.00# make modules_install

這樣就編譯好了,並把模塊也安裝在了 /lib/modules目錄中了,請看:

bash-3.00# ls /lib/modules/

2.4.29 2.6.12.3

現在我們得安裝內核了,但我們也沒有必要急著安裝,我們可以用Slackware提供的腳本來打包,然後再來安裝,這樣移除也方便,對不對?

4.用Slackware提供的腳本爲內核及moudules打包;

我們在前面已經說了,把linux-2.6.12.3在鏡像上的目錄下的所有東西載下來。所以我們要用到這些東西了。我在前面把所有的東西都下載到了/usr/src/kernel26目錄中。

所以我們要用他所提供的腳本打包;

bash-3.00# cd /usr/src/kernel26/

bash-3.00# ls

config-2.6.12.3 kernel-generic kernel-modules linux-2.6.12.3.tar.bz2 linux-2.6.12.3.tar.bz2.sign

a)首先我們爲內核打包:請運行如下命令:

bash-3.00# bash-3.00# cp kernel-generic/slack-desc .

我們要把 kernel-generic/slack-desc 複到制當前操作目錄中,只是一個說明文件;不複制也行;反正是自己用,也不是給別人用的;

bash-3.00# sh kernel-generic/kernel-generic.SlackBuild

輸出是什麽呢?

kernel-generic/kernel-generic.SlackBuild: line 33: [: too many arguments

Building kernel-generic-2.6.12.3-i486-1.tgz

using these source files. Please check and then hit

enter to make the package.

KERNEL = /usr/src/linux-2.6.12.3/arch/i386/boot/bzImage

SYSMAP = /usr/src/linux-2.6.12.3/System.map

CONFIG = /usr/src/linux-2.6.12.3/.config

看到了吧,我們用的配置文件在 /usr/src/linux-2.6.12.3/.config ;然後按回車;

注意:如果您把打包腳本 kernel-generic.SlackBuild 複制到了 /usr/src/linux-2.6.12.3 ,並在 /usr/src/linux-2.6.12.3中執行它,提示運用的配置文件是 CONFIG = /usr/src/linux-2.6.12.3/config* ,所以要看好了。其實這個文件我們可能沒有配置,是slackware原始自帶的,我們在前面已經說了,我們配置的文件是.config;除非你有把. config另存爲config-2.6.12.3。

如果要用我們配置好的內核文件,要進入內核源碼目錄,把.config 拷貝一份名爲 config-2.6.12.3的;

b)然後我們要爲內核的模塊打包;

bash-3.00# sh kernel-modules/kernel-modules.SlackBuild

我們把包都打好了,他們究竟在哪裏呢?

在/tmp目錄中,請看如下:

bash-3.00# ls -lh /tmp/kernel-*

-rw-r--r-- 1 root root 1.9M 2005-08-06 11:59 /tmp/kernel-generic-2.6.12.3-i486-1.tgz

-rw-r--r-- 1 root root 11M 2005-08-06 12:13 /tmp/kernel-modules-2.6.12.3-i486-1.tgz

5.安裝編譯好的內核及模塊。

我們其實已經把編譯好的模塊早就安裝好了,但我們最好重新安裝一下。這樣卸載也方便。

bash-3.00#cd /tmp

bash-3.00# installpkg kernel-generic-2.6.12.3-i486-1.tgz

bash-3.00# installpkg kernel-modules-2.6.12.3-i486-1.tgz

這樣就把內核及模塊配置好了。

7686.查看系統引導管理器grub或者lilo的配置文件。

內核在安裝的時候,可能已經改了一些東西,比如 /boot內的變化,比如vmlinuz直接鏈到了 vmlinuz-generic-2.6.12 ,所以如果想要讓新老內核都能讓系統引導管理器grub和lilo的菜單上能看得到,必須改 grub.conf或者lilo.conf

我們必須保留老內核的在grub和lilo的啓動菜單,畢竟我們編內核不能百分百的成功,對不對??安全第一吧;

後記:正在修訂之中,以讓其更可能的全面一點,算是版本0.1吧;沒有技術含量,只是想幫助初學者用在最少的時間內掌握編譯內核;

提要: 用Slackware官方提供的內核源碼和腳本來打造適合自己機器的內核,學習編譯內核並提高我們的學習和工作效率; 前言: 現在的機器配置越來越高,一個小小的筆記本,可能也能上到2G內存,另外服務器的應用,經常用到大內存,從實踐的情況來看,Slackware用默認的內核是不支持大內存的,最高支持800多M,可能1G都不到。另外Slackware在默認的情況下也不支持多CPU,如果您有多CPU的機器,也要編譯內核; 讓Slackware支持1G或者超過1G內存的機器,其實解決辦法也極爲簡單。要重新編譯一下內核,讓其支持 4G就好了。當然如果有有超過4G的,可以選64G的那個。 讓Slackware支持多CPU的機器,無非是在配置內核時讓他支持SMP,就是這個[*] Symmetric multi-processing support 選項; 只說如何如何解決還不行,一篇文章如果沒有操作實例,新手弟兄讀起來實在是困難。我寫的文章都是寫給新手的,我總怕我寫的文章新手看不懂,對老鳥來說又一文不值;如果真是新手弟兄看不懂,老手又不值得一看,我看我寫的東西一文不值。因此我寫東西的時候能詳細就詳細,最好是寫到初次用Linux的弟兄看了我所寫的文檔,也能一步到位的完成。 本文適合:初初級新手 在Slackware系統中最省力氣編譯內核的辦法,是用Slackware現有的官方資源來進行編譯,其它的軟件遇到問題,如果Slackware的官方有資源,我們同樣可以用這種解決辦法; 畢竟從 http://www.kernel.org 直接下載,自己配置內核還是有點辛苦。如果是初學Linux的弟兄可能要花好長時間來配置,但還不能保證成功。所以我們這些slack的追隨者來說,要充分利用Slackware的資源。 有內核編譯經驗的弟兄都知道,如果配制好後,編譯成功了,要把.config文件保存下來,以便下次爲了解決一些小問題,重編同一版本的內核而用; 相信Slackware ,相信Slacware的官方資源;這樣能讓我們事倍功半,尤其對初學Slackware的弟兄。其實Slackware的內核更新並不是太積極,這和 Slackware的傳統(安全)有關。其實一般的情況下,我們有一個比較穩定的內核足夠用,如果不是爲了解決特定的問題,我們沒有必要整天升級來升級去的。在我寫本文的時候,Slackware 10.1的內核版本是 2.4.29;而current(也就是開發版本)的test內核是 2.6.12.3 。由況下此看來Slackware不是追新族,是以安全和穩定爲主; 在本文我們以Slackware的 current的test內核來簡要的說明應用slackware的官方資源的好處,以及順便也解決一下大內存支持的問題; 一、下載官方current 的testing內核的源碼; 地址:http://www.slackware.com/getslack/ ftp://slackware.mirrors.tds.net/pub/slackware/slackware-current/testing/source/linux-2.6.12.3/ 從上面的地址找鏡像,一般的情況下美國和日本的要快一點; 比如我們通過下面的地址得到 testing的內核 linux-2.6.12.3的源碼目錄; 我們要把他裏面的所有東西都下載下來,Slackware所提供我們的安裝包就是通過這些文件編譯生成的;人都都把配置文件和腳本寫好了,我們沒有必要不用; 比如我們FTP鏡像中的 linux-2.6.12.3所有文件都按他FTP提供的目錄結構存放在到 /usr/src/kernel26中; 下載好了,我們進入下一步; 二、利用Slackware官方提供的 config文件來簡單配置自己的內核配置文件 .config ; 1.解壓內核及一些基礎工作; bash-3.00# pwd /usr/src/kernel26 bash-3.00# ls config-2.6.12.3 kernel-generic linux-2.6.12.3.tar.bz2.sign kernel-modules linux-2.6.12.3.tar.bz2 bash-3.00#tar jxvf linux-2.6.12.3.tar.bz2 bash-3.00# mv linux-2.6.12.3 .. 把解壓手內核目錄移到上一級目錄中,也就是/usr/src中 bash-3.00# cd .. bash-3.00# ls kernel26 linux-2.4.29 linux-2.6.12.3.tar.bz2 speakup-2.4.29 linux linux-2.6.12.3 rpm bash-3.00#cd linux-2.6.12.3 bash-3.00# pwd /usr/src/linux-2.6.12.3 bash-3.00# cp ../kernel26/config-2.6.12.3 . 把內核配置文件複制到當前工作目錄linux-2.6.12.3 bash-3.00#cp config-2.6.12.3 .config 把config-2.6.12.3複制爲.config 2.簡要的配置內核; bash-3.00#make menuconfig 進入配置內核的配置模式 ; 內核配置有兩種方法,一種是直接置入內核;另一種是編成模塊;兩種方法各有優點;直接編入內核的,比如設備的啓動,不再需要加載模塊的這一過程了;而編譯成模塊,則需要加載設備的內核支持的模塊;但直接把所有的東西都編入內核也不是可行的,內核體積會變大,系統負載也會過重。我們編內核時最好把極爲重要的編入內核;其它的如果您不明白的,最好用默認。slackware的內核配置文件是最好的教程; 1]移動鍵盤,選中 Load an Alternate Configuration File 項,把.config 調進來方便我們配置;因爲這個配置文件是Slackware已經配置好的,我們只是稍加修改就行。 2]針對自己機器存在的問題進行修改;比如我們在前文所提到的大內存支持的問題; 選擇自己機器的CPU; 移動鍵盤到 Processor type and features ---> ,然後按ENTER進入; 找到 Processor family (486) ---> 按ENTER進入; 進入後我們發現有好多CPU的型號可選;一般的情況下要根據 bash-3.00# cat /proc/cpuinfo 輸出的信息來選,比如我們的是Celeron (P4)一代的,應該選如下的,當然默認的 486也是可以正常運行的,既然我們重編一次內核,就得選中對應型號的,也許性能有所提高呢; Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) 對大內存支持;如果內存是1G或者1G以上,但小于4G的,就要選4G支持;如果超過4G的,要選64G的支持; High Memory Support (4GB) ---> (X) 4GB ( ) 64GB 還有比如聲卡等硬件,需要我們一步一步的查看;如果有不明之處,就要按 [shift]+?的組合鍵來查看說明。一般的情況下,slackware的config文件早都配置好了,只需要我們來查看一下就可以了。 再舉個例子:比如我現在所用的聲卡是intel ac97的,我應該怎麽配置呢? 首先要知道自己的聲卡的芯片組,我們要通過lspci -v 來查看; bash-3.00# lspci -v 只查看聲卡的,應該用如下的方法: bash-3.00# lspci -v |grep audio 00:1f.5 Multimedia audio controller: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 03) 通過上面的輸出,我們知道這台機器用的是intel AC97聲卡;所以我們要特別注意AC97的配置; 找到 Device Drivers ---> Sound ---> < M > Sound card support 聲卡的支持,這個是一定要選中的吧; < M > Advanced Linux Sound Architecture 對聲卡支持的ALSA驅動的支持;下面有OSS驅動,只是一部份。如果想用OSS的驅動更全的,可以去買;其它的就看如下的選吧; < M > Sequencer support < M > Sequencer dummy client < M > OSS Mixer API < M > OSS PCM (digital audio) API [*] OSS Sequencer API < M > RTC Timer support [*] Verbose printk [ ] Debug 然後我們再向下看有 Generic devices ---> 進入裏面 < M > Dummy (/dev/null) soundcard < M > Virtual MIDI soundcard < M > MOTU MidiTimePiece AV multiport MIDI < M > UART16550 serial MIDI driver < M > Generic MPU-401 UART driver ISA devices ---> 如果您用ISA聲卡就在這裏面選; PCI devices ---> 如果您用PCI聲卡,就在這裏面選,集成聲卡也在這裏; USB devices ---> 這是USB聲卡內核支持選項;我有一個這樣的聲卡,但沒有試過; PCMCIA devices ---> 這是PCMCIA聲卡的選項,我還沒有看過這樣的聲卡呢;如果您有,就在這裏面動動手吧。 因爲我用的是Intel 集成的聲卡,所以要在PCI中選擇,我們在 中可以看到有兩個與INTEL有關的; < M > Intel/SiS/nVidia/AMD/ALi AC97 Controller 這個才是Intel AC97聲卡的; < > Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL) 這個是機器集成的INTEL貓的蜂鳴器的; 因爲我發現如果把貓的蜂鳴器的驅動也選上,可能造成兩個沖突。所以只能選上面的那個; 我們再回到 Open Sound System ---> 中看看,與我用的聲卡是不是有關的? < M > Open Sound System (DEPRECATED) < M > Intel ICH (i8xx) audio support < M > OSS sound modules < M > Loopback MIDI device support < M > Microsoft Sound System support 我們也可以看到Open Sound System中也有好多的聲卡驅動,大家根據前面的lspci -v 來選擇吧。 3]對于操作系統所采用的文件系統的支持要編入內核,最好不要編成模塊;(重要) File systems ---> <*> Reiserfs support 比如我的Slackware所采用的文件系統用的是reiserfs ,所以我要把它直接編入內核;好處是不受模塊丟失或者損壞而不能啓動系統;而有時您把系統所采用的文件系統編譯成模塊,出現VFS錯誤,也有這方面的事,可能是您沒有把reiserfs加入到相應的加載模塊的配置文件中,所以我們爲了減少麻煩,把風險降到最低,還是要直接置入內模的好; 如果您還有其它的硬盤分區要讀取,比如是ext3、ext2、fat、fat32、ntfs等,這樣的可以編成模塊來支持; 再舉一例:如果您的的操作系統用的是ext3的文件系統,當然就要把ext3的直接編入內核,其它的可以編成模塊來支持了; 4]對于硬盤及RAID的支持,要直接編入內核; 比如ATA、SATA、SCSI及RAID的支持直接內核支持;有時編完內核後,啓動時不能識別硬盤和RAID,大多事情出在這裏;Slackware中在這方面有的是模塊支持,我們可以把它由< M >改成<*>來支持; 5]對于咱們所沒有的設備,可以在內核中不選,熟能生巧罷了; 比如我沒有ISDN設備 ,所以就把ISDN去掉; ISDN subsystem ---> < > Linux telephony support 如果您沒有1394的設備 ,當然可以把1394的支持也去掉; 等等。。。。。。。 內核配置就說這麽多吧,太多了,我也說不清楚,水平有限啊; 配置好後先要保存 Save Configuration to an Alternate File 出來一個 Enter a filename to which this configuration ,should be saved as an alternate. Leave blank to abort. .config 按回車就行了,這樣就保存住了; 然後退出 < Exit > ,這時也會出現保存 ; 如果你想把.config保存起來,可以再複制一份到安全一點的目錄,以備後用; 3.編譯內核 bash-3.00# make bash-3.00# make modules_install 這樣就編譯好了,並把模塊也安裝在了 /lib/modules目錄中了,請看: bash-3.00# ls /lib/modules/ 2.4.29 2.6.12.3 現在我們得安裝內核了,但我們也沒有必要急著安裝,我們可以用Slackware提供的腳本來打包,然後再來安裝,這樣移除也方便,對不對? 4.用Slackware提供的腳本爲內核及moudules打包; 我們在前面已經說了,把linux-2.6.12.3在鏡像上的目錄下的所有東西載下來。所以我們要用到這些東西了。我在前面把所有的東西都下載到了/usr/src/kernel26目錄中。 所以我們要用他所提供的腳本打包; bash-3.00# cd /usr/src/kernel26/ bash-3.00# ls config-2.6.12.3 kernel-generic kernel-modules linux-2.6.12.3.tar.bz2 linux-2.6.12.3.tar.bz2.sign a)首先我們爲內核打包:請運行如下命令: bash-3.00# bash-3.00# cp kernel-generic/slack-desc . 我們要把 kernel-generic/slack-desc 複到制當前操作目錄中,只是一個說明文件;不複制也行;反正是自己用,也不是給別人用的; bash-3.00# sh kernel-generic/kernel-generic.SlackBuild 輸出是什麽呢? kernel-generic/kernel-generic.SlackBuild: line 33: [: too many arguments Building kernel-generic-2.6.12.3-i486-1.tgz using these source files. Please check and then hit enter to make the package. KERNEL = /usr/src/linux-2.6.12.3/arch/i386/boot/bzImage SYSMAP = /usr/src/linux-2.6.12.3/System.map CONFIG = /usr/src/linux-2.6.12.3/.config 看到了吧,我們用的配置文件在 /usr/src/linux-2.6.12.3/.config ;然後按回車; 注意:如果您把打包腳本 kernel-generic.SlackBuild 複制到了 /usr/src/linux-2.6.12.3 ,並在 /usr/src/linux-2.6.12.3中執行它,提示運用的配置文件是 CONFIG = /usr/src/linux-2.6.12.3/config* ,所以要看好了。其實這個文件我們可能沒有配置,是slackware原始自帶的,我們在前面已經說了,我們配置的文件是.config;除非你有把. config另存爲config-2.6.12.3。 如果要用我們配置好的內核文件,要進入內核源碼目錄,把.config 拷貝一份名爲 config-2.6.12.3的; b)然後我們要爲內核的模塊打包; bash-3.00# sh kernel-modules/kernel-modules.SlackBuild 我們把包都打好了,他們究竟在哪裏呢? 在/tmp目錄中,請看如下: bash-3.00# ls -lh /tmp/kernel-* -rw-r--r-- 1 root root 1.9M 2005-08-06 11:59 /tmp/kernel-generic-2.6.12.3-i486-1.tgz -rw-r--r-- 1 root root 11M 2005-08-06 12:13 /tmp/kernel-modules-2.6.12.3-i486-1.tgz 5.安裝編譯好的內核及模塊。 我們其實已經把編譯好的模塊早就安裝好了,但我們最好重新安裝一下。這樣卸載也方便。 bash-3.00#cd /tmp bash-3.00# installpkg kernel-generic-2.6.12.3-i486-1.tgz bash-3.00# installpkg kernel-modules-2.6.12.3-i486-1.tgz 這樣就把內核及模塊配置好了。 7686.查看系統引導管理器grub或者lilo的配置文件。 內核在安裝的時候,可能已經改了一些東西,比如 /boot內的變化,比如vmlinuz直接鏈到了 vmlinuz-generic-2.6.12 ,所以如果想要讓新老內核都能讓系統引導管理器grub和lilo的菜單上能看得到,必須改 grub.conf或者lilo.conf 我們必須保留老內核的在grub和lilo的啓動菜單,畢竟我們編內核不能百分百的成功,對不對??安全第一吧; 後記:正在修訂之中,以讓其更可能的全面一點,算是版本0.1吧;沒有技術含量,只是想幫助初學者用在最少的時間內掌握編譯內核;
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有