Der Hauptkernel ist jetzt von libc6 2.33 abhängig und kann in Focal nicht installiert werden?

Der Hauptkernel ist jetzt von libc6 2.33 abhängig und kann in Focal nicht installiert werden?

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 -headersPaket (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:

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:

  1. Installierter Kernel 5.11.18-generic
  2. Habe festgestellt, dass sich das Programm fixdep im Kernel-Header auf glibc 2.33 bezieht
  3. Habe festgestellt, dass sich das Programm Modpost im Kernel-Header auf glibc 2.33 bezieht
  4. /lib/modules/5.11.18-generic/build/scripts/basic/fixdep wurde durch das in 5.11.16 ersetzt.
  5. /lib/modules/5.11.18-generic/build/scripts/mod/modpost wurde durch das in 5.11.16 ersetzt.
  6. dkms mit Kernel 5.11.18 ausgeführt (/usr/lib/dkms/dkms_autoinstaller start 5.11.18-051118-generic)
  7. 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 libc62.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.

verwandte Informationen