• Ubuntu下配置内核源码树


    最近正准备学习《Linux设备驱动程序》,需要搭建内核源码树。本打算在虚拟机上配置内核源码树,但是电脑的内存太小,分配给虚拟机更小了,使用起来很卡。最终还是决定直接在我的Ubuntu系统下直接配置,希望以后我写的驱动程序不要让系统崩溃(原先用的是UbuntuKylin,但是被我搞崩溃了,后来就装了Ubuntu和win7双系统)。

    配置内核首先要下载源码,使用命令apt-cache  search linux-source查找源码(所有截图是在win7下的VirtualBox下)。

    使用命令sudo apt-get install linux-source-3.16.0(版本号是找到的源码的版本号)下载源码,在usr/src/ 会得到一个名为 linux-source-3.16.0.tar.bz2的压缩文件。

    然后跳转路径到/usr/src/ 下使用sudo tar jvxf linux-source-3.16.0.tar.bz2进行解压缩。会得到一个名为linux-source-3.16.0的文件夹。

    进入linux-source-3.16.0文件会看到(有一些隐藏文件没有列出来,其中有一个名为.config的文件是一些配置信息,有兴趣可以使用vi .config查看其内容)

    接下来要进行配置、编译加载等(在该文件路径下,可以通过命令make help,查看其帮助信息)。

    首先是sudo make oldconfig进行配置(注意要使用root权限,否则会出错)。

    接着使用sudo make bzImage(这一步需要花费很长时间,就是在这一步虚拟机系统非常卡,我只能放弃,重新在我的Ubuntu系统下进行,接下来就不放截图了)。

    然后使用sudo make modules(这一步也需要花费很长时间)。

    最后使用sudo make modules_install

    通过上述的步骤就配置成功了,前后差不多需要花费三个小时左右。

    接下来就可以加载《Linux设备驱动程序》中的Hello World模块。

  • 相关阅读:
    JZOJ 5728. 简单计数|| (容斥+动态规划)
    6638. 【GDOI2020.5.16模拟】Seat (队列)
    JZOJ 5750. 青青草原播种计划 (小性质+线段树)
    JZOJ 5753. 完全二叉树 (可持久化线段树维护hash值)
    JS框架-React.js
    flexbox弹性盒子布局
    压缩js和css文件的原理
    JS判断数据类型的方式
    JS数据类型
    ES6新特性
  • 原文地址:https://www.cnblogs.com/alants/p/4358895.html
Copyright © 2020-2023  润新知