Linux am Dienstag: von NALA, CURL und Wireplumber

Für Euch eine kleine Nachbereitung zu „Problemen mit Wireplumber“, „Curl“ und Ubuntus neuestem Paketmanager „Nala“.

Linux am Dienstag: von NALA, CURL und Wireplumber

Fangen wir mir Curl an. Mit Hilfe von Curl kann man in der Konsole Webserverseiten anfragen, Dateien Downloaden, Reaktionen testen. Dazu gibt man wie im Browser die URL an, daher auch der Namensbestandteil von Curl.

Beispiel: curl https://www.google.de/

Was passiert jetzt als erstes? Der Domainname wird aufgelöst zu einer IP ( hier: 142.250.184.227 für www.google.de). Weil wir HTTPS als Protokoll angegeben haben, geht Curl nun zu der IP auf dem Port 443 und setzte den nötigen HTTP Request ab um die Seiteninhalte zu bekommen. Soweit, so gut.

Was aber, wenn Ihr eine Webseite umgezogen habt und testen wollt, ob alles geht? Da muß man entweder die neue IP und die Domain in die /etc/hosts Datei eintragen, oder man nimmt „ncat neue.ip 80“ und schickt dann einen vorbereiteten HTTP-Request hin. Das ist für einen schnellen Test ganz schön „viel“ Arbeit, weil es mit Curl schneller geht.

Curl – Resolve

Nehmen wir mal an, die neue IP für www.google.de wäre 99.33.66.2 dann könnten wir curl so beauftragen:

curl –resolve www.google.de:80:99.33.66.2 http://www.google.de

für HTTPS wäre es dann:

curl –resolve www.google.de:443:99.33.66.2 https://www.google.de

Eine Zeile und wir wissen, daß es funktioniert oder nicht. Sehr praktisch für Webjunkies 😉

Hinweis: falls WordPress mal wieder aus den zwei Bindestrichen einen komischen macht, bitte selbstständig ändern. Nicht einfach Copy&Pasten, nachdenken!

Wie man Wireplumber in den Hintern tritt

Um zu verstehen wo das Problem lag, hier ein Screenshot der „Plumbs“ (Verbindungen) die mich echt gestört hat.

War das nervig..

Wie man sieht, haben alle , wirkliche alle, Pulseaudio-Lautstärkeregler eine Abnahme des USB-Microphones verlinkt. Das passierte am Tag des Upgrades von Fedora 34 auf 35. Warum wissen nicht mal die Pipewiregötter.

Die Folge war, daß alle Levelmeter im PAVU nur den Inputlevel vom USB-Mic angezeigt haben. Egal welches Programm sich öffnete, was man da in PAVU für Einstellungen machte, funktionierten zwar, aber es änderte sich nichts. Gut, man kann damit leben, aber warum???

Wireplumber – Streamrestore

wenn Ihr mal in Eurem Homeverzeichnis in .local/state/ schaut, seht Ihr da folgende Verzeichnisse:

[marius ~]$ ls -ls .local/state/
insgesamt 12
4 drwx——. 4 marius marius 4096 21. Okt 12:45 pipewire
4 drwx——. 2 marius marius 4096 26. Okt 09:44 wireplumber

Das Wireplumber Verzeichnis sieht ungefähr so aus:

[marius ~]$ ls -ls .local/state/wireplumber
insgesamt 16
4 -rw-r–r–. 1 marius marius 189 25. Okt 19:42 default-nodes
4 -rw-r–r–. 1 marius marius 1133 26. Okt 09:11 default-routes
8 -rw-r–r–. 1 marius marius 7761 26. Okt 10:42 restore-stream

In den Default Dateien steht drin, welches der Audiogeräte die Standardausgabe ist, und in restore-stream ist festgehalten, welche App wie mit den Aus- und Eingabegeräten verbunden war. Das wird bei Start der Desktopsession als „Stand“ wieder hergestellt, damit jede Anwendung so arbeitet, wie Ihr es zuletzt eingestellt hattet.

Jetzt schaut Euch mal meinen Stand an:

[marius ~]$ ls -ls .local/state/wireplumber.bak/
insgesamt 40
4 -rw-r–r–. 1 marius marius 194 18. Okt 21:46 default-nodes
4 -rw-r–r–. 1 marius marius 258 21. Okt 12:10 default-profile
4 -rw-r–r–. 1 marius marius 3006 21. Okt 12:47 default-routes
4 -rw-r–r–. 1 marius marius 93 30. Jul 14:47 policy-bluetooth
24 -rw-r–r–. 1 marius marius 21378 21. Okt 12:47 restore-stream

In der Datei sind jede Menge falsche Angaben gespeichert, die bei jedem Start wieder hergestellt wurden.

Der Wireplumber-Fix

Alles was Ihr machen müßt ist, das State-Verzeichnis zu löschen oder umzubenennen. Vorher sollte man den Service stoppen, damit der das nicht torpediert.

systemctl stop –user wireplumber
mv wireplumber wireplumber.bak
systemctl start –user wireplumber

und darauf kamen nicht mal die Entwickler 😉

Wo wir schon mal bei Wireplumber sind, kennt Ihr schon wpctl ?

mit wpctl status könnt Ihr Euch ansehen, was PAVU und QPWGraph Euch auch so anzeigen, nämlich wer mit dem Verbunden ist (Streams), welche Geräte es gibt ( Devices ), welche Ausgaben es gibt ( Sinks ) und wer Default ist ..

$ wpctl status ( gekürzte Ausgabe ) 

Audio
├─ Devices:
│ 43. GP107GL High Definition Audio Controller [alsa]
│ 44. Logitech Webcam C925e [alsa]
│ 45. Starship/Matisse HD Audio Controller [alsa]

├─ Sinks:
│ * 49. GP107GL High Definition Audio Controller Digital Stereo (HDMI 2) [vol: 1.00]
│ 50. Starship/Matisse HD Audio Controller Analog Stereo [vol: 1.00]

├─ Sink endpoints:

├─ Sources:
│ * 46. Logitech Webcam C925e Analog Stereo [vol: 1.00]
│ 51. Starship/Matisse HD Audio Controller Analog Stereo [vol: 0.74]

├─ Source endpoints:

└─ Streams:
69. python3.10
67. monitor_FL
68. input_FL < Logitech Webcam C925e:capture_FL [active]
72. input_FR < Logitech Webcam C925e:capture_FR [active]
76. monitor_FR

Settings
└─ Default Configured Node Names:
0. Audio/Sink alsa_output.pci-0000_0a_00.4.analog-stereo
1. Audio/Source alsa_input.usb-046d_Logitech_Webcam_C925e_F4C01DCF-02.analog-stereo

mit wpctl kann man auch die Defautl Sinks & Sources setzen:

wpctl set-default ID z.B. wpctl set-default 46 ( meine Webcam ) . Komischweise kann ich das nur für die Eingabegeräte machen, aber nicht für die Ausgaben, andere konnten das bei sich gestern schon machen. Ich ahne, da kommt noch ein Blogbeitrag zu Pipewire/Wireplumber der auch das beleuchtet 😉

Kommen wir zu NALA für Ubuntu

Nala ist ein neuer Paketmanager für Ubuntu, der eine sehr viel aufgeräumtere Darstellung des Updates macht, als APT. Ich kann Euch den nur ans Herz legen. Das APT System wird dadurch zwar inhaltlich nicht besser, aber deutlich übersichtlicher:

Bei Linux am Dienstag schauen wir nächste Woche mal das neue DNF 5 an!