麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 系統(tǒng) > RedHat > 正文

RedHat linux 8.0下內(nèi)核編譯步驟和說明

2020-10-28 19:00:10
字體:
供稿:網(wǎng)友

***********************************************************************
*以下步驟有很多都是很初級(jí)的命令或解釋,因?yàn)榕际莑inux新手,
*在編譯過程中走了很多彎路,花了大量時(shí)間找各種解決辦法,所以
*把相應(yīng)的命令都寫了出來,希望對(duì)跟偶一樣的才入門不久而又想
*編譯內(nèi)核的新手有所幫助!
*
* kilvon 05-Mar-2003
**********************************************************************

基本編譯情況說明:偶目前的版本是: RedHat linux 8.0
(機(jī)器有雙操作系統(tǒng):linux和windows 2000)
內(nèi)核版本是 2.4.18-14,硬件是筆記本compaq 的某一型號(hào),
下載的內(nèi)核版本是2.4.20(在www.kernel.org上可以找到),
推薦編譯內(nèi)核時(shí)使用高版本,而不是在以前的版本上編譯,
原因見第7.1步的說明

在編譯開始前,建議先在windows下用相關(guān)軟件對(duì)硬件做一個(gè)
詳細(xì)統(tǒng)計(jì),包括硬件類型,廠家,芯片版本等等,特別是筆記本
和品牌機(jī),因?yàn)槎吆芏嗖考际荗EM其它廠家的,并把它打印
出來以供配置內(nèi)核時(shí)使用.(linux下也可以用:系統(tǒng)工具->
硬件瀏覽器來查看)

另外建議在身旁準(zhǔn)備幾張紙和筆,隨時(shí)把你認(rèn)為重要的信息記下來,
當(dāng)然包括錯(cuò)誤信息了,以幫助以后判斷和解決問題.

1.將內(nèi)核源碼包linux-2.4.20.tar.bz2 copy至/usr/src目錄下:
#cp linux-2.4.20.tar.bz2 /usr/src
#cd /usr/src

2.將指向以前內(nèi)核版本的symbol link刪除
#rm -f linux-2.4

3.用以下命令解開壓縮包
#bzip2 -d linux-2.4.20.tar.bz2
#tar -xvf linux-2.4.20.tar

4.創(chuàng)建新的symbol link以鏈接到剛解開的源碼所在目錄
#ln -s linux-2.4.20 linux-2.4

5.進(jìn)入到以后編譯時(shí)用的工作目錄蝦:
#cd /usr/src/linux-2.4

6.該命令保證源代碼目錄下沒有不正確的.o文件(即object文件,編譯c語(yǔ)
言時(shí)生成的,目的是下一步編譯成可執(zhí)行碼時(shí)link之用)以及文件的相互
倚賴關(guān)系.第一次編譯剛下載的源碼包不用此命令,但如果多次使用這
些源碼編譯內(nèi)核,那么一定要先運(yùn)行本命令.
#make mrproper

7.為了不影響已經(jīng)可用的內(nèi)核(比如安裝linux時(shí)裝入的內(nèi)核),現(xiàn)在需要
保存以前的可用的內(nèi)核(以使得編譯失敗仍然可以"方便的"啟動(dòng)linux),
并且我們要對(duì)本次編譯的內(nèi)核標(biāo)識(shí)一個(gè)容易辨認(rèn)的標(biāo)記,以下幾步與
編譯暫時(shí)無關(guān).

7.1偶使用grub作為boot manager,所以要修改grub.conf文件,
#cp /boot/grub/grub.conf /boot/grub/grub.conf.bck
(建議有條件打印一份原始的grub.conf文件,原因見第7.4步)
#emacs /boot/grub/grub.conf
(emacs小提示: ctrl+ x +s 為保存結(jié)果,ctrl + x +c為關(guān)閉emacs,
刪除n行文字為:先把光標(biāo)放在要?jiǎng)h除文字的起始處 ctrl + u,然后敲入要
刪除的行數(shù),比如4,最后ctrl + k)

下面是偶的grub.conf內(nèi)容:
default=1
timeout=10
splashimage=(hd0,6)/grub/splash.xpm.gz
title Psyche (2.4.18-14 standard)
 root (hd0,6)
 kernel /vmlinuz-2.4.18-14.standard ro root=/dev/hda8
 initrd /initrd-2.4.18-14.standard.img
title Windows 2000
 rootnoverify (hd0,0)
 chainloader +1

注意kernel...和initrd...兩條語(yǔ)句,因?yàn)橐c以下改動(dòng)對(duì)應(yīng):
#rm -f /boot/System.map
#rm -f /boot/vmlinuz
#cp /boot/System.map-2.4.18-14 /boot/System.map-2.4.18.standard
#ln -s /boot/System.map-2.4.18.standard /boot/System.map
#cp /boot/vmlinuz-2.4.18-14 /boot/vmlinuz-2.4.18-14.standard
#ln -s /boot/vmlinuz-2.4.18-14.standard /boot/vmlinuz
#cp /boot/initrd-2.4.18-14.img /boot/initrd-2.4.18-14.standard.img
(initrd只用了copy,因?yàn)榕际蔷幾g一個(gè)高版本的內(nèi)核,而不是同一個(gè)版本
內(nèi)核的重新編譯,編譯高版本的好處在于系統(tǒng)會(huì)建立另外的目錄而不會(huì)
用新編譯的(可能是錯(cuò)的)版本覆蓋以前的版本,看一下/lib/modules目錄
就明白了.)

7.2如何知道你的根目錄"/"在哪個(gè)partition上? 命令為:
#df
以下是偶機(jī)器的部分輸出:
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda8              4137264   2136592   1790508  55% /
...

看看你的系統(tǒng)根目錄裝在哪里很重要,因?yàn)楹竺婺銓?huì)看到系統(tǒng)安裝編譯好的內(nèi)核時(shí)在grub.conf插入的命令中root=LABEL=/ hdc=ide-scsi
可能會(huì)引發(fā)系統(tǒng)引導(dǎo)時(shí)的如下錯(cuò)誤:
VFS: Cannot open root device "" or 00:00
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to Mount root fs on 00:00
所以要在grub.conf里修改其命令為:root=/dev/hda8

7.3好了,做完這些準(zhǔn)備工作后,我們要--
重啟一下機(jī)器,:)不要急,應(yīng)為要先確認(rèn)7.1步的工作的正確性,以免把7.1錯(cuò)誤
帶入以后的步驟中.(編譯內(nèi)核一定要非常小心謹(jǐn)慎,不能急躁,否則,嘿嘿...)

7.4如果在重啟過程中系統(tǒng)有問題,可以在grub的引導(dǎo)界面上臨時(shí)改動(dòng)grub引
導(dǎo)參數(shù),相關(guān)命令有:
e -編輯引導(dǎo)命令
ESC鍵 -回到上級(jí)目錄
o -插入一行命令
b -開始引導(dǎo)系統(tǒng)
d -刪除一行
其實(shí)你可以把grub控制臺(tái)上的命令都刪了(只影響本次啟動(dòng)),然后按照
/boot/grub/grub.conf里的命令手工在grub控制臺(tái)上敲進(jìn)去,也是一樣的效果.

7.5如果你能使用重新配置的grub命令正確啟動(dòng)系統(tǒng),那么讓我們開始真正的
編譯工作吧!!!!

7.6先保證我們?cè)诰幾g的工作目錄下:
#cd /usr/src/linux-2.4
然后編輯Makefile(這個(gè)文件是用來控制編譯用的),找到這一行:
EXTRAVERSION = 
修改為(以偶本次編譯為例,也可以是任意的合法字符串,比如"-sema-v.4")
EXTRAVERSION = -kilvon.001

8.偶是在X Window下編譯:
#make xconfig

8.1如果你是在文本模式下,用
#make menuconfig

8.2其實(shí)編譯步驟里最難的就是內(nèi)核參數(shù)的配置,我在這里耗費(fèi)了很多時(shí)間,
更慘的是開始并沒有認(rèn)識(shí)到這一點(diǎn),以為是那些命令的使用...所以,接著看吧:


8.3選擇的原則是將與內(nèi)核其它部分關(guān)系較遠(yuǎn)且不經(jīng)常使用的部分功能代碼編譯成為可加載模塊(哪些較遠(yuǎn)?看各人對(duì)linux和操作系統(tǒng)概念的理解程度了,還有就是看所配置項(xiàng)的help),有利于減小內(nèi)核的長(zhǎng)度,減小內(nèi)核消耗的內(nèi)存,簡(jiǎn)化該功能相應(yīng)的環(huán)境改變時(shí)對(duì)內(nèi)核的影響;不需要的功能就不要選;與內(nèi)核關(guān)心緊密而且經(jīng)常使用的部分功能代碼直接編譯到內(nèi)核中。下面對(duì)常用的選項(xiàng)分別加以介紹:

/1. Code maturity level options
代碼成熟等級(jí)。此處只有一項(xiàng):
prompt for development and/or incomplete code/drivers
如果你要試驗(yàn)現(xiàn)在仍處于實(shí)驗(yàn)階段的功能,比如khttpd、IPv6等,就必須
把該項(xiàng)選擇為Y了;否則可以把它選擇為N。

/2. Loadable module support
對(duì)模塊的支持。這里面有三項(xiàng):

Enable loadable module support:
除非你準(zhǔn)備把所有需要的內(nèi)容都編譯到內(nèi)核里面,否則該項(xiàng)應(yīng)該是必選的。
Set version information on all module symbols:
可以不選它。
Kernel module loader:
讓內(nèi)核在啟動(dòng)時(shí)有自己裝入必需模塊的能力,建議選上。

/3. Processor type and features
CPU類型,選項(xiàng)很多,不一一介紹了,有關(guān)的幾個(gè)如下:

Processor family:
根據(jù)你自己的情況選擇CPU類型。
High Memory Support:
大容量?jī)?nèi)存的支持。可以支持到4G、64G,一般可以不選。
Math emulation:
協(xié)處理器仿真,協(xié)處理器是在386時(shí)代的寵兒,現(xiàn)在早已不用了。
MTTR support:MTTR支持。可不選。
Symmetric multi-processing support:
對(duì)稱多處理支持。除非你富到有多個(gè)CPU,否則就不用選了。

/4. General setup
這里是對(duì)最普通的一些屬性進(jìn)行設(shè)置。這部分內(nèi)容非常多,一般使用缺省設(shè)置就可以了。下面介紹一下經(jīng)常使用的一些選項(xiàng):

Networking support:
網(wǎng)絡(luò)支持,必須選,沒有網(wǎng)卡也建議選上。
PCI support:
PCI支持,必選.
PCI access mode:
PCI存取模式。可供選擇的有BIOS、Direct和Any,選Any吧。
Support for hot-pluggabel devices:
熱插拔設(shè)備支持,可選.
PCMCIA/CardBus support:
PCMCIA/CardBus支持,有PCMCIA就必選了。
System V IPC
BSD Process Accounting
Sysctl support:
以上三項(xiàng)是有關(guān)進(jìn)程處理/IPC調(diào)用的,主要就是System V和BSD兩種風(fēng)格。
如果你不是使用BSD,就按照缺省吧。
Power Management support:電源管理支持,可選上,特別是筆記本.
Advanced Power Management BIOS support:高級(jí)電源管理BIOD支持。

/5. Memory Technology Device(MTD)
MTD設(shè)備支持
可不選。

/6. Parallel port support
串口支持。如果不打算使用串口,就別選了。

/7. Plug and Play configuration
即插即用支持。選上吧,可以體驗(yàn)一下Linux下即插即用的感覺。

/8. Block devices
塊設(shè)備支持,需要針對(duì)每個(gè)人的具體情況來選:

Normal PC floppy disk support:普通PC軟盤支持,一般要選,我的沒有,
就沒選
XT hard disk support:
Compaq SMART2 support:
Mulex DAC960/DAC1100 PCI RAID Controller support:RAID鏡像用的。
Loopback device support:
Network block device support:網(wǎng)絡(luò)塊設(shè)備支持。如果想訪問網(wǎng)上鄰居的
東西,就選上。
Logical volume manager(LVM)support:邏輯卷管理支持。
Multiple devices driver support:多設(shè)備驅(qū)動(dòng)支持。
RAM disk support:RAM盤支持。

/9. Networking options
網(wǎng)絡(luò)選項(xiàng)。這里配置的是網(wǎng)絡(luò)協(xié)議。自己看吧.
除了肯定要選中TCP/IP networking外,其它看著辦吧

/10. Telephony Support
Linux下可以支持電話卡,這樣你就可以在IP上使用普通的電話提供語(yǔ)音服務(wù).詳細(xì)情況可看看help內(nèi)容.

/11. ATA/IDE/MFM/RLL support
這個(gè)是有關(guān)各種接口的硬盤/光驅(qū)/磁帶/軟盤支持的,內(nèi)容太多了,使用缺省
的選項(xiàng)吧,偶有PCMCIA卡,各人機(jī)器情況不一樣.

/12. SCSI support
SCSI設(shè)備的支持, 如果你用了SCSI的硬盤/光驅(qū)/磁帶等設(shè)備,自己找好了.

/13. IEEE 1394(FireWire)support
偶的是灰的,不用操心了,:))

/14. I2O device support
在智能Input/Output(I2O)體系接口中使用,不會(huì),用缺省吧.

/15. Network device support
網(wǎng)絡(luò)設(shè)備支持。上面選好協(xié)議了,現(xiàn)在該選設(shè)備.
為了免得麻煩,編譯到內(nèi)核里面好了,不選M了,選Y。耐心點(diǎn),一般說來你都能找到自己用的網(wǎng)卡。如果沒有,你只好自己到廠商那里去當(dāng)驅(qū)動(dòng)了,
或者去www.mydrivers.com看看

/16. Amateur Radio support
沒有,不選.

/17. IrDA(infrared)support
這個(gè)要紅外支持,我的有.

/18. ISDN subsystem
如果你使用ISDN上網(wǎng),這個(gè)就必不可少了

/19. Old CD-ROM drivers(not SCSI、not IDE)
專門為非SCSI/IDE口的光驅(qū)做的,但誰(shuí)還在用那么老的東東啊,自己選吧.

/20.Input Core Support
這個(gè)選項(xiàng)很重要,除了joystick(游戲遙控桿)建議都選"m".切記!

/21. Character devices
字符設(shè)備。這個(gè)內(nèi)容又太多了,先使用缺省設(shè)置,需要的話自己就修改:

I2C support:I2C是Philips極力推動(dòng)的微控制應(yīng)用中使用的低速串行
總線協(xié)議。如果你要選擇下面的Video For Linux,該項(xiàng)必選。
Mice:鼠標(biāo)。如果是筆記本,建議在Bus Mouse Support選上"y".
Joysticks:手柄。即使在Linux下把手柄驅(qū)動(dòng)起來意義不大
Watchdog Cards:雖然稱為Cards,這個(gè)可以用純軟來實(shí)現(xiàn),當(dāng)然也有
硬件的。如果你把這個(gè)選中,那么就會(huì)在你的/dev下創(chuàng)建一個(gè)名為
watchdog的文件,它可以記錄你的系統(tǒng)的運(yùn)行情況,一直到系統(tǒng)重新
啟動(dòng)的1分鐘左右。有了這個(gè)文件,你就可以恢復(fù)系統(tǒng)到重啟前的狀態(tài)了。
Video For Linux:支持有關(guān)的音頻/視頻卡。
Ftape, the floppy tape device driver:
PCMCIA character device support:

/22.Multimedia devices
為捕捉audio/video用,如果感興趣看看help

/23. File systems
文件系統(tǒng)。內(nèi)容太多了,建議在缺省選項(xiàng)的基礎(chǔ)上進(jìn)行修改。
介紹以下幾項(xiàng):

Quota support:Quota可以限制每個(gè)用戶可以使用的硬盤空間的上限,在多用戶共同使用一臺(tái)主機(jī)的情況中十分有效。
DOS FAT fs support:

DOS FAT文件格式的支持,可以支持FAT16、FAT32。
ISO 9660 CD-ROM file system support:光盤使用的就是ISO 9660的文件格式。
NTFS file system support:ntfs是NT使用的文件格式,你要在linux下mount ntfs分區(qū)的話,就要選上它。記得在mount的時(shí)候,

只有iocharset=cp936可以加上,codepage=936不能加。
/proc file system support:/proc文件系統(tǒng)是Linux提供給用戶和系統(tǒng)進(jìn)行交
互的通道,建議選上,否則有些功能沒法正確執(zhí)行。

還有另外三個(gè)大類都規(guī)到這兒了:Network File Systems(網(wǎng)絡(luò)文件系統(tǒng))、
Partition Types(分區(qū)類型)、Native Language Support(本地語(yǔ)言支持)。
值得一提的是Network File Systems里面的兩種:NFS和SMB分別是Linux和
Windows相互以網(wǎng)絡(luò)鄰居的形式訪問對(duì)方所使用的文件系統(tǒng),根據(jù)需要加以選擇。

/24 Console drivers
用缺省

/25 Sound
你用什么聲卡?選選吧.

/26 USB Support
很重要,至少要選以下選項(xiàng)
Support for USB
UCHI Alternate Deriver (JE) Support
OCHI (Compaq,iMacs...
USB Audio...
USB MIDI...
USB Human Interface Device (full HID) support
HID input layer support
/dev/hiddev raw HID...
USB LCD device support
因?yàn)榕嫉挠布芏喽家骍SB HID 支持,所以這里選了不少

*如果有某些選項(xiàng)那不準(zhǔn),可以參考:
/usr/src/linux-2.4/Documentation/Configure.help
也可以search整個(gè)系統(tǒng)并看看相關(guān)的文字都在哪些文件出現(xiàn):
#find /usr -name "*.*" -print -exec grep
  -q -s mousedev {} /; -print
這個(gè)長(zhǎng)命令很有用

8.4別忘了將你的配置保存到一個(gè)文件里,否則下次編譯時(shí)又要重選!
Load Configuration from file
比如保存到/home/kilvon/conf/Kernel-kilvon.001

8.5用以下命令讀取剛才的配置數(shù)據(jù)使之生效:
#make dep
#make clean

9.開始編譯內(nèi)核和模塊
#make bzImage
#make modules
#make modules_install

10.將編譯好的文件移到/boot下;如果上面某步有錯(cuò),大部分情況是由于
配置內(nèi)核選項(xiàng)時(shí)將一些當(dāng)前版本只能編譯為modules的選為編譯到內(nèi)核里,
我遇到好幾次這樣的情況.應(yīng)為既然www.kernel.org發(fā)布一個(gè)穩(wěn)定的內(nèi)核,
(偶沒down那些alpha,beta版)9成9可以成功的編譯.
#move /usr/src/linux-2.4/System.map /boot/System.map-2.4.20-kilvon.001
#move /usr/src/linux-2.4/arch/i386/boot/bzImage 
 /boot/vmlinuz-2.4.20-kilvon.001
#rm -f System.map
#rm -f vmlinuz
#ln -s /boot/System.map-2.4.20-kilvon.001 /boot/System.map
#ln -s /boot/vmlinuz-2.4.20-kilvon.001 /boot/vmlinuz

11.作些收尾工作:
#new-kernel-pkg --install --depmod --mkinitrd 2.4.20-kilvon.001
--mkinitrd 作Initial Ramdisk的,可以直接敲個(gè)mkinitrd -h看看
--depmod 檢查內(nèi)核中有沒有未解析的symbol
--install 在grub中安裝一個(gè)啟動(dòng)選項(xiàng)

12.看看第7.2步的相關(guān)解釋,現(xiàn)在請(qǐng)修改/boot/grub/grub.conf文件,
以下是修改后的grub.conf:
default=2
timeout=10
splashimage=(hd0,6)/grub/splash.xpm.gz
title Psyche (2.4.20-kilvon.001)
 root (hd0,6)
 kernel /vmlinuz-2.4.20-kilvon.001 ro root=/dev/hda8
 initrd /initrd-2.4.20-kilvon.001.img
title Psyche (2.4.18-14 standard)
 root (hd0,6)
 kernel /vmlinuz-2.4.18-14.standard ro root=LABEL=/ hdc=ide-scsi
 initrd /initrd-2.4.18-14.standard.img
title Windows 2000
 rootnoverify (hd0,0)
 chainloader +1

13.再好好檢查一下/boot下的文件名是否敲對(duì)了(前面有好多的mv,cp動(dòng)作)
[root@localhost boot]# ll
total 8880
   5824  9月  6 04:53 boot.b
    612  9月  6 04:53 chain.b
  42150  9月  5 01:47 config-2.4.18-14
   1024  3月  5 21:32 grub
 130983  3月  5 03:49 initrd-2.4.18-14.img
 130983  3月  4 20:21 initrd-2.4.18-14.standard.img
  65499  3月  5 21:31 initrd-2.4.20-kilvon.001.img
    473  3月  5 03:49 kernel.h
  12288  3月  5 03:44 lost+found
  23108  9月  6 22:05 message
  21282  9月  6 22:05 message.ja
     21  3月  5 03:49 module-info -> module-info-2.4.18-14
  15436  9月  5 01:47 module-info-2.4.18-14
  15436  3月  4 20:21 module-info-2.4.18.standard
  16834  3月  5 21:17 MyKernelSetup-kilvon.001
    640  9月  6 04:53 os2_d.b
     28  3月  5 19:32 System.map -> System.map-2.4.20-kilvon.001
 507814  9月  5 01:47 System.map-2.4.18-14
 507814  3月  4 20:20 System.map-2.4.18-14.standard
 588175  3月  5 21:24 System.map-2.4.20-kilvon.001
3236438  9月  5 01:47 vmlinux-2.4.18-14
     31  3月  5 12:51 vmlinuz -> /boot/vmlinuz-2.4.20-kilvon.001
1125194  9月  5 01:47 vmlinuz-2.4.18-14
1125194  3月  4 20:19 vmlinuz-2.4.18-14.standard
1458790  3月  5 21:24 vmlinuz-2.4.20-kilvon.001

14.好了,來吧:
#reboot

15.如果有錯(cuò)無法啟動(dòng),這回到grub控制臺(tái)然后用以前的內(nèi)核啟動(dòng),還記得嗎?前面第7步的"額外"工作將在這時(shí)為你節(jié)省大量時(shí)間...

16.如果系統(tǒng)可以啟動(dòng)到登錄界面并可以登錄,但啟動(dòng)過程中有Failed的項(xiàng),查看:/var/log/boot.log或該目錄下搜索一下,看看是什么問題,偶就遇到類似問題,
后來通過改變內(nèi)核編譯的配置而解決掉這些討厭的紅色文字,好了,就寫到這里
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人做爰高潮片免费视频美国 | av影院在线播放 | 好吊色欧美一区二区三区四区 | 请播放一级毛片 | 国产91片 | 羞羞视频免费网站男男 | 在线观看免费毛片视频 | 亚洲特黄a级毛片在线播放 久久久入口 | 国产精品1区,2区,3区 | 美女黄影院 | 国产精品一区99 | 毛片视频网址 | 亚洲国产高清自拍 | asiass极品裸体女pics | 国产精品国产三级国产在线观看 | hd极品free性xxx护士人 | 中文字幕在线观看国产 | 91色琪琪电影亚洲精品久久 | 久久久久久久久国产 | 国产精品91在线 | 免费h片| 成人免费自拍视频 | 日韩视频1 | 在线看成人av | 欧美精品a∨在线观看不卡 午夜精品影院 | 国产流白浆高潮在线观看 | 爱唯侦察 国产合集 亚洲 | 免费黄色在线 | 免费观看一区二区三区视频 | 欧美一区2区三区4区公司二百 | 欧美亚洲国产一区 | 深夜毛片免费看 | 欧美成人精品一区二区三区 | 一及毛片视频 | 色视频一区二区 | 成人艳情一二三区 | 毛片免费视频在线观看 | 91www成人久久 | 黄色片免费看看 | 色妹子久久 | 国产成人精品无人区一区 |