openEuler22.03的发行版中目前没有专门适用于桌面环境的版本,所以有些方面的表现(比如:笔记本发热)不及Ubuntu专业桌面版本,为解决这个问题,我重新编译了openEuler22.03的内核,修改内容如下(持续更新):

  • Timer frequency
  • Preemption Mode
  • Default CPUFreq governor

步骤如下:

1、下载当前版本的内核源码
sudo yum install kernel-source.x86_64

下载目录是 /usr/src/linux-5.10.0-60.35.0.64.oe2203.x86_64
这里,我用的是5.10.0-60.35版本

2、开始修改内核参数
cd /usr/src/linux-5.10.0-60.35.0.64.oe2203.x86_64
make menuconfig
  • 修改Timer frequency
    这个修改我参考了Ubuntu的默认配置,使用的250Hz,查看网络上的资料建议桌面环境设置为1000Hz,但经过多年使用Ubuntu的经验,感觉250Hz并没有影响,所以只用选择了250Hz
Processor type and features --->
    Timer frequency
         选择 250Hz
  • 修改Preemption Mode
General Setup --->
    Preemption --->
       选择Voluntary Kernel Preemption (Desktop)

有三种模式:
No Forced Preemption(Server)

-非强迫式抢占(服务器),openEuler22.03的默认模式
-针对高吞吐量设计,总体上提供良好的响应,但可能会造成较长的延迟
-适用于服务器配置。

Voluntary Kernel Preemption(Desktop)

-自动式内核抢占(桌面)
-该选项通过向内核添加更多的“清晰抢先点”来减少内核延迟,这些抢先点以降低系统吞吐量为代价来降低内核的延迟
-使用于桌面环境

Preemptible Kernel(Low-Latency Desktop)

-可抢占式内核(低延迟桌面)
-该选项通过把所有非致命部分的内核代码编译为可强先来降低内核延迟
-使用于低延迟桌面或者嵌入式系统
  • 修改Default CPUFreq governor
Power management and ACPI options --->
    CPU Frequency scaling --->
        Default CPUFreq governor --->
            选择schedutil
3、开始编译
make -j4

开4个进程并行编译,不到半小时应该能编完

4、安装
make modules_install
make install 
5、更新grub启动列表
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐