ubuntu下编译linux内核
来源:互联网 发布:网页编程html 编辑:程序博客网 时间:2024/05/02 19:00
原文地址:http://hi.baidu.com/lcplj123/item/d47fc1d6000b554efb5768aa
当前电脑状态:
系统:Ubuntu 10.04.4 LTS
kernel信息:2.6.32-38-generic
一、下载kernel源码
网址:http://www.kernel.org/
我下载的文件:linux-2.6.32.61.tar.xz
如何解压这个文件:
首先,xz -d linux-2.6.32.61.tar.xz,会生成linux-2.6.32.61.tar文件
然后,tar xvf linux-2.6.32.61.tar,就成功解压。
解压目录:解压到一般的目录下就可以,没什么特别的。
我解压后的目录:/home/yutao/yutao/linux/linux-2.6.32.61
你现在就可以看这个版本的kernel的源码了,如果你不需要编译,后面的就不用看了。
二、编译kernel
1.make mrproper
进入到/home/yutao/yutao/linux/linux-2.6.32.61目录下,在终端中执行make mrproper
注:如果你是第一次编译,跳过此步。
它的含义是将上一次编译的.o和.config等相关文件删除掉,它是更深层次的清除你上次编译内核的东西
2.配置内核
如果你对如何配置内核比较了解,你可以执行make menuconfig命令
你或许也可以尝试make defconfig命令,它会基于默认的配置为你的体系结构创建一个配置。
推荐使用下面的方法,来利用系统已经存在的内核配置文件:
cp /boot/config-`uname -r` ./.config
以我的为例:cp /boot/config-2.6.32-38-generic ./.config
3.开始编译内核
make bzImage //编译大内核,编译小内核用make zImage 我用了10mins
make modules //编译模块 我用了40mins
make install modules_install //将内核与模块相关的文件复制到系统位置 很快,几分钟吧
4.碰到的问题
上面是我编译前后的/boot文件夹下的对比,我存在的问题是,我缺少了一个文件:initrd.img-2.6.32.61,而这是非常重要的一个文件。
解决方法:http://blog.csdn.net/mayouyang/article/details/3997849
首先进入到/lib/modules/,在这个目录下有一个2.6.32.61,应该是之前编译生成的,具体不详
mkinitramfs 2.6.32.61 -o /boot/initrd.img-2.6.32.61
这样,我的问题就解决了。5.修改开机引导项
仿照已存在的项添加即可:
sudo gedit /boot/grub/grub.cfg
### yutao add begin 20140213
menuentry 'Ubuntu, with Linux 2.6.32.61 yutao' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set cd48f9e1-634a-4e4c-9ae6-a9851f69a5ef
linux /boot/vmlinuz-2.6.32.61 root=UUID=cd48f9e1-634a-4e4c-9ae6-a9851f69a5ef ro quiet splash
initrd /boot/initrd.img-2.6.32.61
}
### yutao add end 20140213
6.reboot
开机后,进入开机引导项后,就可以看到多了一个Ubuntu, with Linux 2.6.32.61 yutao,选择它就ok啦。
进入系统后,查看内核版本号,发现已经不是之前的2.6.32.-38-generic
yutao@yutao:~$ uname -r
2.6.32.61
yutao@yutao:~$
- Ubuntu下Linux内核编译
- Ubuntu下编译Linux内核
- ubuntu下编译linux内核
- ubuntu下编译linux内核
- Ubuntu下编译Linux内核
- ubuntu下编译linux内核
- ubuntu下编译linux内核
- Ubuntu下编译linux内核
- ubuntu下编译linux内核
- Linux(Ubuntu)下编译内核模块
- Ubuntu下编译android的linux内核
- Ubuntu下编译Linux 3.0.4内核
- 在Ubuntu下编译Linux内核
- Ubuntu下编译android的linux内核
- ubuntu下编译linux 3.16内核
- ubuntu下linux preempt内核编译
- 【Linux学习】Ubuntu下内核编译(一)
- Ubuntu下编译内核
- 20人就能做大型网游 Hero游戏引擎进军韩国
- PB9.0和.INI文件
- 那些年 我们被坑过的游戏引擎
- 根据ascii码打出不可见字符
- Android中px dpi dip density densityDpi 的相关说明
- ubuntu下编译linux内核
- 2011-04-16 嵌入式Linux开发——SSH远程登录
- Android编程碎片:Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
- 装饰者(Decorator)
- 数据结构 二叉查找树 BST
- 畅游技术总监靳超:游戏引擎的四大变革
- 孙鑫 VC++深入详解第18课——ActiveX控件编程
- A - Who's in the Middle
- 推送通知:操作流程