ubuntu命令安装内核源码及升级内核源码

ubuntu命令安装内核源码
 
sudo apt-get install linux-source 会自动安装当前版本内核的源代码到 /usr/src
 
升级内核源码:

  1.将下载过来linux源代码包(tar.bz2包)解压到/usr/src下。如果你还不知道怎么解压,请google之~解压完毕后可以在/usr/src目录下看到一个linux-2.6.31.6的文件夹

  2.转移目录至linux-2.6.31.6用如下命令:

  cd /usr/src/linux-2.6.31.6

  3.先配置Ubuntu内核:

  make menuconfig

  具体怎么配置我不清楚,不过这个基本上不用怎么配置的,直接选最后一项,save,exit就OK了

  4.接着开始编译Ubuntu内核:make

  这是一个漫长的过程,慢慢等吧~~这个花了我将近一个半小时的时间

  5.加入模块:

  make modules_install

  6.生成可执行的Ubuntu内核引导文件:

  make bzImage (注意i字母要大写)

  7.将bzImage复制至/boot下:

  cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6 //2.6.32Ubuntu内核的bzImage目录为arch/x86/boot/bzImage

  8.清除多余的创建文件:

  make clean //这一步最好还是留到最后来做(现在可以先不跳过这一步),这样的话,即使你后面操作失误也可以回到这里重做,而不需要重新编译

  9.将System.map复制至/boot下:

  cp System.map /boot/System.map-2.6.31.6

sudo cp .config /boot/config-2.6.39

  10.生成initrd.img 这个很重要,我开始弄错了这个,害的我白重启了一次。命令:

  cd /lib/modules/2.6.31.6

  sudo mkinitramfs -o /boot/initrd.img-2.6.31.6 //2.6.32可以为sudo update-initramfs -c - k 2.6.32

  11.自动查找新Ubuntu内核,并添加至grub引导:

  sudo update-grub

  这个过程也可以手动完成,方法是更改/boot/grub目录下menu.lst文件。这个文件引导系统的启动,结构很简单,就是指定引导文件而已,可以参考已有的启动项修改,我的是在该文件中添加如下内容:

  title Ubuntu 9.04, kernel 2.6.31

  uuid 753efade-04e8-4e2c-8bbb-965e9792b2f5

  kernel /boot/vmlinuz-2.6.31.6 root=UUID=753efade-04e8-4e2c-8bbb-965e9792b2f5 ro quiet splash

  initrd /boot/initrd.img-2.6.31.6

  //9.10采用的是Grub2 启动文件用grub.cfg代替 该文件所在目录为/boot/grub 若手动添加为可参考如下:

  menuentry "Ubuntu, Linux 2.6.32" {

  recordfail=1

  if [ -n ${have_grubenv} ]; then save_env recordfail; fi

  set quiet=1

  insmod ext2

  set root=(hd0,3)

  search --no-floppy --fs-uuid --set 3c611c5f-f941-4970-956f-fe4c7bf75714

  linux/boot/vmlinuz-2.6.32 root=UUID=3c611c5f-f941-4970-956f-fe4c7bf75714 ro quiet splash

  initrd/boot/initrd.img-2.6.32

  12.重启电脑:reboot 你会发现启动项里多了一个Ubuntu 9.04, kernel 2.6.31(Ubuntu, Linux 2.6.32)的选项,选择这个,进入系统。

  以上介绍Ubuntu内核更新。


出现错误:

modprobe:FATAL: could not load /lib/modules/2.6.35-22-generic/modules.dep No such file or directory

给ubuntu升级到10.10 ,开机可能出现错误
modprobe:FATAL: could not load /lib/modules/2.6.35-22-generic/modules.dep No such file or directory
modprobe:FATAL: could not load /lib/modules/2.6.35-22-generic/modules.dep No such file or directory
解决办法:

1:sudo gedit /etc/initramfs-tools/initramfs.conf(建议先备份一下这个文件)
把MODULES=most改为MODULES=dep
2:echo FRAMEBUFFER=y | sudo tee /etc/initramfs-tools/conf.d/splash
3:sudo update-initramfs -u

4:

update-inintramfs -c -k 2.6.20

另一篇文字里作者说
“只做第二步即可:(2、3步)以上命令的意思是在引导时即打开了帧缓存(图形界面),这样就导致原本在文本界面显示的错误信息不显示了。当然这并不是本质上的解决方法——只是不烦人了。
此外,这样修改后,我感觉引导速度略有降低,在我的机器上,原本引导时需要亮5个红点即可进入,现在却需要亮两遍(10个红点)。不知道是否是因为提前进入了图形界面而导致感觉上时间长了。”


你可能感兴趣的:(ubuntu命令安装内核源码及升级内核源码)