usr*_*etc 26 compiling kernel glibc 20.04
我一直很高兴在我的 Ubuntu 20.04 上安装 5.10 主线内核(来自https://kernel.ubuntu.com/~kernel-ppa/mainline/)。
在尝试更新到 5.10.33 时,我发现该包对 libc >=2.33(焦点位于 2.31)存在不受欢迎的依赖性-headers(虽然不是图像本身——但谁不想没有头文件)。
AFAIK,libc6 几乎不可能升级。是这个吗?除非我放弃 LTS,否则我会停留在 5.10.32 吗?这些人甚至有一个可以报告错误的面向公众的网站吗?
更新:这似乎是主要的启动板错误。一件好事:tuxinvader提出了一个Docker 容器(来自 Github:focal-mainline-builder)用于构建内核主线映像并将 5.10 - 5.12 包上传到他的 PPA:
提示:要查看您选择的系列/版本范围的所有可用 linux 软件包,在弄乱 PPA 和 Debian 向后移植、xanmod 等(如我所见)之后,请执行以下操作
apt update
printf '%s\0' linux-{image-unsigned,headers,modules}-5.10.{32..40} |
xargs -0 -n 1 apt-cache pkgnames | LC_ALL=C sort | less
Run Code Online (Sandbox Code Playgroud)
希望这个问题会消失。但是让我们面对现实吧,根据“内核主线 PPA”(或它背后的任何人,我仍然不明白如何接触到这些开发人员)的突发奇想,对于二进制文件并不是一种愉快的体验。
您可以继续使用 LTS,但您需要自己编译主线内核以克服新的依赖性问题。
使用的主线编译器版本似乎刚刚改变:
doug@s19:~/temp-k-git/linux$ scripts/diffconfig .config-5.12.0-051200rc6-lowlatency .config-5.12.0-051200-lowlatency
CC_VERSION_TEXT "gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0" -> "gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0"
GCC_VERSION 100200 -> 100300
LD_VERSION 23501 -> 23601
+DEBUG_INFO_BTF_MODULES y
+PAHOLE_HAS_SPLIT_BTF y
Run Code Online (Sandbox Code Playgroud)
但是如果我只是采用 Ubuntu 内核配置并自己编译,在我的 20.04 主测试服务器上,它安装得很好。IE 依赖项是所用编译器版本的函数,而不是内核源代码。
不是很相关,但这是我编译的配置差异:
doug@s19:~/temp-k-git/linux$ scripts/diffconfig .config-5.12.0-051200-lowlatency .config
-DEBUG_INFO_BTF y
-DEBUG_INFO_BTF_MODULES y
-DEBUG_INFO_COMPRESSED n
-DEBUG_INFO_DWARF4 y
-DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT n
-DEBUG_INFO_REDUCED n
-DEBUG_INFO_SPLIT n
-GDB_SCRIPTS y
-PAHOLE_HAS_SPLIT_BTF y
CC_VERSION_TEXT "gcc (Ubuntu 10.3.0-1ubuntu1) 10.3.0" -> "gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
DEBUG_INFO y -> n
GCC_VERSION 100300 -> 90300
LD_VERSION 23601 -> 23400
SYSTEM_TRUSTED_KEYS "debian/canonical-certs.pem" -> ""
Run Code Online (Sandbox Code Playgroud)
我能够libc6使用提到的 ppa 在 Ubuntu 20.04 和 2.31 上安装 5.12:
sudo add-apt-repository ppa:tuxinvader/lts-mainline
sudo apt install linux-image-unsigned-5.12.4-051204-generic linux-modules-5.12.4-051204-generic linux-headers-5.12.4-051204-generic
Run Code Online (Sandbox Code Playgroud)
小智 6
这是我如何从 ubuntu mainline-kernel 使用内核 5.11.18 生成 dkms 模块。我运行 Linux Mint 20.1 Cinnamon 并在 dkms 中使用 nvidia-driver-460 版本 460.73.01-0ubuntu0.20.04.1。我使用的 gcc 是 10.3 版。使用 ver 5.11.16-generic 一切正常,但在我尝试 5.11.18 时停止了。所以我试图找出dkms没有编译内核模块的问题。这就是我所做的:
希望这可以帮助。