Camera not found

Fedora 42/GNOME.
After booting the PC, the Camera application does not work. Error: “Camera not found. Connect the camera device.”
After physically reconnecting to the USB, the camera works. This problem only applies to the camera. The mouse and keyboard work fine.
What could be the problem? Why does the camera not have time to load?

Can you see if cameras are detected by using the following command?

wpctl status

The output should show video-devices.

If you physically reconnect the camera on a switched-on PC, then yes, it is detected. I tried the recommendation: sudo dnf install v4l-utils

Reddit - The heart of the internet.
But in my case I don’t have a virtual machine.
Now the camera seems to work after rebooting, but I need to test it more.

1 Like

I’m not sure source package v4l-utils would fix camera detection. v4l-utils is an additional package that is not mandatory for a normal operation of camera detection.

Yes, you could try a recommended action from other forums. Without a VM, I would back up systems settings and have a go. If it doesn’t work, I can revert to the previous state.

The next course of action would be to run;
systemctl --user restart pipewire pipewire-pulse wireplumber

That should do the trick in most cases. PipeWire is multimedia server and often it can help identifying problems with the camera or microphone.

1 Like

Yes, indeed, v4l-utils - it did not solve the problem. But after launching: systemctl --user restart pipewire pipewire-pulse wireplumber - the camera worked

1 Like

If the fix holds after reboot, feel free to mark it as solved. If not, we can troubleshoot further!
Ah, could you also tag your post (webcam and config) at the top of your post, so other users with similar issues can find related posts?

Unfortunately, after turning off and on the PC, the camera is not detected again. The command: systemctl --user restart pipewire pipewire-pulse wireplumber - helps to start the camera’s functionality, but only for the current session.

zzzzz@fedora:~$ systemctl --user status pipewire wireplumber
● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/user/pipewire.service.d
└─00-uresourced.conf
/usr/lib/systemd/user/service.d
└─10-timeout-abort.conf
Active: active (running) since Tue 2025-06-24 20:37:36 +05; 8min ago
Invocation: 97cad1f019774c429c261e3d10c88bef
TriggeredBy: ● pipewire.socket
Main PID: 4564 (pipewire)
Tasks: 3 (limit: 18688)
Memory: 5.7M (peak: 6.6M)
CPU: 81ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─4564 /usr/bin/pipewire

июн 24 20:37:36 fedora systemd[2072]: Started pipewire.service - PipeWire Multimedia Service.
июн 24 20:37:38 fedora pipewire[4564]: spa.v4l2: ‘/dev/video0’ VIDIOC_QUERYCTRL: Input/output error
июн 24 20:37:38 fedora pipewire[4564]: spa.v4l2: ‘/dev/video0’ VIDIOC_QUERYCTRL: Input/output error

● wireplumber.service - Multimedia Service Session Manager
Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
Drop-In: /usr/lib/systemd/user/service.d

Could you reinstall the PipeWire components? and reboot?
sudo dnf reinstall pipewire pipewire-pulseaudio pipewire-alsa wireplumber

Thanks, but that didn’t solve the problem…

Tried to create a rule:
sudo nano /etc/udev/rules.d/99-webcam-fix.rules

ACTION==“add”, SUBSYSTEM==“usb”, ATTR{idVendor}==“2bdf”, ATTR{idProduct}==“0284”, RUN+=“/bin/sh -c ‘sleep 10 && /usr/bin/systemctl --user restart pipewire pipewire-pulse wireplumber’”

sudo udevadm control --reload-rules sudo udevadm trigger

The rule did not help, the problem remained.

Disabling fast boot didn’t help either.

1 Like

Hardware information could help more knowledgeable folks here chime in and identify issues in the right direction. Some CPUs may have problems with the built-in camera.

PC:
Fedora Linux 42 (Workstation Edition)
12th Gen Intel® Core™ i5-12400F × 12
Gnom 48
NVIDIA GeForce GTX 1650

Library Details:

Aperture 0.9.2
GStreamer 1.26.2
Pipewire 1.4.5
Gtk 4.18.5

Cameras:

1080P Web Camera (V4L2) Video/Source: {
“device.vendor.id”: (gchararray) “0x2bdf”,
“api.v4l2.cap.card”: (gchararray) “1080P Web Camera: 1080P Web Cam”,
“node.pause-on-idle”: (gchararray) “false”,
“priority.session”: (gchararray) “1000”,
“clock.quantum-limit”: (gchararray) “8192”,
“device.product.id”: (gchararray) “0x0284”,
“node.loop.name”: (gchararray) “data-loop.0”,
“device.id”: (gchararray) “35”,
“api.v4l2.cap.capabilities”: (gchararray) “84a00001”,
“factory.name”: (gchararray) “api.v4l2.source”,
“device.devids”: (gchararray) “[ 20736 ]”,
“media.class”: (gchararray) “Video/Source”,
“node.name”: (gchararray) “v4l2_input.pci-0000_00_14.0-usb-0_7_1.0”,
“api.v4l2.cap.bus_info”: (gchararray) “usb-0000:00:14.0-7”,
“node.description”: (gchararray) “1080P Web Camera (V4L2)”,
“api.v4l2.cap.driver”: (gchararray) “uvcvideo”,
“api.v4l2.cap.version”: (gchararray) “6.15.3”,
“node.nick”: (gchararray) “1080P Web Camera”,
“api.v4l2.cap.device-caps”: (gchararray) “04200001”,
“device.api”: (gchararray) “v4l2”,
“factory.id”: (gchararray) “11”,
“is-default”: (gboolean) FALSE,
“object.id”: (gchararray) “71”,
“api.v4l2.path”: (gchararray) “/dev/video0”,
“media.role”: (gchararray) “Camera”,
“node.driver”: (gchararray) “true”,
“object.serial”: (gchararray) “76”,
“object.path”: (gchararray) “v4l2:/dev/video0”,
“client.id”: (gchararray) “48”,
}

Please provide a more detailed description, including the exact hardware information from lsusb -v and the detailed system logs since boot (using journalctl --boot --lines=all).

journalctl --boot --lines=all - the command gives a lot of data, I can’t send it here. Or I don’t know how to do it…

systemctl --user restart pipewire pipewire-pulse wireplumber
After the recent update to 6.15.4-200 this command no longer helps to launch the camera.