Ich habe glücklich 5.10 Mainline-Kernel installiert (vonhttps://kernel.ubuntu.com/~kernel-ppa/mainline/) auf meinem Ubuntu 20.04.
Beim Versuch, auf 5.10.33 zu aktualisieren, entdeckte ich eine unwillkommene Abhängigkeit von libc >=2.33 (Focal liegt bei 2.31) für das -headers
Paket (allerdings nicht für das Image selbst – aber wer möchte schon ohne die Header leben).
Soweit ich weiß, ist es so gut wie unmöglich, libc6 zu aktualisieren. Ist das... es? Bin ich bei 5.10.32 hängengeblieben, wenn ich nicht LTS aufgebe? Haben diese Leute überhaupt eine öffentlich zugängliche Site, auf der man Fehler melden kann?
Aktualisieren: Dies scheint der Hauptgrund zu seinLaunchpad-Fehler. Eine gute Sache, die dabei herausgekommen ist:Abonnierenhat sich einDocker-Container(Quelle auf Github:Brennpunkt-Hauptlinien-Builder) zum Erstellen von Kernel-Mainline-Images und hat 5.10 - 5.12-Pakete in seine PPAs hochgeladen:
- lts-mainline-longterm PPA von tuxinvader
- tuxinvaders lts-mainline-vorheriges PPA
- lts-mainline-PPA von tuxinvader
Tipp: Um alle verfügbaren Linux-Pakete für die von Ihnen gewählte Serie/Version anzuzeigen, führen Sie nach dem Durchspielen mit PPAs und vielleicht Debian-Backports, Xanmod usw. (wie ich es getan habe) etwas wie
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
Hoffentlich verschwindet dieses Problem. Aber seien wir ehrlich, abhängig von den Launen des „Kernel Mainline PPA“ (oder wer auch immer dahinter steckt, ich verstehe immer noch nichtwie diese Entwickler erreicht werden können) für Binärdateien war keine angenehme Erfahrung.
Antwort1
Sie können bei LTS bleiben, aber Sie müssenKompilieren Sie die Hauptkernel selbstum das neue Abhängigkeitsproblem zu überwinden.
Die verwendete Mainline-Compilerversion scheint sich gerade geändert zu haben:
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
Aber wenn ich einfach die Ubuntu-Kernelkonfiguration nehme und selbst kompiliere, läuft die Installation auf meinem Haupttestserver 20.04 problemlos. Die Abhängigkeit ist also eine Funktion der verwendeten Compilerversion und nicht des Kernel-Quellcodes.
Nicht wirklich relevant, aber hier ist der Konfigurationsunterschied für das, was ich kompiliert habe:
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" -> ""
Antwort2
So habe ich dkms-Module mit Kernel 5.11.18 aus dem Ubuntu-Mainline-Kernel generiert. Ich verwende Linux Mint 20.1 Cinnamon und verwende nvidia-driver-460 Version 460.73.01-0ubuntu0.20.04.1 in dkms. Der von mir verwendete gcc ist Version 10.3. Mit Version 5.11.16-generic funktionierte alles einwandfrei, aber es stoppte, als ich 5.11.18 ausprobierte. Also habe ich versucht, das Problem zu finden, warum dkms die Kernelmodule nicht kompilierte. Das habe ich getan:
- Installierter Kernel 5.11.18-generic
- Habe festgestellt, dass sich das Programm fixdep im Kernel-Header auf glibc 2.33 bezieht
- Habe festgestellt, dass sich das Programm Modpost im Kernel-Header auf glibc 2.33 bezieht
- /lib/modules/5.11.18-generic/build/scripts/basic/fixdep wurde durch das in 5.11.16 ersetzt.
- /lib/modules/5.11.18-generic/build/scripts/mod/modpost wurde durch das in 5.11.16 ersetzt.
- dkms mit Kernel 5.11.18 ausgeführt (/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)
- Nvidia-Kernelmodule erfolgreich generiert. Neustart und es funktioniert einwandfrei. Habe das Gleiche sogar mit Kernel 5.12.1 versucht und es hat funktioniert.
Hoffe das hilft.
Antwort3
Ich konnte 5.12 auf Ubuntu 20.04 mit libc6
2.31 mithilfe des genannten PPA installieren:
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
Antwort4
Eine weitere einfache Möglichkeit, bei 5.10 zu bleiben, ohne zu kompilieren, scheint die Verwendung eines benutzerdefinierten Kernels zu sein. Wie xanmod
. Die Sache ist, dass sie anscheinend nicht viel Aufwand in "Leistungs"-Verbesserungen für die ältere LTS-Serie stecken, also ichdenkenman könnte einen ziemlich standardmäßigen Kernel bekommen. Dies ist beispielsweise das Protokoll fürxanmod 5.10.35.