概述
准备工作
硬件:笔记本
系统: 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文件
最后
以上就是鳗鱼大雁为你收集整理的Linux内核编译过程的全部内容,希望文章能够帮你解决Linux内核编译过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复