Linux am Dienstag: Nachlese 8.6.2021

Linux am Dienstag Nachlese vom 8.6.2021 zum Nachlesen. Hoffentlich komme ich für das Wortspiel nicht in die Humoristenhölle 🙂

Linux am Dienstag: Nachlese 8.6.2021

Es ging mal nicht um das Pinephone 😀

LPD 2021.2 – „Land of Confusion“

Nach dem LPD ist vor dem LPD 🙂 Um im Land der Konfusion Klarheit zu schaffen, planen wir den nächsten LPD Event schon einmal in Gedanken vor. Zur Zeit ist aber noch kreative Sommerpause 🙂 Mit ca. 8 Wochen Vorlauf werden die Beiträge für November im September produziert und dann rechtzeitig fertig vorliegen. Wer bei uns mitmachen möchte, kann sich einfach bei mir oder im Linux am Dienstag Raum auf Matrix melden.

Einführung in Blender

Eine ab jetzt regelmäßig stattfindende Einführung in das 3D-Rendersystem Blender präsentierte uns Rüdiger. Die nächsten Lektionen gestalten sich in einem kleinen botanischen Projekt:

Modellieren: Ein Baum
Farbe am Baum: Material Grundlagen
Wolken: Duplizieren
Hügellandschaft: Proportionales Bearbeiten
Eine Tür im Baum: Inset

Die kleine, einstündige Einführung gestern Abend hat echt Spaß gemacht 🙂

Alternatives am Beispiel Java

Mit Alternatives kann man verschiedene Versionen einer Softwareanwendung parallel auf dem Rechner liegen haben. Den Mechnismus gibt es nicht nur bei Fedora, RHEL oder Ex-CentOS. Die beiden richtigsten

Anweisungen hier im Beispiel: (gekürzte Fassung)

# alternatives –list

whois auto /usr/bin/jwhois
mailx auto /usr/bin/mailx.mailx
mta manual /usr/sbin/sendmail.sendmail
wine auto /usr/bin/wine32
go auto /usr/lib/golang/bin/go
java manual /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-3.fc33.x86_64/jre/bin/java

Damit man sehen kann, was man überhaupt konfigurieren kann. Die erste Spalte enthält das „Schlagwort“ hier „java“ oder „wine“.

# alternatives –config java

Es gibt 3 Programme, welche »java« zur Verfügung stellen.

Auswahl Befehl
———————————————–
+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-3.fc33.x86_64/jre/bin/java)
2 java-9-openjdk.x86_64 (/usr/lib/jvm/java-9-openjdk-9.0.4.11-6.fc28.x86_64/bin/java)
* 3 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-2.fc33.x86_64/bin/java)

Eingabe um die vorgegebene Auswahl[+] zu behalten, oder geben Sie die Nummer an:

Durch Eingabe der Zahlen kann man als Root bestimmen, was systemweit als Java-Default benutzt werden soll. Das ist wichtig, wenn man noch Anwendungen hat, die z.b. mit Java 8 laufen und auch welche hat, die Java >8 benötigen.

qv4l2 crasht beim Start – Das hilft

Das Video-For-Linux-2 System wird von sehr vielen bilderzeugenden Endgeräten wie Webcams, Scannern und Videoadaptern unterstützt. Wer die Geräte gut konfigurieren möchte braucht die Anwendung qv4l2 dafür. nur leider startet die derzeit auf Fedora 33 nicht. Hier der Fix: „qv4l2 -R“

Mit Windows Freigaben arbeiten

GVFS-SMB ist der Weg, wenn man mit Nemo oder Nautilus eine Windows Freigabe einbinden möchte. Wo Nemo eine komfortable Eingabemaske präsentiert, möchte Nautilus die Angaben vom Endnutzer wissen:

smb://MYGROUP;BENUTZERNAME@HOSTNAME/SHARENAME/

Das gleiche Format kann man für SMB-Get benutzen, mit sich direkt von Freigaben Dateien kopiert werden können, so man denn den Namen und Pfad schon kennt:

smbget smb://linux-am-dienstagde@linux-am-dienstag.de/Linux-Freigabename/video-js-7.11.4.zip

Klappt das mit dem GVFS oder Samba nicht direkt, gibt es noch eine dritte Option:

sudo mount -t cifs //linux-am-dienstag.de/Linux-Freigabename/ /mnt -o user=linux-am-dienstagde

Leider, oder auch „endlich“, mußten Windows 7 Benutzer ohne nötige Updates feststellen, daß aktuelle Linuxuser Ihre Freigaben nicht mehr besuchen können. Der „alte Scheiss“ wie SMB 1 ist endlich rausgeflogen 😀

Fedora: auch Probleme qv4l2 zu starten?

Wer derzeit das V4L2-Tool qv4l2 nicht starten kann, dem kann geholfen werden.

Fedora: auch Probleme qv4l2 zu starten?

Das Videotool qv4l2 crasht beim Start mit einem Segmentation-Fault weg. Ursache ist wohl ein Bug in der libv4l2, die derzeit bei Fedora 33 aktuell ist.

Das Problem lässt sich aber leicht in den Griff bekommen, in dem man das Programm mit dem Parameter „-R“ startet:

Das Programm ist in der Lage, alle die Optionen zur Steuerung der Kamera anzubieten, die der Hersteller sonst mit seine tollen Bloat-Software auf Windows installiert:

 

Natürlich ist auch eine Livevorschau mit dabei, die man jederzeit mit einblenden kann.

Allerdings wirken sich die Änderungen auch auf alle anderen Anwendungen aus, die derzeit die Kamera benutzen, insofern kann man auch leicht in der laufenden Videokonferenz nachjustieren.

Fedora: Phosh crasht wegen glib2 Patch

Liebe Linuxphone-Fans,

Ihr dürft mal wieder das Pinephone nicht Updaten, sonst knallts 🙁

Fedora: Phosh crasht wegen glib2 Patch

Dieser Stacktrace vom System zeigt exemplarisch das Problem:

Feb 10 21:31:02 fedorapine systemd-coredump[3835]: [🡕] Process 3144 (phosh) of user 1000 dumped core.
                                                   
                                                   Stack trace of thread 3144:
                                                   #0  0x0000007fa728b908 g_type_check_instance (libgobject-2.0.so.0 + 0x39908)
                                                   #1  0x0000007fa728026c g_signal_handlers_disconnect_matched (libgobject-2.0.so.0 + 0x2e26c)
                                                   #2  0x0000005587058218 mixer_control_output_update_cb (phosh + 0x58218)
                                                   #3  0x0000007fa7265948 g_closure_invoke (libgobject-2.0.so.0 + 0x13948)
                                                   #4  0x0000007fa729399c signal_emit_unlocked_R.isra.0 (libgobject-2.0.so.0 + 0x4199c)
                                                   #5  0x0000007fa7285e30 g_signal_emit_valist (libgobject-2.0.so.0 + 0x33e30)
                                                   #6  0x0000007fa72860e0 g_signal_emit (libgobject-2.0.so.0 + 0x340e0)
                                                   #7  0x0000005587084290 _pa_context_get_server_info_cb (phosh + 0x84290)
                                                   #8  0x0000007fa703fe58 context_get_server_info_callback (libpulse.so.0 + 0x12e58)
                                                   #9  0x0000007fa5a91bd0 run_action (libpulsecommon-14.2.so + 0x42bd0)
                                                   #10 0x0000007fa5a92564 pa_pdispatch_run (libpulsecommon-14.2.so + 0x43564)
                                                   #11 0x0000007fa7040170 pstream_packet_callback (libpulse.so.0 + 0x13170)
                                                   #12 0x0000007fa5a971e4 do_read (libpulsecommon-14.2.so + 0x481e4)
                                                   #13 0x0000007fa5a98b78 do_pstream_read_write (libpulsecommon-14.2.so + 0x49b78)
                                                   #14 0x0000007fa700e618 dispatch_func (libpulse-mainloop-glib.so.0 + 0x2618)
                                                   #15 0x0000007fa7157430 g_main_context_dispatch (libglib-2.0.so.0 + 0x57430)
                                                   #16 0x0000007fa71ae570 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xae570)
                                                   #17 0x0000007fa7156af0 g_main_loop_run (libglib-2.0.so.0 + 0x56af0)
                                                   #18 0x0000007fa7a2b604 gtk_main (libgtk-3.so.0 + 0x26d604)
                                                   #19 0x000000558701f7c4 main (phosh + 0x1f7c4)
                                                   #20 0x0000007fa6981a9c __libc_start_main (libc.so.6 + 0x24a9c)
                                                   #21 0x000000558701fa78 _start (phosh + 0x1fa78)
                                                   
                                                   Stack trace of thread 3145:
                                                   #0  0x0000007fa6a2dfb0 __poll (libc.so.6 + 0xd0fb0)
                                                   #1  0x0000007fa71ae50c g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xae50c)
                                                   #2  0x0000007fa71548ec g_main_context_iteration (libglib-2.0.so.0 + 0x548ec)
                                                   #3  0x0000007fa7154954 glib_worker_main (libglib-2.0.so.0 + 0x54954)
                                                   #4  0x0000007fa7187a78 g_thread_proxy (libglib-2.0.so.0 + 0x87a78)
                                                   #5  0x0000007fa68defd8 start_thread (libpthread.so.0 + 0x7fd8)
                                                   #6  0x0000007fa6a3835c thread_start (libc.so.6 + 0xdb35c)
                                                   
                                                   Stack trace of thread 3147:
                                                   #0  0x0000007fa6a2dfb0 __poll (libc.so.6 + 0xd0fb0)
                                                   #1  0x0000007fa71ae50c g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xae50c)
                                                   #2  0x0000007fa7156af0 g_main_loop_run (libglib-2.0.so.0 + 0x56af0)
                                                   #3  0x0000007fa73eb7b8 gdbus_shared_thread_func.lto_priv.0 (libgio-2.0.so.0 + 0x1277b8)
                                                   #4  0x0000007fa7187a78 g_thread_proxy (libglib-2.0.so.0 + 0x87a78)
                                                   #5  0x0000007fa68defd8 start_thread (libpthread.so.0 + 0x7fd8)
                                                   #6  0x0000007fa6a3835c thread_start (libc.so.6 + 0xdb35c)
                                                   
                                                   Stack trace of thread 3148:
                                                   #0  0x0000007fa6a2dfb0 __poll (libc.so.6 + 0xd0fb0)
                                                   #1  0x0000007fa71ae50c g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xae50c)
                                                   #2  0x0000007fa71548ec g_main_context_iteration (libglib-2.0.so.0 + 0x548ec)
                                                   #3  0x0000007fa40fdd4c dconf_gdbus_worker_thread (libdconfsettings.so + 0x5d4c)
                                                   #4  0x0000007fa7187a78 g_thread_proxy (libglib-2.0.so.0 + 0x87a78)
                                                   #5  0x0000007fa68defd8 start_thread (libpthread.so.0 + 0x7fd8)
                                                   #6  0x0000007fa6a3835c thread_start (libc.so.6 + 0xdb35c)

Phosh semmelt hier brutal weg, wenn man an den Audioeinstellungen rumspielt. Verursacht wird dies mutmaßlich durch einen Patch der Glib2:

* Tue Feb 09 2021 Benjamin Berg <bberg@redhat.com> – 2.67.3-2
  – Add patches to move applications into systemd scopes

Ich sage mutmaßlich, weil ein Downgrade des Glib2 Paketes auf 2.67.1-4 das Problem sofort behebt. Es kann aber natürlich auch sein, daß einfach alle anderen Anwendungen und Libs noch nichts von dem Patch gehört haben und noch Code verwenden, der dann nicht mehr geht.

Das blöde an der Situation ist, daß sich die Pulseaudio-Einstellungen beim Einstecken von Kopfhörern und Telefonieren ändern, weswegen Phosh während eines Anrufs crasht und das Gespräch weiterläuft. Kein Desktop bedeutet aber auch, keine Kontrolle mehr über den Anruf.

Wäre ich zynisch drauf, würde ich eine CVE beantragen, weil man durch Anrufen einen DOS auslösen kann 🙂

Workaround:

Für normale Endanwender:

dnf downgrade https://kojipkgs.fedoraproject.org//packages/glib2/2.67.1/4.fc34/aarch64/glib2-2.67.1-4.fc34.aarch64.rpm

Für normale Entwickler, die auch das Devel Paket installiert haben, weil sie Software auf dem System kompilieren:

dnf downgrade https://kojipkgs.fedoraproject.org//packages/glib2/2.67.1/4.fc34/aarch64/glib2-2.67.1-4.fc34.aarch64.rpm https://kojipkgs.fedoraproject.org//packages/glib2/2.67.1/4.fc34/aarch64/glib2-devel-2.67.1-4.fc34.aarch64.rpm

Danach „systemctl restart phosh“ durchführen und Ihr seid wieder crashsicher.

Update:

Der Bug wird untersucht. Jede Menge Debugging und 1.2GB Debugpakete später, steht nur eins fest: Der Bug ist mehr als bescheiden zu debuggen!