linux系统编译内核源码的步骤演示

在进行linux系统上面的程序开发的时候有一些驱动类的或者是要引用内核接口的时候难免不会遇到编译内核源码的情况,在这里我就进行一下内核源码的相关编译流程。整个内核的编译过程来说比较简单,就是几条指令,用心理解就好。
Step 1: 首先下载内核源码
如果你是Ubuntu或基于Ubuntu的Debian,内核源代码是作为 deb 包提供的。 首先,与其他的源码包一样用apt-get 来执行安装。 标题为 Linux-source 的源码包就是最新的内核源码包的元包。

# apt-get install linux-source

在安装内核源代码的 deb 包后,会在 /usr/src 下生成 tar 文件, 只要将这个文件复制到适当的目录下并解压缩, 就能够获取内核源代码。

Step 2: 解压源代码
压缩包下载完成后,可以通过tar命令解压。
tar xvf linux-source-4.4.0.tar.bz2

sudo tar xvf linux-source-4.4.0.tar.bz2

在解压的时候可以看到文件列表,这个会很多,可能需要等一会儿。

linux-source-4.4.0/zfs/config/kernel-put-link.m4
linux-source-4.4.0/zfs/config/always-no-bool-compare.m4
linux-source-4.4.0/zfs/config/kernel-commit-metadata.m4
linux-source-4.4.0/zfs/config/tgz.am
linux-source-4.4.0/zfs/config/kernel-shrink.m4
linux-source-4.4.0/zfs/config/kernel-kobj-name-len.m4
linux-source-4.4.0/zfs/config/kernel-is_owner_or_cap.m4
linux-source-4.4.0/zfs/config/kernel-get-disk-ro.m4
linux-source-4.4.0/zfs/config/kernel-blkdev-get.m4
linux-source-4.4.0/zfs/config/kernel-open-bdev-exclusive.m4
linux-source-4.4.0/zfs/config/kernel-acl.m4
linux-source-4.4.0/zfs/config/ltsugar.m4
linux-source-4.4.0/zfs/config/Rules.am
linux-source-4.4.0/zfs/config/kernel-get-link.m4
linux-source-4.4.0/zfs/config/kernel-file-inode.m4
linux-source-4.4.0/zfs/config/mount-helper.m4
linux-source-4.4.0/zfs/config/kernel-lookup-bdev.m4
linux-source-4.4.0/zfs/config/config.guess
linux-source-4.4.0/zfs/config/kernel-insert-inode-locked.m4
linux-source-4.4.0/zfs/config/kernel-bdi-setup-and-register.m4
linux-source-4.4.0/zfs/config/kernel-blk-queue-max-segments.m4
linux-source-4.4.0/zfs/config/kernel-block-device-operations-release-void.m4
linux-source-4.4.0/zfs/config/lt~obsolete.m4
linux-source-4.4.0/zfs/config/kernel-clear-inode.m4
linux-source-4.4.0/zfs/config/kernel-dentry-operations.m4
linux-source-4.4.0/zfs/config/kernel-truncate-range.m4
linux-source-4.4.0/zfs/config/kernel-d-prune-aliases.m4
linux-source-4.4.0/zfs/config/kernel-truncate-setsize.m4
linux-source-4.4.0/zfs/config/user-frame-larger-than.m4
linux-source-4.4.0/zfs/config/kernel-blk-queue-flush.m4
linux-source-4.4.0/zfs/config/ltoptions.m4
linux-source-4.4.0/zfs/config/zfs-meta.m4
linux-source-4.4.0/zfs/config/kernel-fallocate.m4
linux-source-4.4.0/zfs/config/user-libblkid.m4
linux-source-4.4.0/zfs/config/kernel-create-nameidata.m4
linux-source-4.4.0/zfs/config/user-arch.m4
linux-source-4.4.0/zfs/config/kernel-bdev-physical-size.m4
linux-source-4.4.0/zfs/config/kernel-d-obtain-alias.m4
linux-source-4.4.0/zfs/config/kernel-bio-failfast.m4
linux-source-4.4.0/zfs/config/user.m4
linux-source-4.4.0/zfs/config/kernel-sget-args.m4
linux-source-4.4.0/zfs/dkms.conf
##lz@ubuntu:/usr/src/linux-source-4.4.0$

Step 3:

  1. 进入源代码目录
cd linux-source-4.4.0
  1. 从当前机器的启动目录拷贝配置信息到源代码目录。这步操作的意思是我们编译内核的配置采用用当前环境一致的配置。
cp -v /boot/config-$(uname -r) .config

  1. 可以通过如下命令启动配置界面
make menuconfig

如果报错如下:
则运行命令:

sudo apt-get install libncurses5-dev


再次运行

make menuconfig

该命令会运行一些脚本,然后打开一个配置界面

可以看出里面包含所有的内核组件,包括文件系统,网络,IO栈,虚拟化和设备驱动等等。如果你不熟悉,可以不做任何修改。
Step 5: 编译内核

  1. 通过如下命令就可以编译内核了
Make -j 8

上面参数是并发数量,通常可以使CPU的2倍。
可以看到如下代码,不用担心等编译完成即可,可能时间很长不用特意等待

linux系统编译内核源码的步骤演示相关推荐

  1. 在Windows和Linux上编译gRPC源码操作步骤(C++)

    gRPC最新发布版本为v1.23.0,下面以此版本为例说明在Windows和Linux下编译过程. Windows7/10 vs2103编译gRPC源码操作步骤: 1. 需要本机已安装Git.CMak ...

  2. 飞凌嵌入式iMX8MP 开发板试用体验--编译内核源码

    FETMX8MP-C核心板基于NXP i.MX 8M Plus处理器开发设计,该系列处理器专注于机器学习与视觉.高级多媒体以及具有高可靠性的工业自动化.旨在满足智慧城市.工业互联网.智能医疗.智慧交通 ...

  3. Linux系统编程手册-源码的使用

    Linux系统编程手册-源码的使用 转自:http://www.cnblogs.com/pluse/p/6296992.html 第三章后续部分重点介绍了后面章节所要使用的头文件及其实现,主要如下: ...

  4. ubuntu20.04 编译内核源码5.15.58

    现在的内核版本: ok@ok-VirtualBox:~$ uname -a Linux ok-VirtualBox 5.15.0-41-generic #44~20.04.1-Ubuntu SMP F ...

  5. linux内核体系学习路径_Linux内核分析(一)linux体系简介|内核源码简介|内核配置编译安装...

    从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底,同时在博文中如果那些地方有问题还请各位大神为我讲解. 今天我们会分析到以下内容: 1. Linux体系结构简介 ...

  6. android 修改编译内核源码 对抗反调试

    0×00  写在前面 攻防对立.程序调试与反调试之间的对抗是一个永恒的主题.在安卓逆向工程实践中,通过修改和编译安卓内核源码来对抗反调试是一种常见的方法.但网上关于此类的资料比较少,且都是基于AOSP ...

  7. Ubuntu18.04系统编译android源码环境配置

    1. 前言 我们做andorid系统开发,肯定时刻与源码打交到,特别是做新项目时,最重要的事情就是下载源码,然后配置环境编译,假如你的电脑是刚重装系统过,一个全新的开发环境,那么首要解决的事情就是完善 ...

  8. Linux如何编译安装源码包软件

    一.什么是源码包软件: 顾名思义,源码包就是源代码的可见的软件包,基于Linux和BSD系统的软件最常见:在国内源可见的软件几乎绝迹:大多开源软件都是国外出品:在国内较为出名的开源软件有fcitx;l ...

  9. linux top 源码,在Linux系统中下载源码包安装Topgrade的方法,附Topgrade选项说明

    本文介绍在Linux操作系统中下载源码包安装Topgrade的方法,即下载topgrade-v2.3.0-x86_64-unknown-linux-gnu.tar.gz包并进行安装,经测试,在Ubun ...

最新文章

  1. 解决日常bug的正确姿势
  2. 通过 React Hooks 声明式地使用 setInterval
  3. 关于java中多态的理解,涉及到内存空间
  4. java JVM虚拟机
  5. Mybatis拦截器 mysql load data local 内存流处理
  6. json / 简介及结构
  7. php中读取文件函数,php 读取文件夹与文件夹中文件的函数
  8. 删除git库中untracked files(未监控)的文件
  9. Android插件化开发之DexClassLoader动态加载dex、jar小Demo
  10. 一个字符带下滑线的EditText
  11. python语言中的模块包括_python中常用的模块的总结
  12. 太极root权限_太极框架免root版下载
  13. 相似度测试的软件,Plagiarism Checker X(文章相似度检测软件) V6.08 官方版
  14. java 毫秒转分钟和秒_java - 将毫秒转换为分钟和秒? - 堆栈内存溢出
  15. Esxi通过U盘启动
  16. 计算机普通用户禁止修改c盘,win10系统禁止Guest账户访问C盘的设置技巧
  17. 域名前缀和后缀html,为什么域名前要加www前缀,www是什么意思? - 立金哥
  18. 【洛谷4920】[WC2015] 未来程序(提答题)
  19. 针对初学者的React Crash课程,第3部分
  20. Go语言开发工具 LiteIDE X27 发布

热门文章

  1. 适合女生玩的可爱网站
  2. C# Remoting(RPC调用)
  3. 关于slmgr命令的那些事
  4. 运营体系_运营技巧|如何搭建运营体系?
  5. 计算机word复制粘贴键,小编教你电脑Word工具无法复制粘贴
  6. 痛心!阿里员工在家跳楼去世!
  7. 找你妹+ipad+wifi,回顾那年的经典游戏
  8. vscode怎么新建vue项目
  9. DDL语言(添加、修改、删除)
  10. css设置超出几行显示省略号(单行、多行),兼容数字英文不换行问题,兼容中文字符隔空换行问题