Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

desktops: install libcamera/v4l userspace at minimal tier - #924

#924
Merged
igorpecovnik merged 2 commits into
mainarmbian/configng:mainfrom
desktops-add-camera-userspacearmbian/configng:desktops-add-camera-userspaceCopy head branch name to clipboard
May 19, 2026
Merged

desktops: install libcamera/v4l userspace at minimal tier#924
igorpecovnik merged 2 commits into
mainarmbian/configng:mainfrom
desktops-add-camera-userspacearmbian/configng:desktops-add-camera-userspaceCopy head branch name to clipboard

Conversation

@igorpecovnik

Copy link
Copy Markdown
Member

Companion to the alsa-ucm-conf PR (#923) — same shape, different stack.

Summary

Modern laptops enumerate `/dev/video*` at the kernel level but apps need a userspace pipeline (`libcamera` + the PipeWire camera shim + GStreamer libcamera plugin) to actually show a live image. Without these, GNOME Snapshot / Cheese / Firefox / Chrome can't find a camera even when one is physically present and the kernel module is bound.

Adds at minimal tier:

Package Role
`pipewire-libcamera` PipeWire camera node integration
`gstreamer1.0-libcamera` GStreamer plugin used by GNOME Snapshot et al.
`v4l-utils` `v4l2-ctl` for troubleshooting

Verified across releases

```
noble: gstreamer1.0-libcamera pipewire-libcamera v4l-utils
resolute: gstreamer1.0-libcamera pipewire-libcamera v4l-utils
trixie: gstreamer1.0-libcamera pipewire-libcamera v4l-utils
bookworm: gstreamer1.0-libcamera pipewire-libcamera v4l-utils
```

Honest caveat

On bleeding-edge SKUs (ThinkPad X9-15 Gen 1, Lunar Lake IPU7), this PR alone won't make the camera work — upstream libcamera 0.7 doesn't have an IPU7 pipeline handler yet. Intel/Canonical ship those out of tree (libcamera 0.2-fakesync on noble). When IPU7 support lands in mainline libcamera and propagates to Debian/Ubuntu, every Armbian desktop install on these laptops will work on the next apt upgrade. This PR is the cheap pre-stage so the userspace is already in place.

Test plan

  • Install GNOME minimal on noble — `dpkg -l` shows the three packages
  • On a host with a USB UVC camera (IPU3 / supported chain) — GNOME Snapshot shows live preview
  • On a host without a camera — no regression, daemons stay idle

Modern laptops with complex ISPs (Intel IPU3/6/7, Qualcomm Snapdragon
X) enumerate /dev/video* at the kernel level but require userspace
pipeline plumbing (libcamera + PipeWire camera shim + GStreamer
libcamera plugin) before any app can show a live image. Without
these packages, GNOME Snapshot / Cheese / Firefox / Chrome see no
camera even when one is physically present and the kernel module is
bound.

Add at minimal tier so the userspace stack is ready as soon as
upstream libcamera lands the right pipeline handler for a given
machine. Inert on machines without a camera - the daemons stay idle.

Verified across noble / resolute / trixie / bookworm at amd64
minimal - all three packages resolve cleanly.

Note: on bleeding-edge SKUs (e.g. ThinkPad X9-15 Gen 1, Lunar Lake
IPU7), the camera still won't work because upstream libcamera 0.7
lacks an IPU7 pipeline handler - Intel/Canonical ship those out of
tree. When that lands in mainline libcamera and propagates to
Debian/Ubuntu, every Armbian desktop install on these laptops will
just work on the next apt upgrade. This is the cheap pre-stage.
@coderabbitai

coderabbitai Bot commented May 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@igorpecovnik has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 58 minutes and 44 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fdb19631-a844-442f-ac18-25600abf5ede

📥 Commits

Reviewing files that changed from the base of the PR and between 0f9363a and 7bc10a4.

📒 Files selected for processing (1)
  • tools/modules/desktops/yaml/common.yaml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch desktops-add-camera-userspace

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added size/small PR with less then 50 lines 05 Milestone: Second quarter release labels May 18, 2026
@igorpecovnik
igorpecovnik merged commit cb2d5af into main May 19, 2026
1 check passed
@igorpecovnik
igorpecovnik deleted the desktops-add-camera-userspace branch May 19, 2026 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

05 Milestone: Second quarter release size/small PR with less then 50 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.