Linux内核编译过程

准备工作

硬件:笔记本
系统: Ubuntu18.04 64位

下载内核

1、先安装ubuntu18.04的系统。
2、到内核官网下载最新的内核code: https://www.kernel.org/

如图所示下载最新kernel 例如 Linux-4.19
在这里插入图片描述

3、将下载的内核 Linux-4.19 保存到 /usr/src/ 目录下: (/usr/src 一般就是用来存放Linux的内核源码)
4、进入Linux-4.19目录下: cd /usr/src/linux-4.19

编译内核

5、执行 make menuconfig 配置需要的功能,这边我主要关心的是driver modules。(权限不够加 sudo,以下一样)

在这里插入图片描述
在这里插入图片描述

6、执行 make 编译内核,这边需要很长时间(大约3小时)

安装内核

一、 安装内核模块
7、使用命令:make modules_install安装内核模块
二、 安装内核
8、然后使用make install安装内核
此时,内核已经编译完毕。

修改启动程序配置,运行新的内核

9、先将生成的bzImage文件和System.map文件拷贝到/boot/目录下,命令如下:
cp /usr/src/linux-4.19/arch/x86_64/boot/bzImage /boot/
cp /usr/src/linux-4.19/System.map /boot/

建立镜像文件

10、 在终端输入命令:
mkinitramfs 4.19.0 -o /boot/initrd.img-4.19.0
来建立镜像文件

更新修改系统引导配置

11、 然后输入命令:
update-initramfs -c -k 4.19.0
12、再输入命令:
update-grub2
更新修改系统引导配置。
13、查看grub.cfg中的配置信息
gedit /boot/grub/grub.cfg
看是否有Linux-4.19.0的相关信息。

在这里插入图片描述

重启验证

14、命令:/sbin/reboot
在开机界面中看是否有 linux-4.19的启动项

》》》

参考:https://www.cnblogs.com/scut-linmaojiang/p/4342045.html

update: 可能存在的问题
1、如果卡在ubuntu loading initial ramdisk

编译内核过程中,当安装内核模块时未使用

INSTALL_MOD_STRIP=1 标注,会导致initrd文件过大,Ubuntu 20.04所用的Grub
2.04无法支持过大的initrd文件(如500M),导致内核启动时卡在“loading initial ramdisk”(Can’t allocate initrd)。

可行的办法

安装模块时加上INSTALL_MOD_STRIP=1
sudo make INSTALL_MOD_STRIP=1 modules_install

2、系统安装完成启动后花屏 提示Couldn’t get size: 0x800000000e

原因是NVIDIA GEFORCE RTX2080显卡适配的问题

解决方法:在选择系统的时候按e进入配置界面,在quiet前面加nomodeset,启动后打开terminal输入sudo gedit /etc/modprobe.d/blacklist.conf,输入密码后在最后一行加上blacklist nouveau。(禁用自带的显卡驱动)

保存后在terminal输入sudo update-initramfs -u 使修改生效

然后安装nvidia显卡驱动,重启后正常了

3、自编译内核 invalid signature 问题解决

具体出错如下:

> error: /vmlinuz-5.3.0 has invalid signature error: you need to load
> the kernel first

出错的原因是,你编译的内核没有 sign, 最简单的解决方法就是关掉sign 检测
解决方法: 进入BIOS 中,关闭 Secure Boot
以HP 为例,开机后按F10 进入BIOS配置选项,关闭secure Boot

4、Linux内核编译错误:make[1]: *** 没有规则可制作目标“debian/canonical-certs.pem”,由“certs/x509_certificate_list” 需求。 停止。**

可以将 .config 里面相关设置关闭,如下下图所示:
需要注意的是 .config 至少编译配置的临时文件,最好去改动你配置的config文件
在这里插入图片描述

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值