Built-in webcam detected but not working

New Thinkpad X1 2i1 w/Lunar Lake.

Output of $ wpctl status:

Summary

PipeWire ‘pipewire-0’ [1.4.9, rhodey@Dawnpoint-II, cookie:2144833333]
└─ Clients:
32. uresourced [1.4.9, rhodey@Dawnpoint-II, pid:1909]
33. pipewire [1.4.9, rhodey@Dawnpoint-II, pid:1921]
34. QtPulseAudio:2032 [1.4.9, rhodey@Dawnpoint-II, pid:2032]
36. WirePlumber [1.4.9, rhodey@Dawnpoint-II, pid:1919]
37. libcanberra [1.4.9, rhodey@Dawnpoint-II, pid:2122]
49. WirePlumber [export] [1.4.9, rhodey@Dawnpoint-II, pid:1919]
54. libcanberra [1.4.9, rhodey@Dawnpoint-II, pid:2188]
55. [1.4.9, rhodey@Dawnpoint-II, pid:2122]
118. xdg-desktop-portal [1.4.9, rhodey@Dawnpoint-II, pid:1951]
119. plasmashell [1.4.9, rhodey@Dawnpoint-II, pid:2188]
122. kwin_wayland [1.4.9, rhodey@Dawnpoint-II, pid:1925]
123. Brave input [1.4.9, rhodey@Dawnpoint-II, pid:284]
124. [1.4.9, rhodey@Dawnpoint-II, pid:2188]
130. [1.4.9, rhodey@Dawnpoint-II, pid:2122]
131. wpctl [1.4.9, rhodey@Dawnpoint-II, pid:8471]

Audio
├─ Devices:
│ 50. Lunar Lake-M HD Audio Controller [alsa]

├─ Sinks:
│ 61. Lunar Lake-M HD Audio Controller HDMI / DisplayPort 3 Output [vol: 1.00]
│ 62. Lunar Lake-M HD Audio Controller HDMI / DisplayPort 2 Output [vol: 1.00]
│ 63. Lunar Lake-M HD Audio Controller HDMI / DisplayPort 1 Output [vol: 1.00]
│ * 64. Lunar Lake-M HD Audio Controller Speaker [vol: 0.43]
│ 65. Lunar Lake-M HD Audio Controller Headphones [vol: 1.00]

├─ Sources:
│ * 66. Lunar Lake-M HD Audio Controller Digital Microphone [vol: 1.00 MUTED]
│ 67. Lunar Lake-M HD Audio Controller Headset Microphone [vol: 1.00]

├─ Filters:

└─ Streams:

Video
├─ Devices:
│ 35. ov08x40 [libcamera]
│ 68. ipu7 [v4l2]
│ 69. ipu7 [v4l2]
│ 70. ipu7 [v4l2]
│ 71. ipu7 [v4l2]
│ 72. ipu7 [v4l2]
│ 73. ipu7 [v4l2]
│ 74. ipu7 [v4l2]
│ 75. ipu7 [v4l2]
│ 76. ipu7 [v4l2]
│ 77. ipu7 [v4l2]
│ 78. ipu7 [v4l2]
│ 79. ipu7 [v4l2]
│ 80. ipu7 [v4l2]
│ 81. ipu7 [v4l2]
│ 82. ipu7 [v4l2]
│ 83. ipu7 [v4l2]
│ 84. ipu7 [v4l2]
│ 85. ipu7 [v4l2]
│ 86. ipu7 [v4l2]
│ 87. ipu7 [v4l2]
│ 88. ipu7 [v4l2]
│ 89. ipu7 [v4l2]
│ 90. ipu7 [v4l2]
│ 91. ipu7 [v4l2]
│ 92. ipu7 [v4l2]
│ 93. ipu7 [v4l2]
│ 94. ipu7 [v4l2]
│ 95. ipu7 [v4l2]
│ 96. ipu7 [v4l2]
│ 97. ipu7 [v4l2]
│ 98. ipu7 [v4l2]
│ 99. ipu7 [v4l2]

├─ Sinks:

├─ Sources:
│ * 120. Built-in Front Camera

├─ Filters:

└─ Streams:
125. kwin_wayland
126. output_1 > plasmashell:input_1 [init]
127. plasmashell
128. input_1 < kwin_wayland:output_1 [init]

Settings
└─ Default Configured Devices:
0. Audio/Sink bluez_output.0C_A6_94_8E_BC_A3.1
1. Audio/Source alsa_input.usb-Apple_Inc._Display_Audio_2DD62E02-00.mono-fallback

However no apps can see it, browsers say “no camera detected.”

Need help, my work involved Google Meet and I need this to work! Other users with this exact computer say theirs is working.

Are there any related errors in the system logs?

The documentation for libcamera notes that you might need to add a udev rule if you are seeing a “permission denied” error in the logs.[1]


  1. ↩︎

I tried creating that udev rule with absolutely zero change.

I did the camera test using gUM Test Page

Firefox returned: NotAllowedError: The request is not allowed by the user agent or the platform in the current context.

Brave returned: NotFoundError: Requested device not found

It could be a SELinux error of some sort. Or it could be that your IPU7 device just isn’t supported by that driver. You said it was working for someone else? Do you know what Kernel version and hardware drivers they are using?

There might be some clues about what exactly isn’t working in the system logs. Use sudo journalctl to view the logs.

I tried running that and looking at the logs but I have zero clue what I’m seeing.

The other guy that had his working has the exact laptop I do, said he was just running Fedora 43 and kernel 6.17.10. I’m on F43 and 6.17.12.

I think it is unlikely that the differences between Kernel 6.17.10 and 6.17.12 would be the cause of the problem. You might ask your friend to upgrade and see if the newer kernel causes his to stop working.

If the hardware and software really are the same, then you might compare the firmware versions and see if they are different. Beyond that, I would guess it must be some sort of configuration difference. You might check that all your BIOS settings are the same.

Sorry, without more information, I can only speculate.

UPDATE: I got the camera to work in Brave after finding an obscure mention of “Pipewire camera support” in chrome://flags. Enabled that, and the camera works now! It looks like trash but I hear that’s a driver-level improvement coming down the road. I can use my USB cameras if needed.

HOWEVER, I still get no video or audio in Google Meet. (Camera works in Zoom and other websites.)

Does anyone else here use Google Meet, and does it work? My job uses Google Meet regularly, and all it gives me is a bunch of blank squares and zero sound.

Camera does NOT work in Slack, or Kamoso, but I think those are just busted apps.

If it works, but the quality is low, my guess is that you are missing some needed codecs. Have you installed the third-party RPM Fusion codecs?[1] Be aware that installing third-partly software or libraries can (and frequently does) cause problems when updating Fedora Linux. That said, if you need the codecs, then working around such problems when they arise is your only option.


  1. ↩︎

I believe I’m that “someone else” that it works for :sweat_smile: Thinkpad X1 2-in-1 Gen10 Lunar Lake OLED (which makes the webcam the MIPI one).

Support is early, the colors are a bit off and the image is someties cropped quite a bit. But the test URL above works in Firefox. Fedora 43 KDE.

/Jaybe

1 Like

…and I have installed the RPM Fusion codecs. Cannot be entirely certain when and which order - the laptop was originally installed using F42 and has been upgraded since then.

/Jaybe

1 Like

I’ve installed those but no improvement in picture quality. The available information around the web does seem to indicate it’s just a driver development thing.

1 Like

“No improvement in picture quality” - from it not working, or does it work now? As I said, picture quality is not great for me either.

/Jaybe

Correct, it works but looks exactly as you’ve described.

However, it still doesn’t work in Google Meet in Brave. But it DOES work in Google Meet in Chromium.

1 Like