Linu內(nèi)核編譯-編譯方法_第1頁
Linu內(nèi)核編譯-編譯方法_第2頁
Linu內(nèi)核編譯-編譯方法_第3頁
Linu內(nèi)核編譯-編譯方法_第4頁
Linu內(nèi)核編譯-編譯方法_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

一、為什么要編譯內(nèi)核;有時我們?yōu)榱藢崿F(xiàn)某些功能,比如對iptables的防火墻有些需要內(nèi)核支持;還有實現(xiàn)

一些硬件的支持等,這時我們需要重編內(nèi)核;二、 內(nèi)核源碼版本的選擇;如果發(fā)行版本提供內(nèi)核源碼,最好還是用發(fā)行版本提供的;比如Fedora4.0提供了很多版本的內(nèi)核源碼;我們安裝好后,他自帶的配置文件大多能滿足我們的需要,對于新手來說,根據(jù)自帶的內(nèi)核的配置文件.config,我們也能學到一點如何配置內(nèi)核。也沒有什么難的,熟能生巧罷了;如果從下載最新穩(wěn)定版本的內(nèi)核也是可以的;三、 內(nèi)核源碼安裝或解壓;對于FedoraCore4.0來說,內(nèi)核源碼是放在/usr/src/kernels目錄中;如果通過在線升級內(nèi)核,也是放在這個目錄中;如果您的系統(tǒng)中的/usr/src/kernels/中沒有內(nèi)容,說明您沒有安裝內(nèi)核的源碼包kernel-devel軟件包;您可以通過軟件包管理器來補裝,請參考《Fedora/Redhat軟件包管理指南》如果您用FedoraCore4.0,我建議您在保留老內(nèi)核的基礎(chǔ)上,在線下載最新版本的內(nèi)核kerenl-devel和對應(yīng)版本的kernel或者從下載,有時可能新的kerenl已經(jīng)解決了您所面對的問題,這時就沒有必要編譯內(nèi)核了;如果您是通過在線安裝的內(nèi)核源碼包,比如通過apt+synaptic或者yum安裝的,內(nèi)核源碼會被放到/usr/src/kernel下的目錄中,您要進入相對應(yīng)的目錄進行編譯;在線更新軟件包,請參考《Fedora/Redhat軟件包管理指南》,推薦apt+synaptic工具;—L—/、9如果您是是下載kernel和kernel-devel的rpm包,可以通過來安裝;代碼:復制代碼如果您是從下載的類似linux-2.6.13.tar.bz2或者

linux-2.6.13.tar.gz的,您要把下載下來的文件移到/usr/src目錄中解壓;然后進入

解壓的目錄中進行配置和編譯;代碼:[root@localhostbeinan]#mvlinux-2.6.13.tar.bz2[root@localhostbeinan]#cd/usr/src/3.4. [root@localhostsrc]#tarjxvflinux-.tar.bz2復制代碼提示:本文以linux-為例,其實通過發(fā)行版的升級版的kernel-devel和從下載下來的差不多,大同小異;不同的是通過在線升級的rpm格式的內(nèi)核源碼包,有配置文件.config可以參考;安裝到的目的地是/usr/src/kernel對FC4.0來說;如果您要高編譯和配置內(nèi)核。四、內(nèi)核的配置;1、進入目錄執(zhí)行makemrproper,對于從下載而來的tar.bz格式的源碼包;代碼:[root@localhostsrc]#cdlinux-/2.[root@localhostlinux-]#4.5. [root@localhostsrc]#cdlinux-/6.7. [root@localhostlinux-]#makemrproper9. [root@localhostlinux-]#makemenuconfig復制代碼對于FedoraCore4.0,如果您是通過在線安裝的kernel和kernel-devel新版本的包,比如是2.6.12-1.1398_FC4-i686,你可以直進入/usr/src/kernel/相應(yīng)的目錄中直接執(zhí)行makemenuconfig;利用發(fā)行版本提供的.config來配置,這樣方便點。不要makemrproper,否則.config就沒有了;這也是為什么要用發(fā)行版本提供的內(nèi)核源碼升級包的原因;其它配置和安裝大同小異;模仿總可以吧;簡要的配置內(nèi)核;進入配置內(nèi)核的配置模式后,我們可能一無所知,看下面;內(nèi)核配置有兩種方法,一種是直接置入內(nèi)核*;另一種是編成模塊M;兩種方法各有優(yōu)點;直接編入內(nèi)核的,比如設(shè)備的啟動,不再需要加載模塊的這一過程了;而編譯成模塊,則需要加載設(shè)備的內(nèi)核支持的模塊;但直接把所有的東西都編入內(nèi)核也不是可行的,內(nèi)核體積會變大,系統(tǒng)負載也會過重。我們編內(nèi)核時最好把極為重要的編入內(nèi)核;其它的如果您不明白的,最好用默認。移動鍵盤上下左右鍵,按Enter進入一個目錄。把指針移動到Exit就退出當前目錄到上級目錄;針對自己機器存在的問題進行修改,比如大內(nèi)存的支持;選擇自己機器的CPU;移動鍵盤到Processortypeandfeatures--->,然后按ENTER進入;找到Processorfamily(Pentium-Pro)--->按ENTER進入;進入后我們發(fā)現(xiàn)有好多CPU的型號可選;一般的情況下要根據(jù)bash-3.00#cat/proc/cpuinfo輸出的信息來選,比如我們的是Celeron(P4)—代的,應(yīng)該選如下的,當然默認的486也是可以正常運行的,既然我們重編一次內(nèi)核,就得選中對應(yīng)型號的,也許性能有所提高呢;

代碼:Processorfamily(Pentium-4/Celeron(P4-based)/Pentium-4M/Xeon)復制代碼對大內(nèi)存支持;如果內(nèi)存是1G或者1G以上,但小于4G的,就要選4G支持;如果超過4G的,要選64G的支持;代碼:HighMemorySupport(4GB)——>(X)4GB()64GB復制代碼還有比如聲卡等硬件,需要我們一步一步的查看;如果有不明之處,就要按[shift]+?的組合鍵來查看說明。一般的情況下,2.6.x的內(nèi)核會根據(jù)機器的情況自動配出一個文件,只需要我們來查看一下,把重要的地方改改就行了;再舉個例子:比如我現(xiàn)在所用的聲卡是intelac97的,我應(yīng)該怎么配置呢?首先要知道自己的聲卡的芯片組,我們要通過lspci-v來查看;代碼:1. [root@localhostbeinan]#lspci-v復制代碼只查看聲卡的,應(yīng)該用如下的方法:代碼:1.[root@localhostbeinan]#lspci-v|grepaudio2. 00:1f.5Multimediaaudiocontroller:3.IntelCorp.82801DB(ICH4)AC'97AudioController(rev03)

復制代碼通過上面的輸出,我們知道這臺機器用的是intelAC97聲卡;所以我們要特別注意AC97的配置;代碼:找到DeviceDrivers--->Sound--->Soundcardsupport聲卡的支持,這個是一定要選中的吧;AdvancedLinuxSoundArchitecture對聲卡支持的ALSA驅(qū)動的支持;下面有OSS驅(qū)動,只是一部份。如果想用OSS的驅(qū)動更全的,可以去買;其它的就看如

下的選吧;Sequencersupport2.Sequencerdummyclient4.5.OSSMixerAPI6?7.OSSPCM(digitalaudio)API[*]OSSSequencerAPI8.9.RTCTimersupport[*]Verboseprintk[]Debug復制代碼

大多是默認的就好,如果您不知道是做什么用的,或者怎么用;然后我們再向下看有代碼:Genericdevices--->進入里面1.Dummy(/dev/null)soundcard

2.3.VirtualMIDIsoundcard4.5.MOTUMidiTimePieceAVmultiportMIDI6.7. UART16550serialMIDIdriver8.9.GenericMPU-401UARTdriver10.11.ISAdevices--->如果您用ISA聲卡就在這里面選;12.13.PCIdevices--->如果您用PCI聲卡,就在這里面選,集成聲卡也在這里;14.15.USBdevices--->這是USB聲卡內(nèi)核支持選項;我有一個這樣的聲卡,但沒有試過;16.17.PCMCIAdevices--->這是PCMCIA聲卡的選項,我還沒有看過這樣的聲卡呢;如果您有,就在這里面動動手吧。復制代碼因為我用的是Intel集成的聲卡,所以要在PCI中選擇,我們在中可以看到有兩個與INTEL有關(guān)的;代碼:Intel/SiS/nVidia/AMD/ALiAC97Controller這個才是IntelAC97聲卡的;<>Intel/SiS/nVidia/AMDMC97Modem(EXPERIMENTAL)這個是機器集成的INTEL貓的蜂鳴器的;因為我發(fā)現(xiàn)如果把貓的蜂鳴器的驅(qū)動也選上,可能造成兩個沖突。所以只能選上面的那個我們再回到OpenSoundSystem--->中看看,與我用的聲卡是不是有關(guān)的?代碼:OpenSoundSystem(DEPRECATED)

3.IntelICH(i8xx)audiosupport4.5.OSSsoundmodules6.7.LoopbackMIDIdevicesupport8.9. MicrosoftSoundSystemsupport復制代碼我們也可以看到OpenSoundSystem中也有好多的聲卡驅(qū)動,大家根據(jù)前面的lspci-v

來選擇吧。3)對于操作系統(tǒng)所采用的文件系統(tǒng)的支持要編入內(nèi)核,最好不要編成模塊;(重要)比如我的Fedoracore4.0所采用的文件系統(tǒng)用的是ext3,所以我要把它直接編入內(nèi)

核;好處是不受模塊丟失或者損壞而不能啟動系統(tǒng);而有時您把系統(tǒng)所采用的文件系統(tǒng)編譯

成模塊,出現(xiàn)VFS錯誤,也有這方面的事,可能是您沒有把ext3加入到相應(yīng)的加載模塊的

配置文件中,所以我們?yōu)榱藴p少麻煩,把風險降到最低,還是要直接置入內(nèi)模的好;代碼:Filesystems——><*>Ext3journallingfilesystemsupport[*]Ext3extendedattributes[*]Ext3POSIXAccessControlLists[*]Ext3SecurityLabels復制代碼如果您還有其它的硬盤分區(qū)要讀取,比如是reiserfs、ext2、fat、fat32、ntfs等,

這樣的可以編成模塊來支持;再舉一例:如果您的的操作系統(tǒng)用的是reiserfs的文件系統(tǒng),當然就要把reiserfs

的直接編入內(nèi)核,其它的可以編成模塊來支持了;

4)對于硬盤及RAID的支持,要直接編入內(nèi)核;

比如ATA、SATA、SCSI及RAID的支持直接內(nèi)核支持;有時編完內(nèi)核后,啟動時不能識

別硬盤和RAID,大多事情出在這里;Slackware中在這方面有的是模塊支持,我們可以把它

由模塊M改成內(nèi)核*來支持;如果您不明白,就按默認進行;SATA的硬盤的支持除了選中

SATA的支持、IDE設(shè)備的支持以外,還要選中SCSI的支持;5)對于咱們所沒有的設(shè)備,可以在內(nèi)核中不選,熟能生巧罷了;比如我沒有ISDN設(shè)備,所以就把ISDN去掉;代碼:ISDNsubsystem——><>Linuxtelephonysupport復制代碼如果您沒有1394的設(shè)備,當然可以把1394的支持也去掉;等等。。。。。。。如果您有USB的設(shè)備,要把USB方面好好看看;比如大家常用的移動硬盤;USB貓等,

還有掃描儀等;內(nèi)核配置就說這么多吧,太多了,我也說不清楚,水平有限??;配置好后先要保存SaveConfigurationtoanAlternateFile復制代碼出來一個1.Enterafilenametowhichthisconfiguration,shouldbesavedasanalternate.Leaveblanktoabort.2..config復制代碼按回車就行了,這樣就保存住了;

然后退出Exit,這時也會出現(xiàn)保存;如果你想把.config保存起來,可以再復制一份到安全一點的目錄,以備后用;五、編譯內(nèi)核;代碼:1. [root@localhostlinux-]#make2.3. [root@localhostlinux-]#makemodules_install復制代碼這樣就編譯好了,并把模塊也安裝在了/lib/modules目錄中了,請看:

代碼:1. [root@localhostlinux-]#ls/lib/modules/2.3. 2.6.11-1.1369_FC復制代碼六、安裝內(nèi)核及配置grub或lilo;1、復制bzlmage等相關(guān)文件,并創(chuàng)建initrd文件;代碼:1.[root@localhostlinux-]#cparch/i386/boot/bzImage/boot/vmlinuz-[root@localhostlinux-]#cpSystem.map/boot/System.map-[root@localhostlinux-]#cd/boot[root@localhostlinux-]#/sbin/mkinitrdinitrd-.img 復制代碼我們把編譯出來的bzlmage,拷入到/boot目錄,拷貝成vmlinuz-;

并且用mkinitrd來創(chuàng)建imitrd-xxx.img文件,其中xxx為內(nèi)核的版本號,是通過查

看/lib/modules來版本來對應(yīng)的,我們是編譯出來的是,所以就運行上面的命

令創(chuàng)建,創(chuàng)建的出來的是initrd-.img;不創(chuàng)建這個文件,有時是啟動不起來的

比如提示VFS錯誤等;2、查看系統(tǒng)引導管理器grub或者lilo的配置文件。如果想要讓新內(nèi)核能讓系統(tǒng)引導管理器grub和lilo的菜單上能看得到,必須改

grub.conf或者lilo.conf,但我們必須保留老內(nèi)核的在grub和lilo的啟動菜單,畢竟我

們編內(nèi)核不能百分百的成功,對不對??安全第一吧;我只說grub的,我沒有l(wèi)ilo,也不會用。所以咱們還是GRUB吧,F(xiàn)C4系統(tǒng)引導管理

器是GRUB,所以我們談?wù)凣RUB的設(shè)置;查看/etc/grub.conf;比如我的grub.conf的內(nèi)容是這樣的;代碼:1. #grub.confgeneratedbyanaconda##Notethatyoudonothavetorerungrubaftermakingchangestothisfile#NOTICE:Youdonothavea/bootpartition.Thismeansthat# allkernelandinitrdpathsarerelativeto/,eg.# root(hd0,7)# kernel/boot/vmlinuz-versionroroot=/dev/hda8# initrd/boot/initrd-version.img#boot=/dev/hdadefault=0timeout=5#splashimage=(hd0,7)/boot/grub/splash.xpm.gz#hiddenmenutitleFedoraCore(2.6.11-1.1369_FC4)kernel/boot/vmlinuz-2.6.11-1.1369_FC4roroot=LABEL=/rhgbquietinitrd/boot/initrd-2.6.11-1.1369_FC4.imgtitleWinXProotnoverify(hd0,0)chainloader+1復制代碼我們要把老內(nèi)核的啟動保留下來,以防不測,我們只加入新的內(nèi)核的啟動;所以我加上

這樣一段;代碼:1.titleFedoraCore()root(hd0,7)kernel/boot/vmlinuz-roroot=LABEL=/rhgbquietinitrd/boot/initrd-.img復制代碼咱們再來看一下改過后

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論