Linux 2.6.38内核正式发布后,我一直想使用它,因为它内含那200多行的“神奇代码”。昨天晚上,我终于把它编译成功了,这还是我第一次使用自己编译的内核!其实之前我也有试过,还尝试过自己配置.config文件。
编译内核其实很简单,不过在Fedora里面(其实Ubuntu也一样),如果安装了官方显卡驱动的话,启用自己编译的最新的内核可能会导致系统无法进去。
在Fedora 14里,首先卸载官方显卡驱动(确保卸载后能够进系统)并在kernel.org下载最新的linux-2.6.38.tar.bz2的包;
卸载完官方显卡驱动后,开始配置安装。
1、解压linux-2.6.38.tar.bz2至/usr/src/kernel目录并切换至其解压后目录下:
1 2 | tar -jxvf ./linux-2.6.38.tar.bz2 /usr/src/kernel cd /usr/src/kernel/linux-2.6.38 |
2、拷贝当前内核配置文件做为新内核编译的.config文件:
1 | cp /boot/config-`uname-r`./.config |
3、使用menuconfig方式编译。首先安装其所需要依赖的libcurses5-dev库,还有,在Fedora系统里,GCC默认是不安装的,所以还需要先安装好GCC:
1 2 3 4 | yum install ncurses-devel -y yum install gcc gcc-c++ *aclocal make mrproper (删除上次编译产生的垃圾,如果是初次编译不需要执行) make menuconfig |
在弹出的对话框里选择倒数第二项,也就是加载刚刚拷贝过来的.config文件做为编译配置:

选中后按“Enter”,在弹出的对话框按“OK”,然后选中“Exit”退出,退出时会提示是否保存,选择“Yes”。
4、开始编译。依次执行下面的命令:
1 2 3 | make -j4 all (CPU是双核用该命令编译,若是单核CPU使用-j2) make modules_install (安装模块到/lib/modules/2.6.38) make install (将vmlinuz-2.6.38、System.map-2.6.38、initramfs-2.6.38.img拷贝到/boot目录下并自动修改grub.conf) |
这将是一段漫长的过程,所以我是在昨天晚上上床前让机器编译的内核,执行的是下面的简单脚本(从第4步开始):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #!/bin/bash # 须以root执行该脚本 # Contact:http://www.ninthday.net PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH mkdir /tmp/2.6.38 echo "Start make..." make -j4 all >/tmp/2.6.38/sta_make.txt 2>&1 sta_make=`echo $?` if [ $sta_make -gt 0 ]; then echo "Command--'make -ja all' has occurred an error.Exit compile and shutdown now." >>/tmp/2.6.38/error.txt shutdown -h now fi make modules_install >sta_modules.txt 2>&1 sta_modules=`echo $?` if [ $sta_modules -gt 0 ]; then echo "Command--'make modules_install' has occurred an error.Exit compile and shutdown now." >>/tmp/2.6.38/error.txt shutdown -h now fi make install >sta_install.txt 2>&1 sta_install=`echo $?` if [ $sta_install -gt 0 ]; then echo "Command--'make install' has occurred an error.Exit compile and shutdown now." >>/tmp/2.6.38/error.txt shutdown -h now fi echo "Compile success." >/tmp/2.6.38/success.txt exit 0 |
我现在使用的内核:

声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
原创文章转载请注明:转自《Fedora 14 更新至2.6.38内核》
呵呵, 2.6.38 里面的 TTY 自动分组功能 (CONFIG_SCHED_AUTOGROUP) 默认是不开启的,所以即便你拷贝了老版本的内核配置文件过来,然后自己编译,也没能用上你说的那个 “ 200 行代码” 提供的自动分组功能。
还有,现在的机器编个内核并不太费事,在我得机器上,也就十分钟的时间,步骤可以参考下下面的链接:
http://blog.163.com/vic_kk/blog/static/4947052420108132423450/
@tubo, 啊?这个真不知道,我只会用,系统级的东西还没研究过。喜欢,但没时间。
嗯,看看你这篇文章去。我编译一次至少一个小时。
我还没搞过这种,似乎我把linux用成了windows,只是为了帐号更安全,偶尔编辑一下文档。连c语言编程都没搞过
@Hs.hk, 其实我也是,只不过我喜欢它的流畅,不会假死。Windows则跑一些专业软件,也少不了。
用Ubuntu不解释
@小羿, Ubuntu爽啊,早就更新至这个内核了。
各种升级啊,哈哈~~~
博客的速度很棒!
@hit9,
,这话我爱听。不过现在貌似没有以前快了。
Random Posts
Recent Posts
Recent Comments
By Plastic injection mould
By OOZJ
By Jusbe
By 互联网战
By 互联网战
By ixwebhosting
Blogroll
Categories
Tag Cloud
360 5800 Alexa C++ Chrome Cisco Dedecms Discuz Fcitx Fedora GFW Gravatar IE Linux Mobile ModelSim Music QT Quartus Shell Verilog VPN VPS Windows Wordpress XAMPP Xilinx xp 下载 垃圾评论 情感 手机 插件 星期九 注册 电子信息 程序设计 站长工具 缩略图 网络应用 考研 胡思乱想 西工大 视频 软件Meta