NVIDIA: Durchbruch beim proprietären Nvidiatreiber \o/

Ihr erinnert Euch an diese Sache:

Fedora: Kernel 6.1.5 & 6.2.0.alpha ohne Nvidia Grafikkartensupport

NVIDIA: Durchbruch beim proprietären Nvidiatreiber \o/

Wie Ihr den Artikeln dazu entnehmen könnt, hatten einige Benutzer überhaupt keine Probleme mit dem proprietären Treiber von Nvidia, andere konnten nichts mehr sehen, weil der Bildschirm schwarz blieb.

In einer fast schon spektakulären Tag & Sonnenschein Aktion sind wir heute der Ursache endgültig auf die Spur gekommen und konnten den Kernel 6.1.5 , der ohne efifb / vesa Framebuffertreiber kompiliert wurde, erfolgreich booten, trotz Nvidia Treibern.

Das liegt darin, daß die Nvidia-Treiberversion 525.xx schon mit SimpleDRM Support ausgerüstet ist, und daher auch ohne efifb/vesa Support geladen werden kann. Ein Umstand, der sehr sehr lange in der Gemeinde für Frust und Wut über Nvidia gesorgt hat. „Emotionsgeladene Argumentationen“ wäre als Beschreibung völlig untertrieben, wenn Ihr mich fragt 😉

Wieso konnte man dann aber trotzdem nichts sehen?

Da Nvidiainstallationen nicht vom Baum fallen, sondern über die Zeit gewachsen sind und mit dem OpenSource Treiber nouveau nicht gleichzeitig genutzt werden können, muß man nouveau in der Kernel Command Line ausschalten und aktiv den Nvidiatreiber ansprechen.

Da sah bisher so aus:

nouveau.modeset=0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init

Wie Ihr sehen könnt, ist auch die simpledrm Factory abgeschaltet, so daß man efifb/vesa braucht. Lässt man initcall_blacklist=simpledrm_platform_driver_init weg, könnte man schon den 6.1.5 Kernel booten, würde aber erst beim Init von X was sehen, z.b. wenn GDM startet. Alles was im initramfs passiert, bleibt unsichtbar. Da in dieser Phase die Festplattenverschlüsselung nach dem Passwort fragt, muß man das blind eingeben oder ist aufgeschmissen. Das ist Erklärung #1 , wieso einige Benutzer von dem Problem nichts mitbekommen haben: Keine Festplattenverschlüsselung!

ein goldener Pinguin in einem technisch angehauchten Raum mit Glasboden und Monitoren reißt die Flügel hoch vor Freude.

erstellt mit: https://you.com – Stable Diffusion 2.1

Und so booten man normal mit dem 6.1.5 Kernel

Wie Ihr oben sehen könnt, steht in der Kernel Command Line noch mehr drin, nämlich: nvidia-drm.modeset=1

Und das ist der Grund, wie man im Initramfs nichts sehen kann, weil darüber auch efifb/vesa aktiviert wird, was nicht geht, weil es nicht mehr einkompiliert ist. Ergo, lassen wir auch diesen Eintrag weg und booten nur noch mit:

nouveau.modeset=0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau

und alles funktioniert \o/ Woher ich das weiß, weil ich es ausprobiert habe und Ihr seid die ersten, die das erfahren 🙂 Naja, fast, die Kernelgang von Redhat weiß es seit 15 Minuten 😉

$ uname -a
Linux charming.knuddelpc.de 6.1.5-100.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jan 12 16:10:44 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ date -R
Tue, 28 Feb 2023 15:34:36 +0100

Aber wieso, waren einige gar nicht davon betroffen?

Weil neuere Installationen beim Eintragen in die Grub Default andere Kernelparameter eingetragen haben!

Das ist die Erklärung, wieso einige Benutzer von dem Problem nichts mitbekommen haben! Sie hatten einfach die richtigen Anweisungen in der Config stehen!

How To FIX!

Damit Ihr in Zukunft gewappnet seid, ändert Ihr als root die Datei /etc/default/grub und werft dort „nvidia-drm.modeset=1 initcall_blacklist=simpledrm_platform_driver_init“ komplett raus.

Dann könnt Ihr gelassen auf das nächste Kernelupdate warten, daß Euch eine neue Bootconfig baut. Deswegen extra eine zu erstellen ist nicht nötig, Ihr habt ja gerade ein Bild, oder? 😉

 

Fedora 34: Wenn Wifi weg ist…

Wenn das Wifi auf einem Tablet nicht mehr geht, ist man gewöhnlicherweise am Allerwertesten, aber es gibt vielleicht Hilfe für Euch.

Fedora 34: Wenn Wifi weg ist…

Mein Surface Tablet war mal wieder dran mit seinem Update, weil Netflix mit dem „alten“ Firefox von vor 3 Wochen nicht mehr spielen möchte, also gab es das sowieso fällige Fedora 34 Update. Das hätte ich besser nicht gemacht, denn nun habe ich Gnome 40+ und mein Tablet ist jetzt gehandycrapt. *sniff*

Aber bevor das neue Gnome überhaupt zum Problem werden konnte, überraschte mich Fedora 34 damit, daß mein Tablet kein Wifi mehr hatte, dabei hatte ich gar keinen neuen Kernel benutzt, sondern den gleichen Surface Kernel gebootet, wie sonst auch.

Bei näherer Betrachung stellte ich das hier raus:

Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: enabling device (0000 -> 0002)
Dez 18 13:59:00 surface kernel: mwifiex_pcie: try set_consistent_dma_mask(32)
Dez 18 13:59:00 surface kernel: mwifiex_pcie: PCI memory map Virt0: 00000000938ad086 PCI memory map Virt2: 0000000061c369a5
Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: Direct firmware load for mrvl/pcie8897_uapsta.bin failed with error -2
Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: Failed to get firmware mrvl/pcie8897_uapsta.bin
Dez 18 13:59:00 surface kernel: mwifiex_pcie 0000:02:00.0: info: _mwifiex_fw_dpc: unregister device

Und jetzt steht Ihr da genauso wie ich. WTF is pcie8897_uapsta.bin? ok, eine Firmware für den Chip. Soweit so gut. Aber wieso kann der Kernel das File (das in dem Listing unten) nicht mehr laden??

[ ~]$ ls -la /usr/lib/firmware/mrvl
insgesamt 5320
drwxr-xr-x. 3 root root 4096 30. Nov 21:18 .
drwxr-xr-x. 102 root root 36864 2. Dez 09:11 ..
-rw-r–r–. 1 root root 444052 28. Okt 15:33 pcie8897_uapsta.bin.xz
-rw-r–r–. 1 root root 287784 28. Okt 15:33 pcie8997_wlan_v4.bin.xz
-rw-r–r–. 1 root root 388188 28. Okt 15:33 pcieuart8997_combo_v4.bin.xz
-rw-r–r–. 1 root root 392276 28. Okt 15:33 pcieusb8997_combo_v4.bin.xz
drwxr-xr-x. 2 root root 4096 30. Nov 21:18 prestera
-rw-r–r–. 1 root root 165260 28. Okt 15:33 sd8688.bin.xz
-rw-r–r–. 1 root root 1804 28. Okt 15:33 sd8688_helper.bin.xz
-rw-r–r–. 1 root root 330112 28. Okt 15:33 sd8797_uapsta.bin.xz
-rw-r–r–. 1 root root 164668 28. Okt 15:33 sd8801_uapsta.bin.xz
-rw-r–r–. 1 root root 377276 28. Okt 15:33 sd8887_uapsta.bin.xz
-rw-r–r–. 1 root root 439804 28. Okt 15:33 sd8897_uapsta.bin.xz
-rw-r–r–. 1 root root 370612 28. Okt 15:33 sdsd8977_combo_v2.bin.xz
-rw-r–r–. 1 root root 381952 28. Okt 15:33 sdsd8997_combo_v4.bin.xz
-rw-r–r–. 1 root root 297988 28. Okt 15:33 usb8766_uapsta.bin.xz
-rw-r–r–. 1 root root 342532 28. Okt 15:33 usb8797_uapsta.bin.xz
-rw-r–r–. 1 root root 162968 28. Okt 15:33 usb8801_uapsta.bin.xz
-rw-r–r–. 1 root root 446100 28. Okt 15:33 usb8897_uapsta.bin.xz
-rw-r–r–. 1 root root 371036 28. Okt 15:33 usbusb8997_combo_v4.bin.xz

Ja… das dauert ne Weile, deswegen langweile ich Euch ( grummel…neuer xz algo… brabbel ) nicht damit und komme zum Wesentlichen: xv -d pcie8897_uapsta.bin.xz ; reboot  \o/ GEHT \o/

Als erstes sucht der Kernel nach der ungepackten Version der Firmware, wenn es die nicht gibt, dann nimmt er auch eine gepackt. Leider gabs da wohl ein Update und der bisherige Kernel kann die XZ komponente zum Entpacken nicht mehr benutzen und damit die Firmware nicht mehr laden. Durch das Auspacken der Firmware nimmt das mehr Platz weg, aber kann wieder geladen werden. Hat man dazu Worte? 🙁

Zahn der Zeit nagt am Linuxsupport von Brother

Das bislang vorbildliche Verhalten von Brother im Bezug auf Linux zeigt leider erste Schwachstellen. Kann man die Druckerfunktion über Netz noch ohne Brothertreiber realisieren, muß man für die Scannerfunktion der MFC Serien auf BRScan von Brother zurückgreifen.

Linuxsupport von Brother schwächelt zusehens

Von dem Umstand mal abgesehen, daß von Brother genutzte SAP wohl was gegen Kontaktformularanfragen hat 🙁 , sind die Webseiten von Brother was Handbücher und Treiber betrifft eigentlich ganz brauchbar. Leider kann man das von der Scansoftware nicht mehr sagen.

Die auf dem Stand 2017 kompilierte Scansoftware Brscan braucht dringend ein Update, da die verwendete libnsl u.a. von Fedora nur noch als Legacy angeboten wird und nicht mehr zum festen Systemumfang zählt. Das führt dann leider dazu, daß auch wenn man Brscan vorschriftsmäßig über das von Brother gelieferte Softwarepaket für redhatbasierte Systeme installiert, Xsane oder SimpleScan  die Scanner im Netzwerk (und vermutlich lokal auch) nicht finden.

Schuld daran ist ein „Ich hab Dir doch gesagt, ich brauche diese nsl Library“ Fehler in Brscan. Leider eskaliert das Programm den Fehler nicht an die Oberfläche, so daß der Otto-Normal-Tux keine Chance hat, da den Fehler zu finden. Dieser wird erst sichtbar, wenn ein Admin die passenden Programme von Brother direkt in der Konsole startet. Da diese Programme nicht für den Desktop geschrieben wurden, tauchen sie natürlich auch nicht im Desktop-Menü auf. Es besteht daher keine Chance, daß ein Endanwender das je findet.

Fix für Fedora u.ä.

Jetzt kann man das noch unter Fedora, und vermutlich allen anderen RH Systemen, mit dem folgenden Befehl als Rootuser leicht beheben:

dnf install -y libnsl

Es spielt dabei keine Rolle, ob Ihr Brscan vorher oder danach installiert, das Ergebnis ist das Gleiche.

Wichtig für Netzwerkdrucker ist nur, daß Ihr bei der Frage des Installationsscripts, welches auch als Root ausgeführt werden muß, die korrekte IP des Druckers/Scanners angebt. Ein Problem könnte sich dabei ergeben, wenn Euer DHCP Server im lokalen Netz dem Scanner IPs zufällig zuordnet, statt diese dauerhaft zu vergeben.

Sollte das der Fall sein, liegt eine Config Datei im /usr-Bereich der Brscan-Software, welche die IP Angabe enthält. Die müßte man dann anpassen.