banner
ximalaya

ximalaya

这里是openkava 的blog,关注程序开发的一切技术。 ZZ 表示转载的文章,如涉及版权,请和我联系删除。 在这里你可以看到关于以下技术的文章: 移动开发技术,ANDROID ,IOS,WINDOWS PHONE平台开发,企业ERP开发,动态脚本PYTHON ,OPENGL ES 3D技术,游戏开发技术,HTML5 ,JAVASCRIPT ,MYSQL,AMAZON EC2 ,GOOGLE GAE ,GOOGLE CLOUD SQL 等 。 本站发展历程: 2010年,正式把所有的blog移到这里,租用godaddy的空间,记录生活和工作上的一些心得。 下面是关于我的个人介绍,写在这里权当凑字数啦。 职业:软件开发,开发经验6年,管理经验3年; 工作上使用的技术:C#, SQL SERVER 个人使用的技术:PYTHON,PHP, CSS, JAVA ,ANDROID ,object-c 等等 联系我请发邮件:<a href="http://blog.openkava.com/openkava@gmail.png"><img class="alignnone size-full wp-image-96" title="邮箱" src="http://blog.openkava.com/openkava@gmail.png" alt="" width="174" height="24" /></a>

编译linux内核

要在 centos 上安装一个文件,内核不支持,不得已编译一下内核:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.1-rc2.tar.bz2
tar jxvf linux-3.1-rc2.tar.bz2
cd linux-3.1-rc2
make menuconfig # 需要 ncurse apt-get install ncurses-dev
make defconfig oldconfig xconfig

 

 


1、准备工作

我安装的是 ubuntu10.04,为完成内核编译,还需要安装一下包:

apt-get install gcc#

apt-get install make#

apt-get install bzip2#

apt-get install libc6-dev#

apt-get install ncurse-dev#

apt-get install initrd-tools #### 为了使用 mkinitrd 命令生成 initrd.img-XXX#

其中在安装 initrd-tools 时,可能出现找不到安装包的情况,这是因为新版本的 ubuntu 或 debian 已经用新的软件取代了
该软件,此时要保证含有命令 mkinitramfs,mkinitramfs-kpkg
apt-get install kernel-package
2、下载源码

可以在官网 www.kernel.org 下载响应的源码(下载完整版 F),也可以 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.bz2 命令获取。
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.bz2

#tar xjf linux-2.6.39.tar.bz2 -C /usr/src
3、配置文件

根据自己机器的硬件情况,选择内核编译配置选项,在这里我使用的是默认配置 (make menuconfig 后直接保存退出,生成.config 文件);具体配置可以参考金步国先生翻译的资料:Linux 2.6.19.x 内核编译配置选项,参考网址:http://lamp.linux.gov.cn/Linux/kernel_options.html

#cd /usr/src/linux-2.6.39

#make menuconfig

 

4、编译内核

#make clean #### 第一次编译可以省略

#make mrproper #### 第一次编译可以省略

#make

 

5、编译和安装模块

#make modules

make modules_install#

 

6、生成内核镜像文件
#makinitramfs -o /boot/initrd-2.6.39.img/lib/modules/2.6.39 ## 启动、加载模块

cp arch/i386/boot/bzImage/boot/vmlinuz-2.6.39 ## 可引导的、压缩的内核#

cp System.map/boot/System.map-2.6.39 ##kernel 索引#

cp .config/boot/config-2.6.39 #内核配置文件#

7、设置启动项
启动项是 /boot/grub/grub.cfg 文件,我们需要修改该文件,具体如下:

首先,复制下面内容。
menuentry 'Ubuntu, with Linux 2.6.32-32-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set 8450af8f-090b-4eae-a123-6f1e3604fa9e
linux /boot/vmlinuz-2.6.32-32-generic root=UUID=8450af8f-090b-4eae-a123-6f1e3604fa9e ro quiet splash
initrd /boot/initrd.img-2.6.32-32-generic
}

然后,对上面内容进行响应的修改,红色部分。
menuentry 'Ubuntu_Test, with Linux 2.6.39' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,4)'
search --no-floppy --fs-uuid --set 8450af8f-090b-4eae-a123-6f1e3604fa9e
linux /boot/vmlinuz-2.6.39 root=UUID=8450af8f-090b-4eae-a123-6f1e3604fa9e ro quiet splash
initrd /boot/initrd.img-2.6.39
}
grub-mkconfig update-grub

8、测试
重启,选择 Ubuntu_Test, with Linux 2.6.39 进入 ubuntu 系统,最后通过命令 uname -a 查看系统的内核信息。

结果还是不行,看了这玩意儿真不是一般人玩得的。只能升级 linux 系统。

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.