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 😉

Fedora schaltet patentierte Codecs in Mesa nicht wieder an

Wie aus erster Hand zu erfahren ist, hat das Fedoraprojekt aufgrund von juristischen Bedenken, patentierte, und damit bedenkliche, Codecs in Mesa abgeschaltet. Damit verliert Fedora über kurz oder lang in allen Produkten den Hardwarebeschleunigersupport für h264, h265 und vc1, die auf Mesa aufbauen.

Fedora schaltet patentierte Codecs in Mesa nicht wieder an

Zur Zeit ist eine Diskussion auf der Developer-Liste bei Fedora im Gange, weil in Fedora 37 in Mesa der VAAPI Support für das hardwarebeschleunigte Kodieren und Dekodieren von Videos für die Codecs: „h264,h265 und vc1 (nur Dekodieren) “ abgeschaltet wurde. Zu erklären, was Mesa genau macht, überlasse ich lieber dieser Webseite:GamingonLinux.com – What_is_Mesa?

Noch wurde dies nicht für Fedora 36 und 35 umgesetzt, laut David Airli, ist dies aber wohl nötig:

This was an oversight being enabled prior to this, and I think we have to remove it from older Fedora as well. Fedora cannot ship anything that causes the OS to provide an API which exposes patent algorithms. The patent licensing around H264/H265 is such that providing this could leave Red Hat and other Fedora distributors exposed to legal problems.“ David Airlie (27.9.2022).[1]

Hintergrund ist eine Änderung in der Mesa Kompilieroptionen, die es erlaubt, die jetzt defaultmäßig abgeschalteten Codecs ( h264,h265,vc1), für die Mesa keine Außnahmegenehmigung vom Patentinhaber hat, wieder einzuschalten [2]. Dies ist allerdings mit rechtlichen Problemen verbunden, falls die Patentinhaber auf die Idee kommen, das Fedoraprojekt wegen der Zurverfügungstellung des patentierten Algorithmus zu verklagen. Es ist nämlich nicht ganz klar, wer die Patentgebühren zu bezahlen hat: Der Grafikkartenhersteller, die Distribution oder der Endnutzer. Es wäre spannend zu wissen, wie die Situation in Deutschland ist.

Ich habe da mal bei WBS.law angefragt, ob uns Herr Solmecke bei YouTube nicht mal ein Aufklärungsvideo zur Verfügung stellen möchte. Bin mal gespannt!

Für Fedora Benutzer könnten harte Zeiten anbrechen, wenn Anwendungen den HW Support nicht mehr benutzen können. Wen das genau betreffen wird, ist noch nicht ganz klar. Leichter lässt sich beantworten, was Ihr dagegen tun könntet. Antwort: nicht viel, denn in der Mailinglistendiskussion wurde klar, daß RPMFusion, bei dem normalerweise bedenkliche Software zur Verfügung gestellt wird, kein Interesse hat, eine „free“-Version von Mesa zu warten.

Da bleibt Euch im Zweifel nur eins: MESA mit den nötigen Optionen selbst kompilieren!

Wie würde man da vorgehen?

Zunächst müßte man alle mesa Pakete entfernen. Alleine das könnte schon ein Akt werden, weil DNF dann den halben Softwarebestand lösen wollen wird. Kommt nur die chirugische Methode mit „rpm -e –nodeps mesa“ infrage. Danach müßte man GCC, CMake, Automake, alle Devel-Libs für Mesa und den Fedora Mesasourcecode runterladen und sich das Mesa direkt selbst kompilieren.

Falls es dazu kommen sollte, werde ich das definitiv ausprobieren und Euch berichten.

[1] https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

[2] https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/message/M4LTGLHY5JX42IHC45WNWB5FH2JIFMAS/

Linux am Dienstag: Programm für den 13.9.2022

Morgen ist der Tag nach Montag, wird Zeit sich wieder zu versammeln \o/

Linux am Dienstag: Programm für den 13.9.2022

u.a. im Programm am 13.9.2022 in Kurzform, ab 19 Uhr:

  • Soziologie – Wird es wärmer, steigt auch der Hass im Netz
  • Gesundheitswesen – CCC warnt vor E-Rezepten
  • Linux – vermehrt Angriffe auf Linuxserver
  • Blender – Kleinere Probleme mit Vulkantreiberumsetzung
  • Irland – Datenschützer verhängen 400M Euro Strafe gegen Instagram
  • Linux – Fedora 37 geht in die RC Phase

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/ .