New Post: Cameras: It's Complicated


From the article it is not clear to me why the Librem 5 does not have usb/uvc cameras.

In hindsight, would you have chosen to use usb/uvc cameras with the experience you have now?


I am curious on high level - how is this problem solved on Android phones? Do they use the UVC or how do they solve the challenge?

Some could have an image signal processor (ISP) that does some of that missing work between sensor and kernel. Just guessing though.

1 Like

You mean why specifally not UVC, as phone camera modules offer RAW (or something else)? Or, is the reason no UVC compatible cameras available or does UVC not offer the functionality that a camera/video camera module needs?

They have custom drivers, which allows efficient interfacing with the media/gfx stack (eg. uploading preview frames to the gpu).

USB is usually used for low-resolution image sensors, but most high-resolution image sensors use MIPI CSI-2, because they need faster output and more direct control than UVC provides. For the i.MX 8M Quad, its MIPI CSI-2 interface provides 4x 1.5 = 6.0 Gbits/s vs 5.0 Gbits/s with USB 3.0, so the speed of the two interfaces isn’t that different, but there is a big speed difference with better SoCs. (I suspect that MIPI CSI-2 also has a lower latency since it is more direct control, but I can’t find any info on that.)

Another factor is that the i.MX 8M Quad only has 2 USB interfaces (one for the USB-C port at USB 3.0 and another for the microSD and cellular modem at USB 2.0). The cameras would need to use USB 3.0, and there might be too much traffic if trying to use the USB-C port at the same time as the cameras.

The SK hynix YACG4D0C9SHC image sensor for the front camera doesn’t support USB. I can’t find any info on the Samsung S5K3L6XX for the back camera but I suspect that it also doesn’t support USB.


Looking at this from the long-term perspective, we need Linux to properly support MIPI cameras, so I’m glad that Purism is doing dev work on libcamera, because that will make it easier for the next company to launch mobile Linux devices with good cameras. Building the platform is more important than getting the product out the door as fast as possible in my opinion, although the delays are frustrating for us early adopters.

In many of Purism’s decisions for the L5 (i.MX 6 Quad vs i.MX 8M Quad, ModemManager vs oFono, Phoc+Phosh vs KDE Plasma Mobile, Nautilus vs Nemo, GNOME Web vs Firefox, collaboration with projects like, wlroots, GTK, GNOME, ModemManager, geoclue, libcamera, etc. vs forking), the company decided to take the longer path that required more dev work, but I can see the long-term benefits of these decisions (although I wonder about GNOME Web).


Maybe a part of their collaboration handshake?

Hi Hristo,

my view is not really true but might be…

here we go. Big Tech Use Neuronal Networks to optimize Pictures. And will collect Data about what is in these Pictures as Meta-Data. So they have Chips optimized for learning and optimizing neuronal Networks and do every month an update to upload and recalibrate/personalize the Neural Network for picture Capture on the Devices. Its for energy saving and to collect more valuable data. Snitching with your Camera while your flashlight is on - and your phone transmit every here and now Data about your location too. :wink:

Compare reality with Snapchat or Tiktok and you will be astonished what kind of huge different will be there. But humans love to be lied to and our senses and own eyes are lying too, because its worthy to drop unimportant data. But like Bees, colors and blossoms its just a sense to reach out for action, like an API so neuronal Networked Pictures or endless Scrolling personalized non reality is just like that.

Its likely that i will have another old Phone for Pictures or different Devices to capture one like a Drone with a good Camera. So my Librem5 Camera might be mostly offline and just use in case for Barcodes and no more.

I rarely take photos, but one needs the camera for at least 2 very important use cases:

  1. Video calls via Conference tools like Teams/Zoom/Google Meet/BBB/Telegram ect.
    You might not like the tools, but sometimes one is forced to use them for work or for attending lectures and one gets invitations from companies that use these tools.
  2. Scanning barcodes for example for TOTP or similar applications.

Regarding photos from the holiday - a separate device is a viable option.


This is correct. UVC is not flexible enough. You can’t leverage extra functionality of the cameras you have, and you want to put as much functionality as feasible into dedicated hardware. Or prevent the hardware from messing up the data and handle the raw stuff yourself. UVC helps with neither.

Both cameras on the L5 use mipi-csi2.


For Conferences i use a Linux Notebook… :wink:

Yes i think the camera is very important especially for young folks so we have to get that sexy, up to date and data secure.

However - and this is no accusal - we have not enough power, money or techs working on this.

Sometimes i think we never can have this step its just we need to have enough IQ or thought our children why this is important and they will cover that up with less data or parts on Pictures (no Face cause of Biometric, an Avatar and so on) to be safe.

If the future is a pixeled Picture with an L5 or no picture at all. Then that’s it.

But yes i know some one use all that shit out there and have to work with. But i am not. But yes young folks might have to do this because they have a lag of experience and no energy or money support at beginnings.

However, i hope we and all who need this. Will lift that Code with spending time, code, knowledge or money.

This is not users want or expect anymore.
It is no wonder that all conference tools have Android/iOS versions. One needs to have the possibility to participate from the cell phone on the go without carrying a full notebook.

A cell phone is a communications device. And communication is not voice or text anymore. It includes video. I don’t want to voice call using Signal. I want to video call.
I could sacrifice other features for getting these. As I once said, I have never used MMS (at least not knowingly) in my whole life. And regular phone calls are not as important as calls in messengers like Signal. SMS are a forced must have as some services send SMS (like week 2FA).

Yes, i understand. If you want it, that’s why we and others have to find a better Solution for daily needs.

Because we and all use it daily. It must be perfect.

And i hope it will because the community will act and work together on this.

1 Like

It is worth to try as a work around an external webcam via usb/bluetooth. I don’t have one at hand but will try if I have an opportunity. It will still be more compact than carrying a notebook.

… and just to make that slightly more accurate …

  1. Scanning QR codes for example for TOTP or similar applications (and many many other use cases, which during the pandemic included check-in).
1 Like

I mean, why not use what is already proven to work. Honest question, not trying to be smart :slight_smile:

dcz answered that question:

The post mentions that Purism has merged the patches for L5 camera support. I’ve built cam from git and cam -l does not recognize any cameras when ran on the L5. I’ve also built it from with the same result.

purism@pureos:~/libcamera$ ./build/src/apps/cam/cam -l
[29:53:35.923660365] [25422]  INFO IPAManager ipa_manager.cpp:143 libcamera is not installed.Adding '/home/purism/libcamera/build/src/ipa' to the IPA search path
[29:53:36.020892189] [25422]  INFO Camera camera_manager.cpp:293 libcamera v0.0.1+363-1bb43dd5
Available cameras:
1 Like

Hardware Kill Switch? (just covering a base)