Raspberry Pi Kamera Probleme mit Raspberry OS Bullseye

  Norbert Rüthers   Lesezeit: 3 Minuten  🗪 5 Kommentare

Aktuell bereitet Bullseye Probleme den Raspberry mit einer Kamera zu betreiben

raspberry pi kamera probleme mit raspberry os bullseye

Vielleicht ist es dem einen oder anderen schon aufgefallen, das neue Raspberry Pi OS (Bullseye) unterstützt keine angeschlossene Kamera mehr. Kann das sein?  Nein es werden auch weiterhin Kameras unterstützt, nur auf eine andere Weise, was viele Probleme aufwirft.

Aufgefallen ist mir das ganze als ich am neuen Raspberry PI 2 W eine Kamera angeschlossen habe, die einfach nicht funktionierten wollte.

Als ich dann dasselbe Problem an einem Raspberry Pi 3 hatte, der ebenfalls mit Raspberry OS Bullseye lief, wurde ich nachdenklich und begann eine Recherche. Der Grund ist, dass mit Bullseye andere Kommandos verwendet werden müssen. Aus Raspistill und Raspivid wurde nun libcamera.

Im Vergleich:

Aus dem Kommando raspistill -o pic.jpg wird libcamera-jpg -o pic.jpg

Warum die Raspberry Foundation, die sonst so viel Wert auf Abwärtskompatibilität legt, das in diesem Fall nicht tut, bleibt mir verschlossen. Angeblich will man kompatibler zu Industriestandards werden. Dahinter steht Libcamera

Beschreibung auf der Webseite von Libcamera:

Eine komplexe Kamera-Unterstützungsbibliothek für Linux, Android und ChromeOS

Kameras sind komplexe Geräte, die umfangreiche Hardware-Bildverarbeitungsoperationen benötigen. Die Steuerung der Verarbeitung basiert auf fortschrittlichen Algorithmen, die auf einem programmierbaren Prozessor laufen müssen. Dies wurde traditionell in einer dedizierten MCU in der Kamera implementiert, aber in eingebetteten Geräten wurden die Algorithmen auf die Haupt-CPU verlagert, um Kosten zu sparen. Durch die Verwischung der Grenze zwischen Kamerageräten und Linux blieb dem Benutzer oft keine andere Wahl als eine herstellerspezifische Closed-Source-Lösung.
Um dieses Problem zu lösen, arbeitet die Linux-Medien-Community mit der Industrie zusammen, um einen Kamera-Stack zu entwickeln, der Open-Source-freundlich ist und gleichzeitig die Kern-IP des Anbieters schützt. libcamera wurde aus dieser Zusammenarbeit geboren und bietet moderne Kamera-Unterstützung für Linux-basierte Systeme, einschließlich traditioneller Linux-Distributionen, ChromeOS und Android.

Die offizielle Erklärung und Beschreibung zur Verwendung mit dem Raspberry findet sich auf der Raspberry Pi Homepage  Aus diesem Grund sind Millionen Tutorials, die seit dem Erscheinen des Raspberry Pi im Jahr 2012 erstellt wurden, mit dem neuen OS nicht mehr verwendbar. Ebenso sind Python Programme nicht mehr verwendbar, da die picamera Bibliothek nicht mehr verwendbar ist. Ob und wie die Raspberry Foundation in Zukunft doch noch eine Abwärtskompatibilität herstellen will, bleibt abzuwarten Die zurzeit einzige Lösung, ist das vorige Raspberry OS Buster weiterzuverwenden.

Quelle: https://libcamera.org/

Quelle: https://www.raspberrypi.com/

Tags

Raspberry, OS, Bullseye, Libcamera, Pi, Linux, Android, Kamera

Tobias
Geschrieben von Tobias am 23. November 2021 um 12:02

Ganz so überraschen war das ja nicht, es stand ja immerhin in der Releasenote:

https://www.raspberrypi.com/news/raspberry-pi-os-debian-bullseye/


New camera driver

The driver used by Raspberry Pi to access camera modules has now been replaced with libcamera, a standard Linux API. As with the video driver change, this means less closed-source proprietary code, and makes it easier for third parties to develop new camera hardware and software.

For anyone who has written camera-based applications in the past, this is a very significant change, and is too large to be covered here. There will be a blog post dedicated to the new camera driver published

soon, so watch this space!--------------------

Im Wiki wurde es auch angekündigt:

https://www.raspberrypi.com/documentation/accessories/camera.html

Und hier gibt es einen ausführlichen Blog Post:

https://www.raspberrypi.com/news/bullseye-camera-system/

Tobias
Geschrieben von Tobias am 23. November 2021 um 12:09

Ach ja, das schöne ist, das Purism gerade auch an der Unterstützung für libcamera arbeitet und die Kamera App "Megapixels" darauf anpassen will:

https://source.puri.sm/Librem5/megapixels/-/merge_requests/53#note_178094

Goetz
Geschrieben von Goetz am 25. November 2021 um 00:10

Ich arbeite gerade für mein Forschungsprojekt mit der neuen libcamera (der Library, nicht dem Client) und habe davor mit v4l2, und anderen HW Schnittstellen (außer USB-Camera) gearbeitet. Was ist das neue an Libcamera?

  • Es gibt keine brauchbare Dokumentation außer einer autom. generierten Klassenbschreibung.

  • Die ganzen Merkwürdigkeiten von v4l2 auf die es aufsetzt werden größtenteils "mitgenommen".

  • Auch libcamera fängt mit der Unsitte zu erwarten, dass man cmake als Buildwerkzeug verwendet.

  • Es gibt keine "Versionen", das führt dazu das der Linux Kernel von Raspberrypi (aktuell verwende ich .78) nur mit bestimmten commits des github repos geht.

  • Die Architektur ist einfach nur schlecht. Mal gibt es intelligente Pointer zurück, mal "Rohe", da es keine Doku gibt weiß man nicht was das soll.

→ Es ist geringfügig weniger schlecht als bestehende Lösungen. Es ist eher ein v4l2 in C++. Die Python Version kenne ich nicht und hab sie mir nicht angetan. Ja man kann es verwenden, muss aber dazu den "Beispielcode" von libcamera-apps studieren, sonst ist man verloren.

Aber auch hier gilt: Wenn man ein kaputtes Konzept (Camera, DSP unter Verwendung properitäre GPUs) noch 2021 als "den großen freien Wurf bezeichnet" ... man kann es auch lassen.

ffadfas
Geschrieben von ffadfas am 15. April 2022 um 11:24

Aus dem Kommando raspistill -o pic.jpg wird libcamera-jpg -o pic.jpg

Das ist der Trivialfall. Nächste Frage: Ich habe die Infrarot-Cam. Wie macht man mit der jetzt Bilder (insbesondere bei Nacht raspistill -ex night)?

Karsten
Geschrieben von Karsten am 14. März 2024 um 12:31

Es war eine Katastrophe, nachdem rpi5 nun mit dem System BullEye einherkommt, wurden sämtliche Brodcom interfaces zur Ansprechung der Kamera entfernt, statt dessen wurde eine library von einem jugendlichen Bastler aus England als libcamera integriert, das ganze Projekt ist eine Katastrophe und zeigt auf das mit reiner Integrationsprogrammierung ohne Fachkunde, und jahrzehntelenger Erfahrung keine Professionelle Schnittstelle ersetzt werden kann, ja sie haben sogar die Hardwaredekodierung von Brodcom (chip auf dem Board) entfernt. Folge Jlib lib auch noch integrieren und mit der CPU packen. Nun kam kürzlich ein weiteres update und sämtliche Zugriffe auf libcamera endeten via create in einer exception . Man muss ein großer experte sein um den Dreck noch zum laufen zu bringen, zig Projekte sind deswegen kaputt gegangen , mit großer mühe konnte ich den Dreck nun doch noch erneut zum laufen bringen : https://youtu.be/FxZBHJ5FWDg

Ich empfehle dringend USB Kameras am PI zu verwenden, und auf die SCI Schnittstelle gänzlich zu verzichten wenn es um Kameras geht, um nie wieder in die Abhängigkeit von Dilettanten zu gelangen. Bei Fragen gern melden .