Nvidia, Fedora, RPMFusion und der Bug, der nicht sein soll.

Diese Geschichte fängt an mit: „Es war einmal eine Grafikkarte“.

„Nvidia, Fedora, RPMFusion und der Bug, der nicht sein soll“

Wie Ihr wisst, gibt es von Nvidiatreibern verschiedene Versionsnummern, z.b. 340,390,440. 440 ist der aktuelle Treiber für GTX1050 Karten.

Jetzt wirft dieser Treiber beim Systemboot eine Fehlermeldung wie folgt:

[ 222.363327] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 222.363328] [drm] No driver support for vblank timestamp query.
[ 222.397236] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:05:00.0 on minor 0
[ 222.406533] ————[ cut here ]————
[ 222.406534] refcount_t: underflow; use-after-free.
[ 222.406550] WARNING: CPU: 1 PID: 513 at lib/refcount.c:28 refcount_warn_saturate+0xa6/0xf0
[ 222.406551] Modules linked in: nvidia_drm(POE) nvidia_modeset(POE) nvidia_uvm(OE) snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel nvidia(POE) snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep joydev snd_seq snd_seq_device edac_mce_amd drm_kms_helper snd_pcm kvm_amd snd_timer drm snd kvm ipmi_devintf sp5100_tco irqbypass wmi_bmof ipmi_msghandler k10temp i2c_piix4 soundcore pcspkr gpio_amdpt gpio_generic acpi_cpufreq nfsd binfmt_misc auth_rpcgss nfs_acl lockd grace sunrpc ip_tables dm_crypt hid_logitech_hidpp crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ccp r8169 aacraid hid_logitech_dj wmi pinctrl_amd fuse
[ 222.406576] CPU: 1 PID: 513 Comm: plymouthd Tainted: P OE 5.5.10-200.fc31.x86_64 #1
[ 222.406577] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Pro4, BIOS P3.90 12/09/2019
[ 222.406579] RIP: 0010:refcount_warn_saturate+0xa6/0xf0
[ 222.406581] Code: 05 2e 03 2e 01 01 e8 7b 8e bc ff 0f 0b c3 80 3d 1c 03 2e 01 00 75 95 48 c7 c7 18 99 3c 9d c6 05 0c 03 2e 01 01 e8 5c 8e bc ff <0f> 0b c3 80 3d fb 02 2e 01 00 0f 85 72 ff ff ff 48 c7 c7 70 99 3c
[ 222.406582] RSP: 0018:ffffb573c103fcb8 EFLAGS: 00010286
[ 222.406583] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000007
[ 222.406584] RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff9416ce859cc0
[ 222.406585] RBP: ffff9416bacbfce8 R08: 0000000000000413 R09: 0000000000000003
[ 222.406585] R10: 0000000000000000 R11: 0000000000000001 R12: ffff9416c70502e8
[ 222.406586] R13: ffff9416c7050000 R14: 0000000000000008 R15: 0000000000000000
[ 222.406588] FS: 00007f07558f3f00(0000) GS:ffff9416ce840000(0000) knlGS:0000000000000000
[ 222.406588] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 222.406589] CR2: 00007f0755072052 CR3: 00000004035c6000 CR4: 0000000000340ee0
[ 222.406590] Call Trace:
[ 222.406597] nv_drm_atomic_helper_disable_all+0xec/0x290 [nvidia_drm]
[ 222.406603] nv_drm_master_drop+0x22/0x60 [nvidia_drm]
[ 222.406616] drm_drop_master+0x1e/0x30 [drm]
[ 222.406628] drm_dropmaster_ioctl+0x4c/0x90 [drm]
[ 222.406639] ? drm_setmaster_ioctl+0xb0/0xb0 [drm]
[ 222.406651] drm_ioctl_kernel+0xaa/0xf0 [drm]
[ 222.406663] drm_ioctl+0x208/0x390 [drm]
[ 222.406675] ? drm_setmaster_ioctl+0xb0/0xb0 [drm]
[ 222.406678] ? do_filp_open+0xa5/0x100
[ 222.406681] ? selinux_file_ioctl+0x174/0x220
[ 222.406683] do_vfs_ioctl+0x461/0x6d0
[ 222.406685] ksys_ioctl+0x5e/0x90
[ 222.406686] __x64_sys_ioctl+0x16/0x20
[ 222.406690] do_syscall_64+0x5b/0x1c0
[ 222.406693] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 222.406695] RIP: 0033:0x7f0755bb138b
[ 222.406697] Code: 0f 1e fa 48 8b 05 fd 9a 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d cd 9a 0c 00 f7 d8 64 89 01 48
[ 222.406697] RSP: 002b:00007ffced5fe798 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 222.406699] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0755bb138b
[ 222.406699] RDX: 0000000000000000 RSI: 000000000000641f RDI: 0000000000000009
[ 222.406700] RBP: 000000000000641f R08: 000055b6a6ff1df0 R09: 000055b6a6fa5010
[ 222.406701] R10: 0000000000000000 R11: 0000000000000246 R12: 000055b6a6ff2970
[ 222.406701] R13: 0000000000000009 R14: 0000000000000000 R15: 0000000000000000
[ 222.406703] —[ end trace fa45bb73ed0780f4 ]—
[ 222.411358] kauditd_printk_skb: 45 callbacks suppressed

Von Euch sieht natürlich jeder sofort, daß hier NVIDIA und PLYMOUTH im Spiel sind und das der Nvidiatreiber einen Fehler bei der DRM Initialisierung verursacht. Der Server bootet danach weiter, also erstmal nicht so wichtig. Es folgen die üblichen Dinge: Bugreport bei Fedora ( wegen Plymouth ) und bei RPMFusion ( wegen Nvidia ) erstellen, und komplett entäuscht werden… !

„Da ist kein Bug, gehen Sie weiter!“

Nun kann Fedora da nicht viel machen, wenn der Nvidiatreiber da Mist baut, außer natürlich, es übergibt dem Treiber schon was falsches, da könnte der Treiber dann nicht mehr soviel für den Bug. Das werden wir aber nie erfahren, denn der Bug wurde sofort beerdigt. Nagut, wir haben ja noch den RPMFusionreport.

Sagte ich, wir haben noch einen anderen offenen Bugreport? So kann man sich irren: „Your Bugreport has been closed with „WONT FIX“.Und dann stehen wir mit einem Fehler da, von dem alle Parteien sagen „Nicht mein Problem“. Doch, Eurer Problem! Wessen denn sonst?

Der Bug wurde in der Devliste von Nvidia zwar besprochen, aber es gibt leider keinen finalen Fix dafür:

Devliste: https://forums.developer.nvidia.com/t/bug-nvidia-440-64-kernel-5-5-6-stable-boot-trace-was-nvidia-440-59-kernel-5-5-1-stable-boot-trace/111643

Der derzeitige Stand ist: Geht halt nicht; und DRM geht dann halt auch nicht. Wobei letzteres sollte man eh abschaffen, falls damit das DigitalRightsManagement gemeint ist.

Was mich aber am meisten stört: „ist nicht unser Problem“. Von RPMFusion hätte ich erwartet, daß das offen bleibt, bis das von den Nvidiadevs gefixt wurde, schon um das Problem zu tracken, aber von Scott kann man halt oft nichts anderes erwarten.

Linuxtablet: NetFlix mit echten Tabletfeeling

Wer hat ein Android Tablet und nutzt da NetFlix oder irgend eine andere Video-App drauf? Vermutlich fast jeder, behaupte ich mal keck 🙂 Ok, was haben ein Linux Surface-Tablet und Android Tablet nicht gemeinsam?  😀

NetFlix mit echten Tabletfeeling

Ist ne blöde Frage, weil so fast alles. Worauf ich heute hinaus möchte ist, daß es keine native NetFlix-App gibt. Wie unterschiedet sich eine native NetFlix App zu, sagen wir mal, einem Browserfenster unter Linux in dem man ja auch NetFlix schauen kann? Nun, der Browser landet nicht sofort auf dem Startbildschirm von NetFlix. Es würde erstmal ein Fenster aufgehen, dann würde man sich einloggen und dann erst bei der Wiedergabe gäbe es vielleicht Fullscreen Video. Das unterscheidet sich von einem Android Tablet, weil da startet man NetFlix und ist „drin“.

So 100prozentig bekommen man das leider nicht hin, aber bis 99.9% würde schon gehen 🙂

Wir brauchen

Für dieses Beispiel brauchen wir einen gültigen NetFlixlogin, einen aktuellen FireFox, ein eigenes Desktopfile und ein eigenes Profil für Firefox mit dem wir spielen können 🙂 Am besten macht Ihr Euch jetzt mal eine Konsole auf ( gibt Leute die nennen das Terminal ):

Schritt 1 – Zugangsdaten besorgen

Wer seine Zugangsdaten nicht anderweitig gesichert hat(dringend empfohlen), der kann sich diese aus seinem aktuellen Firefox Profil kopieren:

Firefox starten -> Einstellungen Menü -> Sicherheit & Datenschutz -> Gespeicherte Zugangsdaten -> nach Netflix suchen.

Pro-Tip: KDE Connect ist das Tool, daß Euch diese Daten auf dem Desktopbrowser direkt auf Mobile Endgerät transportiert. Einfach auf dem Desktop „markieren & kopieren“ (CTRL-C) und auf dem verbundenen Mobilgerät „einfügen“. Fertig. So einfach ist Interkonnektivität und verschlüsselt wars auch 😉

Schritt 2 – ein neues Profil anlegen

Wir starten jetzt mal den Firefox mit der Option „-P“ aus der Konsole:

Wir sehen den Firefoxprofilemanager mit zwei Profilen, eines ist benannt: Netflix Mit „Create Profile“ legt Ihr das NetFlix Profil an. Vergesst aber nicht, daß Ihr den Haken bei „benutze ausgewähltes Profile beim Start“  weg zu machen, weil das nicht unser neues Defaultprofil werden soll, sondern ausschließlich für NetFlix da ist.

Schritt 3 – Firefox konfigurieren

Zunächst installiert in das Profil mal „NoScript“ rein und schaltet es auch ein. Dann ruft Ihr https://www.netflix.com  auf und aktiviert im Noscript alle nötigen Punkte für NetFlix. Das ist deswegen wichtig, weil der Firefox, solange Netflix offen ist, ggf. Webseitenöffnungen an sich zieht und dann würden die frei laufen, ohne das NoScript das verhindert. Nun installiert Ihr noch das „NetFlix 1080p“ Addon, damit Ihr unter Linux die HD Wiedergabe habt. Da wir nur Netflix brauchen, sind wir fast fertig.

Wichtig ist „mir“ noch, daß  in die „about:config“ geht, nach „Picture-“ sucht und die beiden „True“ Treffer vom Picture-in-Picture abschaltet. Das ist rein optional, aber sieht später besser aus im NetFlix Betrieb. Picture-in-Picture kurz PIP, ist dafür das, daß man ein Video aus der Webseite ausgliedert und es beim weiteren Studium der Webseite sehen kann. Dies kommt aber in unserem Benutzermodell schlicht nie vor, daher würde das kleine blaue Button einfach nur die Ästhetik stören 😉

Ich rate an dieser Stelle dazu, sich mal bei NetFlix einzuloggen und den DRM Support zu aktivieren. Falls was schief geht, hat man noch die Browser UI zur Hand mit der man alles ändern kann, was wir jetzt gleich ändern werden 🙂

Schritt 4 – Desktopfile anlegen

Kommen wir zum „interessanten“ Teil der Aktion, dem KISOK-Modus von Firefox. Der Kioskmodus ist genau dafür da, daß man einen PC irgendwo hinstellen kann und niemand kann an den PC ran, während der eine Webseite mit Infos anzeigt. Sehr praktisch, findet man z.B. immer in Computerläden als Suchmaschine für Produkte des Ladens.

Um den Modus zu aktivieren müssen wir Firefix mit der Option „–kiosk“ starten. Der Browser startet dann im FullScreenmodus ohne Adresszeile und Fensterrahmen. „F11“ funktioniert dann nicht, so daß man den Browser nicht in den Fenstermodus zwingen kann um Ihn zu umgehen. Das geht natürlich trotzdem, aber der Punkt interessiert heute nicht 🙂

Damit wir ein ICON zum Starten von NetFlix ( oder jedem anderen Dienst, den wir so nutzen wollen) bekommen, legen wir ein Desktopfile im Schreibtisch an:

Dateiname: ~/Schreibtisch/netflix.desktop

Da schreibt Ihr das hier rein:

[Desktop Entry]
Version=1.0
Name=NetFlix
GenericName=NetFlix
Comment=Browse the Web
Exec=firefox %u –new-instance –kiosk -P netflix https://netflix.com/browse
Icon=/home/marius/Bilder/netflix-logo.png
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
StartupNotify=true
Categories=Network;WebBrowser;
Keywords=web;browser;internet;
X-Desktop-File-Install-Version=0.23

Wer sich ein NetFlixLogo von der NetFlix Webseite abspeichert und nach ~/Bilder/ als „netflix-logo.png“ sichert, der hat mit den obigen Einstellungen gleich das berüchtigte N auf dem Desktop prangen. Normalerweise muß man jetzt das Icon anklicken und die Ausführung als Desktopfile erlauben. Bei Gnome heißt der Punkt „Allow Launch“. Einfach draufdrücken und beim nächsten Doppelklick startet NetFlix dann im Kioskmodus im NetFlix Profil.

Weil wir ein eigenes Profil dafür haben, können wir darin alle Cookies von Netflix gespeichert lassen und erleben das, was wir auf dem Android-Tablet auch hätten. Wir starten NetFlix im Fullscreen, loggen uns einmal ein und bleiben eingeloggt, selbst wenn Ihr das Gerät über Nacht abschaltet. Wenn das nicht zu 99.99% dem Android-Tablet Erlebnis von NetFlix entspricht, weiß ich auch nicht weiter 😀

Der einzige Schönheitsfehler ist die fehlende OFFLINE Runterladerei der Filme. Wenn Euer Surface aber genug Leistung hat, könnt Ihr jeden NetFlixfilm auch so abspeichern. Das ist viel praktischer, weil man es dann auch auf einem anderen Gerät sehen kann.

Wie kommt Ihr aus dem Kioskmodus wieder raus?

Wenn Ihr Gnome als Desktop habt, so wie ich Euch das seit März 2019 predige, dann ist der Ausgang nur einen Wisch, vom linken Rand nach Rechts, weg. Und deswegen ist Gnome, der Touchdesktop bislang 😀  Mit einer Tastatur ist das natürlich viel einfacher, weil man dann nur die „Super“ Taste drücken muß, manche nennen das noch die Windowstaste, und schon seid Ihr auf der Desktop-Aktivität. Ein druck auf ALT-TAB  würde das natürlich fast auch bewerkstelligen, aber der geht tatsächlich nur mit Tastatur.

Was Ihr von da aus macht, liegt an Euch. Anders als auf Android, wird die Wiedergabe bei NetFlix nicht aufhören, wenn Ihr in eine andere App wechselt, aber das nervt mich da eigentlich schon seit Anbeginn der Zeit, also nehmen wir das Vorteil einfach mal mit 😀

Falls bei Euch auch der Doppelklick aufs Desktopicon per Touch nicht will

macht folgendes: verschiebt als Root die netflix.desktop vom Schreibtisch nach /usr/share/applications/ . Da liegen alle Programmstarter. NetFlix taucht jetzt in der Anwendungsliste auf und kann so als Favorit ins Dock eingefügt werden. Die Gnomeerweiterung „Dash to Dock“ bringt das dann als intelligentes Dock auf dem Desktop. Wobei, ein linker-Rand-nach-Rechts-Wisch, tut das dann auch 🙂

 

Linux Games: Pioneer mit sehr großen Displays

Mir ist gerade aufgefallen, daß Pioneer noch nie vorgestellt wurde im Blog, was recht Schade ist, weil man da endlich einen Weg für das >FHD Problem gefunden hat.

Pioneer – Willkommen Kadett!

„‚Die Föderation braucht Dich! Ja, Dich!‘ haben sie gesagt .. von wegen.. Die konnten uns nicht mal vor den Piraten schützen! Da mußte ich selbst ran.“ Pete war einer der alten Haudegen, die man in den Holostreifen sieht. Groß, bärtig, dick und über und über mit Schmutz überseht. Sein Overall würde vermutlich auch ohne Innenleben stehen bleiben. „Abenteuer erleben! Auf sowas fällst Du als junger Mann natürlich sofort rein, außerdem sollte die Bezahlung gut sein.“ Pete lachte. „Am Ende hatte ich gerade mal genug für einen kleinen 80toner zusammengespart.Pioneer logo„Also stand ich da in Shanghai mit meinem gebraucht Frachtschiff.. einen fuzzligen 1MN Laser und 100 Krediten, von denen schon der Hafenmeister 6 Kredite einzog, nur weil das Schiff den Besitzer wechselte. “ raunte mir Pete zu, als er seinen nächsten Drink zu sich nahm.

Pioneer Shanghai Spaceport

„Und?“ fragte ich,“ hast Du damit gut verdient?“ Die Frage war natürlich purer Eigennutz, schliesslich wollte ich nicht so wie Pete aussehen, wenn ich ein paar Jahre im All war. Er setzte sein Glas ab und rieb ich das Kinn. „Schau mich an Kleiner, so läuft man nur rum, wenn man es geschafft hat.“

Anflug Erde„Hey, Hey, Hey… ma langsam.. Du könntest ja auch reich und exzentrisch sein, woher soll ich das wissen.“ Pete grinste so breit, daß man meinen könnte ein Igel sässe auf seinem Kinn. „Da hast Du nicht ganz unrecht, bei dem Frachter ist es nicht geblieben. Siehst Du die Stahlwand da vorn vor der Bar?“ Ich drehte mich um fand an der Wand eigentlich nichts besonderes. „Das ist die Wand von meinem jetzigen Frachter 3000t Ladebucht, 100MW Dauerstrahlpuste, ein gezinkter Militärantrieb und siehst Du den Kratzer da rechts? Das war die erste Scharte für den ersten Piraten, der so blöd war mich anzugreifen. Die Scharten ziehen sich bis zum Heck! “ Ich mußte aufstehen und zur Tür gehen, um das „Heck“ überhaupt erahnen zu können.. wow.. er hat es also doch irgendwie geschafft.Erdorbit„Respekt“ sagte ich anerkennend zu Pete. Der lachte nur noch lauter. „Wenn man weiß, wie die Preise sind, dann kannst Du bald was besseres haben, also son ollen Frachter.“

Wer es von Euch Pete gleich tun will, der will Pioneer haben!

Workaround für den Bigscreenbug

Wenn Ihr mehr als FullHD Monitore habt, dann kann es passieren … wird es passieren, daß das Spiel irgendwie komisch startet. Wenn das so ist, speichert in den Einstellungen die Fullscreenoptionen ab, dann beendet das Spiel und editiert die „800“x“600″ in der Datei „.pioneer/config.ini“ weg und schreibt Eure native Bildschirm Auflösung z.b. 8192×8192 da rein. Danach startet Pioneer dann im Fullscreenmodus auch mit 3k aufwärts Displays.

Ich hatte übrigens für Euch ein Video produziert, mit allem Schicki Micki drin, den OpenShot zu bieten hat, aber leider darf ich Euch das nicht zeigen, der Soundtrack verstößt leider gegen das Copyright von Elite: Frontier