ubuntu编译kernel

2023-05-04 18:08:17 | 来源:博客园

前言

使用的是ubuntu 22.04 本来的kernel:5.19.0-38-generic 编译kernel 5.19

使用虚拟机要注意存储空间的变化,避免内存爆掉。

环境配置

需要先安装配置环境


(资料图片仅供参考)

sudo apt-get install ncurses-devsudo apt-get install flexsudo apt-get install bisonsudo apt-get install libelf-devsudo apt-get install libssl-devsudo apt install dwarvessudo apt-get install zstd

编译kernel

下载和kernel同版本的源码。

http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/linux-5.19.tar.gz

将自带的配置文件copy到解压的源码的顶层Makefile处。

cp -r /boot/config-5.19.0-38-generic .config

配置kernel

sudo make menuconfig

选择save,选择.config(之前copy过来的)

完成之后回到这个界面选择退出。

make

出现问题

make[1]: *** No rule to make target "debian/canonical-certs.pem", needed by "certs/x509_certificate_list".  Stop.make: *** [Makefile:1843: certs] Error 2

删除.config文件中这两行中的双引号中的内容,双引号保留。

CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"

清除编译结果重新编译。

清除编译结果

make mrproper

安装驱动

sudo make modules_install

完成后会生成一个版本号的文件夹。生成位置是/lib/modules/5.19.0

这个文件夹要创建需要权限。

生成内核压缩镜像文件

make bzImage

./arch/x86/boot下会生成bzImage文件

安装准备

5.19.0这个名字是/lib/modules下创建的文件夹的名字。

sudo cp -r arch/x86/boot/bzImage /boot/vmlinuz-5.19.0sudo cp -r .config /boot/config-5.19.0
root@ok-VirtualBox:/home/ok/Downloads/linux-5.15.58# cd /lib/modules/5.15.58/root@ok-VirtualBox:/lib/modules/5.15.58# lsbuild                      modules.builtin.bin      modules.softdepkernel                     modules.builtin.modinfo  modules.symbolsmodules.alias              modules.dep              modules.symbols.binmodules.alias.bin          modules.dep.bin          sourcemodules.builtin            modules.devnamemodules.builtin.alias.bin  modules.order

切换kernel版本

查看kernel版本

​这是可以选择的kernel版本,每个版本都有正常的和recovery mode两个 (不要选择recovery mode

root@ubuntu:/# cat /boot/grub/grub.cfg |grep -E "menuentry.+class.+class.+menuentry_id_option"menuentry "Ubuntu" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-simple-97fa777f-a9b2-4ce8-babc-03476266e1dd" {menuentry "Ubuntu, with Linux 5.19.0-41-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-5.19.0-41-generic-advanced-97fa777f-a9b2-4ce8-babc-03476266e1dd" {menuentry "Ubuntu, with Linux 5.19.0-41-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-5.19.0-41-generic-recovery-97fa777f-a9b2-4ce8-babc-03476266e1dd" {menuentry "Ubuntu, with Linux 5.19.0-38-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-5.19.0-38-generic-advanced-97fa777f-a9b2-4ce8-babc-03476266e1dd" {menuentry "Ubuntu, with Linux 5.19.0-38-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-5.19.0-38-generic-recovery-97fa777f-a9b2-4ce8-babc-03476266e1dd" {menuentry "Ubuntu, with Linux 5.19.0" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-5.19.0-advanced-97fa777f-a9b2-4ce8-babc-03476266e1dd" {menuentry "Ubuntu, with Linux 5.19.0 (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option "gnulinux-5.19.0-recovery-97fa777f-a9b2-4ce8-babc-03476266e1dd" {root@ubuntu:/# vi /etc/default/grub

选择版本

对照上面拿到的数据编上顺序号码

05.19.0-41-generic15.19.0-41-generic (recovery mode)2Linux 5.19.0-38-generic35.19.0-38-generic (recovery mode)4Linux 5.19.05Linux 5.19.0 (recovery mode)

配置/etc/default/grub文件

GRUB_DEFAULT=0

这个0就是选择的结果,对应的就是前面的版本,0表示的是默认的版本。不要选择recovery mode

如果不小心真的进入了recovery mode 在开机时长按shift键,自己手动选择。

为什么是0,因为默认的时候会自己选择第一个选项(正常开机就是默认选择的第一个 *Ubuntu):

但是我们自己编译的kernel想要使用就在第二个选项中,对应的操作码是1

然后第二个选项的子菜单

第一个选项是0,以此类推。

如果是想要启动Linux 5.19.0内核,就

GRUB_DEFAULT=1> 4

1表示的是一级菜单选择的是1,4表示的是二级菜单选择5.19.0 > 符号后面有一个空格

这个选项表也和之前查看的kernel版本对的上。

完成之后更新

sudo update-grub

重启

uname -r 查看版本是否切换成功

上一篇 下一篇

相关新闻

ubuntu编译kernel

今日看点:完成亿元级融资!钙钛矿企业再传捷报

全球动态:解剖学姿势是指_解剖学姿势

汇财金融投资(08018.HK):预计一季度净亏损减少不少于50% 快播报

【报资讯】星火成炬 | 向阳青春

昌旺航空2022年亏损109.82万 同比亏损减少 收到政府补助款

伟星新材:2022年公司泰国工业园已步入正轨,总体经营质量较好,但是目前规模相对较小

成都新津墨文学校发布2023年招生简章 世界热头条

鬼豹斗罗_关于鬼豹斗罗简述

旧教的意思_就教的意思

国金证券:给予明阳智能买入评级

当前滚动:医药50ETF(512120)今日已涨0.97%,华润三九触及涨停

n95和n90区别图片_n95和n90区别

卡塔尔央行加息25个基点

淄博烧烤海月龙宫体验地歇业三天,请游客合理安排行程

最新新闻

ubuntu编译kernel

今日看点:完成亿元级融资!钙钛矿企业再传捷报

全球动态:解剖学姿势是指_解剖学姿势

汇财金融投资(08018.HK):预计一季度净亏损减少不少于50% 快播报

【报资讯】星火成炬 | 向阳青春

昌旺航空2022年亏损109.82万 同比亏损减少 收到政府补助款

伟星新材:2022年公司泰国工业园已步入正轨,总体经营质量较好,但是目前规模相对较小

成都新津墨文学校发布2023年招生简章 世界热头条

鬼豹斗罗_关于鬼豹斗罗简述

旧教的意思_就教的意思

国金证券:给予明阳智能买入评级

当前滚动:医药50ETF(512120)今日已涨0.97%,华润三九触及涨停

n95和n90区别图片_n95和n90区别

卡塔尔央行加息25个基点

淄博烧烤海月龙宫体验地歇业三天,请游客合理安排行程

国家税务总局:“五一”假期旅游服务消费快速恢复

环球消息!第一台家用新能源车该如何选择 比亚迪e2给你答案

世界播报:中信证券:北京发布重点支持政策 利好人形机器人与硬件发展

陕西榆林横山区:志愿服务增效益 问卷调查提效能

奋进新征程,“建证”劳动美

世界快资讯:球栅阵列_关于球栅阵列介绍

【天天热闻】环保龙头股前4,环保龙头股一览表

2023年“五一”假期国内旅游出游合计2.74亿人次 同比增长70.83%

俄罗斯侦查委员会:已将克里姆林宫遭无人机袭击一事立案调查|天天时讯

“人从众”再现,“五一”旅游市场强势复苏 天天报道

门卫大爷要求节假日3倍工资,为何法院不支持?

天天热讯:孙耿街道花家村志愿服务队

游客对广州旅游整体满意率达99%!假期广州待客1058万人次

蒙可以组什么词 蒙可以组什么词语和拼音_世界速读

今日热文:吉利睿蓝7有望6月上市,基于GBRC水晶架构打造