Upscayl bestes Beispiel wieso man keine Container usw. nutzen sollte

Die Container Fans in der Linuxgemeinde wollen es ja nicht wahrhaben, aber heute kann ich Euch am Beispiel Upscayl genau den Grund zeigen, wieso ich keine containerisierten Anwendung haben möchte.

Upscayl bestes Beispiel wieso man keine Container usw. nutzen sollte

Einem „Das scheint interessant zu sein, probiers mal aus“ Gedanken und dem Beitrag auf den GNULinux.ch News zu Upscayl (An der Stelle schöne Grüße Leute) folgend, mußte ich gleich erleben, was die Nachteile von Containeranwendungen sein können, wenn es um die Sicherheit des PCs geht.

Schaut mal hier rein, was passierte, als ich die Anwendung Upscayl installiert habe:

$ flatpak install ./Upscayl-1.5.5-x86_64.flatpak
Required runtime for org.upscayl.app/x86_64/master (runtime/org.freedesktop.Platform/x86_64/20.08) found in remote flathub
Do you want to install it? [Y/n]: y
Info: org.freedesktop.Platform//20.08 is end-of-life, with reason:
org.freedesktop.Platform 20.08 is no longer receiving fixes and security updates. Please update to a supported runtime version.
Info: org.freedesktop.Platform.GL.default//20.08 is end-of-life, with reason:
org.freedesktop.Platform 20.08 is no longer receiving fixes and security updates. Please update to a supported runtime version.

org.upscayl.app permissions:
ipc network pulseaudio wayland x11 dri file access [1] dbus access [2]

[1] home
[2] org.freedesktop.Notifications

KENNUNG Zweig Op Remote Download
1. [✓] org.freedesktop.Platform.GL.default 20.08 i flathub 105,8 MB / 106,4 MB
2. [✓] org.freedesktop.Platform.Locale 20.08 i flathub 1,4 MB / 322,5 MB
3. [✓] org.freedesktop.Platform 20.08 i flathub 243,3 MB / 270,4 MB
4. [✓] org.upscayl.app master i app-origin 0 Bytes

Installation complete.

Dabei hatte ich erst vor wenigen Wochen die alte Version der Freedesktopumgebung entfernt 🙁

Natürlich wird diese Software in dem Stand auch als Flatpak mit Zugriff auf mein $HOME nicht länger als der nötige Testfall existieren 🙂

Der Test

Die Upscayl Anwendung arbeitet lokal, das ist ein sehr großer Vorteil. Leider arbeitet sie ohne meine schnellen 12 Kerne, denn alles was hier passiert, findet auf der GPU statt und das ist bei einer GT1050 nicht wirklich schnell.

Das Ergebnis des Tests war dann auch eher überschaubar, wobei ich fies war und ein verwackeltes Bild genommen habe, schliesslich wollte wir es ja „verbessern“ 😉

Ein 2 MPixel Bild braucht dann unter Upscayl fürs Schärfen auch locker mal 3 Minuten. Der Kommentar einer Photoshopsüchtigen war dann… „auch nicht besser als Photoshop“ 🙂 Jetzt stellt Euch vor, daß ich nicht weiß, wie lange ein normales Smartphonephoto mit Upscayl auf der GT1050 gebraucht hätte, weil das so langsam ablief, daß ich die Prozesse wegen vermeintlicher Inaktivität abgeschossen habe 😀 Ist halt nicht die schnellste GPU am Markt.

Damit Ihr einen zeitlichen Eindruck bekommen, der Scaleprozess ist bei 50% und hat angefangen als ich „Der Test“ schrieb. Das ihr das schneller lest, als es sich tippen lässt, solltet Ihr dabei Bedenken.

Hier das Ausgangsbild:

eine unscharfe Gans im Wasser 2 MP.

Wieso seht Ihr jetzt nur ein Bild der Gans?

Weil das „verbesserte“ Bild genauso aussah wie das Original.. aka. Fail auf ganzer Linie.

Das das Upscayl Programm dies um einiges besser kann, wenn es um kleine Bilder geht, zeigt dieser Vergleich:

Zwar wurden die Wälder „zermatscht“ aber z.B. die FrontFigur mit den Hörnern ist um ein vielfaches detailreicher als vergleichbare Sharpen Tools von GMIC, Krita und Photoshop das zeigen können. Sehen kann man das sehr viel besser, wenn das Bild vergrößert verglichen wird:

Vergleich bei Vergrößerung

„Auch heute ist CSI noch immer UNREALISTISCH!“ 😀

Was jetzt kommt, ist nicht ganz ernst gemeint, aber versuchen wir doch mal, ein Videobild von 2004 zu verbessern, mal sehen was wir an Details geboten bekommen.

WARNUNG: Sollten Sie den dargestellten Personen in der Realität begegnen, sind Alpträume möglich 😉

Ausgangsbild

Da sieht man schon, viel ist da nicht zu an Inhalt drin.

keine Sorge, niemand ist darauf zu erkennen 🙂

Der kleine blonde Kämpfer für die Unterdrückung, ja Junge, falsche Seite ausgesucht, weil Zorro ist der Gute ;), ähnelt jetzt einem Tiger- oder einer Katzenfratze. Insgesamt sieht das Bild ansprechender aus, aber in Wirklichkeit sind von Upscayl Details weggeglättet worden. Auch der Mann im Weißen Hemd im Bildhintergrund, sieht merkwürdig aus, weil seine Arme zu seinem Rücken wurden.

Also bis das CSI aus grottenschlechten Bildern einer Reflektion im Auge in einem 640×480 Pixel Kamerabild eine identifizierbare Aufnahme machen kann, vergehen noch ein paar Jahrzehnte 🙂

Fazit

Ich denke, daß Upscayl Tool an sich wäre eine Bereicherung, aber zumindest die per Flatpak unnötigerweise hinzugewonnenen Sicherheitslücken ( wenn überhaupt welche da sind ) wiegen es für mich nicht auf.

Ein paar Tests später

Tests, die ich mit Material gemacht habe, wo ich Vergleiche von anderen AI Systemen zur Verbesserung hatte, zeigen deutlich, daß die von Upscayl genutzte AI Engine nicht wirklich mithalten kann. Viele Details gehen einfach verloren, weil sie weggeglättet werden, statt detailiert analysiert und verbessert zu werden. Andere, bereits gute Ausgangbilder werden einfach nur vergrößert ohne Inhalte dazu zugewinnen, meint Zooming zeigt kaum Unterschiede, auch wenn das Skalierte Bild 4x so groß ist.

Auf der einen Seite ist das gut, aber keine Kunst, denn das konnte ImageStudio vom Amiga in den Neunzigern mit sehr viel weniger Rechenleistung in deutlich kürzerer Zeit auch. Vervierfachung bedeutet, daß aus jedem Pixel 4 Pixel werden. Die drei neuen Pixel können dabei den gleichen Farbwert haben, was keine Änderung am Bildinhalt bedeutet. Normalerweise folgt auf das Skalieren dann die Anpassung an die umliegenden Pixel, so daß ein sanfterer Übergang zwischen den ehemaligen Pixeln entsteht.

Dieser Renderingprozess wird von einigen Grafikprogrammen mit Faktor 10 als Subpixelrendering betrieben und gibt sehr gute Ergebnisse. Spannender wird es wenn man bei nicht im Faktor 4 sondern, sagen wir mal 1.3 vergrößert. Da zeigt sich dann, was der Algorithmus drauf hat. Denn „Bruchpixel“ sind extrem schwierig perfekt herzustellen. Die meisten Programme die ich kenne versagen da mehr oder weniger ganz.

Wem das zu hoch war, merkt Euch einfach: 4x ist pillepalle, Bruchfaktoren die Königsdisziplin 😉

 

Surface Pro 4 – ENDLICH – Der Durchbruch

Ich habe mich seit Monaten mal wieder an einen Test des Linux Surface Kernels gemacht und wurde erst einmal richtig enttäuscht. Eiserner Durchhaltewille, der Züge von Besessenheit annahm, brachte dann doch noch den erhofften Erfolg 🙂

Surface Pro 4 – ENDLICH – Der Durchbruch

Ich hatte ja die Hoffnung, einen aktuellen Kernel mit Touchsupport zu nutzen, schon aufgegeben, aber die Issue-Kommentare ließen die Hoffnung aufkeimen, daß mein Sturm aus GeisterTouchs irgendwie unter Kontrolle zu bekommen sein müßte. Denn sobald ein Desktop geladen wurde, poppten wie wilde Anwendungen auf, Fenster verschoben sich auf magische Weise und ein Arbeiten war so nicht möglich.

Das Setup

Das Tablet wurde frisch auf Fedora 36 gezogen, so daß alles vorhanden ist. Der Kernel kam direkt aus dem Linux Surface Kernel Repo.

Microsoft Surface Pro 4
Linux Surface Kernel 6.0.6-1
Fedora 36
iptsd 0.51.x

Die Geister sind los

Fährt man das Setup mit dem Defaults so direkt aus, geht die Geisterparty sofort los, wenn der iptsd läuft. Der übernimmt seit Kernel 5.4 die Sache mit der Toucherkennung. Dies änderte sich auch nicht, also ich diverse Optionen in der ipts.conf aktivierte, die dies eigentlich verhindern sollten. Nach einige Stunden rumtestens, hatte ich das Gefühl, daß die Config gar nicht gelesen wurde und habe sogar mit strace nachgesehen, was der Daemon alles nachlädt.

Manchmal ist es dieser eine Schritt weiter …

und der bestand darin, das TouchThreshold sehr viel weiter hochzusetzen, als das mit dem Default von „10“ vorgesehen war. Die Sache mti dem Threshold ist, daß Klicks verloren gehen, weil die als „zu schnell“ maskiert werden. Je größer also das Threshold ist, desto kleiner ist die FTR ( FingerTipRate ), das Touchäquivalent zur FPS 😉 Das könnte zu Problemen bei Spielen führen. Aber da ich damit nicht spielen wollte, zumindest nicht via Touchbedienung, stellt das für mich jetzt nicht das Problem dar.

ipts.conf

Hier meine ipts.conf für das Pro 4, damit Ihr eine Anfangkonfiguration habt.

[Config]
TouchThreshold = 50
StabilityThreshold = 0.55

[Touch]
CheckStability = true
DisableOnPalm = false
DisableOnStylus = false

[Contacts]
Detection = advanced
TemporalWindow = 5
SizeMin = 0.3

[Cone]

[DFT]

Einmal den iptsd via systemctl restart iptsd neustarten und wir sind gut \o/

OK, neuer Kernel, aber wieso leuchtet da jetzt eine weiße LED???

Eine kleine weiße LED, die noch nie auf dem Gerät zusehen gewesen ist, leuchtete fröhlich vor sich hin. Warum leuchtet die? Wieso leuchtet da eine weiße LED, EINFACH SO??? Wo kommt die her, WAS TUT DIE DA? WARUM !?!?!?! …. Na, weil die Kamera an ist \o/

Wer jetzt dachte, das würde einfach so gehen, der kennt Microsoft nicht gut genug 😉 Wir brauchen:

libcamera + Gstreamer + v4l2loopback

Glücklicherweise ist alles im Fedora Repo enthalten:

$ dnf install libcamera libcamera-tools libcamera-qcam libcamera-gstreamer libcamera-ipa v4l2loopback kernel-surface-devel
$ akmods-shutdown
$ reboot

Hinweis: Es braucht die richtige Version der Libcamera, sonst wird es nicht funktionieren. Notfalls müßt Ihr Euch die neueste Version selbst kompilieren.

Die Kameratools brauchen wir, damit wir uns mit cam -l die Liste der Kameras ansehen können und die kann von 0-3 gehen: 0 ( geht gar nicht) , 1 Front/RearCam , 2 Front & RearCam, 3 F+R+IR Cam . Auf dem Pro 4 werden es maximal 2 , weil IR nicht unterstützt wird. Hier gibt es zu dem Thema mehr Infos.

Beispiel:

# cam -l
[0:39:24.393645034] [26937] INFO Camera camera_manager.cpp:293 libcamera v0.0.0
[0:39:24.426650022] [26942] ERROR V4L2 v4l2_device.cpp:91 ‚dw9719 3-000c‘: Failed to open V4L2 device: No such file or directory
[0:39:24.426699037] [26942] ERROR CameraSensor camera_sensor.cpp:469 ‚ov8865 3-0010‘: CameraLens initialisation failed
[0:39:24.430011690] [26942] ERROR IPAProxy ipa_proxy.cpp:149 Configuration file ‚ov5693.yaml‘ not found for IPA module ‚ipu3‘
[0:39:24.455867840] [26942] INFO IPU3 ipu3.cpp:1204 Registered Camera[0] „\_SB_.PCI0.I2C2.CAMF“ connected to CSI-2 receiver 1
Available cameras:
1: Internal front camera (\_SB_.PCI0.I2C2.CAMF)

Wozu Loopback Device?

Mit der WebCam Anwendung Cheese und Qcam kann man die Kamera über das IPA Subsystem direkt ansprechen, aber Firefox und der Rest der Apps können das nicht. Das V4L2 Loopbackdevice kann über den GStreamersupport den anderen Anwendungen die Kamera zur Verfügung stellen. Leider ist das in der Praxis alles andere als stabil.

Ich empfehle das Bild von Cheese zu streamen, das dies stabil funktioniert 😉

Damit akmods das Kernelmodul bauen kann, brauchen wir die Linux-Surface-Kernel Sourcen, mit den „normalen“ geht es leider nicht. Ich empfehle noch einen Eintrag in die /etc/modprobe.d/v4l2-loopback.conf :

options v4l2loopback video_nr=42 card_label=“virtualcam“ exclusive_caps=1

Damit wird das Modul gleich beim Booten geladen.

Wenn ich jetzt noch im Plymouth Bildschirm zum Entsperren der Festplatte ein OSK bekomme, dann erkläre ich das Surface offiziell für Feature-Complete 😉

Linux am Dienstag: Programm für den 8.11.2022

Heute beschäftigen wir uns bei Linux am Dienstag mit Fortschritten beim Linux Surface Kernel und EasyEffects als Nachfolger von Pulseeffects 🙂

Linux am Dienstag: Programm für den 8.11.2022

Dienstag Abend ab 19 Uhr geht es u.a. um:

  • Linux – EasyEffects, statt PulseEffects
  • Linux – Linux Surface Fortschritte
  • Linux – Intel ARC GFX
  • Sicherheit – WLAN Signale zum Orten per Drohne benutzt
  • Sicherheit – Und wieder ein Landkreis gehackt

und andere IT-Newsbeiträge aus aller Welt. Wie jede Woche per Videokonferenz auf https://meet.cloud-foo.de/Linux .

Hinweis: Die bisherigen Vorträge findet man unter https://linux-am-dienstag.de/archiv/ .