环境:Fedora 12
内核:linux-2.6.32.2
(为什么选择Fedora 12,因为12是偶数看起来舒服,且是最新版;同理选择了linux-2.6.32.2,虽然有最新版2.6.33,但不是偶数,不爽!)
STEP 1: 到ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ ,下载 STEP 2:
把复制到 /usr/src/kernels/ (当然其他任何目录都可以的) cp linux-2.6.32.2.tar.gz /usr/src/kernels/
|
STEP 3: 解压
tar -xzf linux-2.6.32.2.tar.gz
|
STEP 4: 进入linux-2.6.32.2
STEP 5:
配置。如果以前编译过,那么用make mrproper删除以前垃圾文件。用make menuconfig启动配置的图形界面。因为配置选项很多,短时间根本搞不懂哪些选项是必须的,哪些是可以不要的,所以,最佳的办法是在一个已经存在的配置文件上面修改。很显然,Fedora 12 就有现成的一个。把 /boot目录里面 config-2.6.31.5-127.fc12.i686.PAE复制到/usr/src/kernels/linux-2.6.32.2里面并命名为.config。当执行make menuconfig时,首先寻找.config,如果找到就读取。否则进入arch目录里面寻找相应体系结构默认的配置文件。 cp /boot/ config-2.6.31.5-127.fc12.i686.PAE /usr/src/kernels/linux-2.6.32.2/.config
make menuconfig
|
STEP 6:
编译。2.6.32已经是非常高的版本了,所以执行make all,就相当于:make dep(建立相依的属性关系),make clean(将旧的资料去除掉),make bzImage(开始编译核心),make modules(开始编译模块)STEP 7:
安装模块。安装模块到/lib/modules/,以后程序运行时从这个目录加载模块。
STEP 8:
安装内核。把make all 生成的vmlinuz和System.map复制到/boot目录下同时修改grub /boot/grub/menu.lst. 修改menu.lst是自动完成的哦!!不用手动修改。
STEP 9:
重启Fedora。选择linux-2.6.32.2启动。当白色的进度条显示满了后,多等会。附一:我遇到的问题1. 在make install时报错,提示我没有 mkinitrd这个命令。我到/sbin/里面找确实没有啊。然后我到网上下了一个mkinitrd的软件包安装,安装时又出错,提示与系统的什么包相冲突。我在网上问了哈高手,然后通过Fedora 的包管理机制,添加了mkinitrd.总算是成功了。弄了很久。
2. 编译了内核启动时,白色的显示条显示满了后,要等一段时间。刚开始,我试了很多次,改了很多东西,每次白色条显示满了,我等了几秒,没反应,就错误地以为我编译的内核不成功。当我弄烦了后,干脆不理它,我搞点其他的,等回到虚拟机时,居然启动了。一阵狂喜啊!附二:
感谢感谢网上的高手给我提示,以后只要我知道我也会毫不吝惜地帮助别人;
感谢chinaunix里面牛人写的博客,(在参考博客里面),写得非常之好,仰慕,学习。参考博客:
Fedora下内核编译 [第十五期]
http://linux.chinaunix.net/techdoc/develop/2008/12/22/1054372.shtml
编译内核步骤详解
编译 Linux2.6 内核总结
阅读(1677) | 评论(0) | 转发(0) |