主線核心現在依賴 libc6 2.33,在焦點中不可安裝?

主線核心現在依賴 libc6 2.33,在焦點中不可安裝?

我一直很高興地安裝 5.10 主線核心(來自https://kernel.ubuntu.com/~kernel-ppa/mainline/)在我的 Ubuntu 20.04 上。

嘗試更新到 5.10.33 時,我發現該套件對 libc >=2.33(焦點位於 2.31)有一個不受歡迎的依賴項-headers(雖然不是圖像本身 - 但誰想在沒有標頭的情況下生活)。

AFAIK,libc6 幾乎不可能升級。是這個嗎?除非我放棄 LTS,否則我會停留在 5.10.32 嗎?這些人是否有一個可以報告錯誤的面向公眾的網站?

更新: 這個好像是主要的啟動板錯誤。由此產生的一件好事是:圖辛維德已經想出了一個Docker容器(Github 上的來源:焦點主線建構者)用於建立內核主線映像並將 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

希望這個問題會消失。但讓我們面對現實吧,這取決於「核心主線 PPA」的突發奇想(或者無論它背後是誰,我仍然不明白如何聯絡這些開發商)對於二進位檔案來說並不是一次愉快的經驗。

答案1

您可以繼續使用 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

但如果我只採用 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" -> ""

答案2

以下是我如何從 ubuntu 主線核心使用內核 5.11.18 產生 dkms 模組。我運行 Linux Mint 20.1 Cinnamon 並在 dkms 中使用 nvidia-driver-460 版本 460.73.01-0ubuntu0.20.04.1。我使用的gcc是10.3版本。 5.11.16-generic 版本一切正常,但當我嘗試 5.11.18 時就停止了。所以我試著找出dkms沒有編譯內核模組的問題。這就是我所做的:

  1. 安裝核心 5.11.18-generic
  2. 發現在內核頭程式fixdep與glibc 2.33相關
  3. 發現內核頭程式modpost與glibc 2.33相關
  4. 將 /lib/modules/5.11.18-generic/build/scripts/basic/fixdep 替換為 5.11.16 中的那個
  5. 將 /lib/modules/5.11.18-generic/build/scripts/mod/modpost 替換為 5.11.16 中的那個
  6. 針對核心 5.11.18 執行 dkms (/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)
  7. 成功產生 nvidia 核心模組。重新啟動就可以正常運作了。甚至在內核 5.12.1 上嘗試了相同的操作,並且成功了。

希望這可以幫助。

答案3

我能夠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

答案4

保留 5.10 且無需編譯的另一個簡單選擇似乎是使用自訂核心。喜歡xanmod。問題是,他們似乎並沒有為舊的 LTS 系列的「性能」改進投入太多精力,所以我思考人們可能會得到一個非常標準的核心。例如,這是日誌xanmod 5.10.35

相關內容