intel / ipu6-drivers

GNU General Public License v2.0
175 stars 53 forks source link

Dell Precision 5490 camera not working on 6.10.10-arch1-2 #265

Open Gerico0889 opened 2 months ago

Gerico0889 commented 2 months ago

The webcam is being recognized correctly but it does not work. It seems that the drivers are correctly installed. The webcam cannot be found with lspci or lsusb. The weird thing is that there seem to be a lot of /dev/video* folders and none of these outputs seem to work. I'll leave some info down here but happy to provide more information if needed:

PC Specs:

❯ fastfetch --logo none
    コンピューター
┌──────────────────────────────────────────┐
   OS : EndeavourOS x86_64
   Kernel : Linux 6.10.9-arch1-2
   Packages : 1270 (pacman)
   Display : 2560x1600 @ 60 Hz (as 1535x959) in 14″ [Built-in]
   WM : Hyprland (Wayland)
   Terminal : kitty 0.36.2
└──────────────────────────────────────────┘
┌──────────────────────────────────────────┐
   CPU : Intel(R) Core(TM) Ultra 7 165H
   GPU : RTX 2000 Ada Generation Laptop GPU
   GPU : Intel Arc Graphics
   GPU Driver : nvidia (proprietary) 560.35.03
   GPU Driver : i915
  ﬙ Memory : 3.18 GiB / 30.80 GiB (10%)
  󱦟 OS Age  : 1 days
  󱫐 Uptime  : 16 mins
└──────────────────────────────────────────┘
❯ lspci
0000:00:00.0 Host bridge: Intel Corporation Device 7d01 (rev 04)
0000:00:01.0 PCI bridge: Intel Corporation Device 7ecc (rev 10)
0000:00:02.0 VGA compatible controller: Intel Corporation Meteor Lake-P [Intel Arc Graphics] (rev 08)
0000:00:04.0 Signal processing controller: Intel Corporation Meteor Lake-P Dynamic Tuning Technology (rev 04)
0000:00:05.0 Multimedia controller: Intel Corporation Meteor Lake IPU (rev 04)
0000:00:06.0 PCI bridge: Intel Corporation Device 7e4d (rev 20)
0000:00:07.0 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #0 (rev 10)
0000:00:07.1 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #1 (rev 10)
0000:00:07.2 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #2 (rev 10)
0000:00:07.3 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #3 (rev 10)
0000:00:08.0 System peripheral: Intel Corporation Meteor Lake-P Gaussian & Neural-Network Accelerator (rev 20)
0000:00:0a.0 Signal processing controller: Intel Corporation Meteor Lake-P Platform Monitoring Technology (rev 01)
0000:00:0b.0 Processing accelerators: Intel Corporation Meteor Lake NPU (rev 04)
0000:00:0d.0 USB controller: Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller (rev 10)
0000:00:0d.2 USB controller: Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0 (rev 10)
0000:00:0d.3 USB controller: Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #1 (rev 10)
0000:00:0e.0 RAID bus controller: Intel Corporation Volume Management Device NVMe RAID Controller Intel Corporation
0000:00:12.0 Serial controller: Intel Corporation Meteor Lake-P Integrated Sensor Hub (rev 20)
0000:00:14.0 USB controller: Intel Corporation Meteor Lake-P USB 3.2 Gen 2x1 xHCI Host Controller (rev 20)
0000:00:14.2 RAM memory: Intel Corporation Device 7e7f (rev 20)
0000:00:15.0 Serial bus controller: Intel Corporation Meteor Lake-P Serial IO I2C Controller #0 (rev 20)
0000:00:15.3 Serial bus controller: Intel Corporation Meteor Lake-P Serial IO I2C Controller #3 (rev 20)
0000:00:16.0 Communication controller: Intel Corporation Meteor Lake-P CSME HECI #1 (rev 20)
0000:00:1c.0 PCI bridge: Intel Corporation Device 7e3f (rev 20)
0000:00:1f.0 ISA bridge: Intel Corporation Device 7e02 (rev 20)
0000:00:1f.3 Multimedia audio controller: Intel Corporation Meteor Lake-P HD Audio Controller (rev 20)
0000:00:1f.4 SMBus: Intel Corporation Meteor Lake-P SMBus Controller (rev 20)
0000:00:1f.5 Serial bus controller: Intel Corporation Meteor Lake-P SPI Controller (rev 20)
0000:01:00.0 3D controller: NVIDIA Corporation AD107GLM [RTX 2000 Ada Generation Laptop GPU] (rev a1)
0000:02:00.0 Network controller: Intel Corporation Wi-Fi 7(802.11be) AX1775*/AX1790*/BE20*/BE401/BE1750* 2x2 (rev 1a)
0000:ab:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5260 PCI Express Card Reader (rev 01)
10000:e0:06.0 System peripheral: Intel Corporation RST VMD Managed Controller
10000:e0:06.1 PCI bridge: Intel Corporation Device 7eca (rev 10)
10000:e1:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller S4LV008[Pascal]
❯ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 8086:0b63 Intel Corp. USB Bridge
Bus 003 Device 003: ID 27c6:634c Shenzhen Goodix Technology Co.,Ltd. Goodix Fingerprint USB Device
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
❯ sudo dmesg | grep ipu
[    4.758225] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[    4.758409] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[    4.758919] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.759427] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.759935] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.760440] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.760944] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.761449] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.761962] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.762478] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.762989] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.763504] intel-ipu6 0000:00:05.0: Unexpected CSR 0x0
[    4.772672] intel-ipu6 0000:00:05.0: FW version: 20230925
[   16.066411] ipu6_buttress_ipc_reset: 46 callbacks suppressed
[   16.179512] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[   16.219369] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[   16.272624] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[   16.272637] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6
[   29.614442] Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device ccm nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib snd_soc_sof_sdw snd_sof_probes snd_soc_intel_hda_dsp_common nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct snd_soc_rt712_sdca snd_soc_rt712_sdca_dmic snd_soc_rt1316_sdw regmap_sdw_mbq snd_hda_codec_hdmi nft_chain_nat regmap_sdw nf_nat snd_soc_dmic nf_conntrack nf_defrag_ipv6 snd_sof_pci_intel_mtl nf_defrag_ipv4 snd_sof_intel_hda_generic soundwire_intel soundwire_cadence intel_ipu6_isys snd_sof_intel_hda_common videobuf2_dma_contig snd_sof_intel_hda_mlink videobuf2_memops snd_sof_intel_hda videobuf2_v4l2 snd_sof_pci videobuf2_common snd_sof_xtensa_dsp snd_sof xe snd_sof_utils snd_soc_hdac_hda snd_hda_ext_core ivsc_ace ivsc_csi snd_soc_acpi_intel_match soundwire_generic_allocation snd_soc_acpi drm_gpuvm soundwire_bus drm_exec gpu_sched iwlmvm drm_suballoc_helper snd_soc_core nf_tables drm_ttm_helper libcrc32c bnep snd_compress mei_vsc mac80211 ac97_bus snd_pcm_dmaengine
❯ v4l2-ctl --all
Driver Info:
    Driver name      : isys
    Card type        : ipu6
    Bus info         : 
    Driver version   : 6.10.9
    Capabilities     : 0xa4a00001
        Video Capture
        Metadata Capture
        I/O MC
        Streaming
        Extended Pix Format
        Device Capabilities
    Device Caps      : 0x24a00001
        Video Capture
        Metadata Capture
        I/O MC
        Streaming
        Extended Pix Format
Priority: 2
Video input : 0 (Intel IPU6 ISYS Capture 0: ok)
Format Video Capture:
    Width/Height      : 1920/1080
    Pixel Format      : 'BG12' (12-bit Bayer BGBG/GRGR)
    Field             : None
    Bytes per Line    : 3840
    Size Image        : 4151040
    Colorspace        : Raw
    Transfer Function : Default (maps to None)
    YCbCr/HSV Encoding: Default (maps to ITU-R 601)
    Quantization      : Default (maps to Full Range)
    Flags             : 
Format Metadata Capture:
    Sample Format   : 'MET8' (8-bit Generic Metadata)
    Buffer Size     : 9600
❯ LIBCAMERA_LOG_LEVELS=0 cam --list
[0:09:09.024102783] [2766] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /usr/lib/libcamera/ipa_ipu3.so is signed
[0:09:09.024156293] [2766] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib/libcamera/ipa_ipu3.so'
[0:09:09.024180947] [2766] DEBUG IPAModule ipa_module.cpp:334 ipa_vimc.so: IPA module /usr/lib/libcamera/ipa_vimc.so is signed
[0:09:09.024193215] [2766] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/usr/lib/libcamera/ipa_vimc.so'
[0:09:09.024210918] [2766] ERROR IPAModule ipa_module.cpp:172 Symbol ipaModuleInfo not found
[0:09:09.024215037] [2766] ERROR IPAModule ipa_module.cpp:292 v4l2-compat.so: IPA module has no valid info
[0:09:09.024238643] [2766]  INFO Camera camera_manager.cpp:313 libcamera v0.3.1
[0:09:09.024539981] [2767] DEBUG Camera camera_manager.cpp:69 Starting camera manager
[0:09:09.037932947] [2767] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "intel-ipu6" created from /dev/media0
[0:09:09.040407154] [2767] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media0 due to 2 missing dependencies
[0:09:09.040621372] [2767] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media0 found
[0:09:09.040628865] [2767] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media0: intel-ipu6
[0:09:09.040886924] [2767] DEBUG Camera camera_manager.cpp:134 Found registered pipeline handler 'vimc'
[0:09:09.040924563] [2767] DEBUG Camera camera_manager.cpp:134 Found registered pipeline handler 'uvcvideo'
[0:09:09.040930516] [2767] DEBUG Camera camera_manager.cpp:134 Found registered pipeline handler 'ipu3'
Available cameras:
❯ pacman -Ql | grep -i ipu6
linux /usr/lib/modules/6.10.9-arch1-2/kernel/drivers/media/pci/intel/ipu6/
linux /usr/lib/modules/6.10.9-arch1-2/kernel/drivers/media/pci/intel/ipu6/intel-ipu6-isys.ko.zst
linux /usr/lib/modules/6.10.9-arch1-2/kernel/drivers/media/pci/intel/ipu6/intel-ipu6.ko.zst
linux-firmware /usr/lib/firmware/intel/ipu/ipu6_fw.bin.zst
linux-firmware /usr/lib/firmware/intel/ipu/ipu6ep_fw.bin.zst
linux-firmware /usr/lib/firmware/intel/ipu/ipu6epadln_fw.bin.zst
linux-firmware /usr/lib/firmware/intel/ipu/ipu6epmtl_fw.bin.zst
linux-firmware /usr/lib/firmware/intel/ipu/ipu6se_fw.bin.zst
linux-headers /usr/lib/modules/6.10.9-arch1-2/build/drivers/media/pci/intel/ipu6/
linux-headers /usr/lib/modules/6.10.9-arch1-2/build/drivers/media/pci/intel/ipu6/Kconfig
linux-headers /usr/lib/modules/6.10.9-arch1-2/build/include/config/VIDEO_INTEL_IPU6
linux-headers /usr/lib/modules/6.10.9-arch1-2/build/include/media/ipu6-pci-table.h
❯ v4l2-ctl --list-devices
ipu6 ():
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3
    /dev/video4
    /dev/video5
    /dev/video6
    /dev/video7
    /dev/video8
    /dev/video9
    /dev/video10
    /dev/video11
    /dev/video12
    /dev/video13
    /dev/video14
    /dev/video15
    /dev/video16
    /dev/video17
    /dev/video18
    /dev/video19
    /dev/video20
    /dev/video21
    /dev/video22
    /dev/video23
    /dev/video24
    /dev/video25
    /dev/video26
    /dev/video27
    /dev/video28
    /dev/video29
    /dev/video30
    /dev/video31
    /dev/video32
    /dev/video33
    /dev/video34
    /dev/video35
    /dev/video36
    /dev/video37
    /dev/video38
    /dev/video39
    /dev/video40
    /dev/video41
    /dev/video42
    /dev/video43
    /dev/video44
    /dev/video45
    /dev/video46
    /dev/video47

ipu6 (PCI:0000:00:05.0):
    /dev/media0
iiztp commented 2 months ago

Same problem here, on the same laptop though I have Debian Unstable isntead of Endeavour

Gerico0889 commented 2 months ago

Just to keep the Issue up to date. I also updated to 6.10.10-arch1-2 but still have the exact same problem.

iiztp commented 2 months ago

Just to keep the Issue up to date. I also updated to 6.10.10-arch1-2 but still have the exact same problem.

I thought you were also on 6.10.10, I must have misread, I am on same Kernel. FYI, I tried recompiling kernel of 6.11 because I saw that it might work from this link But can't seem to succeed to build it, it says "missing IPU6 drivers" or something like that...

Cyborgscode commented 2 months ago

BTW: the "real" issue is here: the i2c system can't talk to the chip.

https://github.com/intel/ipu6-drivers/issues/252

Gerico0889 commented 2 months ago

Mmm I'm not sure if that is the same problem. As you can see from my dmesg output I do not get that error -EREMOTEIO: failed to find sensor error

fmonteghetti commented 1 month ago

On both 6.10 and 6.11, with the dell precision 5490, I have this error:

vsc-tp spi-INTC10D0:00: probe with driver vsc-tp failed with error -22

vsc means (Intel) Visual Sensing Controller (the module name is mei_vsc_hw), so this is likely what prevents the camera from being accessed. I am on the latest firmware 1.6.0.

alexhulbert commented 4 weeks ago

I can confirm that the mei_vsc_hw module seems to be the root of the problem for me as well. I have a Dell XPS 9640 and I get the same exact error (spi-INTC10D0:00 for me too). Theoretically, on the latest kernel we shouldn't even need these out-of-tree drivers. Fedora 41 users are reporting that similar meteor lake devices work out of the box one the spi device is setup and visible from /sys/bus/i2c/devices/

@fmonteghetti Did you make any progress with the issue?

fmonteghetti commented 3 weeks ago

@fmonteghetti Did you make any progress with the issue?

Not really. I am waiting for the release of Fedora 41 in november to get an additional data point. (Fedora 41 plans to ship with support for ipu6 camera through an open source stack https://fedoraproject.org/wiki/Changes/IPU6_Camera_support)

Edit: the Dell Precision 5490 webcam works out of the box with Fedora 41. The kernel log contains 'Found supported sensor OVTI01A0:00', which I could not get on arch linux 6.11 kernel.