前言
心血来潮想是是自己编译安装linux试试,于是心动不如行动。折腾了半天总是和网上的教程出现的问题不一,在这里记录下自己遇到到的坑,最后感谢这些大佬的文章!!!
参考文章
准备
#需要安装一些工具
sudo aptitude install vim make git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison dwarves
相关问题说明
进入编译的过程中出现了下面的错误信息
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1183:vmlinux] 错误 1
搜索到的方法是安装dwarves
编译流程
下载内核
点这里下载linux5.16.9.tar.xz,选择你心仪的版本
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.9.tar.xz
#解压并进入该目录下
tar -xvf linux-5.16.9.tar.xz && cd linux-5.16.9
配置编译内核模块文件
选择内核中要编译的内核模块,如文件系统,网络,IO栈,虚拟化和设备驱动等等,这里有三种方式
1. make menuconfig
#图形化菜单
2. make oldconfig
#命令行,这里会在已有配置信息进行增量提示,建议采用系统默认值,一路回车就行
3. 复制boot目录下的配置文件
ls -al
由于第一次编译,我试前两个,对于英语渣渣的我来说两个都看不懂面,好在第二个可以一直按回车选择默认选项。
sudo make oldconfig
ls -al
在后面编译过程中出现没有规则可制作目标需要修改.config找到CONFIG_SYSTEM_TRUSTED_KEYS,设置为CONFIG_SYSTEM_TRUSTED_KEYS=””
sudo vim .config
编译内核
多线程编译,我cpu是4核心,所以是8线程。速度和cpu性能相关
sudo make -j 8
安装模块
sudo make modules_install
这条命令没问题,但是编译安装过后,重启会卡在grub界面(loading initial ramdisk),上网搜索一番这样安装模块会使initrd文件过大,而我系统安装的grub版本不支持initrd大文件,需要添加INSTALL_MOD_STRIP=1
sudo make INSTALL_MOD_STRIP=1 modules_install
安装镜像
sudo make install
更新内核
sudo update-grub
重启
sudo reboot
查看内核版本
uname -a
后续
体验了一天,实际感受不大。自己编译的内核成就感满满,但是由于自己初次编译,问题还很多。如:笔记本的触摸板驱动没编译进内核,联想自带的Fn+[F1-F10]这些快捷键残缺了很多,这方面还得加强学习。后面又嫌弃kde版本太低,折腾过后升级成了Kde5.24.1,界面比以前流程了很多。随后都已经折腾这个样子了不如直接debian testing。按道理应该是testing 这里直接变成了sid
_,met$$$$$gg.
,g$$$$$$$$$$$$$$$P. ---------
,g$$P" """Y$$.". OS: Debian GNU/Linux bookworm/sid x86_64
,$$P' `$$$. Host: 81FW Lenovo Legion Y7000
',$$P ,ggs. `$$b: Kernel: 5.15.0-3-amd64
`d$$' ,$P"' . $$$ Uptime: 30 mins
$$P d$' , $$P Packages: 2838 (dpkg)
$$: $$. - ,d$$' Shell: bash 5.1.16
$$; Y$b._ _,d$P' Resolution: 1920x1080
Y$$. `.`"Y$$$$P"' DE: Plasma 5.24.1
`$$b "-.__ WM: KWin
`Y$$ Theme: Breeze [Plasma], Breeze [GTK2/3]
`Y$$. Icons: [Plasma], breeze-dark [GTK2/3]
`$$b. Terminal: konsole
`Y$$b. Terminal Font: Hack 16
`"Y$b._ CPU: Intel i5-8300H (8) @ 4.000GHz
`""" GPU: NVIDIA GeForce GTX 1050 Ti Mobile
GPU: Intel CoffeeLake-H GT2 [UHD Graphics 630]
Memory: 2354MiB / 15879MiB