Skip to content

About

surface-kamera treiber

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Surface Pro 5 Kamera - Treiberfix

Stand: Die Treiberfixe sind gemessen und laufen auf Fedora 44 und auf Linux Mint, jeweils mit Kernel 6.19. Beide Kameras arbeiten danach in Firefox. Der Installer legt Reste aelterer Loesungen beiseite statt sie zu loeschen; --rueckgaengig stellt den Ausgangszustand wieder her, und fix4-aufraeumen.sh --zurueck holt einen alten Daemon zurueck.

Bekannt offen: Die Frontkamera liefert sehr dunkle Bilder, und in OBS sind die Farben verschoben. Beides liegt nicht am Installer.

Nicht angekuendigt, nicht fertig. Wer es ausprobiert, sollte den Rueckweg kennen, bevor er anfaengt.

Der Fehler

Der ov8865-Treiber schreibt die Modusregister ausschliesslich beim Aufwachen des Sensors - in ov8865_sensor_init(), aufgerufen aus dem Runtime-PM-Resume. Wird das Format an einem bereits wachen Sensor gewechselt, erreicht der Moduswechsel den Chip nie. Er bleibt in der Einstellung vom ersten Hochfahren.

Auf dem Surface Pro 5 wird der Sensor nicht schlafen gelegt. Folge: Nur die volle Aufloesung 3264x2448 funktioniert. Jede andere Anforderung liefert genau ein Bild, danach steht die Pipeline.

Nachgemessen ueber I2C: 0x3808/0x3809 bleibt auf 3264, obwohl Subdev und Videoknoten die kleinere Groesse melden. Der Empfaenger stellt einen zu kleinen Puffer bereit, der Sensor schickt ein Vollbild, die DMA kommt aus dem Tritt. Sichtbar als:

ipu3-cio2: payload length is 2585088, received 2588672

Die Behebung

Aufruf von ov8865_mode_configure() in ov8865_s_stream(), direkt nach pm_runtime_resume_and_get(). Siehe ov8865-modusfix.patch.

Ergebnis auf Fedora 44, Kernel 6.19.8-surface:

Modus vorher nachher
3264x2448 15 fps 15 fps
3264x1836 1 Bild 15 fps
1632x1224 1 Bild 30 fps
800x600 1 Bild 90 fps

Der Fehler ist im aktuellen Mainline-Stand weiterhin vorhanden.

Dateien

  • ov8865-modusfix.sh - baut und installiert das gepatchte Modul, rueckgaengig mit --rueckgaengig
  • fix4-aufraeumen.sh - sucht Reste aelterer Fixe, meldet Unbekanntes, legt nach Rueckfrage beiseite, loescht nichts; nur schauen mit --nur-pruefen
  • test.sh - stellt den gebinnten Modus ein, streamt und liest dabei die Sensorregister mit
  • ov8865-modusfix.patch - der Patch allein

Offen

  • dw9719 fehlt die i2c_device_id-Tabelle (eigener Patch, ab Kernel 6.19 noetig)
  • PipeWire liefert nur bei 1280x720 Bilder, kleinere Groessen bleiben schwarz
  • Fuer eine spaetere Veroeffentlichung: die Privacy-LED bedeutet seit dem int3472-Quirk "Sensor unter Spannung", nicht "Kamera nimmt auf"

About

surface-kamera treiber

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages