[ Content contribution] deepin v23 bata3 进行的 linux kernel6.8.0-rc3内核源码的编译安装
Tofloor
poster avatar
Neko205
deepin
2024-02-09 14:38
Author

简述

本次编译安装的内核来源为直接从linux.git拉取的6.8.0-rc3内核,我直接拉取了目前正在运行的内核配置文件也就是 config-5.15.77-amd64-desktop 作为编译使用的基础配置文件进行修改

cp /boot/config-$(uname -r) .config

修改的配置如下:

一般配置(General setup)

  • 内核压缩算法默认为Gzip >> 修改为zstd
  • 抢占模型(Preemption Model)默认为Voluntary Kernel Preemption >> 修改为 Preemptible Kernel

Virtualization(虚拟化)配置

  • Kernel-based Virtual Machine (KVM) support默认为以模块形式编译 >> 修改为直接编译到内核
  • KVM for Intel (and compatible) processors support默认以模块形式编译 >> 修改为编译到内核
  • KVM for AMD processors support默认为模块形式编译 >> 修改为不启用

Networking support配置

  • TCP: advanced congestion control内容默认为CUBIC TCP内核编译 其余算法模块化编译,Default TCP congestion control 默认为CUBIC >> 修改为CUBIC算法设置为模块化编译,BBR算法设置为内核编译,默认拥塞控制算法设置为BBR TCP

Device Drivers配置

  • Nouveau驱动默认模块加载 >> 修改为关闭

详解

编译环境安装

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

在合适的位置拉取torvalds的仓库

git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

直接复制当前正在运行的linux内核的配置文件

cp /boot/config-$(uname -r) .config

使用

make menuconfig

应该就进入配置页面了

为何如此修改——我的想法

我一共在当前内核配置上做了七处修改

General setup

我修改了内核压缩算法为zstd

image.png

zstd是一种相比gzip具有较高压缩比与较快解压速度的算法,可能是考虑兼容性所以默认并非他

抢占模型(Preemption Model)我设置为了Preemptible Kernel

image.png

理由很简单,配置文件都说了Low-Latency Desktop

Virtualization(虚拟化)配置

虚拟化对我来说是刚需 所以我将它直接设置为了直接编译到内核,同时我的处理器是i家的所以顺手关掉了amd的kvm选项

image.png

Networking support配置

我去掉了CUBIC的默认算法,使用了BBR TCP算法

image.png

如果没记错BBR对弱网环境下有一定的优化,特别是在有丢包的情况下,常见的场景应该就是外网的访问了,这个对我来说还是可以开启的

Device Drivers配置

我就只做了一处修改

image.png

关闭了nouveau驱动,我不用()

MAKE

接下来就可以使用make命令进行编译了

sudo make -j $(nproc)

image.png

在这一步出现了一些问题

image.png

我不清楚为何会出现这样的问题,后续我又使用我的实体机进行了编译,很顺便的编译了出来,我觉得不应该因为实体机与虚拟机gcc差异就只有一个小版本

很让人疑惑

image.png

所以我的解决方案是在我的实体机上进行编译,而后打包传入虚拟机进行make install

安装内核模块

make modules_install

安装内核

sudo make install

这时又出现了问题。。。

image.png

根据报错信息,应该是deepin-anything这个内核模块出现了问题,在尝试忽略无果后我直接使用

sudo dkms remove -m deepin-anything -v 0.0 --all

将其删除了

然后再make install

image.png

看起来是没问题了,重启。

image.png

成功

后话

最早接触深度是在小学——也是我第一次接触linux,用的是家里那台古董电脑,现在已经大学了,时间过得挺快的。

如今linux已经成为我的主力操作系统,时间过得真挺快的。。。

End

Reply Favorite View the author
All Replies
青稚
Moderator
2024-02-09 14:43
#1

其实可以编译成deb包,安装更方便,还可以拿到论坛供其他坛友使用。

Reply View the author
hanzn-zzx
deepin
2024-02-09 14:43
#2

like

Reply View the author
Neko205
deepin
2024-02-09 14:46
#3
青稚

其实可以编译成deb包,安装更方便,还可以拿到论坛供其他坛友使用。

我研究以下找个合适的内核打个包:D

Reply View the author
阿尼樱奈奈
Moderator
2024-02-09 16:07
#4

感谢分享

Reply View the author
fslong
deepin beta test group
2024-02-09 16:19
#5

这块不太懂,如果关闭开源驱动,这机器只有n卡独显是不是就点不亮了?

Reply View the author
Neko205
deepin
2024-02-11 18:39
#6
fslong

这块不太懂,如果关闭开源驱动,这机器只有n卡独显是不是就点不亮了?

我一般只用闭源驱动。。。曾经遇到过nouveau没有正确停止导致nv驱动没有运行的情况,既然内核编译能直接关掉,何乐不为)

Reply View the author
raspbian
deepin
2024-02-12 13:47
#7

请问这些参数修改怎么才能学会啊?

我只知道把之前的配置文件复制过来

具体改什么会产生什么效果

这个怎么才能学会啊

Reply View the author
yanjuner
Super Moderator
2024-02-27 15:19
#8

好牛

Reply View the author