自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux內(nèi)核編譯之高手教程

系統(tǒng) Linux
下面文章解析Linux系統(tǒng)內(nèi)核編譯的教程,學(xué)教會(huì)你大概的流程,讓你走向Linux高手之路。

   下載源代碼

  Linux內(nèi)核總是不斷發(fā)展的,***的內(nèi)核Kernel2.6.0對(duì)USB2.0予以正式的支持,以及內(nèi)核模塊文件后綴最顯著的一個(gè)變化由*.o到*.ko等等,我們可以從www.kernel.org下載到tarball的源代碼包。

  前期準(zhǔn)備

  大家都知道的要先升級(jí)“module-init-tools“軟件包,否則的話,等你安裝內(nèi)核模塊文件的時(shí)候,系統(tǒng)會(huì)提示你:Warning: you may need to install module-init-tools See http://www.codemonkey.org.uk/post-h...4.21-23.src.rpm。

  進(jìn)入下載目錄下并安裝:

  1.  #rpm -e --nodeps modutils (強(qiáng)行卸載原有的modutilsRPM包)    #rpm -ivh modutils-2.4.21-23.src.rpm   (把源代碼  
  2. 包安裝到了    /usr/src/redhat目錄下)      
  3. #cd /usr/src/redhat/SPECS (進(jìn)入規(guī)范文件目錄下)      
  4. #rpmbuild --bb modutils.spec (生成二進(jìn)制的RPM包)      
  5. #cd ../RPMS/i386 (轉(zhuǎn)入剛生成的二進(jìn)制的RPM包所在位置)      
  6. #rpm -ivh modutils*.rpm (剛生成兩個(gè)[modutils-2.4.21-  
  7. 23.i386.rpm      與modutils-debuginfo-  
  8. 2.4.21.23.i386.rpm]二進(jìn)制的RPM包,一起安裝吧?。?nbsp;   

  因?yàn)槭窃赗edHat9.0的平臺(tái),RedHat的用戶可能還會(huì)遇到一些麻煩,我會(huì)慢慢說的,除了要以上的升級(jí)之外,還有個(gè)文件(/etc/rc.d/rc.sysinit)可能有缺陷,因?yàn)?proc/ksyms文件在新內(nèi)核(Kernel2.6.0)中已經(jīng)沒有了,打開文件命令如下:

 

  1.  #vi /etc/rc.d/rc.sysinit    找到:  if ! LC_ALL=C   
  2. grep -iq nomodules /proc/cmdline 2>/dev/null      && [ -  
  3. f /proc/ksyms ]; then    USEMODULES=y  fi    替換  
  4. 成:  if ! LC_ALL=C   grep -iq nomodules /proc/cmdline   
  5. 2>/dev/null;   then  USEMODULES=y  fi 

也就是把“&& [ -f /proc/ksyms ]”去掉,保存文件(操作之前***做備份以免刪錯(cuò),這個(gè)文件是系統(tǒng)初始腳本,重要的很),這樣子內(nèi)核才能加載模塊,當(dāng)然能啟動(dòng)iptable防火墻了,否則防火墻在新內(nèi)核中啟動(dòng)時(shí)紅色的“failed“非常醒目。(請(qǐng)?jiān)谛聝?nèi)核中核查/proc/sys/kernel/modprobe中的內(nèi)容是不是: /sbin/modprobe,也可手工注入指令:#echo "/sbin/modprobe" > /proc/sys/kernel/modprobe)。下面開始構(gòu)造新內(nèi)核。

#p#

一、準(zhǔn)備源代碼

 

  1、下載到tarball包之后,將內(nèi)核tarball包復(fù)制到/usr/src目錄下,假定包在當(dāng)前目錄中,運(yùn)行以下命令:

  #cp linux-2.6.0.tar.gz /usr/src

  2、轉(zhuǎn)到/usr/src目錄并解開tarball包。

 

  1.  #cd /usr/src  #tar xvzf linux-2.6.0.tar.gz 

       3、如果你還下載了補(bǔ)丁包,則打上補(bǔ)丁,你也可以運(yùn)行scripts/patch-kernel腳本文件自動(dòng)打上補(bǔ)?。?zhǔn)備好補(bǔ)丁包)或 #zcat patch-2.6.0.gz|patch -p1。

二、定制內(nèi)核

  定制內(nèi)核是門很大的學(xué)問,需要大量的硬件知識(shí),特別是2.6.0的內(nèi)核,如果你從 2.4.N配置文件裝載進(jìn)去的,的確,很多人遇到過麻煩。我是重新配置文件(X窗口服務(wù)器進(jìn)行),配制內(nèi)核之前請(qǐng)清理源代碼樹,如果還沒有進(jìn)入 /usr/src/linux-2.6.0目錄,請(qǐng)進(jìn)入此目錄,命令如下:

 

  1. #make mrproper (剛解開的tarball包不需此步驟)    #make   
  2. gconfig (需要Gtk開發(fā)庫的支持)    或make config  或make   
  3. xconfig(需要Qt開發(fā)庫的支持) 

注意:如果你是ext3文件系統(tǒng),則在定制內(nèi)核配置文件時(shí)把對(duì)Ext3、Ext2文件的支持直接編譯進(jìn)內(nèi)核,否則,等你啟用新內(nèi)核時(shí)機(jī)器就會(huì)當(dāng)?shù)簦鲥e(cuò)信息如下:kernel panic : no init found ,try passing init = option to kernel......或者是:kernel panic:VFS:Unable to mount root fs on unknown-block(0,0),我一開始不知道,編譯了好幾次,系統(tǒng)總給我冷板凳坐,***把對(duì)Ext3、Ext2文件系統(tǒng)的支持直接編譯進(jìn)內(nèi)核,才解決此問題,還有把對(duì)“Module unloading“選項(xiàng)也選上,否則的話,你在新內(nèi)核環(huán)境下無法卸載內(nèi)核模塊(rmmod命令不能用)。

三、編譯內(nèi)核及模塊

  定制好的內(nèi)核配置文件(/usr/src/linux- 2.6.0/.config)之后,激動(dòng)的時(shí)刻到來了,編譯內(nèi)核及模塊,#make (此命令已完成make bzImage及make modules的工作),bzImage內(nèi)核文件在arch/i386/boot目錄中,你的CPU不同內(nèi)核文件存放位置也不同,我是Intel的 CPU。

  注意:我在RedHat7.2平臺(tái)時(shí)曾出現(xiàn)無法編譯的出錯(cuò)信息,出錯(cuò)信息如下:

 

  1. /tmp/cc2Hu7sH.s:3: Error: Unknown pseudo-op:     
  2. `.incbin'  make[1]:   *** [usr/initramfs_data.o]   
  3. Error 1  make:   *** [usr] Error 2, 

     重新裝了個(gè)9.0的才解決此問題。說明:make命令在我的1.6GHz,128MB的機(jī)器上跑了足足27分鐘。

#p#

四、安裝模塊及內(nèi)核文件

 

  #make modules_install install

  以上這個(gè)命令可以分解成make modules_install與make install,make modules_install安裝內(nèi)核模塊到/lib/modules/2.6.0下。make install完成mkinitrd命令及內(nèi)核(bzImage)和System.map的拷貝,請(qǐng)查看/boot目錄,文件名是有區(qū)別的,如是GRUB 引導(dǎo)器,make install命令已幫你自動(dòng)修改了引導(dǎo)選項(xiàng),對(duì)于LILO則要手工修改,重寫引導(dǎo)記錄。

  說明:make modules_install install這個(gè)命令在我的1.6GHz,128M的機(jī)器上只跑了三十幾秒,很快的哦。

五、后記

  ***的工作就是重啟系統(tǒng)(#shutdown -r now),檢驗(yàn)一下你的勞動(dòng)成果吧。差點(diǎn)忘了還有一點(diǎn),可能對(duì)你很重要,進(jìn)入新內(nèi)核之后我發(fā)現(xiàn)rpm命令不能用了,原來這是RPM的一個(gè)Bug,特別是對(duì)于RH9的用戶,請(qǐng)打開/etc/profile文件,命令如下:

 

  1.  #vi /etc/profile (在文件的末尾加上幾句如下)    if   
  2. [`uname -r`="2.6.0" ];  then  export   
  3. LD_ASSUME_KERNEL=2.2.5 fi 

 

也就是給系統(tǒng)加上一個(gè)全局的環(huán)境變量,也可直接鍵入#export LD_ASSUME_KERNEL=2.2.5。

  使用新內(nèi)核可能出現(xiàn)的問題及對(duì)策:

  1、新內(nèi)核根本起不來,解決方法:重新配置內(nèi)核(學(xué)問挺大),也許還根引導(dǎo)記錄有關(guān)(很少了)。

  2、新內(nèi)核模塊無法加載,會(huì)導(dǎo)致很多問題,比如了防火墻沒法工作了,mount不上光盤和vfat及ntfs文件系統(tǒng),其解決方法:升級(jí)module- init-tools軟件包(我是modutils-2.4.21- 23.src.rpm包),RedHat的用戶可能還要修改/etc/rc.d/rc.sysinit文件。

  3、RedHat用戶rpm命令不能使用,解決辦法:請(qǐng)把變量在全局配置文件中聲明。

Linux內(nèi)核編譯就講到這里,請(qǐng)高手多多指教。

【編輯推薦】

  1. 微軟7月停止更新Win98 韓全面向Linux過渡
  2. 新一代Linux內(nèi)核:更好的Wi-Fi和文件系統(tǒng)
  3. Linux開發(fā)工具Blackdown Java 1.4.2-03 發(fā)布
  4. Linux新內(nèi)核2.6.14又有新亮點(diǎn)
  5. ***Linux內(nèi)核將提供Infiniband架構(gòu)全面支持
  6. 新一代Linux內(nèi)核:更好的Wi-Fi和文件系統(tǒng)

 

 

 

責(zé)任編輯:趙鵬 來源: 天極網(wǎng)
相關(guān)推薦

2014-01-09 15:00:09

Linux內(nèi)核

2010-06-10 10:41:38

openSUSE使用教

2017-03-27 18:05:49

Linux內(nèi)核編譯與開發(fā)

2010-03-02 16:13:56

Linux升級(jí)

2009-12-17 15:18:47

2023-10-05 15:47:04

Linux內(nèi)核編譯

2009-10-16 09:45:41

Linux內(nèi)核操作系統(tǒng)

2010-07-21 14:05:31

2021-05-26 07:53:58

Linux運(yùn)維Linux系統(tǒng)

2010-02-26 10:17:15

Linux uClin

2010-04-20 10:12:05

2009-10-23 16:35:44

linux Debia

2010-02-02 13:26:53

Linux內(nèi)核

2023-05-08 08:05:42

內(nèi)核模塊Linux

2010-06-10 10:49:32

openSUSE使用教

2023-07-25 15:17:38

Linux操作系統(tǒng)開發(fā)

2009-09-07 08:58:23

VMWare編譯lin

2009-12-01 12:59:50

編譯Suse Linu

2010-05-13 09:45:26

Linux地址空間

2010-03-02 15:47:39

Linux內(nèi)核系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)