我一直很高興地安裝 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:
- tuxinvader 的 lts-mainline-longterm PPA
- tuxinvader 的 lts-mainline-previous PPA
- tuxinvader 的 lts-mainline 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沒有編譯內核模組的問題。這就是我所做的:
- 安裝核心 5.11.18-generic
- 發現在內核頭程式fixdep與glibc 2.33相關
- 發現內核頭程式modpost與glibc 2.33相關
- 將 /lib/modules/5.11.18-generic/build/scripts/basic/fixdep 替換為 5.11.16 中的那個
- 將 /lib/modules/5.11.18-generic/build/scripts/mod/modpost 替換為 5.11.16 中的那個
- 針對核心 5.11.18 執行 dkms (/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)
- 成功產生 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。