You are not logged in.
I don't think the issue was powertop in the end, still trying to figure it out. If someone is experiencing the same, please do tell. I'm using pipewire 0.3.56.
It seems like any run of powertop --auto-tune during boot is enough to throw the sound off (playing through speakers will stop after a while). You don't need the sof kernel either, upstream works fine, but you can't use powertop --auto-tune, at least on my system. If someone has found a way around this, please do tell...
Offline
Mads wrote:I don't think the issue was powertop in the end, still trying to figure it out. If someone is experiencing the same, please do tell. I'm using pipewire 0.3.56.
It seems like any run of powertop --auto-tune during boot is enough to throw the sound off (playing through speakers will stop after a while). You don't need the sof kernel either, upstream works fine, but you can't use powertop --auto-tune, at least on my system. If someone has found a way around this, please do tell...
I wonder if requiring pipewire to keep it active is not enough to "solve" that (but I guess it's counter intuitive for battery life)
example how to keep it open
Offline
If you're on Gentoo, the fol4 overlay has ebuilds with ipu6-drivers and ivsc-driver. You still need to fix userspace and firmware yourself, but then at least you have an easy way of rebuilding modules.
They don't check if you have the required CONFIG set yet, so look out for depmod symbol errors. You might need to enable some media devices (e.g. IPU3) to make the kernel include all dependent libs in the build.
Offline
Seems like zebra-ok on github was successful in building the modules with dkms using ubuntus srpms: https://github.com/intel/ipu6-driver/is … 1191848414
So with that method of building the module, I guess there's no need for that v4l2loopback workaround. Someone should test if it works properly, I'm a bit fed up with this now...
Edit: Sorry I didn't see the previous post, I had the tab open
Have you found a configuration to make the webcam work without having to run the gst-launch command manually before apps can access the camera?
Offline
Hi Mads,
I got it working.
sudo modprobe v4l2loopback video_nr=1 card_label=v4l2 exclusive_caps=1 max_buffers=2
sudo -E gst-launch-1.0 icamerasrc buffer-count=7 device-name=ov01a10-uf ! video/x-raw,format=YUY2,width=1280,height=720 ! v4l2sink device=/dev/video1
first of all thank you very much for your efforts so far. I am now at the same point as you with the gstreamer error message. After I run the modprobe and gst-launch I still get:
# gst-launch-1.0 icamerasrc buffer-count=7 device-name=ov01a10-uf ! video/x-raw,format=YUY2,width=1280,height=720 ! v4l2sink device=/dev/video1
Setting pipeline to PAUSED ...
[08-06 20:36:27.92] CamHAL[INF] aiqb file name ov01a10.aiqb
[08-06 20:36:27.93] CamHAL[INF] aiqb file name ov01a10.aiqb
[08-06 20:36:27.93] CamHAL[INF] aiqb file name ov01a10.aiqb
[08-06 20:36:27.93] CamHAL[INF] aiqb file name ov01a10.aiqb
[08-06 20:36:27.93] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb
[08-06 20:36:27.93] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb
[08-06 20:36:27.93] CamHAL[ERR] Failed to find DevName for cameraId: 0, get video node: ov01a10 , devname: /dev/v4l-subdev1
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[08-06 20:36:27.99] CamHAL[ERR] Get entity fail for calling getEntityById
[08-06 20:36:27.99] CamHAL[ERR] Get entity fail for calling getEntityById
[08-06 20:36:27.99] CamHAL[ERR] setup Link ov01a10 [-1:0] ==> Intel IPU6 CSI-2 [-1x0] enable 1 failed.
[08-06 20:36:27.99] CamHAL[ERR] set MediaCtlConf McLink failed: ret = -1
[08-06 20:36:27.99] CamHAL[ERR] set up mediaCtl failed
[08-06 20:36:27.99] CamHAL[ERR] @configure Device Configure failed
[08-06 20:36:27.99] CamHAL[ERR] failed to config streams.
ERROR: from element /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0: src pad: Internal data flow error.
Additional debug info:
gstcambasesrc.cpp(3143): gst_cam_base_src_loop (): /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:00.004165145
Setting pipeline to NULL ...
Freeing pipeline ...
ipu6 kernel modules are loaded:
# lsmod | grep ipu
intel_ipu6_isys 139264 0
videobuf2_dma_contig 28672 1 intel_ipu6_isys
v4l2_fwnode 32768 1 intel_ipu6_isys
v4l2_async 32768 2 v4l2_fwnode,intel_ipu6_isys
videobuf2_v4l2 40960 1 intel_ipu6_isys
videobuf2_common 86016 4 videobuf2_dma_contig,videobuf2_v4l2,intel_ipu6_isys,videobuf2_memops
videodev 307200 5 v4l2_async,videobuf2_v4l2,v4l2loopback,intel_ipu6_isys,videobuf2_common
mc 69632 4 videodev,videobuf2_v4l2,intel_ipu6_isys,videobuf2_common
intel_ipu6_psys 110592 0
intel_ipu6 114688 2 intel_ipu6_isys,intel_ipu6_psys
The modprobe command for the v4l2loopback segfaults if I don't boot with kernel parameter ibt=off but with it gets loaded fine.
# lsmod | grep loop
v4l2loopback 57344 0
videodev 307200 5 v4l2_async,videobuf2_v4l2,v4l2loopback,intel_ipu6_isys,videobuf2_common
Kernel messages look good so far except for the "set secure mode" error:
# journalctl -k --grep=ipu6
intel-ipu6 intel-ipu: enabling device (0000 -> 0002)
intel-ipu6 intel-ipu: Device 0x465d (rev: 0x2)
intel-ipu6 intel-ipu: physical base address 0x603c000000
intel-ipu6 intel-ipu: mapped as: 0x00000000d405edd1
intel-ipu6 intel-ipu: Unable to set secure mode
intel-ipu6 intel-ipu: IPU in non-secure mode
intel-ipu6 intel-ipu: Skip ipc reset for non-secure mode
intel-ipu6 intel-ipu: IPC reset done
intel-ipu6 intel-ipu: cpd file name: intel/ipu6ep_fw.bin
intel-ipu6 intel-ipu: FW version: 20211011
intel-ipu6 intel-ipu: IPU driver version 1.0
intel-ipu6-psys intel-ipu6-psys0: pkg_dir entry count:8
intel-ipu6-psys intel-ipu6-psys0: psys probe minor: 0
intel-ipu6 intel-ipu: IPU in non-secure mode
intel-ipu6 intel-ipu: Skip ipc reset for non-secure mode
v4l2-ctl also recognizes:
# v4l2-ctl --all
Driver Info:
Driver name : intel-ipu6-isys
Card type : ipu6
Bus info : PCI:pci:pci0000:00
Driver version : 5.18.16
Capabilities : 0x84201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04201000
Video Capture Multiplanar
Streaming
Extended Pix Format
Media Driver Info:
Driver name : intel-ipu6-isys
Model : ipu6
Serial :
Bus info : pci:pci0000:00
Media version : 5.18.16
Hardware revision: 0x00000000 (0)
Driver version : 5.18.16
Even an strace did not reveal anything useful at least to me.
I am out of ideas. What am I missing?
Offline
@sxw The sensor kernel module is missing. Look at my output, there is "ov01a10", too
$ lsmod | grep ipu
intel_ipu6_isys 126976 0
videobuf2_dma_contig 20480 1 intel_ipu6_isys
videobuf2_v4l2 36864 1 intel_ipu6_isys
videobuf2_common 69632 4 videobuf2_dma_contig,videobuf2_v4l2,intel_ipu6_isys,videobuf2_memops
intel_ipu6_psys 98304 0
intel_ipu6 94208 2 intel_ipu6_isys,intel_ipu6_psys
v4l2_fwnode 32768 2 ov01a10,intel_ipu6_isys
v4l2_async 28672 3 v4l2_fwnode,ov01a10,intel_ipu6_isys
videodev 274432 6 v4l2_async,videobuf2_v4l2,ov01a10,v4l2loopback,intel_ipu6_isys,videobuf2_common
mc 69632 5 videodev,videobuf2_v4l2,ov01a10,intel_ipu6_isys,videobuf2_common
How did you build the modules? After using vicamos repo and applying their patches for Ubuntu, and afterwards building first the ivsc, then the ipu6 with dkms, it worked.
Offline
@sxw The sensor kernel module is missing
Oh, indeed. Good point. I checked the module tree and found the ov01a1s module what is appearently the wrong one. Maybe I have to go back and check if I patched the sources correctly.
When you are talking about "vicamos repo" you are referring to https://github.com/vicamo/ipu6-drivers/ … inst-v5.18 ?
Thank you!
Offline
Have you found a configuration to make the webcam work without having to run the gst-launch command manually before apps can access the camera?
No, the reasing I said that was due to a misunderstanding. I thought it was working with the ubuntu provided drivers, but they were the same in the end.
So I still use gstreamer. I actually have started with using gstreamer for other webcams too, because cheap webcams often only give the best resolution when using codecs like MJPEG, and you can't get browsers to use that. But by using gstreamer you can convert it to something that the browser accepts, thus you end up with a video stream that is a lot better.
Last edited by Mads (2022-08-08 10:16:54)
Offline
@sxw I had exactly the same output as you.
But running
journalctl -k --grep=ivsc
told me that that actually ivsc-firmware hasn't been installed properly. So instead of copying to "/lib/firmware/vsc" one should copy it "/lib/firmware/vsc/soc_a1_prod/" and add corresponding "_a1_prod" suffixes to the files. See the notice for production platform.
after that running "gst-launch" with sudo did the trick for me!
Offline
@sxw
Check the last page, I linked the launchpad repos from vicamo.
@Mads
But how does Ubuntu solve it? Do you also need to run a command on the terminal before you plan to use the webcam?
Offline
Hello all and thank you for efforts !
my camera currently works on my Dell XPS 13 Plus. :-)
I'm sharing my steps, maybe it could help someone else (i hope so).
1) i followed procedure described by sachkris
NB : compile linux kernel was mandatory for me, because of error with other ways tested
2) i followed feedback provided by Dell support and available here : https://bugs.launchpad.net/ubuntu/+sour … omments/40
NB : i'm not using Arch but KDE Neon (ubuntu LTS + latest KDE Plasma)
Currently i dont know what made my camera working, because i first tested dell procedure (found before Dell reply feedback) and it didn't work.
So maybe some binary copy + dell procedure + reboot could explain it.
It's in french, but i made a step by step procedure to help other Dell XPS 13 Plus owners right here : https://coder-pour-changer-de-vie.com/d … plus-9320/
NB : the bash step could help, i wrote a bash to update .Konfig and Makefiles in one step.
Have a good day !
Nicolas.
Offline
@Mads
But how does Ubuntu solve it? Do you also need to run a command on the terminal before you plan to use the webcam?
I'm not sure, but I thought that was the case..? Do anyone have the opportunity to test with the Ubuntu OEM image and see?
Offline
@sxw
Check the last page, I linked the launchpad repos from vicamo.
Finally, I got it!
It indeed was the ov01a10 module that was not build because I kept trying the out-of-kernel-tree build variant. Doing the in-kernel-tree variant did the trick.
Thank you very much to all of you.
Offline
Another post in this saga. I previously mentioned that I got sound freezes if I used powertop --auto-tune. After a series of tests, I found out that the triggering setting was if I enabled powersaving on my wifi card. Really strange. If I enable everything with powertop _except_ powersaving on my wifi, the sound doesn't freeze anymore.
Posted about it here (and the script I use for applying powertop settings is there too): https://github.com/thesofproject/linux/ … 1214373478
Last edited by Mads (2022-08-14 13:13:33)
Offline
As an addendum to the sound issue - it seems like powertop --auto-tune is pretty important for this laptop in regards to S2idle - since this chipset does not have S3 suspend but S2idle, power settings for each device seems crucial for the laptop to be able to power down properly when entering S2idle mode.
So, I added that power management for wifi is enabled before entering suspend, and my updated systemd sleep script (/lib/systemd/system-sleep/webcammodules.sh) now looks like this:
#!/bin/bash
if [ "${1}" == "pre" ]; then
# wifi
echo 'auto' > '/sys/bus/pci/devices/0000:00:14.3/power/control'
rmmod intel_ipu6_isys
rmmod intel_ipu6_psys
rmmod ov01a10
rmmod intel_ipu6
rmmod mei_ace
rmmod mei_csi
rmmod intel_vsc
elif [ "${1}" == "post" ]; then
# wifi
echo 'on' > '/sys/bus/pci/devices/0000:00:14.3/power/control'
modprobe intel_vsc
modprobe mei_csi
modprobe mei_ace
modprobe intel_ipu6
modprobe intel_ipu6_isys
modprobe intel_ipu6_psys
modprobe ov01a10
fi
Offline
I have managed to put together PKGBUILDs for all the components in the IPU6 hodgepodge, by borrowing the kprobe hack from anbox-modules-dkms-git.
Install icamerasrc-git and an ipu6-camera-hal provider and you should be getting to where I am right now.
I managed to get video using this command:
sudo -E LANG=C gst-launch-1.0 icamerasrc device-name=ov02c10-uf ! autovideoconvert ! waylandsink
However for some reason Cheese can't seem to be able to use it natively... Also I can't figure out for the life of me how to access the IR camera or lights.
PS: I should note I'm on the Latitude 9430, although I found this discussion very relevant to that laptop as well.
Last edited by thesola10 (2022-08-24 17:02:00)
Offline
Hello, on my XPS 13 Plus I was able to install intel-ipu6-dkms, intel-ipu6ep-camera-bin, intel-ipu6ep-camera-hal-git, icamerasrc-git, intel-ivsc-driver-dkms-git and intel-ivsc-firmware packages, according to guides here. But during boot I got following kernel exception. Does anybody see this?
[ 15.831157] traps: Missing ENDBR: kallsyms_lookup_name+0x4/0xf0
[ 15.831164] ------------[ cut here ]------------
[ 15.831165] kernel BUG at arch/x86/kernel/traps.c:253!
[ 15.831172] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
[ 15.831176] CPU: 8 PID: 444 Comm: systemd-udevd Tainted: G OE 5.19.1-3-MANJARO #1 04cffc0a920d6f0accb28b85e9c8488dd72ba600
[ 15.831180] Hardware name: Dell Inc. XPS 9320/0CW9KM, BIOS 1.4.0 05/13/2022
[ 15.831181] RIP: 0010:exc_control_protection+0xc2/0xd0
[ 15.831187] Code: 8b 93 80 00 00 00 be fa 00 00 00 48 c7 c7 b6 b5 88 92 e8 21 ad 4a ff e9 72 ff ff ff 48 c7 c7 9d b5 88 92 e8 a6 06 fb ff 0f 0b <0f> 0b 66 66 2e 0f 1f 84 00 00 00 00 00 90 66 0f 1f 00 55 53 48 89
[ 15.831188] RSP: 0018:ffffbf3c823ff6b8 EFLAGS: 00010002
[ 15.831191] RAX: 0000000000000033 RBX: ffffbf3c823ff6d8 RCX: 0000000000000000
[ 15.831192] RDX: 0000000000000000 RSI: ffff98426f821660 RDI: ffff98426f821660
[ 15.831194] RBP: 0000000000000003 R08: 0000000000000000 R09: ffffbf3c823ff550
[ 15.831195] R10: 0000000000000003 R11: ffffffff930cb428 R12: 0000000000000000
[ 15.831195] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 15.831197] FS: 00007fa381137200(0000) GS:ffff98426f800000(0000) knlGS:0000000000000000
[ 15.831199] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 15.831200] CR2: 000055cac07f2000 CR3: 000000010244e004 CR4: 0000000000f70ee0
[ 15.831201] PKRU: 55555554
[ 15.831209] Call Trace:
[ 15.831212] <TASK>
[ 15.831214] asm_exc_control_protection+0x26/0x30
[ 15.831217] RIP: 0010:kallsyms_lookup_name+0x4/0xf0
[ 15.831219] Code: ff 0f 1f 44 00 00 f3 0f 1e fa 0f 1f 44 00 00 45 31 c0 31 c9 31 d2 e9 3b fe ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 0f 1f 00 <0f> 1f 44 00 00 41 56 b9 10 00 00 00 41 55 49 89 fd 41 54 55 53 48
[ 15.831221] RSP: 0018:ffffbf3c823ff788 EFLAGS: 00010246
[ 15.831222] RAX: ffffffff9136a664 RBX: ffff983b44ef2020 RCX: 0000000000000002
[ 15.831223] RDX: 0000000000000001 RSI: 0000000055555554 RDI: ffffffffc0ed70db
[ 15.831224] RBP: ffffbf3c823ff810 R08: 0000000000032630 R09: 0000000000000000
[ 15.831225] R10: 0000000000000001 R11: 0000000000000008 R12: ffff983b44ef2000
[ 15.831226] R13: ffff983b44ef2000 R14: ffff983b44ef2020 R15: ffff983b02d4f030
[ 15.831227] ? kallsyms_lookup_name+0x4/0xf0
[ 15.831231] ov01a10_probe+0x438/0x490 [ov01a10 9de964567655b25584cd0978272930f272590611]
[ 15.831236] ? kmem_cache_alloc_trace+0x16b/0x310
[ 15.831240] ? i2c_device_probe+0x11f/0x2b0
[ 15.831245] i2c_device_probe+0x11f/0x2b0
[ 15.831248] really_probe+0x1bf/0x390
[ 15.831251] __driver_probe_device+0xff/0x170
[ 15.831253] driver_probe_device+0x1f/0x90
[ 15.831254] __device_attach_driver+0x76/0xe0
[ 15.831256] ? driver_allows_async_probing+0x70/0x70
[ 15.831258] bus_for_each_drv+0x8c/0xe0
[ 15.831260] __device_attach+0xb2/0x1e0
[ 15.831261] bus_probe_device+0x92/0xb0
[ 15.831263] device_add+0x422/0x9a0
[ 15.831266] i2c_new_client_device+0x19c/0x2c0
[ 15.831268] i2c_acpi_add_device+0x97/0xb0
[ 15.831270] acpi_ns_walk_namespace+0x16d/0x2db
[ 15.831275] ? i2c_acpi_resource_count+0x30/0x30
[ 15.831276] ? i2c_acpi_resource_count+0x30/0x30
[ 15.831277] acpi_walk_namespace+0xf5/0x141
[ 15.831280] i2c_acpi_register_devices+0x48/0x80
[ 15.831281] i2c_register_adapter+0x225/0x6a0
[ 15.831284] platform_probe+0x45/0x90
[ 15.831286] really_probe+0x1bf/0x390
[ 15.831288] __driver_probe_device+0xff/0x170
[ 15.831289] driver_probe_device+0x1f/0x90
[ 15.831291] __driver_attach+0xc2/0x1b0
[ 15.831292] ? __device_attach_driver+0xe0/0xe0
[ 15.831294] bus_for_each_dev+0x88/0xd0
[ 15.831295] bus_add_driver+0x164/0x220
[ 15.831297] driver_register+0x8d/0xe0
[ 15.831299] ? 0xffffffffc1075000
[ 15.831300] do_one_initcall+0x5a/0x220
[ 15.831305] do_init_module+0x4a/0x1e0
[ 15.831307] __do_sys_init_module+0x138/0x1b0
[ 15.831309] do_syscall_64+0x5c/0x90
[ 15.831312] ? vfs_read+0x148/0x190
[ 15.831314] ? syscall_exit_to_user_mode+0x1b/0x40
[ 15.831316] ? do_syscall_64+0x6b/0x90
[ 15.831318] ? do_user_addr_fault+0x1db/0x690
[ 15.831320] ? exc_page_fault+0x74/0x170
[ 15.831322] entry_SYSCALL_64_after_hwframe+0x63/0xcd
Offline
I have managed to put together PKGBUILDs for all the components in the IPU6 hodgepodge, by borrowing the kprobe hack from anbox-modules-dkms-git.
Install icamerasrc-git and an ipu6-camera-hal provider and you should be getting to where I am right now.
I managed to get video using this command:
sudo -E LANG=C gst-launch-1.0 icamerasrc device-name=ov02c10-uf ! autovideoconvert ! waylandsink
However for some reason Cheese can't seem to be able to use it natively... Also I can't figure out for the life of me how to access the IR camera or lights.
PS: I should note I'm on the Latitude 9430, although I found this discussion very relevant to that laptop as well.
I tested out an Ubuntu OEM image and Cheese isn't able to use the webcam natively there either, so I think that's an issue with Cheese. The webcam works in other applications like Firefox, Discord, etc.
Offline
@sxw The sensor kernel module is missing. Look at my output, there is "ov01a10", too
$ lsmod | grep ipu intel_ipu6_isys 126976 0 videobuf2_dma_contig 20480 1 intel_ipu6_isys videobuf2_v4l2 36864 1 intel_ipu6_isys videobuf2_common 69632 4 videobuf2_dma_contig,videobuf2_v4l2,intel_ipu6_isys,videobuf2_memops intel_ipu6_psys 98304 0 intel_ipu6 94208 2 intel_ipu6_isys,intel_ipu6_psys v4l2_fwnode 32768 2 ov01a10,intel_ipu6_isys v4l2_async 28672 3 v4l2_fwnode,ov01a10,intel_ipu6_isys videodev 274432 6 v4l2_async,videobuf2_v4l2,ov01a10,v4l2loopback,intel_ipu6_isys,videobuf2_common mc 69632 5 videodev,videobuf2_v4l2,ov01a10,intel_ipu6_isys,videobuf2_common
How did you build the modules? After using vicamos repo and applying their patches for Ubuntu, and afterwards building first the ivsc, then the ipu6 with dkms, it worked.
I tried doing those steps via the AUR packages intel-ipu6ep-camera-hal-git which uses those patched files (and tried installing them manually using the out-of-kernel tree compilation steps). Yet I get the same error:
Setting pipeline to PAUSED ...
[09-05 00:24:35.308] CamHAL[INF] aiqb file name ov8856.aiqb
[09-05 00:24:35.308] CamHAL[ERR] there is no aiqb file:ov8856
[09-05 00:24:35.308] CamHAL[INF] aiqb file name ov8856.aiqb
[09-05 00:24:35.308] CamHAL[ERR] there is no aiqb file:ov8856
[09-05 00:24:35.308] CamHAL[INF] aiqb file name ov01a10.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name ov01a10.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name ov01a10.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name ov01a10.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb
[09-05 00:24:35.308] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb
[09-05 00:24:35.309] CamHAL[ERR] Failed to find DevName for cameraId: 2, get video node: ov01a10 , devname: /dev/v4l-subdev1
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[09-05 00:24:35.315] CamHAL[ERR] Get entity fail for calling getEntityById
[09-05 00:24:35.315] CamHAL[ERR] Get entity fail for calling getEntityById
[09-05 00:24:35.315] CamHAL[ERR] setup Link ov01a10 [-1:0] ==> Intel IPU6 CSI-2 [-1x0] enable 1 failed.
[09-05 00:24:35.315] CamHAL[ERR] set MediaCtlConf McLink failed: ret = -1
[09-05 00:24:35.315] CamHAL[ERR] set up mediaCtl failed
[09-05 00:24:35.315] CamHAL[ERR] @configure Device Configure failed
[09-05 00:24:35.315] CamHAL[ERR] failed to config streams.
ERROR: from element /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0: src pad: Internal data flow error.
Additional debug info:
gstcambasesrc.cpp(3143): gst_cam_base_src_loop (): /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 0:00:00.004394425
Setting pipeline to NULL ...
Freeing pipeline ...
Here is my output for `lsmod | grep ipu`
intel_ipu6_isys 139264 0
videobuf2_dma_contig 28672 1 intel_ipu6_isys
videobuf2_v4l2 40960 1 intel_ipu6_isys
videobuf2_common 86016 4 videobuf2_dma_contig,videobuf2_v4l2,intel_ipu6_isys,videobuf2_memops
intel_ipu6_psys 110592 0
intel_ipu6 131072 2 intel_ipu6_isys,intel_ipu6_psys
v4l2_fwnode 32768 2 ov01a10,intel_ipu6_isys
v4l2_async 32768 3 v4l2_fwnode,ov01a10,intel_ipu6_isys
videodev 307200 6 v4l2_async,videobuf2_v4l2,ov01a10,v4l2loopback,intel_ipu6_isys,videobuf2_common
mc 69632 6 v4l2_async,videodev,videobuf2_v4l2,ov01a10,intel_ipu6_isys,videobuf2_common
The ov01a10 module seems to be loaded here so I think this error may be coming from something else rather than a missing ov01a10 module.
Last edited by aviroblox (2022-09-05 04:35:48)
Offline
Figured it's good to follow https://lore.kernel.org/lkml/YvnwtN1SwQ … gle.com/t/
Edit: After going through that kernel.org mailing list issue I have two feelings 1) I regret getting this laptop, 2) I better start looking into the userland drivers + gstreamer and hope to get this working with Chrome + Zoom
Last edited by potuz (2022-09-27 00:20:53)
Offline
I have managed to put together PKGBUILDs for all the components in the IPU6 hodgepodge, by borrowing the kprobe hack from anbox-modules-dkms-git.
Install icamerasrc-git and an ipu6-camera-hal provider and you should be getting to where I am right now.
I managed to get video using this command:
sudo -E LANG=C gst-launch-1.0 icamerasrc device-name=ov02c10-uf ! autovideoconvert ! waylandsink
However for some reason Cheese can't seem to be able to use it natively... Also I can't figure out for the life of me how to access the IR camera or lights.
PS: I should note I'm on the Latitude 9430, although I found this discussion very relevant to that laptop as well.
Tried installing this with `yay -S intel-ipu6-dkms-git`. It fails (error below) but what strikes me as odd is that it does a depmod for the wrong kernel
(2/2) Install DKMS modules
==> dkms install --no-depmod ivsc-driver/r29.99a53bd -k 6.0.0-rc6-gfea329811a7b
Deprecated feature: REMAKE_INITRD
==> depmod 6.0.0-rc6-gfea329811a7b
I have that kernel installed, but I'm running
$ uname -a
Linux forkchoice 5.19.10-arch1-1 #1 SMP PREEMPT_DYNAMIC Tue, 20 Sep 2022 15:17:59 +0000 x86_64 GNU/Linux
Eventually the whole thing fails with failed patches to the sensor module
Cloning into 'ipu6-drivers'...
done.
==> Starting prepare()...
patching file include/linux/mfd/ljca.h
patching file include/linux/vsc.h
patching file drivers/media/i2c/deps.h
patching file drivers/media/i2c/ov01a10.c
Hunk #1 succeeded at 15 with fuzz 2 (offset 2 lines).
Hunk #2 succeeded at 568 (offset 3 lines).
Hunk #3 FAILED at 607.
Hunk #4 succeeded at 890 (offset 11 lines).
Hunk #5 FAILED at 927.
Hunk #6 FAILED at 946.
3 out of 6 hunks FAILED -- saving rejects to file drivers/media/i2c/ov01a10.c.rej
Offline
I'm failing to build the out of kernel ipu6 drivers with
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c: In function ‘ov01a1s_probe’:
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c:964:32: error: storage size of ‘conf’ isn’t known
964 | struct vsc_mipi_config conf;
| ^~~~
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c:965:34: error: storage size of ‘status’ isn’t known
965 | struct vsc_camera_status status;
| ^~~~~~
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c:976:15: error: implicit declaration of function ‘vsc_acquire_camera_sensor’ [-Werror=implicit-function-declaration]
976 | ret = vsc_acquire_camera_sensor(&conf, NULL, NULL, &status);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c:966:13: warning: unused variable ‘link_freq’ [-Wunused-variable]
966 | s64 link_freq;
| ^~~~~~~~~
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c:965:34: warning: unused variable ‘status’ [-Wunused-variable]
965 | struct vsc_camera_status status;
| ^~~~~~
/path/ipu6-drivers/drivers/media/i2c/ov01a1s.c:964:32: warning: unused variable ‘conf’ [-Wunused-variable]
964 | struct vsc_mipi_config conf;
| ^~~~
Anyone else finding this problem?
Offline
I got it working.
sudo modprobe v4l2loopback video_nr=1 card_label=v4l2 exclusive_caps=1 max_buffers=2
sudo -E gst-launch-1.0 icamerasrc buffer-count=7 device-name=ov01a10-uf ! video/x-raw,format=YUY2,width=1280,height=720 ! v4l2sink device=/dev/video1
So I think I managed to compile all components (had to do one in-kernel). However I used v4l2loopback-dkms and the modprove core dumps. How did you install v4l2loopback? I get
[Wed Sep 28 11:31:43 2022] v4l2loopback: module verification failed: signature and/or required key missing - tainting kernel
[Wed Sep 28 11:31:43 2022] traps: Missing ENDBR: init_module+0x0/0x1000 [v4l2loopback]
[Wed Sep 28 11:31:43 2022] ------------[ cut here ]------------
[Wed Sep 28 11:31:43 2022] kernel BUG at arch/x86/kernel/traps.c:253!
[Wed Sep 28 11:31:43 2022] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
[Wed Sep 28 11:31:43 2022] CPU: 6 PID: 1644 Comm: modprobe Tainted: G U OE 6.0.0-rc7 #5 077fc4f9c58cec6b6dcd9f0ffe614f90e35cb1cd
[Wed Sep 28 11:31:43 2022] Hardware name: Dell Inc. XPS 9320/01WVPN, BIOS 1.7.1 08/24/2022
[Wed Sep 28 11:31:43 2022] RIP: 0010:exc_control_protection+0xc2/0xd0
[Wed Sep 28 11:31:43 2022] Code: fb ff 45 31 c9 49 89 d8 b9 09 00 00 00 48 8b 93 80 00 00 00 be fa 00 00 00 48 c7 c7 aa 88 46 96 e8 43 3f 4f ff e9 64 ff ff ff <0f> 0b 66 66 2e 0f 1f 84 00 00 00 00 00 90 66 0f 1f 00 55 53 48 >
[Wed Sep 28 11:31:43 2022] RSP: 0018:ffffadcbc336fcc8 EFLAGS: 00010002
...
Can post the full stack trace
Offline
You need to add ibt=off to your kernel parameters to allow v4l2loobpack to load with that trace.
Offline
You need to add ibt=off to your kernel parameters to allow v4l2loobpack to load with that trace.
Seems it was a different issue, I had recompiled the kernel adding some more modules and the modpost was not redone for the ipu drivers. I can now load all modules and v4l2loopback but still can't get the camera to work, at least it feels like it's getting closer, now it's userland complaining:|
$ lsmod | grep 'ipu\|loopback'
v4l2loopback 65536 0
intel_ipu6_isys 151552 0
videobuf2_dma_contig 28672 1 intel_ipu6_isys
videobuf2_v4l2 40960 1 intel_ipu6_isys
videobuf2_common 86016 4 videobuf2_dma_contig,videobuf2_v4l2,intel_ipu6_isys,videobuf2_memops
intel_ipu6_psys 110592 0
v4l2_fwnode 32768 2 ov01a10,intel_ipu6_isys
v4l2_async 32768 3 v4l2_fwnode,ov01a10,intel_ipu6_isys
videodev 315392 6 v4l2_async,videobuf2_v4l2,ov01a10,v4l2loopback,intel_ipu6_isys,videobuf2_common
intel_ipu6 131072 2 intel_ipu6_isys,intel_ipu6_psys
mc 73728 6 v4l2_async,videodev,videobuf2_v4l2,ov01a10,intel_ipu6_isys,videobuf2_common
$ v4l2-ctl --list-devices
ipu6 (PCI:pci:pci0000:00):
/dev/video0
ipu6 (pci:pci0000:00):
/dev/media0
v4l2 (platform:v4l2loopback-001):
/dev/video1
$ sudo -E gst-launch-1.0 icamerasrc buffer-count=7 device-name=ov01a10-uf ! video/x-raw,format=YUY2,width=1280,height=720 ! v4l2sink device=/dev/video1
WARNING: erroneous pipeline: could not link camerasrc0 to v4l2sink0, camerasrc0 can't handle caps video/x-raw, format=(string)YUY2, width=(int)1280, height=(int)720
EDIT: interestingly, removing the caps it works fine.
Last edited by potuz (2022-09-28 16:33:44)
Offline