aapt源码编译-Linux内核基础——Linux内核源码编译、安装及内核替换验证

Linux内核基础——Linux内核源码编译、安装及内核替换验证

Linux内核编译 1.确定我们需要的内核版本

由于编译后需要进行内核移植的学习操作,因此应选择与Linux发行版本相同的内核版本,以避免移植后出现不可预测的问题。

通过在shell中执行uname -r命令,我们可以获取我们当前linux发行版的内核版本,这里我们获取的是linux内核版本4.15.0-45

zjc@zjc-PC: uname -r
4.15.0-45-generic

2.下载对应版本的内核源码。 从官方仓库下载。 从国外镜像仓库下载。 Ubuntu系统下,会手动下载sudoapt-getinstalllinux-source-4.15.0源码到/usr/src目录下

由于linux内核是一个整体内核(这个概念请参考Linux内核基本概念章节),内核的功能庞大,很多功能都是以模块的形式加载的。 用户可以根据自己的需要定制功能,只将自己想要使用的功能编译到内核中。 ,所以linux的定制化是非常好的。

因此,内核开发者也编写了各种make编译工具的配置脚本,供用户针对各种需求使用。

makeconfig逐字配置makemenuconfig图形配置界面,需要sudomenuconfig,否则会提示找不到库,或者可以sudoapt-cachesearch库名下载对应的开发库aapt源码编译,后缀为-dev,这样就可以直接执行,无需超级权限。 makexconfig也是图形化配置界面,依靠图形化系统makeoldconfig(我使用的配置形式)使用原来的配置进行配置。 它使用当前目录下的.config配置文件中的配置信息进行配置。 所以我需要sudocp /boot/config-4.15.0-45-generic.config将我当前的linux发行系统下的配置文件复制到我们要编译的内核中,这就是我当前使用的这个内核的配置4. 系统内核配置配置完成后编译

编译只需执行make编译工具脚本,执行make命令即可,而且这里需要提醒的是,内核编译工作量非常大,我使用的是make-j16进行编译。

这里出现两个问题:

make-j16 是什么意思?

make编译过程使用我的8个处理器核心同时工作,每个处理器上打开两个线程。 为此,可以输入lscpu查看当前操作系统使用的cpu核心数,每个核心开启一到两个线程(一般是这样的,我每个核心开启两个线程,cpu已经满了) 。 make到底是做什么的?

要了解这个问题,最权威的方法是在源码根目录下执行makehelp命令。 输出帮助内容中的最后一行找到了我们想要的答案。

make 和 makeall 命令用于创建所有标有 [*] 的目标文件。 向下滚动帮助内容会产生以下结果。

*bzImage      - Compressed kernel image (arch/x86/boot/bzImage)
*vmlinux	  - Build the bare kernel
*modules	  - Build all modules

从上面我们还可以看到,执行make命令后,makemodules就已经被包含进来了,即内核模块已经编译完成了。 因此,make命令结束后aapt源码编译,我们就可以直接进行安装内核的任务了。

五、编译完成

只用了30分钟左右,就完成了原本几个小时才能完成的内核编译工作。

Linux内核安装与验证 1.编译安装模块

1.安装所有内核模块

sudo make modules_install

2.安装linux内核核心

sudo make install

执行完以上两个操作,l​​inux内核的安装就已经完成了。

2. 内核安装验证

Ubuntu 16.04版本操作系统下,重启系统时按Shift键进入GRUB引导界面,然后进入中间设置更改linux内核版本。

开机后使用uname -r命令检查内核是否更换成功。

zjc@ubuntu:~$ uname -r
4.15.0

验证成功。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 aapt源码编译-Linux内核基础——Linux内核源码编译、安装及内核替换验证 https://www.wkzy.net/game/144927.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务