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 ūüėÄ

Steuerbetrug durch Ebaykauf

Man bestellt ja √∂fters mal was bei Ebay, das, obwohl Deutscher Versand dran steht,¬† meistens dann doch per Luftfracht aus China kommt. In der Regel ist das kein Problem, solange der Betrag unter 25 ‚ā¨ bleibt. Wenn er dr√ľber liegt, gibt man halt eine Zollerkl√§rung ab, zahlt die f√§llige Steuer ( gemeinhin als Zoll bekannt ) und nimmt seinen Neuerwerb mit.

Die Sache mit dem Zollwert

Soweit, so klar, au√üer.. ja, au√üer man f√§llt auf einen weit verbreiteten Trick der Ebay Verk√§ufer rein: Den Lockvogeleintrag. Dabei hat der Artikel einen auffallend geringen Wert, aber vergleichsweise hohe Transportkosten. F√ľr den K√§ufer ist das erstmal egal, weil er dem Verk√§ufer ja den Gesamtbetrag √ľberweisen mu√ü, aber dem Zollamt ist das nicht egal.

Beispiel:

Der Artikel kostet 21 ‚ā¨ Warenwert und 110 ‚ā¨ Transport aus China.

Der zu zahlende Zoll, setzt sich aus dem Warenwert und den anteilig in der EU abgewickelten Transportkosten zusammen. d.b. vereinfacht : Warenwert ‚ā¨ + Transportkosten ‚ā¨ * Anteil EU¬† = Zollwert ‚ā¨ .

Bis Peking sind es im Landweg rund 7500km, davon entfallen auf das Gebiet der EU ca. 600km ( Frankfurt/Main -> Polen Ostgrenze ) so kommen wir vereinfacht auf :¬† 21 ‚ā¨ + 110 * 6/75 = 29,80¬† ‚ā¨ . F√ľr 4,80 ‚ā¨ m√ľ√üte also die Einfuhrsteuer und Mehrwertsteuer berechnet werden, weil es ja die 25 ‚ā¨ Freigrenze gibt.

W√ľrde der Artikel aber 110 ‚ā¨ kosten und die Transportkosten w√§ren bei 21 ‚ā¨ , s√§he das so aus : 110 ‚ā¨ + 21 * 6/75 = 111,68¬† ‚ā¨ abz√ľglich 25 ‚ā¨ w√§ren das dann 86,68 ‚ā¨ statt der 4,80 ‚ā¨ oben. Da waren die hohen Transportkosten ja eine super Sache, oder ?

„Einmal 2 Jahre auf Bew√§hrung bitte..“

Joar.. das Super bringt Euch allerdings d√ľmmstenfalls in den Knast und bestenfalls eine Strafanzeige wegen Steuerhinterziehung. Nat√ľrlich will der Staat den Zoll auf die 86,68 ‚ā¨ haben und unterstellt Euch und dem Verk√§ufer, die Kosten f√ľr den Transport extra hoch angegeben zu haben, und damit hat er bei Ebay vermutlich Recht, denn der Verk√§ufer war nur auf eine gute Platzierung seines Produkts scharf, weil die meisten K√§ufer nach Preis sortieren und ein kleiner Warenwert eine vordere Position gew√§hrleistet. Wenn man als K√§ufer erst mal f√ľr das Produkt Feuer gefangen hat, nimmt man ggf. auch hohen Extrakosten in Kauf.

Resultat der Aktion: Ihr bekommt ein Steuerhinterziehungsverfahren an die Backe und der chinesische Verkäufer lacht sich einen Ast. Gut, der lacht sich nur solange schlapp, bis auch bei ihm wegen gewerbsmäßiger Anleitung zum Steuerbetrug die Handschellen klicken, aber wer weiß schon wie lange das dauert.

Ihr glaubt das nicht ? Na dann geht mal zum Zollamt und laßt Euch erklären, wie das berechnet wird. Da könnt Ihr auch gleich mal lernen was Tacacs ist, wie der Zoll Währungsumrechnungen macht und ob es eine gute Idee war, 10 T-Shirts aus Honduras zu importieren.

Randnotiz 1:

Ist es nicht. Da m√ľ√üt Ihr eine Einfuhrgenehmigung erwirken. Wenn die gleichen T-Shirts kurz auf dem Boden der USA waren, dann √ľbrigens nicht mehr, dann gibts 2.3% Pauschalverzollung ūüėÄ Honduras war nur ein Beispiel, weil die USA massenhaft aus Honduras importieren, es h√§tte auch Panama, Mexiko oder sonst ein Dritteweltland sein k√∂nnen.

Randnotiz 2:

Die Beispiele oben sind vereinfacht um das Konzept zu verdeutlichen, in der Realit√§t ist es ein klein wenig komplizierter, aber ihr wolltet ja ohnehin mal beim Zoll vorbeigehen und fragen ūüėČ

TS3, SQLite und der Dump

Es waren einmal: Ein TeamSpeak3 Server, eine SQLite Datenbank und ein Fedora 28 Upgrade. Ja, ich wei√ü, Ihr habt die Schnauze voll von „da geht schon wieder was mit F28 nicht“ berichten, aber was soll man machen? Irgendwie mu√ü man die beheben, oder?

DatabaseError database disk image is malformed

Nach dem F28 Serverupdate brauchte ich mal meinen TS3 Server, also wollte ich den starten. Ich wollte schon behaupten, daß ich es nicht anders erwartet habe, aber eigentlich war ich optimistisch. Half aber nichts, der TS3 Server gab nur dies zum Besten:

CRITICAL|ServerLibPriv | | Server() DatabaseError database disk image is malformed

Um es kurz zu machen, die SQLite DB war technisch in Ordnung, aber irgendeine Checksumme wollte nicht, wie TS3 das wollte. Eine kurze Recherche im Jahr 2010!!! ergab, daß ein anderer User sowas mal mit einem simplen SQL-Dump gefixt hatte. Eine gute und einfache Möglichkeit, wenn sie denn funktioniert.

echo „.dump“ | sqlite3¬† ts3server.sqlitedb | sqlite3 new.db

Das funktioniert auch soweit, nur daß new.db am Ende lediglich 0 Byte groß war und es ums verrecken auch nicht anders haben wollte. Das Geheimnis lag im SQL.Dump. Der hatte eine Transaktion aufgemacht, aber nicht mit COMMIT geschlossen. Ergo, nie beendet , ergo 0 Byte Datenbank.

echo „.dump“ | sqlite3¬† ts3server.sqlitedb > dump.sql
vi dump.sql
sqlite3  new.db < dump.sql
mv new.db ts3server.sqlitedb
chown {tsuser} ts3server.sqlitedb

und schon startet der Teamspeakserver wieder ūüôā

Frohe Weihnachten ihr Bugs!