ubuntu12.04编译内核流程

来源:互联网 发布:龙源数据库论文查询 编辑:程序博客网 时间:2024/05/22 13:10

      经过四天的尝试,终于将ubunt12.04的3.11.0内核,升级到了3.12.20,整个编译时间需要6个小时,虚拟硬盘也增加了5G。编译过程和网上的其他帖子说的差不多,现在加入自己的一些心得,整理出一个完整的流程。

      准备工作:我用的是vmware9虚拟机,安装了ubuntu-12.04.4-alternate-i386.iso,其内核版本是3.11.0.不敢跨度太大,所以到www.kernel.org下载了3.12.20内核,当时最新的内核是3.14.4,我前面就是因为升级最新的内核,忙活了三天都不成功。

1.解压内核包

    把linux-3.12.20.tar.xz,移动到/usr/src,解压,命令如下:

    sudo xz -d linux-3.12.20.tar.xz  

    suod tar -xvf  linux-3.12.20.tar


2.进入 linux-3.12.20目录清除残留的.config.o文件

   命令:sudo make mrproper


3.配置内核编译选项

  这个工作非常专业,所以没有真正进行选择,而是复制了老内核的配置文件,改名为.config。

  1)命令:sudo cp /boot/config* ./config

  2)安装ncurses库,它是图形界面底层支持库,是menuconfig必需的。

     sudo apt-get install libncurese5-dev

  3)导入旧的配置文件,保存退出menuconfig

     sudo make menuconfig

     在打开的界面中,点击load,导入现有的.config,然后点击save保存,最后exit.

     提醒:用旧的配置,其实编译时非常费时,产生很多文件,非常坑爹,不过对选项不熟悉,还是不敢轻举妄动。

4.确定依赖性

    sudo make dep

5.清理中间文件

    sudo make clean

6.编译新内核(费时近1hour)

    sudo make bzImage

7.编译模块(最坑,差不多要4个小时)

    sudo make modules

   提醒:在有些帖子中是提出以上两步可以直接用sudo make jn,来并行处理,n取CPU核心的两倍数。如果是四核,就是

          sudo make j8

8.安装模块

    sudo make modules_install

   这一步,耗时也不少。因为我的CPU是AMD3核,开始怀疑我的CPU的兼容性和效率问题。没办法,还是迷信intel。

9.建立ramdisk文件。

     sudo mkinitramfs -o /boot/initrd-linux-3.12.20.img

     这个文件足有147M,老内核的文件才17M.

10.安装内核

      sudo make install

11. 配置grub

      在上一步中,系统已经自动更新了grub,但是这个引导程序的默认选项为新内核,如果需要改回原内核为默认,就要手动来修改default值。打开/etc/default/grub

     sudo gedit /etc/default/grub

     修改default, 注释掉第2行hidded timeout

12.更新grub

   sudo update-grub

13.重启






0 0
原创粉丝点击