ubuntu kernel编译

来源:互联网 发布:网络服务器机柜回收 编辑:程序博客网 时间:2024/05/18 04:34

kernel编译

由于需要在kernel中添加patch,所以需要重新编译一份ubuntu的linux kernel。具体过程如下:

  • 1. uname -r。查看目前使用的kernel版本
  • 2. sudo apt-cache search linux-source。 查看可用apt-get install的kernel版本。对于不同发行版的ubuntu,可用的kernel都是不同的。
    $ sudo apt-cache search linux-sourcelinux-source - Linux kernel source with Ubuntu patcheslinux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches
  • 3. sudo apt-install linux-source-3.2.0 。下载最新的kernel。在/usr/src目录下
  • 4. cd /usr/src。解压下载的kernel source code
  • 5. cd到kernel source code目录下。以下所有的操作都是在root权限下进行的
  • 6. make menuconfig。
    • 需要修改其中的CONFIG_DEBUG_SECTION_MISMATCH变量为y。否则在编译时候会出现问题,具体见下面的问题与分析
    • 在此需要配置下相关的需要编译的kernel模块。特别是driver,把不需要的driver都disable,比如直接把driver中的staging都给disable。
    • 如果按照默认的ubuntu的配置,会加载所有的driver。但是这样在编译的时候会耗费很长的时间,同时占用很大的硬盘空间(第一次编译占用了6G的硬盘)
  • 7. make bzImage。 直接进行编译,生成linux kernel文件:arch/x86/boot/bzImage
  • 8. make modules。 编译module
  • 9. make modules_install。 安装编译的module到/lib/modules目录下
  • 10. make install。 安装linux kernel。
    • 在此,会把第7步中生成的bzImage安装到/boot/vmlinuz-3.2.42。还有System.map
    • 同时使用命令initramfs-tools生成initrd.img文件到/boot/initrd.img-3.2.42
    • 最后会更新grub.cfg文件,让系统从新编译的kernel启动。
0 0
原创粉丝点击