本文主要用作记录编译流程,而非教程
用于湖北武汉沙湖附近的某所大学的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
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_内核版本号 的目录
sudo mkinitramfs /lib/modules/内核版本号 -o /boot/initrd.img-内核版本号-generic
注意修改命令
例如
sudo mkinitramfs /lib/modules/5.15.33 -o /boot/initrd.img-5.15.33-generic
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
sudo update-grub2
sudo reboot
至此完毕
....