Einführung eines vollständig offenen Stacks für MIPI-Kameras

Hans de Goede, ein bei Red Hat arbeitender Fedora-Linux-Entwickler, präsentierte auf der FOSDEM 2024-Konferenz einen Open Stack für MIPI-Kameras (Mobile Industry Processor Interface). Der vorbereitete Open Stack wurde noch nicht in den Linux-Kernel und das libcamera-Projekt aufgenommen, wird jedoch als für eine breite Palette von Enthusiasten zum Testen geeignet markiert. Der Betrieb des Stacks wurde mit MIPI-Kameras getestet, die auf ov2740-, ov01a1s- und hi556-Sensoren basieren und in Laptops wie Lenovo ThinkPad X1 yoga gen 8, Dell Latitude 9420 und HP Spectre x360 13.5 2023 verwendet werden.

Die MIPI-Schnittstelle wird in vielen neuen Laptop-Modellen anstelle des bisher verwendeten Videostreamings über den USB-Bus von Geräten verwendet, die den UVC-Standard (USB Video Class) unterstützen. MIPI ermöglicht den Zugriff auf den Kamerasensor über einen CSI-Empfänger (Camera Serial Interface) und einen in die CPU integrierten Bildprozessor (ISP, Image Signal Processor), der die Bilderzeugung auf Basis der vom Sensor kommenden Rohdaten ermöglicht. Intel stellt eine Reihe proprietärer Treiber für die Arbeit mit MIPI-Kameras unter Linux über IPU6 (Imaging Processing Unit) in Intel Tiger Lake-, Alder Lake-, Raptor Lake- und Meteor Lake-Prozessoren bereit.

Die Hauptschwierigkeit bei der Entwicklung offener Treiber für MIPI-Kameras liegt darin begründet, dass die Hardwareschnittstelle des ISP-Prozessors und die darin implementierten Bildverarbeitungsalgorithmen von CPU-Herstellern in der Regel nicht offengelegt werden und ein Geschäftsgeheimnis sind. Um dieses Problem zu lösen, haben Linaro und Red Hat eine Softwareimplementierung des Bildprozessors entwickelt – SoftISP, die es Ihnen ermöglicht, mit MIPI-Kameras zu arbeiten, ohne proprietäre Komponenten zu verwenden (SoftISP kann als Ersatz für IPU6 ISP verwendet werden).

Die SoftISP-Implementierung wurde zur Aufnahme in das libcamera-Projekt eingereicht, das einen Software-Stack für die Arbeit mit Videokameras, Kameras und TV-Tunern unter Linux, Android und ChromeOS bietet. Der Stack für die Arbeit mit MIPI-Kameras umfasst neben SoftISP einen Treiber für ov2740-Sensoren, der auf Kernel-Ebene läuft, und Code zur Unterstützung des CSI-Empfängers im Linux-Kernel, der Teil der IPU6 von Intel-Prozessoren ist.

Der Linux-Kernel und die libcamera-Pakete, einschließlich der Änderungen des Projekts, stehen im COPR-Repository zur Installation auf Fedora Linux 39 zur Verfügung. Der Pipewire-Medienserver kann zum Aufnehmen von Videos von MIPI-Kameras verwendet werden. Die Unterstützung für die Arbeit mit Kameras über Pipewire wurde bereits in die libwebrtc-Bibliothek übernommen. In Firefox wurde die Möglichkeit, mit Kameras über Pipewire zu arbeiten, ab Version 122 auf einen Zustand gebracht, der für die Verwendung mit WebRTC geeignet ist. Standardmäßig ist das Arbeiten mit Kameras über Pipewire in Firefox deaktiviert und erfordert die Datei „media.webrtc.camera. „allow-“-Parameter zur Aktivierung in about:config pipewire.“

Source: opennet.ru

Kommentar hinzufügen