我一直在使用主线中最新的 ubuntu 5.16 kernel-ppa 软件包,因为我需要监控 AMD 5700g CPU 和 B550I 主板的温度。我需要低延迟,因为我是一名使用该系统进行录音的音乐家。我希望继续跟踪最新版本,直到 5.16 或更高版本发布,以便获取安全性和 amdgpu 更新等。
最新的主线版本似乎不再包含低延迟 amd64 deb 软件包。它们会回来吗?如果没有,哪里有关于如何从主线构建自己的教程?(目前我正在使用 ubuntu studio 21.10)
答案1
主持人:这有点题外,但我认为它对一些读者可能会有用。
主线内核的低延迟版本将不再在Ubuntu 主线 PPA。内核配置差异很小,因此自行编译内核的用户只需修改配置即可。
回顾当前内核 5.17 系列中的几个 RC(候选版本),其中通用和低延迟仍然已发布:
doug@s19:~/kernel/linux$ scripts/diffconfig .config-5.17.0-051700rc3-generic .config-5.17.0-051700rc3-lowlatency
COMEDI_TESTS_EXAMPLE m -> n
COMEDI_TESTS_NI_ROUTES m -> n
HZ 250 -> 1000
HZ_1000 n -> y
HZ_250 y -> n
LATENCYTOP n -> y
PREEMPT n -> y
PREEMPT_VOLUNTARY y -> n
TEST_DIV64 n -> m
将这些更改与其他标准更改相结合,得到以下脚本(自原始帖子更新后添加的编辑):
doug@s19:~/kernel/linux$ cat mod-config
#! /bin/bash
#
# mod-config 2022.05.08 Smythies
# Use the newer DEBUG_INFO_NONE, and enable it.
# (which actually means disable debug stuff.)
#
# mod-config 2022.05.01 Smythies
# add disable DEBUG_INFO_DWARF5
#
# mod-config 2022.04.04 Smythies
# Getting the:
# BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
# compile error again.
# and if one disables CONFIG_DEBUG_INFO_BTF
# then the huge debug kernel is generated.
# I don't want to install the DWARVES package.
# Specifically disable this stuff, so it
# does not override desired no debug kernel.
#
# mod-config 2022.03.22 Smythies
# The standard changes to the Ubuntu Mainline
# kernel configuration have become numerous.
# Automate.
# The script is located in the base directory of
# the mainline git clone.
#scripts/config --disable DEBUG_INFO_DWARF4
scripts/config --disable DEBUG_INFO_DWARF5
#scripts/config --disable DEBUG_INFO
scripts/config --enable DEBUG_INFO_NONE
scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS
# convert generic config to lowlatency
scripts/config --disable COMEDI_TESTS_EXAMPLE
scripts/config --disable COMEDI_TESTS_NI_ROUTES
scripts/config --set-val CONFIG_HZ 1000
scripts/config --enable HZ_1000
scripts/config --disable HZ_250
scripts/config --enable LATENCYTOP
scripts/config --enable PREEMPT
scripts/config --disable PREEMPT_VOLUNTARY
scripts/config --set-val TEST_DIV64 m
为了测试,我使用了通用配置,在其上运行脚本,然后进行编译(这将对 .config 文件进行一些进一步的调整)并与我之前保存的低延迟内核配置进行比较:
doug@s19:~/kernel/linux$ scripts/diffconfig .config-5.17-rc3 .config
doug@s19:~/kernel/linux$
即没有区别。
参考文献:IRC讨论:第一天,第二天;编译主线内核的一种方法