編譯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廠家站點或者www.kernel.org下載。
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!
2. 如何在Ubuntu/CentOS上安裝Linux內核4.0
在Ubuntu 15.04上安裝Linux內核4.0
如果你正在使用Linux的發行版Ubuntu 15.04,你可以直接通過Ubuntu內核網站安裝。在你的Ubuntu15.04上安裝最新的Linux內核4.0,你需要在shell或終端中在root訪問許可權下運行以下命令。
在CentOS 7上安裝Linux內核4.0
我們可以用兩種簡單的方式在CentOS 7上安裝Linux內核4.0。
從Elrepo軟體倉庫安裝
從源代碼編譯安裝
我們首先用ElRepo安裝,這是最簡單的方式:
使用 Elrepo 安裝
1. 下載和安裝ELRepo
我們首先下載ELRepo的GPG密鑰並安裝relrepo-release安裝包。因為我們用的是CentOS 7,我們使用以下命令安裝elrepo-release-7.0-2.el7.elrepo.noarch.rpm。
注: 如果你啟用了secure boot,請查看這個網頁獲取更多信息。
添加 Elrepo 源
2. 升級Linux內核到4.0版本
現在,我們准備從ELRepo軟體倉庫安裝最新的穩定版內核4.0。安裝它我們需要在CentOS 7的shell或者終端中輸入以下命令。
# yum --enablerepo=elrepo-kernel install kernel-ml
從ELRepo安裝Linux內核4.0
上面的命令會自動安裝為CentOS 7構建的Linux內核4.0。
現在,下面的是另一種方式,通過編譯源代碼安裝最新的內核4.0。
從源代碼編譯安裝
1. 安裝依賴軟體
首先我們需要為編譯linux內核安裝依賴的軟體。要完成這些,我們需要在一個終端或者shell中運行以下命令。
# yum groupinstall "Development Tools"
# yum install gcc ncurses ncurses-devel
安裝內核依賴
然後,我們會升級我們的整個系統。
# yum update
2. 下載源代碼
現在我們通過wget命令從Linux內核的官方倉庫中下載最新發布的linux內核4.0的源代碼。你也可以使用你的瀏覽器直接從kernel.org網站下載內核。
# cd /tmp/
下載內核源碼
3. 解壓tar壓縮包
文件下載好後我們在/usr/src/文件夾下用以下命令解壓。
# tar -xf linux-4.0.tar.xz -C /usr/src/
# cd /usr/src/linux-4.0/
解壓內核tar壓縮包
4. 配置
配置Linux內核有兩種選擇的。我們可以創建一個新的自定義配置文件或者使用已有的配置文件來構建和安裝Linux內核。這都取決於你自己的需要。
配置新的內核
現在我們在shell或終端中運行make menuconfig命令來配置Linux內核。我們執行以下命令後會顯示一個包含所有菜單的彈出窗口。在這里我們可以選擇我們新的內核配置。如果你不熟悉這些菜單,那就敲擊ESC鍵兩次退出。
# make menuconfig
配置新內核
已有的配置
如果你想用已有的配置文件配置你最新的內核,那就輸入下面的命令。如果你對配置有任何調整,你可以選擇Y或者N,或者僅僅是按Enter鍵繼續。
# make oldconfig
5. 編譯Linux內核
下一步,我們會執行make命令來編譯內核4.0。取決於你的系統配置,編譯至少需要20-30分鍾。
註:如果編譯內核的時候出現bc command not found的錯誤,你可以用yum install bc命令安裝bc修復這個錯誤。
# make
Make 內核
6. 安裝Linux內核4.0
編譯完成後,我們終於要在你的Linux系統上安裝內核了。下面的命令會在/boot目錄下創建文件並且在Grub 菜單中新建一個內核條目。
# make moles_install install
7. 驗證內核
安裝完最新的內核4.0後我們希望能驗證它。做這些我們只需要在終端中輸入以下命令。如果所有都進展順利,我們會看到內核版本,例如4.0出現在輸出列表中。
# uname -r
結論
好了,我們成功地在我們的CentOS 7操作系統上安裝了最新的Linux內核版本4.0。通常並不需要升級linux內核,因為和之前版本運行良好的硬體可能並不適合新的版本。我們要確保它包括能使你的硬體正常工作的功能和配件。但大部分情況下,新的穩定版本內核能使你的硬體性能更好。
3. linux編譯內核步驟
一、准備工作
a) 首先,你要有一台PC(這不廢話么^_^),裝好了Linux。
b) 安裝好GCC(這個指的是host gcc,用於編譯生成運行於pc機程序的)、make、ncurses等工具。
c) 下載一份純凈的Linux內核源碼包,並解壓好。
注意,如果你是為當前PC機編譯內核,最好使用相應的Linux發行版的源碼包。
不過這應該也不是必須的,因為我在我的Fedora 13上(其自帶的內核版本是2.6.33.3),就下載了一個標準的內核linux-2.6.32.65.tar.xz,並且順利的編譯安裝成功了,上電重啟都OK的。不過,我使用的.config配置文件,是Fedora 13自帶內核的配置文件,即/lib/moles/`uname -r`/build/.config
d) 如果你是移植Linux到嵌入式系統,則還要再下載安裝交叉編譯工具鏈。
例如,你的目標單板CPU可能是arm或mips等cpu,則安裝相應的交叉編譯工具鏈。安裝後,需要將工具鏈路徑添加到PATH環境變數中。例如,你安裝的是arm工具鏈,那麼你在shell中執行類似如下的命令,假如有類似的輸出,就說明安裝好了。
[root@localhost linux-2.6.33.i686]# arm-linux-gcc --version
arm-linux-gcc (Buildroot 2010.11) 4.3.5
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for ing conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
註:arm的工具鏈,可以從這里下載:回復「ARM」即可查看。
二、設置編譯目標
在配置或編譯內核之前,首先要確定目標CPU架構,以及編譯時採用什麼工具鏈。這是最最基礎的信息,首先要確定的。
如果你是為當前使用的PC機編譯內核,則無須設置。
否則的話,就要明確設置。
這里以arm為例,來說明。
有兩種設置方法():
a) 修改Makefile
打開內核源碼根目錄下的Makefile,修改如下兩個Makefile變數並保存。
ARCH := arm
CROSS_COMPILE := arm-linux-
注意,這里cross_compile的設置,是假定所用的交叉工具鏈的gcc程序名稱為arm-linux-gcc。如果實際使用的gcc名稱是some-thing-else-gcc,則這里照葫蘆畫瓢填some-thing-else-即可。總之,要省去名稱中最後的gcc那3個字母。
b) 每次執行make命令時,都通過命令行參數傳入這些信息。
這其實是通過make工具的命令行參數指定變數的值。
例如
配置內核時時,使用
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
編譯內核時使用
make ARCH=arm CROSS_COMPILE=arm-linux-
注意,實際上,對於編譯PC機內核的情況,雖然用戶沒有明確設置,但並不是這兩項沒有配置。因為如果用戶沒有設置這兩項,內核源碼頂層Makefile(位於源碼根目錄下)會通過如下方式生成這兩個變數的值。
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/s390x/s390/ -e s/parisc64/parisc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-e s/sh[234].*/sh/ )
ARCH?= $(SUBARCH)
CROSS_COMPILE ?=
經過上面的代碼,ARCH變成了PC編譯機的arch,即SUBARCH。因此,如果PC機上uname -m輸出的是ix86,則ARCH的值就成了i386。
而CROSS_COMPILE的值,如果沒配置,則為空字元串。這樣一來所使用的工具鏈程序的名稱,就不再有類似arm-linux-這樣的前綴,就相當於使用了PC機上的gcc。
最後再多說兩句,ARCH的值還需要再進一步做泛化。因為內核源碼的arch目錄下,不存在i386這個目錄,也沒有sparc64這樣的目錄。
因此頂層makefile中又構造了一個SRCARCH變數,通過如下代碼,生成他的值。這樣一來,SRCARCH變數,才最終匹配到內核源碼arch目錄中的某一個架構名。
SRCARCH := $(ARCH)
ifeq ($(ARCH),i386)
SRCARCH := x86
endif
ifeq ($(ARCH),x86_64)
SRCARCH := x86
endif
ifeq ($(ARCH),sparc64)
SRCARCH := sparc
endif
ifeq ($(ARCH),sh64)
SRCARCH := sh
endif
三、配置內核
內核的功能那麼多,我們需要哪些部分,每個部分編譯成什麼形式(編進內核還是編成模塊),每個部分的工作參數如何,這些都是可以配置的。因此,在開始編譯之前,我們需要構建出一份配置清單,放到內核源碼根目錄下,命名為.config文件,然後根據此.config文件,編譯出我們需要的內核。
但是,內核的配置項太多了,一個一個配,太麻煩了。而且,不同的CPU架構,所能配置的配置項集合,是不一樣的。例如,某種CPU的某個功能特性要不要支持的配置項,就是與CPU架構有關的配置項。所以,內核提供了一種簡單的配置方法。
以arm為例,具體做法如下。
a) 根據我們的目標CPU架構,從內核源碼arch/arm/configs目錄下,找一個與目標系統最接近的配置文件(例如s3c2410_defconfig),拷貝到內核源碼根目錄下,命名為.config。
注意,如果你是為當前PC機編譯內核,最好拷貝如下文件到內核源碼根目錄下,做為初始配置文件。這個文件,是PC機當前運行的內核編譯時使用的配置文件。
/lib/moles/`uname -r`/build/.config
這里順便多說兩句,PC機內核的配置文件,選擇的功能真是多。不編不知道,一編才知道。Linux發行方這樣做的目的,可能是想讓所發行的Linux能夠滿足用戶的各種需求吧。
b) 執行make menuconfig對此配置做一些需要的修改,退出時選擇保存,就將新的配置更新到.config文件中了。
注
4. linux內核編譯的幾點疑惑
(1)編譯內核於升級內核沒有直接關聯。如果編譯的內核的版本比現在系統使用的版本新,那麼使用編譯後的內核可以看成是內核升級。但是有時候是因為需要而編譯內核,比如某些模塊需要重新編譯,打開某些原來內核沒打開的選項,這時候可以是同版本內核重新編譯,這就不能說是升級內核。
(2)新內核編譯好後,還需要安裝。也就是make install(把bzimage移動到boot,重命名為vmlinuz) ,make moles install(把模塊全部放到/lib/moles/(內核名)文件夾內);然後depmod,在/lib/moles/(內核名)建好新的***.dep文件,這樣啟動時系統就能通過讀取***.dep文件信息來載入模塊。還要在boot下新建一個於內核名一樣的.img文件,如vmlinuz,那麼就是vmlinuz.img,至於系統使用哪個內核,那是在grub.cfg裡面寫的配置文件決定的。指定哪個就從哪個啟動,寫兩個entry就可以選擇啟動到哪一個。老內核當然還可以繼續使用。
(3)新內核主要是一些新的特性,驅動更改什麼的,我不是很清楚,比如2.6.34以上的內核就支持通過echo OFF>/sys/kernel/debug/vgaswitchroo/switch關閉某個顯卡,也就是雙顯卡切換支持,又比如2.6.38中加入了所謂的autogroup在某些情況下提升桌面性能的特性,還有一些對系統某些情況的處理方式的變化等。但是從用戶層來說一般感覺不到明顯變化。對於程序什麼的使用不影響(絕大多數)。
5. linux怎麼編譯進驅動進內核
一、 驅動程序編譯進內核的步驟
在 linux 內核中增加程序需要完成以下三項工作:
1. 將編寫的源代碼復制到 Linux 內核源代碼的相應目錄;
2. 在目錄的 Kconfig 文件中增加新源代碼對應項目的編譯配置選項;
3. 在目錄的 Makefile 文件中增加對新源代碼的編譯條目。
bq27501驅動編譯到內核中具體步驟如下:
1. 先將驅動代碼bq27501文件夾復制到 ti-davinci/drivers/ 目錄下。
確定bq27501驅動模塊應在內核源代碼樹中處於何處。
設備驅動程序存放在內核源碼樹根目錄 drivers/ 的子目錄下,在其內部,設備驅動文件進一步按照類別,類型等有序地組織起來。
a. 字元設備存在於 drivers/char/ 目錄下
b. 塊設備存放在 drivers/block/ 目錄下
c. USB 設備則存放在 drivers/usb/ 目錄下。
注意:
(1) 此處的文件組織規則並非絕對不變,例如: USB 設備也屬於字元設備,也可以存放在 drivers/usb/ 目錄下。
(2) 在 drivers/char/ 目錄下,在該目錄下同時存在大量的 C 源代碼文件和許多其他目錄。所有對於僅僅只有一兩個源文件的設備驅動程序,可以直接存放在該目錄下,但如果驅動程序包含許多源文件和其他輔助文件,那麼可以創建一個新子目錄。
(3) bq27501的驅動是屬於字元設備驅動類別,雖然驅動相關的文件只有兩個,但是為了方面查看,將相關文件放在了bq27501的文件夾中。在drivers/char/目錄下增加新的設備過程比較簡單,但是在drivers/下直接添加新的設備稍微復雜點。所以下面首先給出在drivers/下添加bq27501驅動的過程,然後再簡單說明在drivers/char/目錄下添加的過程。
2. 在/bq27501下面新建一個Makefile文件。向裡面添加代碼:
obj-$(CONFIG_BQ27501)+=bq27501.o
此時,構建系統運行就將會進入 bq27501/ 目錄下,並且將bq27501.c 編譯為 bq27501.o
3. 在/bq27501下面新建Kconfig文件。添加代碼:
menu "bq27501 driver"
config BQ27501
tristate"BQ27501"
default y
---help---
Say 'Y' here, it will be compiled into thekernel; If you choose 'M', it will be compiled into a mole named asbq27501.ko.
endmenu
注意:help中的文字不能加回車符,否則make menuconfig編譯的時候會報錯。
4. 修改/drivers目錄下的Kconfig文件,在endmenu之前添加一條語句『source drivers/bq27501/Kconfig』 對於驅動程序,Kconfig 通常和源代碼處於同一目錄。 若建立了一個新的目錄,而且也希望 Kconfig 文件存在於該目錄中的話,那麼就必須在一個已存在的 Kconfig 文件中將它引入,需要用上面的語句將其掛接在 drivers 目錄中的Kconfig 中。
5. 修改/drivers目下Makefile文件,添加『obj-$(CONFIG_BQ27501) +=bq27501/』。這行編譯指令告訴模塊構建系統在編譯模塊時需要進入 bq27501/ 子目錄中。此時的驅動程序的編譯取決於一個特殊配置 CONFIG_BQ27501 配置選項。
6. 修改arch/arm目錄下的Kconfig文件,在menu "Device Drivers……endmenu"直接添加語句
source "drivers/bq27501/Kconfig"
6. 如何定製自己的linux內核
一 前言
為什麼要編譯自己的內核?這可能會有各種不同的答案,列舉如下:
1 為了研究,學習內核源碼。
2 為了支持新的硬體或者打開某項內核功能。
3 升級內核到更新版本。
4 按自己的要求定製和優化內核功能。
如此種種...
折騰不需要理由,這里我就不在多說,下面直接進入主題。
編譯方式
編譯內核有多種方式,從kernel.org下載選擇下載需要的版本的內核源碼,
如:linux-2.6.32-rc1.tar.bz2,下載內核源碼到/home/user/目錄,進入下載目錄,解壓壓縮包。
#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2
二 准備編譯環境
開始之前,首先確認下面軟體包已經安裝(編譯中標普華4.0時,直接全部安裝CD3可保證此條件)。
* rpmdevtools
* yum-utils
fedora系統可以使用如下命令安裝:
#yum install yum-utils rpmdevtools
1. 生成一個rpmbuild命令工作所需的目錄樹,下面命令可以完成該操作,也可以手動建立目錄樹。
命令建立:
#rpmdev-setuptree
此命令將會在/usr/src/rpmbuild/目錄下生成如下目錄結構(如果此位置沒有,則可能在當前用戶目錄下).
# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
上面部分是rpmbuild的環境建立。rpm
3. 安裝內核源碼包需要的依賴組件(在此可以跳過此步操作)
su -c 'yum-builddep kernel-<version>.src.rpm'
4.安裝內核源碼到系統,默認目錄在/usr/src/neoshine:
rpm -Uvh kernel-<version>.src.rpm
三 配置內核(生成config配置文件)
下面將介紹如何解開源碼包,並修改,配置和重新打包源碼
1. 解開源碼包並打上所有的補丁到BUILD目錄
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec
kernel源碼將在這里找到:
/usr/src/neoshine/rpmbuild/BUILD/kernel-<version>/linux-<version>.<arch> directory
配置內核源碼
1. 進入內核源碼:
cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 復制/boot/config*配置文件到源碼目錄下,此config文件也可以是已經配好或者其他地方備份的kernel配置文件:
cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先檢查kernel配置中新增的選項:
make oldconfig
4. 定製內核功能,關閉initrd支持選項,執行圖形化內核配置工具:
make menuconfig
註:在generic setup選項下找到initial RAM system and RAM disk(initramfs and initrd) support 項,取消編譯。同時確保跟文件系統對應的驅動和系統所在存儲器對應的驅動都已經編譯到內核(否則會無法啟動系統).
5. 在.config文件第一行改為下面內容(注意:沒有此行時,後面的編譯會報錯)
# i386
6. 拷貝.config到SOURCES/:
cp .config ../SOURCES/config-$arch
四 編譯新內核
1. 下面開始准備編譯新的內核包
打開SPEC/kernel.spec
vim SPEC/kernel.spec
改變下面行內容,可以定製自己的內核擴展名(如fc10之類):
%define buildid .<自己內核的小版本名>
下一步將生成一個新內核的rpm包,此過程需要編譯內核源碼包
使用下面命令生成新的內核源碼包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec
參數說明:bb表示只編譯二進制包,即不生成源碼包,without debuginfo 表示沒有調試信息,
target=`uname -r`表示生成對應當前平台的內核包
如果上面的命令成功執行完成,那麼會在BUILD/i686目錄下生成新的內核安裝包
五 安裝新內核
rpm -ivh kernel-$ver-$arch.rpm
此步操作會自動安裝內核到boot目錄下,安裝對應內核模塊到/lib/moles/目錄下,並且生成新內核對應的grub引導菜單。
修改grub引導菜單為以下格式
title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)
注意,此處不要使用uuid指定跟文件系統(可能會無法掛載根分區而導致內核死機),也不要再加和顯示相關的參數(內核不支持對應設置時,只會看到一個黑黑的屏幕)。
至此一個禁用initrd的新內核配置安裝完畢!
7. Linux內核配置與編譯相關流程
linux內核配置與編譯相關流程1、清除臨時文件、中間文件和配置文件
make
clean
不刪除配置文件。
make
mrproper
make
distclean
刪除編輯的backup文件、補丁文件等2、確定目標系統的軟硬體配置情況,比如CPU的類型,網卡的型號,所需要支持的網路協議。3、使用命令配置內核
make
config
基於文本模式的交互配置。
make
menuconfig
基於文本模式的菜單配置。
make
oldconfig
使用已有的配置文件(.config),但是會詢問新增的配置選項。
make
xconfig
圖形化的配置(需要安裝圖形化系統)。4、編譯內核
make
zImage
make
bzImage
區別:在X86平台上,zImage只能用於小雨512k內核。如果需要獲取詳細編譯信息,則在後面加上V=1.
編譯好的內核位於arch/<cpu>/boot/目錄下。
5、編譯內核模塊
make
moes
6、安裝內核模塊
make
moes_install
將編譯好的內核模塊從內核源代碼目錄到/lib/moes下。7、製作
init
ramdisk
mkinitrd
$initrd-$version
-$version內核安裝(X86)1、cp
arch/X86/boot/bzImage
/boot/vmliuz
-$version2、cp
$initrd
/boot/3、修改etc/grub.conf
或
/etc/lilo.conf$version為所編譯的內核版本號。
8. 如何編譯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內核版本。是不是你剛下的那個呢!有沒有成就感?