導航:首頁 > 源碼編譯 > linux重新編譯內核教程外包

linux重新編譯內核教程外包

發布時間:2022-12-20 05:10:37

① 如何編譯安裝linux內核

1.先解壓解壓後會看到源代碼的目錄linux-2.6.27.69(這個版本要與當前系統的版本一樣查看當系統版本uname-r只要版本號前的數字相同就可以了如2.6.27)2.進入目錄linux-2.6.27.69運行命令makedistclean3.將/boot下面的內核配置文件復制到linux-2.6.27.69下,並命名為.config4.運行命令makemenuconfig(注意操作的時候都要進入linux內核源代碼目錄linux-2.6.27.59)5.運行makebzImage編譯完後會在arch/x86/boot/下面產生一個bzImage內核文件6.makemoles編譯內核模塊7.makemoles_install安裝內核模塊(安裝完後會在/lib/moles下面產生個文件2.6.27.59)8.製作ramddistk文件系統mkinitrdinitrd-2.6.27.59.img2.6.27.599安裝內核cparch/x86/boot/bzImage/boot/vmlinuz-2.6.27.59cpinitrd-2.6.27.59.img/boot/10.修改/etc/grub.conf這個對著配製修改就可以了,但要指定相應內核文件與ramdisk文件修改後真接reboot一下,會出現啟動菜單項,選擇要啟動的內核,就可以了整個編譯安裝的過程就完成了需要注意是:運行makemenucofig的時候可能會出現問題這是由於需安些一些依賴包ncurses-devel在製作ramdisk的時候可能出現錯誤,提示nomolefound之類的提示這個時候要指定參數mkinitrd--builtin=ata_piix整個的編譯安裝過程就是這樣,這個編譯與安裝只是針對x86,至於arm編譯的時候也是類似就不多說了,在整個編譯與安裝可能出現的錯誤就兩個,也說的很清楚了

② 如何編譯Linux內核

1、大概步驟:
1、安裝開發包組
2、下載源碼文件
3、.config:准備文本配置文件
4、make menuconfig:配置內核選項
5、make [-j #]
6、make moles_install:安裝模塊
7、make install :安裝內核相關文件
安裝bzImage為/boot/vmlinuz-VERSION-RELEASE (去boot目錄下查看)
生成initramfs文件
8、編輯grub的配置文件
2、編譯配置選項
配置內核選項
支持「更新」模式進行配置: make help
(a) make config:基於命令行以遍歷的方式去配置內核中可配置的每個選項
(b) make menuconfig:基於curses的文本窗口界面
(c) make gconfig:基於GTK (GNOME)環境窗口界面
(d) make xconfig:基於QT(KDE)環境的窗口界面
支持「全新配置」模式進行配置
(a) make defconfig:基於內核為目標平台提供的「默認」配置進行配置
(b) make allyesconfig: 所有選項均回答為「yes「
(c) make allnoconfig: 所有選項均回答為"no「
3、編譯
全編譯:make [-j #]
編譯內核的一部分功能:
a) 只編譯某子目錄中的相關代碼:
# cd /usr/src/linux
# make dir/
(b) 只編譯一個特定的模塊:
# cd /usr/src/linux
# make dir/file.ko
例如:只為e1000編譯驅動:
#make drivers/net/ethernet/intel/e1000/e1000.ko
4、編譯內核
如何交叉編譯內核:
編譯的目標平台與當前平台不相同;
# make ARCH=arch_name
要獲取特定目標平台的使用幫助
# make ARCH=arch_name help
# make ARCH=arm help
5、清理刪除
在已經執行過編譯操作的內核源碼樹做重新編譯:
需要事先清理操作:
# make clean:清理大多數編譯生成的文件,但會保留config文件等
# make mrproper: 清理所有編譯生成的文件、 config及某些備份文件
# make distclean: mrproper、 patches以及編輯器備份文件
卸載內核
刪除/lib/moles/目錄下不需要的內核庫文件
刪除/usr/src/linux/目錄下不需要的內核源碼
刪除/boot目錄下啟動的內核和內核映像文件
更改grub的配置文件,刪除不需要的內核啟動列表
需要解決更多linux問題,詳情請看 http://www.linuxprobe.com/chapter-00.html
望採納

③ 怎麼重新編譯linux伺服器內核

make
config首先配置內核,生成內核配置文件,如果是伺服器上的,建議使用編輯好的內核配置文件,自己在伺服器上配置比較麻煩;
make再根據生成的配置文件進行編譯;
找到新的內核就可以使用

④ Linux內核編譯

內核,是一個操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網路系統,決定著系統的性能和穩定性。Linux作為一個自由軟體,
在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定
制一個更高效,更穩定的內核,就需要重新編譯內核。本文將以RedHat Linux 6.0(kernel
2.2.5)為操作系統平台,介紹在Linux上進行內核編譯的方法。

一、 下載新內核的源代碼

目前,在Internet上提供Linux源代碼的站點有很多,讀者可以選擇一個速度較快的站點下載。筆者是從站點www.kernelnotes.org上下載了Linux的最新開發版內核2.3.14的源代碼,全部代碼被壓縮到一個名叫Linux-2.3.14.tar.gz的文件中。

二、 釋放內核源代碼

由於源代碼放在一個壓縮文件中,因此在配置內核之前,要先將源代碼釋放到指定的目錄下。首先以root帳號登錄,然後進入/usr/src子目錄。如果用戶在安裝Linux時,安裝了內核的源代碼,則會發現一個linux-2.2.5的子目錄。該目錄下存放著內核2.2.5的源代碼。此外,還會發現一個指向該目錄的鏈接linux。刪除該連接,然後將新內核的源文件拷貝到/usr/src目錄中。

(一)、用tar命令釋放內核源代碼

# cd /usr/src

# tar zxvf Linux-2.3.14.tar.gz

文件釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了內核2.3.14的全部源代碼。

(二)、將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi鏈接到/usr/src/linux/include目錄下的對應目錄中。

# cd /usr/include

# rm -Rf asm linux

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/src/linux/include/linux linux

# ln -s /usr/src/linux/include/scsi scsi

(三)、刪除源代碼目錄中殘留的.o文件和其它從屬文件。

# cd /usr/src/linux

# make mrproper

三、 配置內核

(一)、啟動內核配置程序。

# cd /usr/src/linux

# make config

除了上面的命令,用戶還可以使用make menuconfig命令啟動一個菜單模式的配置界面。如果用戶安裝了X window系統,還可以執行make xconfig命令啟動X window下的內核配置程序。

(二)、配置內核

Linux的
內核配置程序提供了一系列配置選項。對於每一個配置選項,用戶可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支持或設備驅動程序編譯進內
核;"m"表示將相應特性的支持或設備驅動程序編譯成可載入模塊,在需要時,可由系統或用戶自行加入到內核中去;"n"表示內核不提供相應特性或驅動程序
的支持。由於內核的配置選項非常多,本文只介紹一些比較重要的選項。

1、Code maturity level options(代碼成熟度選項)

Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用戶想要使用還處於測試階段的代碼或驅動,可以選擇「y」。如果想編譯出一個穩定的內核,則要選擇「n」。

1、 Processor type and features(處理器類型和特色)

(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 選擇處理器類型,預設為Ppro/6x86MX。

(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 內核支持的最大內存數,預設為1G。

(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 協處理器模擬,預設為不模擬。

(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]

選擇該選項,系統將生成/proc/mtrr文件對MTRR進行管理,供X server使用。

(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 選擇「y」,內核將支持對稱多處理器。

2、 Loadable mole support(可載入模塊支持)

(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 選擇「y」,內核將支持載入模塊。

(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 選擇「y」,內核將自動載入那些可載入模塊,否則需要用戶手工載入。

3、 General setup(一般設置)

(1)、Networking support (CONFIG_NET) [Y/n/?] 該選項設置是否在內核中提供網路支持。

(2)、PCI support (CONFIG_PCI) [Y/n/?] 該選項設置是否在內核中提供PCI支持。

(3)、PCI access mode (BIOS, Direct, Any) [Any] 該選項設置Linux探測PCI設備的方式。選擇「BIOS」,Linux將使用BIOS;選擇「Direct」,Linux將不通過BIOS;選擇「Any」,Linux將直接探測PCI設備,如果失敗,再使用BIOS。

(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 選擇「y」,內核將支持平行口。

4、 Plug and Play configuration(即插即用設備支持)

(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 選擇「y」,內核將自動配置即插即用設備。

(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 選擇「y」,內核將自動配置基於ISA匯流排的即插即用設備。

5、 Block devices(塊設備)

(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 選擇「y」,內核將提供對軟盤的支持。

(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 選擇「y」,內核將提供對增強IDE硬碟、CDROM和磁帶機的支持。

6、 Networking options(網路選項)

(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 選擇「y」,一些應用程序將使用Packet協議直接同網路設備通訊,而不通過內核中的其它中介協議。

(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 選擇「y」,內核將支持防火牆。

(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 選擇「y」,內核將支持TCP/IP協議。

(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 選擇「y」,內核將支持IPX協議。

(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 選擇「y」,內核將支持Appletalk DDP協議。

8、SCSI support(SCSI支持)

如果用戶要使用SCSI設備,可配置相應選項。

9、Network device support(網路設備支持)

Network device support (CONFIG_NETDEVICES) [Y/n/?] 選擇「y」,內核將提供對網路驅動程序的支持。

10、Ethernet (10 or 100Mbit)(10M或100M乙太網)

在該項設置中,系統提供了許多網卡驅動程序,用戶只要選擇自己的網卡驅動就可以了。此外,用戶還可以根據需要,在內核中加入對FDDI、PPP、SLIP和無線LAN(Wireless LAN)的支持。

11、Character devices(字元設備)

(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 選擇「y」,內核將支持虛擬終端。

(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]

選擇「y」,內核可將一個虛擬終端用作系統控制台。

(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]

選擇「y」,內核將支持串列口。

(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]

選擇「y」,內核可將一個串列口用作系統控制台。

12、Mice(滑鼠)

PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用戶使用的是PS/2滑鼠,則該選項應該選擇「y」。

13、Filesystems(文件系統)

(1)、Quota support (CONFIG_QUOTA) [N/y/?] 選擇「y」,內核將支持磁碟限額。

(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 選擇「y」,內核將提供對automounter的支持,使系統在啟動時自動 mount遠程文件系統。

(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 選擇「y」,內核將支持DOS FAT文件系統。

(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]

選擇「y」,內核將支持ISO 9660 CDROM文件系統。

(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]

選擇「y」,用戶就可以以只讀方式訪問NTFS文件系統。

(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系統運行狀態的虛擬文件系統,該項必須選擇「y」。

(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的標准文件系統,該項也必須選擇「y」。

14、Network File Systems(網路文件系統)

(1)、NFS filesystem support (CONFIG_NFS_FS) [Y/m/n/?] 選擇「y」,內核將支持NFS文件系統。

(2)、SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS)

選擇「y」,內核將支持SMB文件系統。

(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)

選擇「y」,內核將支持NCP文件系統。

15、Partition Types(分區類型)

該選項支持一些不太常用的分區類型,用戶如果需要,在相應的選項上選擇「y」即可。

16、Console drivers(控制台驅動)

VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] 選擇「y」,用戶就可以在標準的VGA顯示方式下使用Linux了。

17、Sound(聲音)

Sound card support (CONFIG_SOUND) [N/y/m/?] 選擇「y」,內核就可提供對音效卡的支持。

18、Kernel hacking(內核監視)

Magic SysRq key (CONFIG_MAGIC_SYSRQ) [N/y/?] 選擇「y」,用戶就可以對系統進行部分控制。一般情況下選擇「n」。

四、 編譯內核

(一)、建立編譯時所需的從屬文件

# cd /usr/src/linux

# make dep

(二)、清除內核編譯的目標文件

# make clean

(三)、編譯內核

# make zImage

內核編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新內核的映像文件zImage。如果編譯的內核很大的話,系統會提示你使用make bzImage命令來編譯。這時,編譯程序就會生成一個名叫bzImage的內核映像文件。

(四)、編譯可載入模塊

如果用戶在配置內核時設置了可載入模塊,則需要對這些模塊進行編譯,以便將來使用insmod命令進行載入。

# make moles

# make modelus_install

編譯成功後,系統會在/lib/moles目錄下生成一個2.3.14子目錄,裡面存放著新內核的所有可載入模塊。

五、 啟動新內核

(一)、將新內核和System.map文件拷貝到/boot目錄下

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14

# cp /usr/src/linux/System.map /boot/System.map-2.3.14

# cd /boot

# rm -f System.map

# ln -s System.map-2.3.14 System.map

(二)、配置/etc/lilo.conf文件。在該文件中加入下面幾行:

default=linux-2.3.14

image=/boot/vmlinuz-2.3.14

label=linux-2.3.14

root=/dev/hda1

read-only

(三)、使新配置生效

# /sbin/lilo

(四)、重新啟動系統

# /sbin/reboot

新內核如果不能正常啟動,用戶可以在LILO:提示符下啟動舊內核。然後查出故障原因,重新編譯新內核即可。

了解更多開源相關,去LUPA社區看看吧。
希望對你能有所幫助。

⑤ 重新編譯Linux內核

不放以前的系統里放什麼地方?另一台計算機里?之後你這個機器啟動時自己跑到那台計算機上要數據啟動完後,在自己跑回來?
initrd 是內核啟動的一個虛擬的磁碟。作用是在 Linux 內核啟動時,不直接進入硬碟上的 root 分區,而是進入內存裡面的虛擬的 root 分區。
這個用意是當內核不能直接讀取硬碟時(比如用了內核沒有自帶的驅動的硬碟、分區。或者 root 分區在網路上)。那麼就可以用 initrd 裡面的驅動來過渡進入正確的 root ,或者乾脆就停在 initrd 模擬的內存檔裡面。

PS:我編譯內核都是 make xconfig ; make ; make moles_install ; make install
前3個不解釋,最好一個其實就是吧編譯好的內核復制到 /boot 裡面。並且根據這個目錄裡面的某些特點。進行一些操作。

⑥ 如何編譯linux內核

和其他的開源軟體一樣,不考慮參數配置的情況下,就是直接在源碼目錄下執行:
make
之後執行:
make install
就安裝好了,在重啟時就可以選擇不同的內核。

內核源碼相比其他開源軟體配置項會多很多,因為它支持很多硬體,一般需要:
make menuconfig
進行配置,多看看也就了解了

⑦ 如何重新編譯linux內核

  1. 因為一般電腦安裝的系統都是Windows,而整個編譯過程都需要在Linux環境下實現,所以最好是在虛擬機里安裝Linux系統來完成這一過程。我使用的虛擬機是VMware-workstation-full-v7.1.4。

  2. 然後,我們需要下載一個較高版本的Linux系統的鏡像文件,安裝在虛擬機上,作為編譯環境。我使用的是ubuntu-11.04-desktop-i386。之所以選擇較高版本,是因為它的界面比較方便用戶操作。

  3. 然後下載一個Linux內核源代碼文件,將它保存到虛擬機上新安裝的系統中去。並解壓到/usr/src目錄。我使用的是linux-2.6.36,下載低版本的原因是,小巧輕便,易於編譯。

    解壓命令如下:

    bzip2 -d linux-2.6.36.tar.bz2

    tar -xvf linux-2.6.36.ta

  4. 修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一個系統調用函數。自行編寫一個簡單的程序即可,只為測試用。

  5. 修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,為新添加的程序配置系統調用號。

  6. 在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系統調用表。

  7. 下面就是最重要的內核編譯與安裝:

    首先配置編譯信息,使其生成適合當前機器的Makefile,輸入make oldconf ig。

    接著還要輸入make menuconfig,在字元界面下進行必要的細微的修改。

    然後要經過四步編譯過程(直接輸入命令即可):

    (1)make bzImage

    將內核編譯為壓縮映像,存儲在源碼根目錄下的「System.map」文件中。

    (2)make moles

    編譯各個模塊。

    (3)sudo make moles_install

    安裝模塊

    (4)sudo make install

    安裝內核

    第(2)(3)步等待時間較長,可能需要數個小時,請耐心等待。

    無報錯的話重啟進入GRUB界面,就可以看到新編譯的內核了。

  8. 按回車鍵進入我們編譯的目標內核中,用關鍵詞搜索查看新增加的系統調用「my call」是否已在內核中:

  9. 編寫測試程序,調用新添加的系統調用:

  10. 測試成功,說明系統調用添加成功,進而說明內核編譯成功!

    以上的辦法你可以試一下,希望對你有所幫助。

⑧ linux內核編譯詳細教程及開發Linux系統

摘錄linuxaid

一步一步編譯安裝Linux內核

摘要

文章將為你詳細並逐步的描述如何編譯、配置、安裝一個定製的RedHat Linux內核。我們知道,一個定製的內核從很多方面來看都是必需的,在此我不再討論這個問題。我只向大家展示如何編譯、配置和安裝一個定製的內核。雖然下面所列步驟主要是針對RedHat Linux用戶,但它也同樣適用於其它Linux發行版的使用者。當然,一些較小的改動是必須的(例如,並不是所有的系統都使用initrd)
(2002-09-02 12:38:46)

By Wing, 出處:藍風

摘要

文章將為你詳細並逐步的描述如何編譯、配置、安裝一個定製的RedHat Linux內核。我們知道,一個定製的內核從很多方面來看都是必需的,在此我不再討論這個問題。我只向大家展示如何編譯、配置和安裝一個定製的內核。雖然下面所列步驟主要是針對RedHat Linux用戶,但它也同樣適用於其它Linux發行版的使用者。當然,一些較小的改動是必須的(例如,並不是所有的系統都使用initrd)

硬體配置

下列步驟需在一個下列配置的計算機系統中演示:Compaq Presatio 4010 Series cinorter system,15.5GB硬碟,96 MB內存,400 MHz Intel Celeron Processorm ,Red Hat Linux 7.0(內核版本為2.2.16-22)

目標

我們的目標是在進行完下列步驟後得到一個完全運行的定製過的內核,例如,我有一個 定製過的內核2.2.16-22ghosh在我的系統中運行(我的名字叫Subhasish Ghosh,你也可以命名為其它名稱,事實上在系統中有兩個內核是同時運行的)下面,搜索並編譯Linux內核。

編譯、配置並安裝一個定製的RedHat Linux內核的步驟:

整個步驟如下:

步驟1:以「root"身份登錄,然後執行下列步驟

步驟2:在命令提示中鍵入 "rpm-q kernel-headers kernel-source make dev86"

步驟3:如果這些rpm包已經裝好,直接進入步驟4。否則,掛載上RedHat Linux 7.0 光碟並執行rpm-Uvh以便安裝這些必須的rpm包。

步驟4:如果你已有一個完全運行的X window System,那麼在命令提示中鍵入「startx」。如果沒有配置X window System,那麼在命令提示中鍵入「make config」或者「make menuconfig」。

步驟5:進入GNOME環境,打開GNOME終端並鍵入「cd /usr/src/linux」然後回車。

步驟6:在/usr/src/linux 目錄下,鍵入「make xconfig」。

步驟7:屏幕上將出現GUI版本的「make config",它將提供給你不同選項使你獲得一個定製的內核。

步驟8:現在,我建議你盡量使用預設設置。請注意不要輕易改變選項,因為許多選項非常敏感,需要專業處理,你僅需要做以下改動:

1.處理器型號和特徵:選擇正確的處理器取決於你是否使用Pentium Ⅱ或者Pentium Ⅲ,或像我一樣使用Intel Celeron.例如,我操作如下:

Processor Family:PPro/686MXMaximum Physical Memory:1 GBMath Emulation:YesMTRR:YesSMP:Yes

2.打開文件系統對話框並做以下改動:

例如我是如下選擇的:

DOS FAT fs support:Yes(y)MSDOD fs support:Yes(y)UMSDOS:mVFAT(Window 95) support:Yes(y)NTFS filesystem support (read-only):Yes(y)NTFS read-write support(DANGEROUS):NO(n)

完成以上選擇後,請確認你沒有改變其它選項。以上所有改動是無害的, 不會對你的Linux內核產生壞作用。

3.保存並從主對話框中退出

步驟9:在/usr/src/Linux目錄下執行"ls -al".

步驟10:你將看到一個名為"Makefile"的文件,它對整個編譯過程非常重要。因此,一定要先使用「cp Makefile Makefile.bak」命令對該文件進行備份。

步驟11:在usr/src/linux 中執行"vi Makefile"。

步驟12:找到EXTRAVERSION並改變它.例如:我將EXTRAVERSION=-22改為EXTRAVERSION="-22grosh".當然,你完全可以任意命名它。

步驟13:保存並退出文件。

步驟14:下列步驟在/usr/src/Linux 目錄下執行。鍵入「make dep clean」回車。

步驟15:鍵入:「make bzImage moles」。這需要花費一些時間。你可以在這段時間休息一會。

步驟16:以上步驟完成後,在/usr/src/Linux/arch/i386/boot目錄下將產生一個「bzlmage」文件。找到這個目錄並檢查「bzlmage」文件是否已經產生.如果上述步驟得到了正確的執行並且在「make xconfig」中的所有選項都選擇正確的話,你一定會看到這個文件。如果沒有這個文件,那麼很遺憾,你得從頭開始。

步驟17:在/usr/src/linux目錄下鍵入「cp ./arch/i386/boot/bzlmage /boot/vmlinuz-2.2.16.22ghosh」並回車。

步驟18:鍵入:「cp System.map /boot/System.map-2.2.16-22ghosh」。

步驟19:鍵入:「make moles install」,回車。你將看見所有的模塊將在一個新的指定目錄下被安裝。

步驟20:鍵入:「mkinitrd /boot/initrd-2.2.16-22ghosh.img2.2.16-22ghosh」。

步驟21:鍵入:「vi /etc/lilo.conf」且隨後加入以下條目

image=/boot/vmlinuz-2.2.16-22ghoshlabel=GhoshKernelinitrd=/boot/initrd-2/2/16-22ghosh.imgroot=/dev/hdc5read-only

步驟22:保存並退出。請注意:在lilo.conf文件中已經按你的要求改變了相應的條目,但重要的一點是根目錄必須是你的系統的根目錄。例如:在我的系統中是在/dev/hde5中。插入你的系統的有關信息。

步驟23:鍵入:「/sbin/lilo -v -v」。

步驟24:閱讀屏幕上的所有信息。假如沒有顯示錯誤,那麼所有的工作就已完成了。Congratulations!

步驟25:鍵入:「/sbin/reboot」或「/sbin/shutdowm-r now」重新開機。

步驟26:在啟動屏中,按Tab鍵(如果你使用的是LILO啟動屏,可按 ctrl-X 鍵),你可以看見與其它選項一同出現的「GhoshKernel」選項。

步驟27:鍵入:GhoshKernel,回車。完全運行的定製內核就被引導裝入系統中了。

終曲

以「root」身份登錄,鍵入「uname -r」然後回車。你會在屏幕上看到2.2.16-22ghosh條目,它表示你正在運行定製過的內核,而不是2.2.16-22的內核版本。記住你可以在一個計算機中運行多個不同版本的內核。如果你遇到了問題,發E-mail給我,郵箱是:[email protected]

資源

在許多Web站點里都有關於如何編譯和運行最優化的定製內核的信息。例如http://www.vmlinuz.nu/。還有一些其它的關於Linux內核的使用和編譯的站點。

⑨ 如何編譯Linux內核

編譯linux內核步驟:
1、安裝內核
如果內核已經安裝(/usr/src/目錄有linux子目錄),跳過。如果沒有安裝,在光碟機中放入linux安裝光碟,找到kernel-source-2.xx.xx.rpm文件(xx代表數字,表示內核的版本號),比如RedHat linux的RPMS目錄是/RedHat/RPMS/目錄,然後使用命令rpm -ivh kernel-source-2.xx.xx.rpm安裝內核。如果沒有安裝盤,可以去各linux廠家站點或者下載。
2、清除從前編譯內核時殘留的.o 文件和不必要的關聯
cd /usr/src/linux
make mrproper
3、配置內核,修改相關參數,請參考其他資料
在圖形界面下,make xconfig;字元界面下,make menuconfig。在內核配置菜單中正確設置個內核選項,保存退出
4、正確設置關聯文件
make dep
5、編譯內核
對於大內核(比如需要SCSI支持),make bzImage
對於小內核,make zImage
6、編譯模塊
make moles
7、安裝模塊
make moles_install
8、使用新內核
把/usr/src/linux/arch/i386/boot/目錄內新生成的內核文件bzImage/zImage拷貝到/boot目錄,然後修改/etc/lilo.conf文件,加一個啟動選項,使用新內核bzImage/zImage啟動。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告訴lilo預設使用新內核啟動linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留舊有的啟動選項可以保證新內核不能引導的情況,還可以進入linux進行其他操作。保存退出後,不要忘記了最重要的一步,運行/sbin/lilo,使修改生效。
9、重新生成ram磁碟
如果您的系統中的/etc/lilo.conf沒有使用了ram磁碟選項initrd,略過。如果您的系統中的/etc/lilo.conf使用了ram磁碟選項initrd,使用mkinitrd initrd-內核版本號,內核版本號命令重新生成ram磁碟文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之後把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁碟能使系統性能盡可能的優化,具體參考/usr/src/linux/Documents/initrd.txt文件
10、重新啟動,OK!

⑩ Linux內核源碼如何編譯

首先uname
-r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname
-r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核
make
menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make
bzImage、make
moles、make
moles
4、安裝,make
install
5、.創建系統啟動映像,到
/boot
目錄下,執行
mkinitramfs
-o
initrd.img-2.6.36
2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於
/boot/grub/grub.cfg
文件的設置,找到if
[
"${linux_gfx_mode}"
!=
"text"
]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry
'Ubuntu,
with
Linux
3.2.0-35-generic'
--class
ubuntu
--class
gnu-linux
--class
gnu
--class
os
{
recordfail
gfxmode
$linux_gfx_mode
insmod
gzio
insmod
part_msdos
insmod
ext2
set
root='(hd0,msdos1)'
search
--no-floppy
--fs-uuid
--set=root
9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic
root=UUID=9961c170-2566-41ac-8155-18f231c1bea5
ro
quiet
splash
$vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改
set
default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make
menuconfig這一步,改好後就萬事ok了。
最後再用uname
-r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
打字不易,如滿意,望採納。

閱讀全文

與linux重新編譯內核教程外包相關的資料

熱點內容
微信位置可以加密嗎 瀏覽:466
演算法蠻力法 瀏覽:436
隨機排練命令 瀏覽:147
python多進程並發 瀏覽:41
安卓軟體安裝如何躲避安全檢測 瀏覽:647
奇幻潮翡翠台源碼百度雲盤 瀏覽:187
什麼軟體可以免費pdf轉word 瀏覽:15
php正則表達式大全 瀏覽:394
androidntp時間 瀏覽:299
輪機長命令簿英文 瀏覽:148
oppo鈴聲設置被加密怎麼處理 瀏覽:548
粵苗app圖形驗證碼怎麼填 瀏覽:899
管家婆架設雲伺服器 瀏覽:254
php的登錄界面代碼 瀏覽:997
php開發客戶端 瀏覽:998
theisle測試服怎麼搜伺服器 瀏覽:447
廣播PDF 瀏覽:218
單片機編程300例匯編百度 瀏覽:35
騰訊雲連接不上伺服器 瀏覽:223
不能用來表示演算法的是 瀏覽:861