Troubleshooting
Webcam Not Working in the Browser on Linux? Step-by-Step Fixes
Webcam not working in your browser on Linux? Find out where it stops: whether Linux sees the camera at all, whether your user can open it, and whether the browser, especially a Flatpak or Snap one, is allowed to reach it. Two terminal commands and a camera app answer the first two questions in a minute.
The steps below go from the system up to the browser, with commands for Ubuntu and Debian, Fedora and Arch. Other distributions are similar, and you can stop as soon as the camera works.
Four quick checks first
- Is the page HTTPS? Browsers only offer the camera to secure pages.
- Is another program using the camera? On Linux a webcam often works with one program at a time. Close OBS, video call apps and camera apps.
- Did you block the site? Look for a crossed-out camera icon in the address bar.
- Is it a USB webcam? Unplug it, wait a few seconds and plug it into a different port.
On a Chromebook running ChromeOS, these steps don't apply; follow the Chromebook camera fixes instead.
Step 1: Check that Linux sees the webcam
Open a terminal and run ls /dev/video*. Entries such as /dev/video0 mean the kernel has found a camera. One webcam often shows up twice (video0 and video1) because one node carries the picture and the other carries extra data. That's normal.
To see camera names, install v4l-utils and list the devices:
| Distribution | Install the tools | Then run |
|---|---|---|
| Ubuntu, Debian, Linux Mint | sudo apt install v4l-utils | v4l2-ctl --list-devices |
| Fedora | sudo dnf install v4l-utils | v4l2-ctl --list-devices |
| Arch, Manjaro | sudo pacman -S v4l-utils | v4l2-ctl --list-devices |
No video devices at all? For a USB webcam, run lsusb and look for the camera's brand. If it's listed but has no video device, run sudo dmesg | tail -n 30 right after plugging it in and look for errors. If it isn't listed, try another port and cable; webcam not detected has more USB fixes.
Some recent laptops use newer built-in cameras (often called MIPI cameras, for example on Intel IPU6 chips) that need extra drivers and may not appear as a normal video device on every distribution. If that's your laptop, check your distribution's documentation for your model.
Step 2: Test the camera outside the browser
Before touching browser settings, see whether any program can show a picture.
- GNOME: open the Camera app (Snapshot on newer versions, Cheese on older ones).
- KDE and other desktops: guvcview, available in most repositories, works well.
- Terminal: if ffmpeg is installed, ffplay /dev/video0 opens a preview window.
If the camera works there, Linux and the hardware are fine, so skip to step 4. If the app says the device is busy, another program has it open. Run lsof /dev/video0 to see which one, close it, and try again.
Step 3: Fix permissions with the video group
Run ls -l /dev/video0. The device usually belongs to the video group. Most desktop distributions give the logged-in user access automatically, but minimal installs, unusual login setups and remote sessions may need you to be in that group.
- Check your groups with groups.
- If video isn't listed, add yourself: sudo usermod -aG video $USER
- Log out and back in, or restart, so the change takes effect.
If a camera app already shows a picture for your user, permissions aren't the problem and you can skip this step.
Step 4: Flatpak browser camera permission (and Snap)
Browsers installed as Flatpaks or Snaps run in a sandbox and can only reach the camera if the sandbox allows it. A camera that works in a regular app but never shows up in the browser is the classic sign.
Flatpak
- Find the browser's app ID with flatpak list --app (for example org.mozilla.firefox or com.google.Chrome).
- Give it device access for your user: flatpak override --user --device=all org.mozilla.firefox, using your browser's ID.
- Quit the browser completely and open it again.
Prefer a graphical tool? Flatseal shows each Flatpak's permissions; turn on device access for your browser there.
Snap
Run snap connections firefox (or chromium) and look at the camera line. If it isn't connected, run sudo snap connect firefox:camera and restart the browser.
Step 5: Allow and choose the camera in Firefox or Chrome
- Firefox: click the camera or permissions icon in the address bar and remove any block, or open about:preferences#privacy → Permissions → Camera → Settings and remove the site. Firefox lets you pick a camera in its permission prompt. More in camera not working in Firefox.
- Chrome and Chromium: open chrome://settings/content/camera, remove the site from the blocked list, and choose the right camera in the dropdown at the top.
- Several cameras listed? OBS virtual cameras (v4l2loopback) and the infrared cameras on some laptops appear as extra devices. Pick your real webcam.
Newer desktops can route cameras through PipeWire and a camera portal that asks permission per app. Some browsers offer this as an option: an experimental flag in Chrome-based browsers, an about:config setting in Firefox. If you turned it on and the camera vanished, turn it off to test, since support still varies between versions.
If one site still misbehaves, reset that site's permissions or data. On Omlet, reset permissions only, so a purchased country filter isn't lost.
Linux webcam symptoms and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| No /dev/video devices | Not detected, or a camera that needs extra drivers | Check lsusb and dmesg, try another port (step 1) |
| Camera app says the device is busy | Another program has it open | Find it with lsof and close it (step 2) |
| Permission denied opening the device | Your user can't access it | Join the video group (step 3) |
| Works in a camera app, not in the browser | Flatpak or Snap sandbox, or site blocked | Steps 4 and 5 |
| Black or grainy gray picture | Browser picked a virtual or infrared camera | Choose the real camera in browser settings |
| Camera vanished after an update | PipeWire option or driver change | Toggle the PipeWire option and check your distribution's forums |
Once the browser shows your picture, our guide to random video chat on Linux covers the rest of the setup. If the camera stays stubborn, you can still talk on Omlet by text with the camera off while you sort it out.