Fedora Account System
Red Hat Associate
Red Hat Customer
1. Please describe the problem: I am testing the new FOSS IPU7 stack on Fedora 43 with a Lunar Lake laptop (Lenovo X9 15). The IPU7 initializes perfectly and detects the sensor (dmesg shows "Found supported sensor SONY471A:00" and "Connected 1 cameras"). However, the camera does not work because the specific `imx471` driver module is missing from the kernel tree, preventing the sensor from binding to /dev/media0. I have verified that pipewire-plugin-libcamera, libcamera-ipa, and intel-vsc-firmware are installed. I also ensured the proprietary stack is not active. 2. What is the Version-Release number of the kernel: kernel-6.19.10-200.fc43.x86_64 3. Did it work previously in Fedora? If so, what kernel version did the issue *first* appear? Old kernels are available for download at https://koji.fedoraproject.org/koji/packageinfo?packageID=8 : No, this is a new hardware enablement request for Lunar Lake MIPI cameras. 4. Can you reproduce this issue? If so, please provide the steps to reproduce the issue below: Yes, always. Steps: 1. Boot Fedora 43. 2. Run `modprobe imx471` (returns FATAL: Module imx471 not found). 3. Run `cam -l` (returns "No sensor found for /dev/media0"). 5. Does this problem occur with the latest Rawhide kernel? To install the Rawhide kernel, run ``sudo dnf install fedora-repos-rawhide`` followed by ``sudo dnf update --enablerepo=rawhide kernel``: I have not tested Rawhide, but according to upstream Intel IPU7 driver discussions, the `imx471` sensor module is not yet merged into the mainline kernel. 6. Are you running any modules that not shipped with directly Fedora's kernel?: No. The system is completely clean and fully FOSS. Proprietary intel-ipu6 packages and custom DKMS modules were explicitly removed. 7. Please attach the kernel logs. You can get the complete kernel log for a boot with ``journalctl --no-hostname -k > dmesg.txt``. If the issue occurred on a previous boot, use the journalctl ``-b`` flag. As requested by the Fedora X86 MIPI CameraHwEnablement Wiki, I enabled dyndbg for int3472 via grubby. I will attach the requested `kernel.txt`, `lsusb.txt`, `i2c-devices.txt`, and `spi-devices.txt` (along with an acpidump) immediately after submitting this bug report. Reproducible: Always
Created attachment 2135703 [details] journalctl -b 0 -k > kernel.txt
Created attachment 2135704 [details] lsusb > lsusb.txt
Created attachment 2135705 [details] ls -l /sys/bus/i2c/devices/ > i2c-devices.txt
Created attachment 2135706 [details] ls -l /sys/bus/spi/devices/ > spi-devices.txt
Kate Hsuan is working on cleaning up the out of tree imx471 driver and submitting it for mainline inclusion, assigning this to Kate.
Patchset was submitted and can be found at the following URL https://lore.kernel.org/linux-media/20260417083214.222189-1-hpa@redhat.com/T/#t
Hi Kate and team, Hope you are doing well. I've been quietly following the great progress on the linux-media mailing list regarding the IMX471 driver and the Bayer format flip implementation. Thank you so much for all the hard work you've put into this ! I am currently running Fedora 44 on my Lenovo ThinkPad X9 and checking the updates regularly. I was just wondering if there is any Koji test kernel available yet that includes the latest iteration of your patches ? I would be more than happy to install it, test the camera orientation/colors on my specific hardware, and report back here to help validate your code before mainline inclusion. Thanks again! Best regards, Anis
Hi Anis It can be found at https://koji.fedoraproject.org/koji/taskinfo?taskID=146423786 and find the details in bz2483180 Thank you
Hi Kate, I successfully installed and booted the Koji kernel from task 146423786 on my Lenovo ThinkPad X9 (Lunar Lake). I can confirm that the patch works perfectly. Here are the technical validation points: - modinfo imx471 now correctly reports the module. - The sensor binds successfully to /dev/media0. - Tested with qcam (libcamera v0.7.1 via SoftISP): the camera stream works natively. The image orientation is 100% correct regardless of the upside-down mounting, and the Bayer order works as expected (tested with the fallback uncalibrated.yaml profile in libcamera). Thank you so much for the hard work! You can add my tag to the patchset: Tested-by: computman anis
Thank you for your testing. Please rely to the mail thread with Tested-by tag and than I can add you to the commit message. https://lore.kernel.org/linux-media/20260624033508.27391-4-hpa@redhat.com/
I have one of the newer ThinkPad X9 15p models (types 21VV and 21VW). With the latest kernel update to 7.1.3-201.fc44 I can now make some use of the camera. This is the output of "cam -l" [0:07:18.269961965] [15250] INFO Camera camera_manager.cpp:340 libcamera v0.7.1 [0:07:18.283259796] [15253] ERROR V4L2 v4l2_subdevice.cpp:1192 'imx471 0-001a': Unable to get rectangle 0 on pad 0/0: Invalid argument [0:07:18.283300497] [15253] WARN CameraSensor camera_sensor_legacy.cpp:421 'imx471 0-001a': Failed to retrieve the sensor crop rectangle [0:07:18.283303387] [15253] WARN CameraSensor camera_sensor_legacy.cpp:427 'imx471 0-001a': The sensor kernel driver needs to be fixed [0:07:18.283305147] [15253] WARN CameraSensor camera_sensor_legacy.cpp:429 'imx471 0-001a': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information [0:07:18.283401594] [15253] WARN CameraSensorProperties camera_sensor_properties.cpp:538 No static properties available for 'imx471' [0:07:18.283405273] [15253] WARN CameraSensorProperties camera_sensor_properties.cpp:540 Please consider updating the camera sensor properties database [0:07:18.283410058] [15253] WARN CameraSensor camera_sensor_legacy.cpp:502 'imx471 0-001a': No sensor delays found in static properties. Assuming unverified defaults. [0:07:18.285579805] [15253] WARN IPAProxy ipa_proxy.cpp:196 Configuration file 'imx471.yaml' not found for IPA module 'simple', falling back to '/usr/share/libcamera/ipa/simple/uncalibrated.yaml' [0:07:18.285617504] [15253] ERROR V4L2 v4l2_subdevice.cpp:1192 'imx471 0-001a': Unable to get rectangle 0 on pad 0/0: Invalid argument [0:07:18.285622770] [15253] WARN CameraSensor camera_sensor_legacy.cpp:881 'imx471 0-001a': The analogue crop rectangle has been defaulted to the active area size [0:07:18.291966938] [15254] INFO IPAProxySoftWorker soft_ipa_proxy_worker.cpp:443 Starting worker for IPA module /usr/lib64/libcamera/ipa/ipa_soft_simple.so with IPC fd = 19 [0:07:18.292340304] [15254] WARN IPASoft soft_simple.cpp:104 IPASoft: Failed to create camera sensor helper for imx471 [0:07:18.292532619] [15253] INFO Camera camera_manager.cpp:223 Adding camera '\_SB_.LNK0' for pipeline handler simple [0:07:18.354553968] [15253] INFO Camera camera_manager.cpp:223 Adding camera '\_SB_.PC00.XHCI.RHUB.HS01-1.1.3.1.2:1.0-046d:08e5' for pipeline handler uvcvideo Available cameras: 1: Internal front camera (\_SB_.LNK0) 2: External camera 'HD Pro Webcam C920' (\_SB_.PC00.XHCI.RHUB.HS01-1.1.3.1.2:1.0-046d:08e5) The picture quality using qcam is ok, but it is quite dark and slightly green tinted. I guess that is expected since the output above shows no specific calibrations for this sensor. The camera does not yet seem to work with Firefox or GNOME camera, which simply don't show it as an option. I hope this test report is useful. I also haven't seen much about the "X9 15p" models specifically.
Hi, if qcam shows the image, the camera works. Unlike traditional capture devices, the IPU7 solution is based on pipewire and libcamera. You need to enable pipewire camera support in Firefox through the following steps. 1. Open Firefox and type about:config in the address bar. 2. Accept the warning prompt. 3. Search for the setting "media.webrtc.camera.allow-pipewire" and ensure it is set to true.
Hi Kate, Thank you for the imx471 driver on the X9. It is very welcome — happy to help with testing or follow-up patches. Comment 11 still applies on Fedora 44 kernel 7.1.8-200.fc44 (ThinkPad X9-15, SONY471A / IPU7). Stock imx471: VIDIOC_SUBDEV_G_SELECTION CROP → EINVAL CROP_DEFAULT / CROP_BOUNDS → 8,8 4656×3496 NATIVE_SIZE → 0,0 4672×3512 libcamera logs: Unable to get rectangle 0 on pad 0/0: Invalid argument Failed to retrieve the sensor crop rectangle Cause: imx471_get_selection() filled CROP then fell out of the switch and returned -EINVAL. Patches on linux-media: v1 Message-ID: <20260816194259.151947-1-john.cronin> v2 Message-ID: <20260822112505.3493870-1-john.cronin> (your 2026-08-22 review: compute crop in set_pad_format like imx219; return 0 after the switch) On this X9, after loading v2, CROP succeeds (3856×2176 centered in the native array for the 1928×1088 2×2-binned mode) and the libcamera rectangle warning is gone. Meet still works on software ISP. Happy to test a Fedora kernel build or anything else you need. Thanks, John Cronin
Hi Kate, I followed your steps for enabling PipeWire support in Firefox. It was already enabled, yet the IMX471 camera does not show up. Any Firefox misconfiguration also does not explain why Gnome Snapshot does not pick up the camera. There is some other issue that prevents the camera in PipeWire. An update to libcamera might be helpful too. F44 still uses v0.7.1. I tried the Bodhi build for v0.7.2 https://bodhi.fedoraproject.org/updates/FEDORA-2026-6766d18fde It improves the image quality a bit. The image is less green tinted, and auto exposure works better, i.e., the image becomes brighter. Overall the image is still on the darker side. If I enable and then disable the electronic camera privacy cutoff, the image quality degrades again. A restart of qcam restores the previous state. Any movement in the picture leads to horizontal streaks appearing. I'm happy to test stuff, but I'm not deep enough in that topic to run my troubleshooting.
@john.cronin Thank you for your work on this. I'll review the latest revision :) > On this X9, after loading v2, CROP succeeds (3856×2176 centered in the > native array for the 1928×1088 2×2-binned mode) and the libcamera > rectangle warning is gone. Meet still works on software ISP. It works on my X9 too without errors. Awesome. (In reply to jonas from comment #14) > Hi Kate, > Thank you for reporting the findings. > I followed your steps for enabling PipeWire support in Firefox. It was > already enabled, yet the IMX471 camera does not show up. > Any Firefox misconfiguration also does not explain why Gnome Snapshot does > not pick up the camera. There is some other issue that prevents the camera > in PipeWire. Ensure the software versions are the latest version. This is my configuration pipewire.x86_64 1.6.8-1.fc44 libcamera.x86_64 0.7.1-1.fc44 gstreamer1.x86_64 1.28.6-1.fc44 snapshot.x86_64 50.0-1.fc44 snapshot works. > > An update to libcamera might be helpful too. F44 still uses v0.7.1. I tried > the Bodhi build for v0.7.2 > https://bodhi.fedoraproject.org/updates/FEDORA-2026-6766d18fde > It improves the image quality a bit. The image is less green tinted, and > auto exposure works better, i.e., the image becomes brighter. Overall the > image is still on the darker side. > If I enable and then disable the electronic camera privacy cutoff, the image > quality degrades again. A restart of qcam restores the previous state. For the green color, I think a color tuning can resolve it. But, the vendor should calibrate the sensor and submit the color tuning file to libcamra to get the better color settings. > Any movement in the picture leads to horizontal streaks appearing. I'm looking for it. It seems caused by vulken. see https://bugzilla.redhat.com/show_bug.cgi?id=2502786 I try to find any issues about the sensor driver. > > I'm happy to test stuff, but I'm not deep enough in that topic to run my > troubleshooting.
These are my packages. libcamera is from https://bodhi.fedoraproject.org/updates/FEDORA-2026-6766d18fde, but I had the issue before with the default F44 version of 0.7.1-1 With snapshot the laptop camera does not even turn on. The indicator LED remains dark. The laptop got a fresh F44 install and is always updates. It has rpmfusion packages too. I can test it at some point without them. gstreamer1.i686 1.28.6-1.fc44 updates gstreamer1.x86_64 1.28.6-1.fc44 updates gstreamer1-plugin-dav1d.x86_64 0.15.0-1.fc44 19278be6a81040f5b6cbc7bacea5148e gstreamer1-plugin-gtk4.x86_64 0.15.2-1.fc44 updates gstreamer1-plugin-libav.x86_64 1.28.6-1.fc44 updates gstreamer1-plugin-openh264.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-bad-free.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-bad-free-libs.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-bad-freeworld.x86_64 1:1.28.6-1.fc44 rpmfusion-free-updates gstreamer1-plugins-base.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-good.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-good-gtk.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-good-qt.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-good-qt6.x86_64 1.28.6-1.fc44 updates gstreamer1-plugins-ugly.x86_64 1:1.28.6-1.fc44 rpmfusion-free-updates gstreamer1-plugins-ugly-free.x86_64 1.28.6-1.fc44 updates libcamera.x86_64 0.7.2-1.fc44 @commandline libcamera-ipa.x86_64 0.7.2-1.fc44 @commandline libcamera-qcam.x86_64 0.7.2-1.fc44 @commandline libcamera-tools.x86_64 0.7.2-1.fc44 @commandline pipewire.i686 1.6.8-1.fc44 updates pipewire.x86_64 1.6.8-1.fc44 updates pipewire-alsa.x86_64 1.6.8-1.fc44 updates pipewire-config-raop.x86_64 1.6.8-1.fc44 updates pipewire-gstreamer.x86_64 1.6.8-1.fc44 updates pipewire-jack-audio-connection-kit.x86_64 1.6.8-1.fc44 updates pipewire-jack-audio-connection-kit-libs.x86_64 1.6.8-1.fc44 updates pipewire-libs.i686 1.6.8-1.fc44 updates pipewire-libs.x86_64 1.6.8-1.fc44 updates pipewire-plugin-libcamera.x86_64 1.6.8-1.fc44 updates pipewire-pulseaudio.x86_64 1.6.8-1.fc44 updates pipewire-utils.x86_64 1.6.8-1.fc44 updates qemu-audio-pipewire.x86_64 2:10.2.2-1.fc44 19278be6a81040f5b6cbc7bacea5148e snapshot.x86_64 50.0-1.fc44 19278be6a81040f5b6cbc7bacea5148e vlc-plugin-pipewire.x86_64 3-7.fc44 fedora The link to https://bugzilla.redhat.com/show_bug.cgi?id=2502786 is quite useful. The streaks are easier to trigger in bright situations rather than dark ones. LIBGL_ALWAYS_SOFTWARE=1 qcam This gets rid of the horizontal streaks. GDK_DISABLE=vulkan LIBGL_ALWAYS_SOFTWARE=0 qcam This has no effect as far as I can tell, i.e., the streaks are still visible. Thus, the relevant setting is LIBGL_ALWAYS_SOFTWARE.
The pipewire camera issues were self-imposed. Sorry for the confusion. I had this wireplumber configuration in my profile. Once I removed it the camera shows up with snapshot and Firefox. https://wiki.archlinux.org/title/Lenovo_Thinkpad_X9#WirePlumber_configuration wireplumber.profiles = { main = { monitor.libcamera = required } }