ubuntu(20.04)+linux内核(5.17.3)编译内核

您所在的位置:网站首页 linux编译内核的目的是什么 ubuntu(20.04)+linux内核(5.17.3)编译内核

ubuntu(20.04)+linux内核(5.17.3)编译内核

2023-12-13 12:04| 来源: 网络整理| 查看: 265

该篇文档可以放心观看,里面的内容是我以便编译内核,一边记录写下的,所以如果按照文档来做,是绝对可以的哈!!!

文章目录 前言一、安装linux内核二. 开始前的准备工作三.内核编译1. 将下载好的linux内核解压至`/usr/src`2. 得到源代码后,将其净化3. 配置要进行编译的内核4.编译内核. (15分钟)5.编译模块.(1小时左右,我电脑好像就用了40min,反正需要等待一定时间)6.安装模块7.打包8.到此为止,构建内核完毕,把内核映象和System.map拷贝到/boot/下9. 修改grub配置文件/boot/grub/grub.cfg问题解决方案:关闭secure boot 总结

前言

由于编译内核有许许多多的地方会出错,所以打算完整记录以下编译内核的过程,希望能够帮助到更多人!

提示:以下是本篇文章正文内容,下面案例可供参考

一、安装linux内核

linux内核官方网站:www.kernel.org 进入网站后下载该版本。 在这里插入图片描述

二. 开始前的准备工作

输入下面命令完成安装需要的包

sudo apt-get install libncurses5-dev openssl libssl-dev sudo apt-get install build-essential openssl sudo apt-get install pkg-config sudo apt-get install libc6-dev sudo apt-get install bison sudo apt-get install flex sudo apt-get install libelf-dev sudo apt-get install zlibc minizip sudo apt-get install libidn11-dev libidn11 三.内核编译 1. 将下载好的linux内核解压至/usr/src tar -xavf linux-5.17.3.tar.xz -C /usr/src cd /usr/src/linux-5.17.3 2. 得到源代码后,将其净化 make mrproper 3. 配置要进行编译的内核 cp /boot/config-`uname -r` ./.config make menuconfig

依次点击load → (.config)OK→ SAVE→ (.config)OK → EXIT load后默认.config (ls -al) 在这里插入图片描述

4.编译内核. (15分钟)

make bzImage -j4 (-j表示加速,4代表着线程数)

注意,可能会碰到几分钟就编译完了的情况,跑完也不显示什么,直接就完了

在这里插入图片描述

此时需要我们修改如下文件,使用命令

gedit .config

看了网上好多东西都是这样改动的,在此为了防止小伙伴们踩坑,我直接将/config文件献上,直接CV即可!!! 在这里插入图片描述修改为这样 在这里插入图片描述.config文件链接(由于太多了,所以另外写了一篇,推荐直接cv哈!!!)

https://blog.csdn.net/weixin_62882080/article/details/124262374

5.编译模块.(1小时左右,我电脑好像就用了40min,反正需要等待一定时间) make modules -j4 6.安装模块 make INSTALL_MOD_STRIP=1 modules_install 7.打包

这个命令的作用是把/lib/modules/5.17.3中对应的.ko驱动打包到initrd.img文件中。

mkinitramfs /lib/modules/5.17.3 -o /boot/initrd.img-5.17.3-generic

在这里插入图片描述

8.到此为止,构建内核完毕,把内核映象和System.map拷贝到/boot/下 #cp /usr/src/linux-4.18.14/arch/x86/boot/bzImage /boot/vmlinuz-4.18.14-generic #cp /usr/src/linux-4.18.14/System.map /boot/System.map-4.18.14 9. 修改grub配置文件/boot/grub/grub.cfg chmod 777 grub.cfg update-grub2

在这里插入图片描述 重启,启动grub时就可看到自己新的内核

reboot

在终端输入

uname -r

在这里插入图片描述

问题

我按照上述操作来,到最后一步重启时发现进不了ubuntu了。

error: /XXX has invalid signature error: you need to load the kernel first

解决方案:关闭secure boot

首先进入原来的内核,就是在启动的时候选择ubuntu高级选项 进入旧内核,然后按照如下操作即可。

终端输入:

sudo apt install mokutil sudo mokutil --disable-validation

然后输入一个密码,后面会用到

reboot重启

四个选项,选择change secure boot state

比如第一步设置的密码为123,则char[1] =1,char[2] =2,就是第几个字符的意思

5.选择yes

6.重启即可

在这里插入图片描述

总结

在编译内核的时候特别要注意.config文件,看到网上的一些教程修改.config文件后发现还是在安装模块以及后续会报错,所以在此特意提供了成功编译内核的.config文件来减少大家不必要的错误!!!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3