You are not logged in.
Things finally work here with Gnome Snapshot after upgrading everything to the latest (I don't have any testing repo enabled). The one thing I was missing is the `pipewire-libcamera` package.
Do you have any AUR packages installed? Like
intel-ipu6-camera-hal-git
intel-ipu6ep-camera-hal-git
intel-ipu6-dkms-git
intel-ipu6-camera-bin
Because my system is up to date and I can't use the cam so far.
Offline
I don't have any of these packages installed. I did however add `KERNEL=="udmabuf", TAG+="uaccess"` to /usr/lib/udev/rules.d/70-uaccess.rules at line 37 , but AFAIK this was everything.
Offline
Interesting, even if I add that line to the file I cannot get any images from the camera. However, the camera is now at least recognized by qcam. Cheese sees the camera as well as long as I don't run it as sudo, however no image is generated. Running it as user, it lists a whole bunch of ipu6 cameras, but none of them works as far as I tried. Snapshot does not see the camera, as does chromium or firefox.
cam -l returns:
[1:28:45.094923185] [185032] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[1:28:45.094935608] [185032] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[1:28:45.094946052] [185032] INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[1:28:45.105037747] [185033] INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0
Edit: I have no idea why but the camera recognition reported above was only temporary. I was not able to reconstruct it, as of now my system does not find the camera any more.
Last edited by halogene (2024-10-21 07:39:35)
Offline
After updating to the latest kernel (6.11.3), I see some kind of progress (although the cam is still not working).
cam -l now recognizes the camera (but still shows error messages):
$ cam -l
[0:08:13.427915563] [4309] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:08:13.427937849] [4309] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:08:13.427952792] [4309] INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:08:13.441908483] [4310] WARN CameraSensorProperties camera_sensor_properties.cpp:293 No static properties available for 'ov01a10'
[0:08:13.441917763] [4310] WARN CameraSensorProperties camera_sensor_properties.cpp:295 Please consider updating the camera sensor properties database
[0:08:13.442003382] [4310] ERROR DmaBufAllocator dma_buf_allocator.cpp:116 Could not open any dma-buf provider
[0:08:13.442018607] [4310] ERROR SoftwareIsp software_isp.cpp:91 Failed to create DmaBufAllocator object
[0:08:13.442021101] [4310] WARN SimplePipeline simple.cpp:531 Failed to create software ISP, disabling software debayering
Available cameras:
1: Internal front camera (\_SB_.PC00.LNK1)
And v4l2-ctl --all recognizes a ipu6 cam:
$ v4l2-ctl --all
Driver Info:
Driver name : isys
Card type : ipu6
Bus info :
Driver version : 6.11.3
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
And finally, dmesg yields
$ sudo dmesg | grep ipu6
[ 3.391898] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[ 3.392187] intel-ipu6 0000:00:05.0: IPU6 in non-secure mode touch 0x0 mask 0xff
[ 3.399145] intel-ipu6 0000:00:05.0: FW version: 20230925
...
[ 12.075556] intel-ipu6 0000:00:05.0: Found supported sensor OVTI01A0:00
[ 12.075706] intel-ipu6 0000:00:05.0: Connected 1 cameras
[ 12.080622] intel-ipu6 0000:00:05.0: IPU6-v3[465d] hardware version 5
I have pipewire, libcamera, and pipewire-libcamera installed. I also installed pipwire-v4l2 and v4l2loopback-dkms.
Offline
It would appear that there's some variation on platforms with how sensors are connected. My platform reports as
DMI: Dell Inc. Latitude 7440/04F65R, BIOS 1.9.1 11/07/2023
on
6.11.3-arch1-1
. The relevant error messages in dmesg are:
kernel: intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x0 mask 0x0
kernel: intel-ipu6 0000:00:05.0: FW version: 20230925
kernel: int3472-discrete INT3472:06: GPIO type 0x02 unknown; the sensor may not work
kernel: vsc-tp spi-INTC1009:00: probe with driver vsc-tp failed with error -22
I can't quite figure out the topology of how things are connected, but the int3472 driver error would seem to be relevant.
Offline
Update on my current situation (HP Spectre x360 2-in-1 Laptop 16-aa0xxx):
dmesg output:
[ 10.108337] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[ 10.108536] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[ 10.123011] intel-ipu6 0000:00:05.0: FW version: 20230925
[ 10.125460] intel-ipu6 0000:00:05.0: Found supported sensor OVTI08F4:00
[ 10.125543] intel-ipu6 0000:00:05.0: Connected 1 cameras
[ 10.126696] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[ 10.171463] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[ 10.222668] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[ 10.222677] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6
v4l2-ctl --all:
Driver Info:
Driver name : isys
Card type : ipu6
Bus info :
Driver version : 6.11.3
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
cam -l:
[0:05:04.081019172] [3964] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:05:04.081040412] [3964] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:05:04.081055181] [3964] INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:05:04.094706137] [3965] INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0
Available cameras:
The line
KERNEL=="udmabuf", TAG+="uaccess"
in the Webcam section of /usr/lib/udev/rules.d/70-uaccess.rules does not seem to make any difference.
Offline
peopleshit wrote:itayf wrote:Sorry to bring even more pessimism, after upgrading to 6.10, using using Dell XPS 13 Plus (9320) the camera doesn't even seem to be recognized.
Have anyone with that laptop got something else?
I'm using the same laptop, the camera isn't recognized too.
dmesg:
> sudo dmesg | grep ipu6 [ 1.764285] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002) [ 1.764485] intel-ipu6 0000:00:05.0: IPU6 in non-secure mode touch 0x0 mask 0xff [ 1.764518] intel-ipu6 0000:00:05.0: Direct firmware load for intel/ipu/ipu6ep_fw.bin failed with error -2 [ 1.764521] intel-ipu6 0000:00:05.0: error -ENOENT: Requesting signed firmware intel/ipu/ipu6ep_fw.bin failed [ 1.764523] intel-ipu6 0000:00:05.0: probe with driver intel-ipu6 failed with error -2
I got the same error because the firmware was stored on an encrypted device. I fixed it by adding the complete path to the firmware in FILES array of mkinitcpio.conf (and generate again the image). I don't know wether it is a valid solution, but the firmware is now loaded.
Did you do something else ? I'm on the exact same situation and adding the complete path of the firmware in FILES array didn't change anything (even after image regeneration).
Offline
Did you do something else ? I'm on the exact same situation and adding the complete path of the firmware in FILES array didn't change anything (even after image regeneration).
Can anyone tell me which firmware files are needed for the camera and where they are located? My system is encrypted too... and even with 6.11.4 the modules do not get loaded:
[0:18:48.273897168] [5007] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:18:48.273918001] [5007] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:18:48.273934832] [5007] INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:18:48.286942256] [5008] INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0
Available cameras:
Offline
Techlis wrote:Did you do something else ? I'm on the exact same situation and adding the complete path of the firmware in FILES array didn't change anything (even after image regeneration).
Can anyone tell me which firmware files are needed for the camera and where they are located? My system is encrypted too... and even with 6.11.4 the modules do not get loaded:
[0:18:48.273897168] [5007] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found [0:18:48.273918001] [5007] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info [0:18:48.273934832] [5007] INFO Camera camera_manager.cpp:325 libcamera v0.3.2 [0:18:48.286942256] [5008] INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0 Available cameras:
From my understanding, these files:
/usr/lib/firmware/intel/ipu/ipu6_fw.bin.zst
/usr/lib/firmware/intel/ipu/ipu6ep_fw.bin.zst
/usr/lib/firmware/intel/ipu/ipu6epadln_fw.bin.zst
/usr/lib/firmware/intel/ipu/ipu6epmtl_fw.bin.zst
/usr/lib/firmware/intel/ipu/ipu6se_fw.bin.zst
Although it seems to have no effect on my system, so it might not be enough.
Last edited by Techlis (2024-10-23 07:28:28)
Offline
I was able to get this working on an Ubuntu 24. Details are here: https://github.com/intel/ipu6-drivers/issues/223
Offline
Finally got the whole thing working on Arch.
From what I understand, you need to make sure libcamera is working properly, and then it's up to either gstreamer or pipewire to make it usable in other apps, e.g. Firefox.
First, make sure your sensor is supported in the mainline kernel (ov2740, ov01a10, hi556). If it isn't, I suggest reading Hans blogpost https://hansdegoede.dreamwidth.org/28841.html , as you might be able to help him with getting your sensor supported upstream.
These are the packages I have installed that I think are relevant:
extra/gst-plugin-libcamera 0.3.2-1
extra/pipewire-libcamera 1:1.2.6-1
extra/libcamera-tools 0.3.2-1
extra/libcamera-ipa 0.3.2-1
extra/libcamera 0.3.2-1
aur/intel-ivsc-firmware
I'm not sure the last one is actually needed. I'm running the latest Arch kernel, 6.11.5-arch1-1. I do not have any package with "ipu6" in its name.
I also created a file at /etc/udev/rules.d/camera.rules with this line in it:
KERNEL=="udmabuf", TAG+="uaccess"
The first step is to see if libcamera is working. I've checked using the libcamera util:
cam -c 1 -F'#.bin' -C
This should generate a lot of files (stop it after a second with Ctrl+C) and turn on the camera light if everything is working correctly. If it isn't, libcamera is probably not working correctly and there's no point in trying to get pipewire or gstreamer to work, because they all depend on this. If it's working with sudo, it means there's some permissions issue. Make sure you created that camera.rules file and rebooted.
Once you got libcamera working, you can test gsteamer like this:
gst-launch-1.0 libcamerasrc ! queue ! glimagesink
This should be the first time you actually see an image from your camera. Hooray! If it isn't working, try with sudo. If it's working with sudo, probably the camera.rules file isn't applied. Try restarting.
Now that our camera is working with gstreamer, let's check it with pipewire. You can try it in "GNOME Snapshot" (extra/snapshot). This can be a little tricky as I think it depends on some desktop portal to ask for camera permissions, so make sure you're running a modern and well-configured desktop environment (you need to have xdg-desktop-portal-* configured and running).
If this is working, the last step you'd probably want is to have it running in Firefox. Make sure media.webrtc.camera.allow-pipewire is set to true in about:config, restart Firefox, and test your camera here: https://mozilla.github.io/webrtc-landing/gum_test.html. I've tested with extra/firefox-developer-edition 132.0b9-1, and it's working fine also using video chatting services like Google Meet.
Hope this is useful for some!
Last edited by bjesus (2024-10-27 16:00:48)
Offline
From my understanding, these files:
Thank you! My system is encrypted too, but I believe the firmware is loaded nonetheless. I think I should not have the following output of "sudo dmesg | grep ipu6" otherwise:
[ 10.896018] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
[ 10.896274] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0
[ 10.911095] intel-ipu6 0000:00:05.0: FW version: 20230925
[ 10.913464] intel-ipu6 0000:00:05.0: Found supported sensor OVTI08F4:00
[ 10.913517] intel-ipu6 0000:00:05.0: Connected 1 cameras
[ 10.915186] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
[ 10.960336] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
[ 11.010853] intel-ipu6 0000:00:05.0: CSE authenticate_run done
[ 11.010858] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6
This looks already promising. However, reading up Hans de Goede's blog, there is a mention of my specific sensor (OVTI08F4 / OV13B10) and even the notebook model I have there and he seems not to have been able to get the sensor running on it. Lacking the skill to fiddle with code I probably just wait and watch :oS
Offline
Techlis wrote:From my understanding, these files:
Thank you! My system is encrypted too, but I believe the firmware is loaded nonetheless. I think I should not have the following output of "sudo dmesg | grep ipu6" otherwise:
[ 10.896018] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002) [ 10.896274] intel-ipu6 0000:00:05.0: IPU6 in secure mode touch 0x80000000 mask 0x0 [ 10.911095] intel-ipu6 0000:00:05.0: FW version: 20230925 [ 10.913464] intel-ipu6 0000:00:05.0: Found supported sensor OVTI08F4:00 [ 10.913517] intel-ipu6 0000:00:05.0: Connected 1 cameras [ 10.915186] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE [ 10.960336] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE [ 11.010853] intel-ipu6 0000:00:05.0: CSE authenticate_run done [ 11.010858] intel-ipu6 0000:00:05.0: IPU6-v4[7d19] hardware version 6
This looks already promising. However, reading up Hans de Goede's blog, there is a mention of my specific sensor (OVTI08F4 / OV13B10) and even the notebook model I have there and he seems not to have been able to get the sensor running on it. Lacking the skill to fiddle with code I probably just wait and watch :oS
Glad the first step worked for you ! I can't get the firmware loaded in my system though, and unfortunately I have no clue on what is going on.
Last edited by Techlis (Yesterday 08:40:50)
Offline
Glad the first step worked for you ! I can't get the firmware loaded in my system though, and unfortunately I have no clue on what is going on.
For the record: I did not give mkinitcpio any path information to the firmware files, the firmware seems to be loaded without the help of paths in mkinitcpio.conf. I don't know how your system is encrypted, but with my system the files are on the encrypted root partition which of course gets decrypted and opened during startup, and I believe the firmware is being loaded after that. Did you have a look at the supported sensors on Hans de Goede's site?
Offline