ubuntu下编译内核简单步骤
时间:2024-02-11 05:25:09 点击:232

  学习linux的时候如果要添加自己的系统调用,你不得不重新编译内核,哪怕是出于兴趣,也要有编译内核的经历。有句哲理是这样的:做一件事不难,难就难在你迈出了这一步,呵呵,有点假了。

  嗯,不多废话了,经过朋友的指点,首先掌握一个简单的,清晰的编译过程多初次体验者来说至关重要。所以先

  记录下这个简单的第一次。

  第一步:得有源码(废话么,编译程序没源码行吗?)在哪下载呢?www.kernel.org 自己找一个源码包,记得

  是点后面的F(完全版)下载。我的源码包是:linux-2.6.33.1.tar.bz2

  在终端下拷贝源码到/usr/src/下:#cp linux-2.6.33.1.tar.bz2 /usr/src/

  这里得是超级用户权限。然后在/usr/src/目录下解压源码包:#tar -jxvf linux-2.6.33.1.tar.bz2

  第二步:配置相关文件,这里有三种方法 1,#make config 2,#make menuconfig 3,#make xconfig

  我们使用的全是默认的配置。所以直接使用第二种方法,进入以后直接推出就可以了,以后再研究原因吧,

  暂时先这样使用。

  第三步:编译内核:(前面的两个步骤可以省略,一个#make dep 一个#make clean),这里直接#make

  就行了,然后静静的等待吧,一般的机子一两个小时就编译完成了。编译完成后就是安装内核了。

  第四步:安装内核,#make modules(编译模块)和#make modules_install

  再生成内核镜像文件,我的命令是:makinitramfs -o /boot/initrd-2.6.33.1.img 2.6.33.1

  然后安装即可 #make install

  第五步:设置启动项的配置在ubuntu9.04以及之前的发行版上也就使使用grub2.0之前的启动配置都是在

  /boot/grub/menu.lst进行修改,后再来的版本上是在/boot/grub/grub.cfg里面修改,不过要改动的地方很类似

  这里就不赘述了,只是记录下#gedit /boot/grub/grub.cfg

  先看我的示例:

  这个是我之前的,所以只要复制一下这个,然后在这里面进行修改

  menuentry “Ubuntu, Linux 2.6.31-21-generic“ {

  recordfail=1

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

  set quiet=1

  insmod ext2

  set root=(hd0,5)

  search --no-floppy --fs-uuid --set d18b116e-7143-4f74-84b9-17c27e283bfc

  linux /boot/vmlinuz-2.6.31-21-generic root=UUID=d18b116e-7143-4f74-84b9-17c27e283bfc ro quiet splash

  initrd /boot/initrd.img-2.6.31-21-generic

  }

  ##修改后的,红色为发生变动的地方:

  menuentry “Test-Ubuntu, Linux 2.6.33-1“ {

  recordfail=1

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

  set quiet=1

  insmod ext2

  set root=(hd0,5)

  search --no-floppy --fs-uuid --set d18b116e-7143-4f74-84b9-17c27e283bfc

  linux /boot/vmlinuz-2.6.33.1 root=UUID=d18b116e-7143-4f74-84b9-17c27e283bfc ro quiet splash

  initrd /boot/initrd-2.6.33.1.img

  }

  完成后保存,基本上就好了。然后重启你会发现启动项里面多了个Test-Ubuntu, Linux 2.6.33-1 选项

  所以了,选择进入就是了。

最新游戏更多

最新软件更多

  • 玩家推荐
  • 游戏攻略

金钼软件下载站 Copyright(C) 2008- 601958.cn All Rights Reserved!

闽ICP备2023004188号| 免责声明