+++++++++++++++++++++++++++++++++++++++++++++++++++++++
秀脫linux實戰筆記linux-kernel-3.0.3實戰片篇:
?? QQ:???? 6541657?
EMAIL:xiutuo@gmail.com
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
一:環境
linux: centos6
kernel:linux-3.0.3.tar.bz2
使用root用戶編譯內核
內核裁剪:
驅動:保留常用USB驅動,支持常用磁盤接口如SCSI,sATA
去掉無線,藍牙,ISDN,,其他游戲手柄,手持設備等都已去掉
支持ext3,ext4,cifs,nfs,不支持虛擬化
內核debug模式已經關閉,編譯方式采用優化code size方式編譯
CPU架構:只保留intel,去掉AMD等,cpu采用非搶占調度(server)模式
語言:只保留UTF-8,ISO,簡體中文
二:編譯準備
1.準備相關軟件包
yum install rpmdevtools yum-utils ncurses-devel make rpm-build rpm-devel
三. 源碼編譯安裝步驟
0. 解壓源碼
tar xvf linux-3.0.3.tar.bz2
cd linux-3.0.3
1. make mrproper?
如果是第一次編譯,省略該步驟,該步驟主要刪除編譯后生成的一些文件,如果.config,makefile,*.o等文件
如果是第一次編譯失敗,再一次編譯,則必須執行。
2. make menuconfig? | make config | make menuconfig | make xconfig | make gconfig
定制內核配置,請以上方式任選一種。我這里選擇make menuconfig
3. make
編譯內核
4. make modules_install?
安裝內核模塊, 把上一步構建出來的內核放入一個模塊子目錄中:
/lib/modules/內核版本,這里是/lib/modules/3.0.3/
5. make install
把編譯好的內核放入/boot中,并且會更新引導文件,會把vmlinuz和System.map復制到/boot目錄下同時修改grub
主要會生成一下文件:
config-3.0.3?? --內核編譯配置文件內容就是make menuconfig出來的文件.config的內容,只是文件名不同而已
initrd-3.0.3.img?
vmlinux-3.0.3.bz2
System.map-3.0.3?
vmlinuz-3.0.3
6. new-kernel-pkg --mkinitrd --depmod --install 3.0.3
安裝grub,new-kernel-pkg --mkinitrd --depmod --install 內核版本號
修改/boot/grub/grub.conf文件,增加一下內容
title CentOS Linux (3.0.3)
??????? root (hd0,6)
??????? kernel /vmlinuz-3.0.3 ro root=UUID=db5edc6d-d16b-4308-8c7b-6df9f4f4e26c?
rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYS
FONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
??????? initrd /initrd-3.0.3.img
四. 編譯成rpm包
0. 解壓源碼
tar xvf linux-3.0.3.tar.bz2
cd linux-3.0.3
vi scripts/package/mkspec?
增加一下幾行,目的:當rpm -i kernel-3.0.3-1.x86_64.rpm 自動配置grub.conf
echo "%post"
echo 'if [ `uname -i` == "x86_64" -o `uname -i` == "i386" ]; then'
echo? 'if [ -f /etc/sysconfig/kernel ]; then'
echo? '/bin/sed -i -e 's/^DEFAULTKERNEL=kernel-smp$/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel || exit $?'
echo? 'fi '
echo 'fi '
echo '/sbin/new-kernel-pkg? --mkinitrd --make-default --depmod --install %{version} || exit $?'?
1. make mrproper?
如果是第一次編譯,省略該步驟,該步驟主要刪除編譯后生成的一些文件,如果.config,makefile,*.o等文件
如果是第一次編譯失敗,再一次編譯,則必須執行。
2. make menuconfig? | make config | make menuconfig | make xconfig | make gconfig
定制內核配置,請以上方式任選一種。我這里選擇make menuconfig
生產內核配置文件.config
3. make rpm-pkg
生成一下文件
Wrote: /root/rpmbuild/SRPMS/kernel-3.0.3-1.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/kernel-3.0.3-1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/kernel-headers-3.0.3-1.x86_64.rpm
4. 安裝內核
rpm -ivh /root/rpmbuild/RPMS/x86_64/kernel-3.0.3-1.x86_64.rpm
五.附錄
kernel-3.0.3-1.src.rpm下載地址
http://dl.dbank.com/c0x5qcm826
kernel-3.0.3-1.x86_64.rpm下載地址
http://dl.dbank.com/c0twilsoi1
kernel-headers-3.0.3-1.x86_64.rpm下載地址
http://dl.dbank.com/c0056pznuh
轉載自: http://hi.baidu.com/xiutuo/blog/item/194a7497c5fe3a7655fb96c7.html
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
