-
Notifications
You must be signed in to change notification settings - Fork 64
Description
System Information
Laptop Model: Huawei MateBook Pro VGHH-XX
CPU: Intel(R) Core(TM) Ultra 7 155H
BIOS Version: 1.18
Distribution: Arch Linux (Omarchy)
Kernel: 6.17.9-arch1-1
Display Manager: Wayland/Hyprland
Camera Hardware
Detected ACPI Devices:
OVTI01AS:00 - OmniVision OV01A1S (1MP IR camera, likely Windows Hello)
OVTI13B1:00 - OmniVision OV13B10 (13MP main camera)
ACPI Status:
$ cat /sys/bus/acpi/devices/OVTI*/status
0
0Both cameras show status 0 (disabled), despite Camera Enable being ON in BIOS.
INT3472 PMIC Devices: 19 detected (INT3472:00 through INT3472:12)
IPU6 Status
$ sudo dmesg | grep -i ipu6
[ 2.XXXXXX] intel-ipu6 0000:00:05.0: IPU6 in secure modeMedia Controller Topology:
- 6 CSI-2 interfaces (Intel IPU6 CSI2 0-5)
- 48 capture devices (/dev/video0 through /dev/video47)
- All configured for SGRBG10_1X10/4096x3072 (raw Bayer format)
$ media-ctl -d /dev/media0 -p
# Shows 6 CSI-2 receivers, each with 8 output pads
# No sensor devices connected to any CSI-2 sink padslibcamera Status:
$ cam -l
[17:51:51.162905235] [2443340] INFO SimplePipeline simple.cpp:1686 No sensor found for /dev/media0
Available cameras:Installed Packages
intel-ipu6-camera-bin r92.30e8766-1
intel-ipu6-dkms-git r245.69b2fde9e-1
intel-ipu6ep-camera-hal-git r126.c933525-1
intel-ipu6ep-camera-hal-git-debug r126.c933525-1
libcamera 0.5.2-1
libcamera-ipa 0.5.2-1
libcamera-tools 0.5.2-1Loaded Kernel Modules
$ lsmod | grep -E "ipu6|ov|imx"
overlay 245760 0
intel_ipu6_psys 114688 0
intel_ipu6_isys 143360 0
v4l2_fwnode 36864 1 intel_ipu6_isys
videobuf2_dma_sg 24576 1 intel_ipu6_isys
videobuf2_v4l2 40960 2 intel_ipu6_isys,uvcvideo
videobuf2_common 94208 6 videobuf2_vmalloc,videobuf2_v4l2,intel_ipu6_isys,uvcvideo,videobuf2_dma_sg,videobuf2_memops
v4l2_async 32768 2 v4l2_fwnode,intel_ipu6_isys
videodev 401408 5 v4l2_async,v4l2_fwnode,videobuf2_v4l2,intel_ipu6_isys,uvcvideo
mc 90112 7 v4l2_async,videodev,snd_usb_audio,videobuf2_v4l2,intel_ipu6_isys,uvcvideo,videobuf2_common
intel_ipu6 86016 2 intel_ipu6_isys,intel_ipu6_psys
ipu_bridge 24576 2 intel_ipu6,intel_ipu6_isys
pmt_discovery 16384 1 pmt_telemetry
pmt_class 20480 2 pmt_telemetry,pmt_discoveryNote: No OmniVision sensor modules (ov13b10, ov01a10, etc.) are loaded, despite being available in the kernel.
Available Sensor Modules
$ find /lib/modules/$(uname -r) -name "ov*.ko*" -o -name "imx*.ko*" | grep camera
# Multiple OV and IMX sensor modules available including:
# ov01a10.ko.zst
# ov13b10.ko.zst (matches OVTI13B1)
# imx258.ko.zst
# etc.Manual modprobe ov13b10 loads successfully but produces no dmesg output and doesn't bind to ACPI devices.
I2C Bus Status
$ ls /sys/bus/i2c/devices/
# Multiple i2c buses (i2c-0 through i2c-20)
# No OmniVision camera devices present
# Expected devices like i2c-OVTI13B1:00 or i2c-OVTI01AS:00 are missingThe ACPI camera devices exist but are not bridged to I2C - no physical_node links or I2C device bindings.
BIOS Settings
Advanced → Camera Enable: ON (blue toggle, enabled)
This confirms the hardware is not disabled at BIOS level.
Troubleshooting Attempts
1. ACPI OSI Override
Attempted to force Windows ACPI behavior:
Kernel Parameter Tested: acpi_osi=Windows 2020
Result: No change - ACPI status remained 0 for both cameras.
Rationale: Huawei's ACPI firmware might enable camera devices only when Windows OS is detected. This approach works on some laptops but did not affect the OVTI devices.
2. Manual Sensor Module Loading
$ sudo modprobe ov13b10
$ sudo modprobe ov01a10
$ dmesg | tail -20
# No new messages - modules loaded but didn't bind to any devices3. I2C Device Detection
No camera sensors appear on any I2C bus, suggesting ipu_bridge is not creating the necessary I2C client devices from ACPI.
Root Cause Analysis
The fundamental issue: ipu_bridge module is loaded but failing to:
- Parse the ACPI SSDB (Sensor Static Database) entries for OVTI01AS and OVTI13B1
- Create I2C client devices for these sensors
- Bind the appropriate sensor drivers (ov01a10/ov13b10) to them
- Connect them to IPU6 CSI-2 interfaces
Evidence:
- ACPI devices exist (OVTI01AS:00, OVTI13B1:00) with status=0
- 19 INT3472 PMIC devices detected (camera power management)
- IPU6 CSI-2 receivers initialized and ready
- Sensor drivers available but not loaded/bound
- No I2C device bindings created
- libcamera reports "No sensor found"
Hypothesis: Huawei's ACPI implementation either:
- Uses non-standard SSDB format that
ipu_bridgecan't parse - Requires specific ACPI methods to be called before exposing sensors
- Has ACPI status set incorrectly (status=0 instead of 15)
- Needs vendor-specific quirks/workarounds
Similar Issues
This appears similar to other laptop manufacturers with IPU6 cameras where ACPI tables don't follow Intel's reference implementation (e.g., certain Dell, Samsung, ASUS models).
Questions
-
Does
ipu_bridgesupport the ACPI format used by Huawei MateBook Pro? Are there known quirks needed? -
Why do ACPI devices show status=0 despite BIOS having Camera Enable=ON? Is there an ACPI method that needs to be called to enable them?
-
Can we manually force I2C device creation? Is there a way to bypass
ipu_bridgeand manually create I2C clients for the sensors? -
Should we expect dmesg errors from
ipu_bridge? Currently there are no error messages, just silent failure to create devices. -
Is there a way to dump/inspect the ACPI SSDB data to verify it exists and is correctly formatted?
Logs Available
I can provide:
- Full
dmesgoutput - Complete
/proc/acpidump - ACPI DSDT/SSDT tables (extracted via
acpidump) - Detailed
media-ctltopology - Any other diagnostic output needed
Expected Behavior
- ACPI devices should show status=15 (enabled)
ipu_bridgeshould create I2C devices (i2c-OVTI13B1:00, i2c-OVTI01AS:00)- Sensor modules should auto-load and bind
- libcamera should detect cameras
- Applications like Chromium should be able to access camera
Workaround
Currently using external USB webcam as a temporary solution.
Any guidance on debugging this further or information needed to add Huawei MateBook Pro support would be greatly appreciated!