Pinephone: Plasma Mobile Desktop

Manjaro mit Plasma Mobile kommt mit dem Pinephone Beta mit, also war es Zeit sich den mal anzusehen.

Pinephone: Plasma Mobile Desktop

Wie Ihr ja wisst, bin ich im Fedora Pinephone Lager beheimatet, aber Plasma Mobile wollte ich die ganze Zeit schon ausprobieren, seit ich es zum ersten mal sah. Vorgestern meinte eine SD Karte nicht mehr booten zu müssen, also habe ich testhalber ein anderes Image ausprobieren wollen, da auch ein Überschreiben mit dem bisherigen Image keine Verbesserung brachte. Was lag näher als denn gleich mal den Plasma Mobile Desktop für das Pine zu testen 🙂

„Das ist Handyfeeling mit Linux“

Schon das Booten des Images fühlt sich an, als wenn die Welt schon immer mit Linux Handies funktioniert hätte. Drei kurze Fragen nach der Sprache, dem Wifi und dem neuen Benutzernamen und das Image ist konfiguriert. Ein klein wenig später erscheint dann auch ein stilvoller Loginbildschirm, der einen an das BQ Aquarius denken lässt. Leider kann man den so nicht ablichten, aber der Desktop an sich sieht ja auch aus wie geleckt 😀

 

 

 

Hier ein paar Impressionen vom Desktop

Was man leider, mit Bordmitteln, nicht ablichten kann ist das Pull-Down-Panel mit den Kontroll-Icons für Wifi, Ton, Helligkeit usw. Die Buttons sind ein bisschen eckig vom Layout her, erfüllen aber sehr gut Ihren Zweck und kommen dabei den laufenden Programm nicht ins Gehege, wie das bei Phosh leider der Fall ist.

Der Filemanager ist im Vergleich zu Nemo, und besonders Nautilus. nicht nur bemüht nützlich zu sein, er schafft es auch:

Allerdings, externe oder interne Laufwerke einbinden ist leider nicht drin. Dafür spielt und zeigt er gleich intern so ziemlich alles ab Werk an. Das extra im Lieferumfang enthaltene MPV kommt im Gegensatz zur Fedora Version leider nicht über einen Core-Dump beim Start hinaus, wenn man die fehlende Lib erst einmal selbst nachinstalliert hat. Dabei hätte ich gerne mal gesehen, ob die HW Beschleunigung geht.

Auch die Zwischensequenzen beim Start eines Programms überdecken die lange Ladezeit von der SD ( die interne ist min. 5x schneller ) ganz gut. Rein von der User Expierience her, ist Plasma der Desktop für jedes Linuxphone. Und das ist selbst mit den Fehlern, die ich gefunden habe. Ich würde diesen Desktop Phosh oder Gnome sofort vorziehen.

Fehlende Features

Es fehlt z.b. Firefox im Basisimage, den muß man sich nachinstallieren, was erstaunlich leicht ging, weil ich es gleich in der Rootshell gemacht habe, statt über die Oberfläche 😉 d.b. nicht, daß es dort nicht geht, ich war nur „zufällig“ in der Nähe 😉

Dicht dran waren die Plasma Entwickler auch an der Übersetzung ins Deutsche, wie man er rechts sehen kann, bei Daten haben sie leider etwas vergessen.

Selbst wenn man Deutsch einstellt und der Datumseinsteller selbst auch in Deutsch daher kommt, bleibt das eingestellte Datum englisch. Leider auch auf dem Loginbildschirm, der mich am und pm begrüßt.

Das dürfte leicht zu lösen sein und solange die Ortszeit stimmt, kann man das verschmerzen. Megapixels läuft so gut oder schlecht, wie auf Fedora. Firefox auch, bis auf den kleinen Unterschied, daß er mit Manjaro keinen Videochat hinbekommt. Dies funktioniert derzeit nur mit Fedora als OS \o/

 

Matrix

Audiocalls funktionieren allerdings gut, wenn man denn überhaupt soweit kommt. Der Start vom Firefox produziert eine 10er Load und 65% IO Wait, was aber vermutlich an der SD Card liegt. Könnte aber auch daran liegen, daß mehrere Coredumps beim Start erzeugt werden … args! Wie auch schon mit Fedora, passt Firefox nicht komplett auf den Bildschirm. Schade eigentlich. Mit Firefox ist einiges im Argen, wie man auch hier mit der Bildschirmtastatur sehen kann. Firefox ist auch das einzige Programm soweit, daß sich verkleinert und verschiebt, wenn es ihm beliebt. Vermutlich war es deswegen nicht in der Startaufstellung.

Kleines Fazit

Wenn man mal von dem Rumgezicke mit Firefox absieht, macht Plasma auf dem Pinephone viel Vergnügen, weil es sich einfach richtiger anfühlt oder anders ausgedrückt: Ich will das unbedingt mit Fedora haben! 😀

 

Pinephone: Breakthrou on Fedora Pinephones

For all my normal readers, these are exceptional news, so we have to use english 😉

As you may know, Matrix is a chatprotocol which you can used with various clients, even as webapplications. As a webapplication you can make use of webfeatures like WEBRTC to open audio & video chats with End-2-EndCryption ( E2EC in matrix terms ).

On my tests to get a fully featured matrix client for the Pinephone, I had the idea to simply use firefox and chromium to access a self-hosted webinstance of the element-web client. It’s basically the same idea that Schildichat and others are using in form of an electron application, which you can install on your pc. Electron apps ship a special version of the Chromium browser with some html and javascript files as a package, i.e. inside a flatpak.

Pinephone: Breakthrou on Fedora Pinephones

As to the current date, no tested application on the normal Fedora aarch64 repo was capable of accessing the video cameras on the Pinephone, besides the specially crafted megapixels. Megapixels just takes pictures atm, so we had no working video solution.

Firefox makes a good matrix webclient ui and I knew from earlier tests, that in a WEBRTC session audio works good. Firefox can easily be made a clickable „Matrix“ icon the desktop by creating a matching desktopfile in :

    [Desktop Entry]
    Version=1.0
    Name=Matrix Web
    Comment=Directlink
    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/images/matrix-logo.png
    Categories=Network;WebBrowser;
    MimeType=text/html;
    StartupWMClass=chromium-browser
    Keywords=web;browser;internet;
    X-Desktop-File-Install-Version=0.26

The URL needs to point to the web client and Javascript needs to be enabled. You may notice the V4L2 env vars, they are step one to enable gpu acceleration. If you run NoScript in your Firefox make the necessary adjustments and your on track. I tested audio calls and they worked as expected, so I thought to myself: „why not“ and hit the video call button.

It does not only sound like an accident, it was 🙂 To our all very great surprise the Pinephone cameras went on and presented a live YUYV image from the ov5640 camera chip. There is a theory how Firefox did it, but that needs further investigations 😉

You can mark the 4th of march, 2021 11:07 CET as the time and date, that first video call (we know of) was done \o/

The other side of such a call looked like this, and actually this also was a surprise, as we got full colors from the image:

The first reaction on the global Pinephone chat was amazing:

aluizioneto

Marius
Breaking News .. Video Chat via Matrix from Pinephone WORKING 😆
Very nice!!! That would solve everything for me. Where is my PP CE?? 😃

A great moment for Pinephone users 🙂

But, there is still much to be done here. Firefox on Pinephone does not have hw acceleration in use yet, so it took all 4 cpu cores on the phone to do that call and it was still not enough processing power, as the audio part was interrupted and lagging behind. Atm Mr. Stransky is helping out to fully enable the allwinner GPU for Firefox. You need to now, that we already have a working libva driver for the Allwinner soc, called libva-request.

MPV is already using this lib to decode FullHD MP4 movies on my Pinephone with next to 0 frame drops. The amount of power consumption has dropped significantly too, so it’s possible to watch a full length movie without running out of juice. The Pinephone is using 3.6 Watt if all cpu cores are running, which results in app. 2 hours until the battery is drained. With the help of the gpu this is no longer the case, as the power consumption got down to around 2 Watt, doubling the life time of a full battery charge.

When Firefox is using the gpu and we have a better performance, it will be possible to make a videocall and leave the house without a mobile powerbank 😉

We have to thank many contributors to made this happen, in special the Fedora SIG Mobility team members who are massively testing and updating packages for Pinephone and PineTab.

I hope, that we all can see us in a Pinephone driven smooth Videoconference soon 😉

if you wanne see a video taped in the pine, check this article on the bottom:

Pinephone: Willkommen bei Element

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 😉