• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst IPU6 Kamera unter Tumbleweed funktioniert nicht

Ich bekomme eine eingebaute Intel IPU6 Laptop-Kamera nicht zum Laufen. Es handelt sich um einen Dell Latitude 7450 mit Tumbleweed und Kernel 6.16.6-1-default. Alle Infos, die ich als "Einfach-Pinguin" diesbezüglich kenne scheinen im grünen Bereich zu sein - aber sämtliche Kameraanwendungen erkennen keine Kamera und/oder geben nur einen "schwarzen" Preview.

Ich wäre dankbar, wenn Ihr das Folge mal anschaut und einen Vorschlag hättet:

Die Plattform ist eine Intel® Core™ Ultra 7 165H CPU aus der Architekturfamilie
Code:
~>cat /sys/devices/cpu_core/caps/pmu_name
meteorlake_hybrid
Der Kernel soll ja zumindest seit 6.10 die IPU6 Treiber eingebaut haben - und i.d. Tat habe ich
Code:
~>cat /proc/config.gz | gunzip | grep IPU6
CONFIG_VIDEO_INTEL_IPU6=m
und
Code:
~>find /lib/modules/$(uname -r) -type f -name '*ipu6*'
/lib/modules/6.16.6-1-default/kernel/drivers/media/pci/intel/ipu6/intel-ipu6-isys.ko.zst
/lib/modules/6.16.6-1-default/kernel/drivers/media/pci/intel/ipu6/intel-ipu6.ko.zst
Außerdem werden diverse intel_ipu6 Module geladen
Code:
~>lsmod | grep ipu6
intel_ipu6_isys       139264  0
videobuf2_dma_sg       24576  1 intel_ipu6_isys
videobuf2_v4l2         45056  2 intel_ipu6_isys,uvcvideo
videobuf2_common       98304  6 videobuf2_vmalloc,videobuf2_v4l2,intel_ipu6_isys,uvcvideo,videobuf2_dma_sg,videobuf2_memops
intel_ipu6             86016  1 intel_ipu6_isys
v4l2_fwnode            36864  2 hi556,intel_ipu6_isys
v4l2_async             32768  3 v4l2_fwnode,hi556,intel_ipu6_isys
ipu_bridge             24576  2 intel_ipu6,intel_ipu6_isys
videodev              409600  6 v4l2_async,v4l2_fwnode,hi556,videobuf2_v4l2,intel_ipu6_isys,uvcvideo
mc                     94208  9 v4l2_async,videodev,snd_usb_audio,hi556,videobuf2_v4l2,intel_ipu6_isys,uvcvideo,videobuf2_common
und
Code:
~ # modinfo intel-ipu6
filename:       /usr/lib/modules/6.16.6-1-default/kernel/drivers/media/pci/intel/ipu6/intel-ipu6.ko.zst
description:    Intel IPU6 PCI driver
license:        GPL
author:         Hongju Wang <hongju.wang@intel.com>
author:         Yunliang Ding <yunliang.ding@intel.com>
author:         Qingwu Zhang <qingwu.zhang@intel.com>
author:         Bingbu Cao <bingbu.cao@intel.com>
author:         Tianshu Qiu <tian.shu.qiu@intel.com>
author:         Sakari Ailus <sakari.ailus@linux.intel.com>
import_ns:      INTEL_IPU_BRIDGE
suserelease:    openSUSE Tumbleweed
srcversion:     21168AC02795825AFDA009F
alias:          pci:v00008086d00007D19sv*sd*bc*sc*i*
alias:          pci:v00008086d0000A75Dsv*sd*bc*sc*i*
alias:          pci:v00008086d0000462Esv*sd*bc*sc*i*
alias:          pci:v00008086d0000465Dsv*sd*bc*sc*i*
alias:          pci:v00008086d00004E19sv*sd*bc*sc*i*
alias:          pci:v00008086d00009A19sv*sd*bc*sc*i*
depends:        ipu-bridge
intree:         Y
name:           intel_ipu6
retpoline:      Y
vermagic:       6.16.6-1-default SMP preempt mod_unload modversions
sig_id:         PKCS#7
signer:         openSUSE Secure Boot CA
sig_key:        FA:BE:D8:BF:40:9A:5E:66
sig_hashalgo:   sha256
signature:      89:5B:B2:4E:3E:34:E8:18:DD:59:39:15:E5:DB:74:64:4B:C8:47:0B:
        1B:7E:8A:42:9D:36:5A:65:8E:76:BE:47:7D:69:AF:60:8C:AE:9E:AC:
        DC:E0:8C:39:B0:43:B2:DD:D1:FE:52:F6:E9:70:25:E0:D9:E7:4C:1D:
        37:99:60:05:B1:58:73:B3:05:FA:54:0D:44:0B:7D:58:BA:D2:65:1E:
        8C:76:6A:16:B4:92:E8:9A:03:93:8C:43:07:0A:E1:CB:B0:E5:D5:FE:
        8D:F3:F2:D4:BD:35:B8:6F:EB:5D:A2:6F:CE:48:3A:17:17:75:E6:53:
        A2:1E:22:DE:7F:0D:BA:16:E2:38:A7:1D:00:97:8B:59:8C:61:08:9F:
        8A:DA:EC:50:06:12:4D:E1:22:75:94:83:31:68:F4:F2:68:72:27:E7:
        ED:CA:BB:F7:8E:97:31:D9:5B:A1:7D:08:95:C9:E0:87:DE:65:5E:92:
        FC:39:C6:C9:EC:6B:55:8E:38:60:DB:E2:1D:0D:B3:3B:17:5E:18:E6:
        3F:1C:FB:2A:CD:60:6C:8D:B1:CC:DA:43:43:09:12:CB:D1:D8:A4:2A:
        86:06:37:3D:35:97:D6:8A:69:EC:5D:DF:57:4C:39:4A:41:36:3F:A7:
        11:B0:24:AA:1F:50:C1:12:7F:9D:F6:73:DC:3F:6F:4F
Im Journal (und dmesg) scheint es keine Fehlermeldungen zu geben. Stattdessen sieht man Blöcke der Art
Code:
~ # journalctl --since "2 hours ago" | grep ipu
Sep 20 09:06:14 abcde kernel: intel-ipu6 0000:00:05.0: IPU6 in secure mode
Sep 20 09:46:46 abcde kernel: intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
Sep 20 09:46:46 abcde kernel: intel-ipu6 0000:00:05.0: Found supported sensor INT3537:00
Sep 20 09:46:46 abcde kernel: intel-ipu6 0000:00:05.0: Connected 1 cameras
Sep 20 09:46:46 abcde kernel: intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
Sep 20 09:46:47 abcde kernel: intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
Sep 20 09:46:47 abcde kernel: intel-ipu6 0000:00:05.0: CSE authenticate_run done
Sep 20 09:46:47 abcde kernel: intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6
Das sieht für mich alles sehr ermutigend aus. Noch vor der 6.10-er Kernel-Version gab es hier immer viele Fehlermeldungen. Nach hansdegoede | IPU6 camera support in Fedora 41 sollte der Kamerasensor auch noch in dieser Liste auftauchen(?)
Code:
~>l /sys/bus/i2c/devices
total 0
drwxr-xr-x 2 root root 0 Sep 20 11:46 ./
drwxr-xr-x 4 root root 0 Sep 20 09:46 ../
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-0 -> ../../../devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-1 -> ../../../devices/pci0000:00/0000:00:15.3/i2c_designware.1/i2c-1/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-10 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-10/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-11 -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/i2c-11/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-12 -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-1/i2c-12/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-13 -> ../../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-DP-2/i2c-13/
lrwxrwxrwx 1 root root 0 Sep 20 09:53 i2c-14 -> ../../../devices/pci0000:00/0000:00:1f.4/i2c-14/
lrwxrwxrwx 1 root root 0 Sep 20 09:53 i2c-15 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-15/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-2 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-2/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-3 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-3/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-4 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-4/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-5 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-5/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-6 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-6/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-7 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-7/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-8 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-8/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-9 -> ../../../devices/pci0000:00/0000:00:02.0/i2c-9/
lrwxrwxrwx 1 root root 0 Sep 20 09:46 i2c-VEN_0488:00 -> ../../../devices/pci0000:00/0000:00:15.3/i2c_designware.1/i2c-1/i2c-VEN_0488:00/
Das sagt mir leider nix. Insbesonder sehe ich keinen INT3537:00, so wie man ihn oben im Journal sehen kann.
Deutet das auf ein Problem hin?
Der i2c-VEN_0488:00 hat nur etwas mit einer Maus zu tun. Die letzte Info, die mir noch einfällt ist
Code:
~>v4l2-ctl --list-devices
ipu6 (PCI:0000:00:05.0):
    /dev/video0
    /dev/video1
    /dev/video2
    /dev/video3
    ... geht weiter bis video47 !!??
    /dev/media0
Warum ich hier 'nur' 47 Devices habe (und nicht 314 ;)) weiß der Geiger. Die allgemeine Standardinfo zum Graphik System ist (ohne externe USB Webcam)
Code:
~>inxi -Ga
Graphics:
  Device-1: Intel Meteor Lake-P [Intel Arc Graphics] vendor: Dell driver: i915
    v: kernel alternate: xe arch: Xe-LPG process: Intel 4 (7nm+) built: 2023+
    ports: active: DP-5,eDP-1 empty: DP-1, DP-2, DP-3, DP-4, HDMI-A-1
    bus-ID: 00:02.0 chip-ID: 8086:7d55 class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.15 with: Xwayland v: 24.1.8
    compositor: kwin_wayland driver: X: loaded: modesetting unloaded: vesa
    alternate: fbdev,intel dri: iris gpu: i915 d-rect: 3840x2400 display-ID: 0
  Monitor-1: DP-5 pos: top-right model: Samsung S24C650 serial: HTNF304997
    built: 2014 res: mode: 1920x1200 hz: 60 scale: 100% (1) dpi: 94 gamma: 1.2
    size: 518x324mm (20.39x12.76") diag: 611mm (24.1") ratio: 16:10 modes:
    max: 1920x1200 min: 640x480
  Monitor-2: eDP-1 pos: bottom-l model: AU Optronics 0xc3a3 built: 2022 res:
    mode: 1920x1200 hz: 60 scale: 135% (1.35) to: 1422x889 dpi: 162 gamma: 1.2
    size: 301x188mm (11.85x7.4") diag: 355mm (14") ratio: 16:10
    modes: 1920x1200
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
    device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
    drv: iris x11: drv: iris
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 25.2.2 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel Arc Graphics (MTL)
    device-ID: 8086:7d55 memory: 30.08 GiB unified: yes display-ID: :1.0
  API: Vulkan v: 1.4.321 layers: 1 device: 0 type: integrated-gpu name: Intel
    Arc Graphics (MTL) driver: mesa intel v: 25.2.2 device-ID: 8086:7d55
    surfaces: N/A device: 1 type: cpu name: llvmpipe (LLVM 20.1.8 256 bits)
    driver: mesa llvmpipe v: 25.2.2 (LLVM 20.1.8) device-ID: 10005:0000
    surfaces: N/A
  Info: Tools: api: eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor wl: wayland-info
    x11: xdpyinfo, xprop, xrandr

Wie schon gesagt, für mich sieht das alles völlig harmlos aus - aber die Kamera funktioniert überhaupt nicht.
Seht Ihr irgend einen Hinweis auf das Problem?

(Edit: Dieser Laptop hat im BIOS einen Kamera-Switch ... und der ist natürlich auf "ein" gestellt.)
 
Zuletzt bearbeitet:
Der Device2 ist so ein "Lattice aggregator Dingens". Im Prinzip sollte der (glaube ich) genau auch für die Kamere sein, aber ich sehe da nichts.

Ich habe hierzu nochmal im Web gesucht und dabei einen weiteren der vielen Bugreports (diesmal unter RH) zu IPU6 gefunden der evtl. "in der Nähe" des Problems ist 2332997 – IPU6 camera on Dell Latitude 7450 laptop with ov02e10 sensor not working - requires Lattice MIPI aggregator IO-expander support. Schlau werde ich daraus aber auch nicht wirklich.
Dort steht u.a. das man "usbio" Treiber von "rpmfusion" brauchen würde um die Kamera überhaupt erst einmal in den i2c zu bekommen. ("If there is no output then the usbio drivers which are part of akmod-intel-ipu6 have not been installed correctly.") Das klingt so, als ob ich noch weit davon entfernt wäre eine funktinierende Kamera zu haben.
In meinen installierten OpenSuse Repos gibt es keine dedizierte Software mit ipu6 Substring. Unter openSUSE Software finde ich nur ähnlich klingende Community-Packages, von denen nicht alle unter Tumbleweed zu kompilieren scheinen. So etwas würde ich sehr ungern anfassen.

Code:
~ # lsusb -v | grep -A 85 -B 1  e\ 002
Bus 003 Device 002: ID 2ac1:20c9 SLS Lattice AI USB 2.0
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol       255 
  bMaxPacketSize0        64
  idVendor           0x2ac1 SLS
  idProduct          0x20c9 Lattice AI USB 2.0
  bcdDevice            0.10
  iManufacturer           1 SLS
  iProduct                2 Lattice AI USB 2.0
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0020
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 CONFIG1
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol    255 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
Binary Object Store Descriptor:
  bLength                 5
  bDescriptorType        15
  wTotalLength       0x0028
  bNumDeviceCaps          2
  USB 2.0 Extension Device Capability:
    bLength                 7
    bDescriptorType        16
    bDevCapabilityType      2
    bmAttributes   0x00000006
      BESL Link Power Management (LPM) Supported
  Platform Device Capability:
    bLength                28
    bDescriptorType        16
    bDevCapabilityType      5
    bReserved               0
    PlatformCapabilityUUID    {d8dd60df-4589-4cc7-9cd2-659d9e648a9f}
    CapabilityData[0]    0x00
    CapabilityData[1]    0x00
    CapabilityData[2]    0x03
    CapabilityData[3]    0x06
    CapabilityData[4]    0x4a
    CapabilityData[5]    0x01
    CapabilityData[6]    0x20
    CapabilityData[7]    0x00
Device Status:     0x0000
  (Bus Powered)
 
Aha. Ok.
Das soll wohl heißen, dass ich mich wegen CONFIG_VIDEO_INTEL_IPU6=m im Tumbleweed 6.16.6-er zu früh gefreut habe.
Wann der 6.18-er in Tumbleweed wohl ankommen wird?? ... und ob er dann auch wirklich den Intel USBIO USB IO Expander Driver unterstützt?? ...
Intel integrated hardware :mad:
 
Oben