Ubuntu 20.04LTS 编译Linux内核

main

前言

本文主要用作记录编译流程,而非教程
用于湖北武汉沙湖附近的某所大学的linux课程
开始写作时间为2022/4/12 22:43

笔者的硬件配置与采用软件版本

CPU:AMD 4800H
GPU:NVIDIA GeForce 2060 Laptop
UBUNTU:20.04 LTS
待安装的Linux内核:5.15.33(longterm)

主要步骤

备份(可跳过)

各显神通的阶段

可以把/boot/grub/grub.cfg保存到U盘里

下载内核源文件

官网地址https://www.kernel.org/

进入官网下载后解压放置到 /usr/src/ 路径下

笔者采用的版本是5.15.33(longterm)

对应的下载地址是https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.33.tar.xz

安装依赖

下面展示一些代码。

sudo apt install make
sudo apt install zstd
sudo apt install libncurses5-dev openssl libssl-dev
sudo apt install build-essential openssl
sudo apt install pkg-config
sudo apt install libc6-dev
sudo apt install bison
sudo apt install flex
sudo apt install libelf-dev
sudo apt install zlibc minizip
sudo apt install libidn11-dev libidn11

编译

进入目录
cd /usr/src/linux-5.15.33
此处注意更改为自己解压后的linux源代码路径
删除之前编译所生成的文件和配置文件,备份文件等
sudo make mrproper

生成.config文件
sudo cp /boot/config-`uname -r` ./.config

注意:上面的是`,在键盘的最左边,而非'单引号

对内核选项进行配置

方向键控制光标,enter确定执行

load	→	(.config)→	OK	→	SAVE	→	(.config)	→	OK	→	EXIT	→	EXIT
ls -l 查看.config文件是否存在

熟练者可在此选择配置内核,例如AMD用户可不勾选Intel的相关组件,反之亦然。

删除配置时留下的一些不用的文件
sudo make clean

非必要步骤,可不执行
编译内核
sudo make bzImage -jN

此处的N为线程数,目前一般为CPU核心数*2,
例如四核八线程,八核十六线程,
但不排除其他情况,
(例如Intel core i5 12450H 八核十二线程)
N可选择为4

大约需要十几分钟
如果时间过短,需要考虑是否是因为编译出错而导致程序提前终止
注意翻看命令行有无报错,可能并非显示在结尾

编译模块
sudo make modules -jN

此处的N同上

大约需要半个小时
如果时间过短,需要考虑是否是因为编译出错而导致程序提前终止
注意翻看命令行有无报错,可能并非显示在结尾
此时/lib/modules/下应该新生成一个KERNEL_内核版本号 的目录

生成 /boot/initrd.img-内核版本号-generic 文件
sudo mkinitramfs /lib/modules/内核版本号 -o /boot/initrd.img-内核版本号-generic

注意修改命令

例如

sudo mkinitramfs /lib/modules/5.15.33 -o /boot/initrd.img-5.15.33-generic
内核映象和System.map拷贝到/boot/下
sudo cp /usr/src/linux-版本号/arch/x86/boot/bzImage    /boot/vmlinuz-版本号-generic
sudo cp /usr/src/linux-版本号/System.map    /boot/System.map-版本号

注意修改命令

例如

sudo cp /usr/src/linux-5.15.33/arch/x86/boot/bzImage    /boot/vmlinuz-5.15.33-generic
sudo cp /usr/src/linux-5.15.33/System.map    /boot/System.map-5.15.33
修改grub文件
sudo update-grub2

重启

sudo reboot

至此完毕

后记

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值