Fedora: Pinephone als LAHA Client

Hallo Linuxphone-Fans,

Ja, LAHA geht 😀 Es gibt aber TĂŒcken im Pinephone. Das beste, es lĂ€uft bereits mit Pipewire 😀

Fedora: Pinephone als LAHA Client

Ich wollte das schon lange ausprobieren, aber mit den ganzen bisherigen Pineproblemen bin ich da nicht zu gekommen. Heute hat sich das geÀndert.

in GrĂŒn der Audiodatenstrom vom C&C Center ins Pinephone.

Der Shellclient macht jetzt nicht direkt was her, zumal er nur ein Kommando ist:

Da der Client normalerweise vom C&C direkt auf dem C&C Server benutzt wird um den Ton abzuspielen, kommt der bislang ohne eigene UI aus, schliesslich spielt er nur ab, was man im C&C ohnehin sieht.

Das könnte sich jetzt aber Ă€ndern, wenn ich etwas mit der LibHandy vernĂŒnftige OberflĂ€chen fĂŒr Pine bauen kann. Dann sollte es am Ende eine der Androidversion Ă€hneliche FunktionalitĂ€t haben. Ob ich es hinbekomme, daß die JAVA Pakete von einem Clienten sauber gelesen werden können, wage ich aber zu bezweifeln, daher wird wohl auf eine Java-Client-C-GUI Mixanwendung hinauslaufen.

LĂ€uft auch mit Pipewire

Ganz ohne mein Zutun, funktioniert die Anwendung out-of-the-box auch mit Pipewire. Da scheint sich jemand bei der KompatibilitĂ€t zu PulseAudio MĂŒhe gegeben zu haben. Da PA aber nur ein Pirewireclient ist, war das so gedacht. Wenn Ihr das austesten wollt, braucht Ihr neben java-1.8.0-openjdk fĂŒr LAHA auch nmap-ncat und die pulseaudio-utils.

Spezielle Anpassungen sind fĂŒr LAHA nicht nötig. Einfach so starten: java server/Server

Beim Test sind dann allerdings andere Probleme des Pinephones aufgetreten: Netzwerkaussetzer.

Oben im Bild seht Ihr ja einen kontinuierlichen Datenstrom zum Pine, das ist aber nicht immer so:

Ihr seht hier Aussetzer des Netzwerkes alle 15 Sekunden. Das lies sich nur mit einem Reboot fixen und betraf alle Apps auf dem Handy, auch SSH und Ping. Die Aussetzer sind aber nicht neu. Die sind immer mal wieder seit ich das Handy bekommen habe aufgetreten.

Bugreport ist raus.

 

 

 

Kernel 5.3.16 mit HDMI-Audio Problemen

Na klingeln Euch auch noch die Ohren? Mir tun die jetzt noch weh! Wer eine NVIDIA Grafikkarte und einen aktuellen 5.3.16 Kernel einsetzt, der sollte jetzt kein HDMI benutzen.

Kernel Regression durch Patch fĂŒr eine andere Regression

Es ist immer blöd, wenn der Fehlerfix mehr Probleme macht, als er behebt. So geschehen im neuen 5.3.16 Kernel, wenn man eine NVIDIA Karte hat. Wie Takashi Iwai von Suse dazu schreibt:

The commit e38e486d66e2 („ALSA: hda: Modify stream stripe mask only when needed“) tried to address the regression by the unconditional application of the stripe mask, but this caused yet another
regression for the previously working devices. Namely, the patch clears the azx_dev->stripe flag at snd_hdac_stream_clear(), but this may be called multiple times before restarting the stream, so this
ended up with clearance of the flag for the whole time.

Hat da wohl jemand eine Kleinigkeit nicht bedacht aka die falsche Stelle gepatched 😉 Als Resultat fallen einem fast die Ohren ab, weil die LautstĂ€rke des HDMI Streams so derbe ĂŒbersteuert klingt, daß selbst 2% LautstĂ€rke nur als LĂ€rm bezeichnet werden können. Ich vermute das hier die Audiodaten im falschen Format angeliefert werden, wo alles was leise wĂ€re, extrem laut ist z.b. LE statt BE Sortierung der Bits.

Die Lösung

NatĂŒrlich gibt es eine einfach Lösung fĂŒr das Problem: 5.3.15 booten oder bis zum nĂ€chsten Kernelupdate kein HDMI benutzen 😉

Update:

Laut Laura Abbot von Red Hat wird der Fehler nicht mehr in der 5.3er Serie behoben, was ich bislang bestĂ€tigen kann, denn der 5.3.18 hat die gleiche Macke. Es soll stattdessen gleich der 5.4.0 Kernel gebaut werden. Frau Abbot bemĂŒht sich darum, daß der Patch bereits in 5.4.0 einfliesst.

Der Soundbug ist auch unabhÀngig von den Treibern, aber das habe ich nicht anders erwartet.

Update: wurde in 5.4.5 gefixt.

LAHA jetzt auch auf Raspberry PI

Jetzt ist es also passiert, die LAHA Multiroom HomeAudio-Lösung lÀuft auf der Zielplattform Raspberry PI.

Was war jetzt LAHA nochmal?

Kurzform: Damit kann man Audio an mehrere EndgerĂ€te streamen … verteilen, so daß es ĂŒberall im Gleichklang erschallt. Hervorgegangen ist das aus einer einseitigen Wette mit den Heise Redakteuren, das man das auch ohne BĂ€ng & Teufelschen Co. mit OpenSource hinbekommt : LAHA – Netzwerklautsprecher mit Linux . Wie sich herausgestellt hat, geht das auch, nur leider nicht ganz so wie anfangs geplant. Das es trotzdem geht, bedeutet natĂŒrlich einige EinschrĂ€nkungen oder Umstellungen.

PulseAudio

Wenn man PulseAudio mit einem römischen Gott vergleichen wollte, wĂ€re es Janus, der Gott mit den zwei Gesichtern. Auf der einen Seite ist PulseAudio echt super einfach, z.b. beim Abnehmen des Sounds vom Player und dem ins Netz stellen, auf der anderen Seite könnte ich dem Entwickler auch gern mal eins reinwĂŒrgen, weil die interne Latenzkontrolle Ihren Job nicht macht. Da letzteres nicht sauber klappt, könnte man auf AlsaPlay ( aplay ) ausweichen, aber das benutzt, sobald PulseAudio da ist, richtig geraten, PulseAudio als Backend, womit die Latenzfalle wieder da ist … Ă€chtzzzz. Man hats nicht leicht mit der OpenSource-Plattform 🙂 Es nutzt ja auch nichts, daß es Open-Source ist, wenn bei so komplexen Dingen wie PulseAudio Modulen/Programmen zwar der Source lesbar ist, aber auf 1000 Zeilen Code genau 2 Kommentare kommen und dazu grober C UnFoo getrieben wird.

Das Raspberry PI

Nachdem Android und der lokale PAPLAY Backend soweit waren, daß man darĂŒber was abspielen konnte, ohne das es gleich sofort zusammenbrach, war gestern das Raspberry PI dran. Eine genervte Viertelstunde brauchte es schon um das RasPI Image auf die 64GB SD zu bekommen, dazu morgen mehr, aber am Ende war das Pi dann doch kooperativ, bis .. ja bis PulseAudio installiert wurde 🙁 Das lief zwar auf dem PI und mit den nötigen Zusatzprogrammen war das auch nett, aber, und das ist entscheidend, die PI Devs haben der PulseAudio-Welt den Hardwarehack vorenthalten, mit dem Sie den Sound auf den Kopfhöreranschluß umlegen. Ums kurz zu machen, solange PulseAudio installiert und aktiv ist, geht das nicht ĂŒber die Kopfhörerbuchse, sondern immer ĂŒber HDMI raus, egal was die OberflĂ€che sagt.

Da gab es natĂŒrlich nur eine Lösung: Back to the Roots aka. PulseAudio wieder löschen, rebooten und Alsa als Backend benutzen. Wenn man dann dem PI erzĂ€hlt, daß es den Kopfhörer nehmen soll, dann geht das auch.

Der Stand der Dinge

Wir haben jetzt also PI Playback und das auch synchron mit dem Desktop PC und Android. Android ist auch so eine Krankheit fĂŒr sich, aber das nur neben bei. Es gibt schon Beweisvideos, allerdings war es bislang fĂŒr Filmaufnahmen zu dunkel, Ihr mĂŒĂŸt Euch nicht mehr gedulden, unten ist ein Video mit 4 GerĂ€ten zusehen. Damit Ihr Euch schon mal ein Bild davon machen könnt, wie das funktioniert, hier selbiges aus der LAHA PrĂ€sentationsfolie :

Der Aufbau von LAHA als Flußdiagramm

So war das bis gestern angedacht, nun muß der RasPi Teil aber auf ALSA als Backend umgebaut werden, weil PulseAudio ja nicht kann 😀