Pinephone: Willkommen bei Element

Mal sehen wer von Euch in den letzten Wochen gut aufgepasst hat 🙂

Update: Während des Schreibens dieses Artikels gab es einen Durchbruch und Ihr seid mit dabei \o/

Pinephone: Willkommen bei Element

Element ist ein Matrix Client und für alle die nicht wissen, was Matrix ist, es ist der Defacto Nachfolger von XMPP/Jabber, nur cooler 😉 Das Matrix Protokoll stellt dabei den Datentransport bereit, auf dessen Rücken dann die einzelnen Inhalte transportiert werden. Der große Unterschied zu XMPP ist, die Endanwendungen kommunizieren mit dem jeweiligen „Homeserver(HS)“ über eine REST API, womit man gleich Webanwendungen bauen kann, die mit dem Homeserver reden. Das wiederum erlaubt es uns, gleich auf die Webtechnologien zu wechseln, was dazu geführt hat, das Ende-zu-Ende-Verschlüsselung ( E2EC ), Audio und Videochats fester Bestandteil des Element Matrix Clienten sind.

Da Matrix ein föderierter Dienst ist, kann man mit jedem Matrixuser auf dem Planeten, dessen Homeserver sich nicht absichtlich dagegen wehrt, chatten. Das muß man sich wie bei Email vorstellen, Millionen Mailserver, aber jeder kann mit jedem, meistens 😉 Das kann Jabber zwar auch, aber das Setup dafür ist deutlich anspruchsvoller. Einen Matrixhomeserver muß man lediglich starten 😉

Was auf dem Desktop einfach durch die Installation von Schildichat erreicht werden kann, ist auf dem Pinephone schon schwieriger, oder doch nicht?

Auf dem Pinephone gibt es mehrere „native“ Implementierungen des Matrixprotokolls: Fractal, NeoChat und Spectral und nur einige zu nennen.

Diesen Clienten ist gemein, daß Sie keinen E2EC, Audio- und Videochat Support haben. Schildichat gibt es für AARCH64 nicht und Element selbst ist nur für Android verfügbar. Das macht aber nichts, denn Element und Schildichat als App sind eigentlich nur Webanwendungen mit beigefügtem Browser.

Da wir schon einen oder mehrere Browser auf dem Pinephone haben, die alle fullfeatured sind.. nehmen wir doch die 😀

 

Der eigene Webclient

Wir brauchen dazu nur einen eigenen Webserver, der nicht mal der Homeserver sein muß, aber sein sollte, weil es die Sache einfacher macht 😉

Als erstes braucht Ihr dann die Webanwendung: https://github.com/vector-im/element-web

Die packt Ihr in einem Webserver-Documentroot Eurer Wahl aus:

web]# ls 
bundles          fonts       jitsi_external_api.min.js  mobile_guide      sw.js         version
config.json      i18n        jitsi.html                 olm.9ddeb6b.wasm  themes        welcome
contribute.json  img         manifest.json              olm_legacy.js     usercontent   welcome.html
decoder-ring     index.html  media                      static            vector-icons

Wenn Ihr das im gleichen VHOST wie den Homeserver betreiben wollt, müssen wir noch der Webserver im VHOST erklären, daß er diese Anfragen nicht an Matrix senden soll. Ihr seht oben, das ich das in das Verzeichnis /web/ entpackt habe, daher braucht mein VHOST diese Einträge:

AllowEncodedSlashes NoDecode
ProxyPreserveHost On
ProxyPass /web/.well-known !
ProxyPass /web/_matrix http://127.0.0.1:8008/_matrix nocanon
ProxyPassReverse /web/_matrix http://127.0.0.1:8008/_matrix
ProxyPass /web/_synapse/client http://127.0.0.1:8008/_synapse/client nocanon
ProxyPassReverse /web/_synapse/client http://127.0.0.1:8008/_synapse/client

Wenn Ihr das ins Documentroot der Webseite schreibt, dann muß der VHOST so einen Eintrag haben:

AllowEncodedSlashes NoDecode
ProxyPreserveHost On
ProxyPass /.well-known !
ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon
ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix
ProxyPass /_synapse/client http://127.0.0.1:8008/_synapse/client nocanon
ProxyPassReverse /_synapse/client http://127.0.0.1:8008/_synapse/client

Danach nicht vergessen, den Webserver zu reloaden.

Wie Ihr an den Proxy URLS seht, läuft auf der Matrixhomeserver auf dem gleichen Serversystem wie die Webseite. Hat man seinen Homeserver nicht auf seinem Webserver laufen, müssen die URLs entsprechend angepasst werden.

Jetzt kann man das schon aufrufen und benutzen und genau da setzen wir jetzt auf dem Pinephone an und schreiben ein Desktopfile, daß Firefox oder Chromium benutzt um den Webclienten anzusprechen.

[Desktop Entry]
Version=1.0
Name=Matrix Web
Comment=Direktlink
GenericName=Matrix Web
Exec=env LIBVA_DRIVER_NAME=v4l2_request LIBVA_V4L2_REQUEST_VIDEO_PATH=/dev/video0 LIBVA_V4L2_REQUEST_MEDIA_PATH=/dev/media0 MOZ_ENABLE_WAYLAND=1 firefox-wayland %U https://HOMESERVERNAME/web/
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/pine/Bilder/matrix-logo.png
Categories=Network;WebBrowser;
MimeType=text/html;
StartupWMClass=Chromium-browser
Keywords=web;browser;internet;
X-Desktop-File-Install-Version=0.26

Diese Datei schreiben wir direkt nach /usr/share/applications/matrix.desktop  und schon können wir loslegen. Der Firefox reagiert leider im Pinephone allergisch auf –headless, so daß man keine geschlossene Benutzer UI bekommt. BR ist raus.

Gleich nochmal mit Chromium

Deswegen habe ich das gleiche mit Chromium gemacht:

# cat Element.desktop
[Desktop Entry]
Version=1.0
Name=Element
Comment=Direktlink
GenericName=Element
Exec=env LIBVA_DRIVER_NAME=v4l2_request LIBVA_V4L2_REQUEST_VIDEO_PATH=/dev/video0 LIBVA_V4L2_REQUEST_MEDIA_PATH=/dev/media0 chromium-browser –app=https://HOMESERVER/web/
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/home/pine/Bilder/element.svg
Categories=Network;WebBrowser;
MimeType=text/html;
StartupWMClass=Chromium-browser
Keywords=web;browser;internet;
X-Desktop-File-Install-Version=0.26

Chromium macht dann genau, was man erwartet, leider stimmt da derzeit was mit dem DPI Scaling nicht, weswegen das erste Bild oben mit der Willkommensmeldung, auch zu grobpixelig aussieht. Die Erfahrung mit Firefox ist da leider besser, auch wenn es eine angeschlossene USB Tastatur brauchte um dem Browser einen Zoomfaktor von 133% zu entlocken, damit man die Buttons besser treffen und Texte besser lesen kann 😉

Hat man diese Hürden umschifft, erwartet einen ein Matrix Client, der so ist, wie man das erwarten würde.

BREAKING NEWS …. VIDEO CHAT WORKING

Bis vor einigen Tagen funktionierten die Kameras noch nicht, aber jetzt gehts! ES GEHT \o/

20210304_11h07m59s_grim.png Da ich gerade mit Audio am rumspielen war, dachte ich, könnte ja mal versuchen und es ging . Megis Kernel Patch 5.11.0-5 made it happen.

Der Videochat braucht 400% CPU Leistung, weil keine HW Beschleunigung im Spiel, aber da arbeiten RH und meine Wenigkeit gerade dran. Jetzt mit noch mehr Priorität als vorher.

Die Jungs im int. Pinephone Channel sind gleich in Jubel ausgebrochen 🙂 Fedora scheint den World First geschafft zu haben, wenn das kein Grund zum Feiern ist \o/

Er nimmt zwar noch die falsche Kamera ( Backface ) aber das ist jetzt nicht weiter wild. Kriegt man in den Griff!

Wenn man nicht gerade im Videochat ist, braucht der auch wenig Strom 😉 Der startet so zwar etwas langsamer, als die nativen Clienten, aber dafür haben wir einen vollständigen Clienten. Ja! Ja! JA!

Hintergründe zu Matrix

Als Matrix 2019 endlich aus der Beta in eine Stabile Version wechselte, fand die französische Regierung das Projekt so toll, daß es alle Behörden den Landes auf Matrix umstellen wollte. Ein Riesenauftrag für Stiftung hinter Matrix. Auch in Deutschland wurde dies positiv aufgenommen, so daß die Bundeswehr mit 10.000 Arbeitsplätzen und Bund, Länder und Gemeinden auch auf Matrix umstellen wollen.

Einen Schönen Artikel zu Matrix gibt es hier:

https://t3n.de/news/matrix-neuer-messenger-bundeswehr-behoerden-1282086/

Wer jetzt Lust auf Matrix bekommen hat, der kann sich bei matrix.org einen Account registrieren. Meine Kennung gebe ich dann hier auch bald bekannt, aber da hängt noch etwas dran, das noch nicht reif für die Welt ist 😉

Nachtrag:

So sah das auf der PC Seite aus. Super Farben fürn ein Pinephone 😉

 

Das nackte Pinephone aufmotzen

Habt Ich Euch schon in Eurer Handy eingearbeitet? Vermutlich nicht, aber das macht gar nichts. Heute krempeln wir es um. Vieles wird dann einfach funktionieren.

Das nackte Pinephone aufmotzen

Euch wird aufgefallen sein, daß das Handy nicht mehr als 87% lädt. Ja.. das war auch für mich ein kleiner Schock. Aber da geht ums die Batterygesundheit. Allerdings fehlt halt im realen Leben auch 10% der Akkuladung, also unternehmen wir etwas dagegen:

Wir schreiben ein kurzes Bashscript „/usr/local/sbin/maxbattery.sh“ mit folgendem Inhalt:

# cat /usr/local/sbin/maxbattery.sh
#!/bin/bash

echo 4350000 > /sys/class/power_supply/axp20x-battery/voltage_max_design

Damit das auch immer beim Systemstart ausgeführt wird, schreiben wir einen systemd.service „/usr/lib/systemd/system/maxbattery.service“ mit dem Inhalt:

[Unit]
Description=max batterystartupscript
Documentation=no docs available
After=syslog.target
Wants=

[Service]
Type=simple
EnvironmentFile=
ExecStart=/usr/local/sbin/maxbattery.sh
KillMode=process
Restart=on-failure
RestartSec=60s

[Install]
WantedBy=multi-user.target

noch starten und einschalten:

$ systemctl enable maxbattery
$ systemctl start maxbattery

damit lädt der Akku jetzt direkt auf 99% hoch.

Das Updatechaos vermeiden

Im letzten Artikel hatte ich ja schon angesprochen, daß „einfach alles updaten“ wegen dem Alpha-Repo Rawhide, eine schlechte Idee sein kann. Werdet auf dem Handy mal root, dann beheben wir das vorläufig ( sudo su + Benutzerpasswort ). Ändert die Datei „/etc/dnf/dnf.conf“ wie folgt: Stand 5.12.2020

[main]
keepcache=True
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
exclude=mesa* bind* gnome-shell* mutter*

Jetzt könnt Ihr loslegen und erst einmal als root „dnf update -y“ machen. Geht einen Kaffee trinken, oder holt was vom Imbiss, das zieht sich aus zwei Gründen: die SD Karte ist zwar per se schnell, aber nicht in einem Pinephone, und es ist einiges am MB aus der Repodatenbank zu ziehen, bevor das überhaupt losgeht. Ist aber bei Manjaro ähnlich langsam.

Neue Repos einbinden

Als root müssen wir jetzt von Hand rpmfusion hinzufügen:

dnf install -y https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-rawhide.noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-rawhide.noarch.rpm

Normalerweise würde man das per Browser aufrufen und dann mit Gnome-Software installieren, aber da Gnome-Software nicht funktioniert bzw. nicht drauf ist, geht es nur so. Ist aber auch schneller, in sofern, kein Nachteil 😉

Endlich neue Programme einspielen

Ist das alles drauf, können wir die coolen Programme nachziehen:

dnf install -y callaudiod-master-1 f33-backgrounds-gnome desktop-backgrounds-gnome gnome-icon-theme shotwell gnome-phone-manager-telepathy hydrapaper powertop gnome-terminal gnome-tweaks glibclangpack-de gnome-system-monitor nautilus-extensions nautilus lollypop lame qmmp-plugin-pack qmmp libvdpau libva mpv pavucontrol pulseaudio-module-gsettings paprefs pasystraygnome-screenshot gedit megapixels openssl gnome-menus gnome-maps gnome-shell-extension-apps-menu gnome-calculator gnome-weather geary bzip2 tar wireless-tools gnome-powermanager sshfs pulseaudio-qt mint-x-icons mint-y-icons openh264 mozilla-openh264 light-locker wget unzip zip pulseaudio-utils chromium gnome-disk-utility

Das installiert eine Menge an anderen Paketen mit, aber am Ende werdet Ihr es nicht bereuhen. Optional, falls Ihr das benutzen möchtet:

onboard  bessere tastatur als Caribou die interne Gnome-Keyboardapp
gajim    kann theoretisch Audio/Video mit Jabber
gnome-shell-extension-windowoverlay-icons
gnome-shell-extension-refresh-wifi
gnome-shell-extension-netspeed
gnome-shell-extension-disconnect-wifi
gnome-shell-extension-desktop-icons
gnome-shell-extension-dash-to-dock
gnome-shell-extension-openweather
gnome-shell-extension-user-theme
gnome-extensions-app
gnome-shell-extension-common
chrome-gnome-shell

gnome-software  Das ist der Softwarecenter mit Gui. Mittlerweile funktioniert es halbwegs.

Um Gnome-Erweiterungen über die Webseite zu installieren, braucht man das unzip Paket aus den nicht optionalen Paketen oben. Vieles Sinnvolle ist im Paket enthalten. MPV z.b. kann die MaliGPU benutzen und damit ruckfrei, oder was man so nennen kann, Filme wiedergeben. Hier ein paar Impressionen:

Megapixels hat noch kleinere Probleme. z.b zieht es extrem viel CPU Leistung ( 2x 100% ) Das Programm, das die Bilder auf den Screen malt hat ist inperformant^10.

MPV im Einsatz

Nautilus Videos

Nautilus Musik mit QMMP

Statt QMMP würde sich Lollipop anbieten, deswegen ist es auch in der Programmliste, aber in der RawHide Version möchte es noch nicht ganz so, wie es soll.

Firefox bei der Arbeit 🙂 Videokonferenz geht, aber mit Chromium, so leid mir das tut, geht es viel besser! Chromium hat allerdings andere Macken 😀

Stand Tag 3

Ihr habt ein Handy, das nicht telefonieren kann, deswegen blieb Manjaro drauf 😉 Fedora ist zwar das bessere Gesamtpaket, wieso sieht man ja oben, aber der Calld ist leider „defekt“. Der kann zwar anrufen, aber die Verbindung zum Pulseaudio-Server findet nicht statt. Das ist allerdings nur ein Problem von Tagen, da der Upstreampatch schon bereit liegt.

Im nächsten Artikel peppen wir die Gnome-Shell auf, fixen Fehler in den Extensions, deren Entwickler gepennt haben.

Follow-Up: Pinephone Gnome Powerbuttonpatch

Vorheriger Artikel der Serie:

Das nackte Pinephone aufmotzen