ubuntu kernel编译

本文详细介绍了如何在Ubuntu环境下编译Linux内核的方法,包括下载源代码、配置编译选项、生成内核映像及模块等步骤,并提供了一些实用的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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-source
    linux-source - Linux kernel source with Ubuntu patches
    linux-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启动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值