ubuntu 内核的升级与编译

 

1, 因为我们之后要进行make menuconfig,所以需要在ubuntu中安装一个ncurses,执行命令:

sudo apt-get install libncurses*

2, 将内核文件放到主目录(/home/yourname)下,其实放在哪儿没关系,只不过习惯放在home目录下,然后解压:

sudo tar -jxvf linux-2.6.38.2.tar.bz2

(注意也有人喜欢解压到/usr/src目录下,那么久请执行

sudo tar -jxvf linux-2.6.38.2.tar.bz2 -C /usr/src

)

3, 进入到内核源代码目录,需要配置内核,但是配置内核前,可能有一些清理工作需要做(因为是新下载的内核,所以通常可不必此步骤)

make clean remove most generated files but keep the config

make mrproper remove all generated files + config+ vaious backup files

 

4, 配置内核,有几个选项可以选择:

make config是基于文本的传统配置界面

make menuconfig是基于文本的选单式配置界面,是最为灵活的内核配置工具

make xconfig是基于图形窗口模式的配置界面,需要xWindow图形环境的支持

make oldconfig用于在原来内核配置的基础上作修改

但通常我们都是用第二种方式(需要libncurses)

make menuconfig

在这里,进入到文本选单,当然可以做一些选择,但通常如果不是实际应用,只是练习内核编译,那么选择general setup就可以了,然后退出,并保存内核配置

 

5、sudo make dep 建立模块间的依赖信息
6、sudo make clean 删除配置时留下的一些不用的文件

(5、6两步可能对于一些PC没有作用,的确这里对我的虚拟机是没用的,执行命令后并没有做任何事情)

 

7, 编译内核和模块,注意这里是编译内核和模块,在网上很多地方都没将此处叙述清除,这里有3个命令可供选择:

make 编译内核和模块,相当于make bzImage 加 make modules; 3个多小时

make zImage 编译长生压缩形式的内核文件,30分钟左右

make bzImage 编译产生高压缩形式的内核文件,30分钟左右

 

如果你执行了make,就没必要执行make modules,前一个在30分钟,后一个在3小时时间,如果执行make bzImage则需要make modules,前者编译内核,后者编译模块,如果是第一次编译内核则通常两个都需要,但如果是后来编程需要,只是修改了内核源码,则重新编译内核时并不需要重新编译内核。

在此,我先执行

make -j2 bzImage

再执行make modules

 

注意,在编译内核时,可以添加-j选项,来加快内核编译速度,单核使用-j2,双核使用-j4

 

8, 安装内核模块 sudo make modules_install

9, 安装内核 sudo make install,

该步骤,会为我们安装内核,它执行了下列命令:

#sudo cp /usr/src/linux-2.6.38.2/arch/i386/boot/bzImage /boot/vmlinuz-2.6.38.2
#sudo cp System.map /boot/System.map-2.6.38.2
#sudo ln -s /boot/System.map-2.6.38.2 /boot/System.map

即,把内核映象和System.map拷贝到/boot/下

同时,建立内核的config文件config-2.6.38.2

 

10, 在之前的内核和模块编译完成后,会在/lib/modules/目录下生成2.6.38.2的模块文件(包括内核头文件等),我们需要将它与/boot目录下关联,生成initrd映像,到/lib/modules/目录下(不在该目录下也行),执行命令:

sudo mkinitramfs 2.6.38.2 -o /boot/initrd.img-2.6.38.2

 

11, 至此,内核编译完成,更新grub文件:

sudo update-grub 或 sudo update-grub2(后者会生成一个old-内核文件的启动选项)

 

12,重启系统,如果没有错误,则查看uname -a会看到内核版本已经变成2.6.38.2

 

**中间可能会出现问题,大都是重启后不能进入系统,kernel panic或者没有grub选项,但这一次都没有遇到,有人说scsi的硬盘不能成功,但我的成功了,之前我也出现了kernel pani,然后找不到root fs,当时我使用的是2.6.35.12的内核,没有找到原因,换了最新内核之后就没有出现问题了,还有编译的时间很长,大家一定要有耐性。

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值