Linux: 190GB RAM erwünscht ..

Da heißt es immer, Linux wäre so Ressourcenschonend .. mu har har har..auf dem Papier, ok 🙂

190 GB RAM erwünscht

Vorhin glitschte bei mir kurz die TOP Anzeige durch, da fielen mir folgende Angaben auf:

3294 marius 20 0 9,9g 1,0g 53144 S 0,7 6,7 2:18.47 java
2767 marius 20 0 3658568 703720 157848 S 1,3 4,3 8:02.93 thunderbird
4718 marius 20 0 3611796 622464 245956 R 2,7 3,8 41:28.36 firefox
3061 marius 20 0 5029712 561352 140764 S 0,3 3,4 36:38.85 skypeforlinux
2636 marius 20 0 1404048 516784 55476 S 0,0 3,2 0:48.15 gnome-software
2577 marius 20 0 3878152 293020 103852 S 0,0 1,8 8:53.58 cinnamon
6285 marius 20 0 2848784 275648 178572 S 0,0 1,7 1:06.03 Web Content
1713 gdm 20 0 2882496 222756 105604 S 0,0 1,4 0:11.92 gnome-shell
4961 marius 20 0 2721516 222324 147568 S 0,3 1,4 1:35.18 Web Content
2601 marius 20 0 98,4g 201364 73168 S 0,0 1,2 0:22.12 liferea
9771 marius 20 0 2612880 192700 127616 S 0,0 1,2 0:23.12 Web Content
10910 marius 20 0 2607960 187556 129964 S 3,3 1,1 0:19.45 Web Content
4900 marius 20 0 2627124 185064 106852 S 0,0 1,1 1:11.14 WebExtensions
2998 marius 20 0 935120 177228 90376 S 0,0 1,1 1:38.35 skypeforlinux
11932 marius 20 0 2581276 174744 129216 S 0,0 1,1 0:13.21 Web Content
4833 marius 20 0 2688600 172948 117520 S 0,0 1,1 1:31.50 Web Content
2603 marius 20 0 2899340 167280 99908 S 0,3 1,0 1:18.97 skypeforlinux
2090 root 20 0 431540 157632 127032 S 0,3 1,0 10:22.48 Xorg
2418 marius 9 -11 2493616 104560 16004 S 1,3 0,6 25:37.16 pulseaudio
3151 marius 20 0 82,4g 98896 77908 S 2,7 0,6 8:23.59 WebKitWebProces

rechnet man das zusammen, gehen alleine diese drei Prozesse davon aus, daß sie zusammen 190GB brauchen werden. Tun sie natürlich nicht 🙂 Zum Glück, weil das Mainboard nur maximal 32 GB könnte 😉

Wieder „Zum Glück“ sind dies nur die virtuelle Speicherblöcke. Denkbar wäre allerdings, daß ein manipulierter RSS Server, Liferea erkennt und einfach GBweise RSS Daten an den Prozess schickt, bis das System zu Tode geswappt wurde.

Für Liferea schauen wir mal in die pmem Tabelle rein:

15655: /usr/bin/liferea –gapplication-service
000055cbe8e92000 112K r—- liferea
000055cbe8eae000 284K r-x– liferea
000055cbe8ef5000 144K r—- liferea
000055cbe8f1a000 16K r—- liferea
000055cbe8f1e000 4K rw— liferea
000055cbe8f1f000 4K rw— [ anon ]
000055cbe99bf000 110760K rw— [ anon ]
00007f8800000000 33554432K rw— [ anon ]
00007f9000000000 33554432K —– [ anon ]
00007f9800000000 16777216K rw— [ anon ]
00007fa23c000000 132K rw— [ anon ]
… 2 Kilometer mehr an Speicherblöcken entfernt..

33G+33G+16G = 82G

Die rechtlichen 16 GB möchte er dann doch für den „Rest“ verbraucht wissen .. naja.. Ich geh mal davon aus, daß der Entwickler K mit M verwechselt hat und eigentlich 100 MB Ram haben wollte, was für LifeRea auch 99M zuviel gewesen wären 😉 Ich erwähne das eigentlich nur, weil das nicht erst seit gestern so ist: I wish

Wieso allerdings der WebKit Prozess da auch 82.4GB Ram haben wollte, entzieht sich mir jetzt. Die anderen WebKitProzesse waren mit viel weniger zufrieden.

Linux-Games: Ortho Robot

Was man so alles beim Durchsehen von Updatemeldungen findet:

OrthoRobot

Nicht mehr das jüngste Game, aber mal was völlig anderes als nur Ballergames. Das Spiel schliesst die Lücke zwischen 2D und 3D, in dem man buchstäblich die 3D Welt auf 2D falten muß um durchzukommen.

 

Schnell muß man nicht sein, da es kein Zeitlimit gibt. Ihr könnt also im Prinzip stressfrei spielen und knobeln. Hier ein paar Impressionen:

Viel Spaß dabei.

Das Telnet-IoT Desaster

Gerade schneite diese Meldung rein:

Name : telnet
URL : http://web.archive.org/web/20070819111735/www.hcs.harvard.edu/~dholland/computers/old-netkit.html
Summary : The client program for the Telnet remote login protocol
Description :
Telnet is a popular protocol for logging into remote systems over the
Internet.
The package provides a command line Telnet client

——————————————————————————–
Update Information:

Security fix for CVE-2020-10188
——————————————————————————–
ChangeLog:

* Fri Mar 27 2020 Michal Ruprich <michalruprich@gmail.com> – 1:0.17-79
– Resolves: #1814478 – Arbitrary remote code execution in utility.c via short writes or urgent data

Telnet ist sowas wie SSH nur ohne Verschlüsselung. Das ist schon in den 90ern durch SSH ersetzt worden. Telnet ist also ein sehr alter Dienst aus den 80ern. Ich habe auch seit Jahrzehnten keinen Server mehr mit einem Telnet-Dienst gesehen, schon weil da der Zugang unverschlüsselt passiert.

Kommentar

Weil das weit über 30 Jahre existiert, ist es mehr als ungewöhnlich, daß in einem so alten, eigentlich unbenutzten Dienst noch eine so gravierende Sicherheitslücke existiert! Das ist eigentlich unfassbar!

Jetzt der eigentliche Hammer: sehr, sehr viele IOT Geräte haben einen Telnet Dienst, statt SSH, und wie Ihr wisst, bekommen die praktisch nie Updates. Das bedeutet, Ihr könnt jetzt alle IOT Geräte mit Telnet wegwerfen, wenn diese die verwundbare Version haben und das steht zu befürchten.

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 🙂