• Ubuntu12.04 内核树建立


    先查看自己使用的内核版本

    lin@lin-virtual-machine:~$  uname -r
    3.2.0-23-generic

    如果安装系统时,自动安装了源码。在 /usr/src 目录下有对应的使用的版本目录。

    lin@lin-virtual-machine:~$ cd /usr/src
    lin@lin-virtual-machine:/usr/src$ ls
    linux-headers-3.2.0-23  linux-headers-3.2.0-23-generic

    查看一下可一下载的源码包

    lin@lin-virtual-machine:/usr/src$ 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

    我这里选择所以“linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches”直接 install

    lin@lin-virtual-machine:/usr/src$ sudo apt-get install linux-source-3.2.0

    下载完成后,在/usr/src下,文件名为:linux-source-3.2.0.tar.bz2,是一个压缩包,解压缩既可以得到整个内核的源代码。

    使用pwd来查看当前路径

    ls来查看文件夹中有哪些文件

    lin@lin-virtual-machine:/usr/src$ pwd
    /usr/src
    lin@lin-virtual-machine:/usr/src$ ls
    linux-headers-3.2.0-23          linux-source-3.2.0
    linux-headers-3.2.0-23-generic  linux-source-3.2.0.tar.bz2

    解压缩

    lin@lin-virtual-machine:/usr/src#sudo tar jxvf linux-source-3.2.0.tar.bz2

    进入该目录(cd linux-source-3.2.0)

    lin@lin-virtual-machine:/usr/src$ cd linux-source-3.2.0/
    lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ pwd
    /usr/src/linux-source-3.2.0

    开始配置内核 选择最快的原版的配置(默认)方式

    lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make oldconfig

    make需要等一个小时多。。。

    lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make

     数小时后

    ...
    System is 4826 kB
    CRC d5a51584
    Kernel: arch/x86/boot/bzImage is ready  (#1)
      Building modules, stage 2.
      MODPOST 3304 modules
    ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
    WARNING: modpost: Found 4 section mismatch(es).
    To see full details build your kernel with:
    'make CONFIG_DEBUG_SECTION_MISMATCH=y'
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

     解决方法:来自http://ubuntuforums.org/showthread.php?t=1931029

    lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo gedit .config

    估计是RTS5139驱动的问题.反正没有使用这个驱动,不要加入编译, 编辑.config, 将

    CONFIG_RTS5139=m

    修改成如下的形式:

    CONFIG_RTS5139=n

    继续make

    编译压缩形式的内核

    make bzImage

     编译模块:

    make modules

    安装模块: 

    make modules_install

    执行结束之后,会在/lib/modules下生成新的目录

    lin@lin-virtual-machine:/lib/modules$ ls
    3.2.0-23-generic  3.2.79

    成功后重启。

  • 相关阅读:
    NFC协议概述
    7-VMware Horizon 2203 虚拟桌面-事件数据库配置(七)
    Python 搭建 FastAPI 项目
    每天五分钟机器学习:函数间隔与几何间隔以及平行和重合的问题
    请问WPF的LiveCharts怎么解决这种X轴Labels自动跟随数据点的情况
    合并两个有序的线性表
    Vue | Vue.js Composition API(二)
    2023天津科技大学计算机考研信息汇总
    Java 并发编程解析 | 基于 JDK 源码解析 Java 领域中 ReentrantLock 锁的设计思想与实现原理
    【Mysql面试加分项】——Innodb的死锁检测机制【文末送书】
  • 原文地址:https://blog.csdn.net/m0_62089210/article/details/127400055