Only working in some programs
alba4k opened this issue · 60 comments
First of all, I know this isn't your work, as you mention in the readme, but maybe you'll be able to help anyway, as you probably have a better understanding than me.
Basically, my webcam still doesn't seem to work.
What I find curious and that might be related is a series of errors that pop up while installing the v4l2loopback
, ipu6-drivers
and ivsc-driver
modules packages:
==> ERROR: Missing dev kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing lib64 kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing lost+found kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing root kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing usr kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing tmp kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing lib kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing mnt kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing sys kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing swapfile kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing var kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing home kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing opt kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing boot kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing run kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing sbin kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing etc kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing srv kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing proc kernel headers for module ipu6-drivers/r67.278b7e3d0.
==> ERROR: Missing bin kernel headers for module ipu6-drivers/r67.278b7e3d0.
(same errors, all that changes is the module name and version)
As you probably noticed, the list of elements is simply a list of the files and directories in my root. My competence in kernel module building is close to none.
Also, if I try to load any of those modules, I get nothing (e.g. modprobe v4l2loopbaclk
: modprobe: FATAL: Module v4l2loopback not found in directory /lib/modules/6.0.9-arch1-1
; modprobe -r v4l2loopback
: modprobe: FATAL: Module v4l2loopback not found.
)
$ journalctl -xb -p3
Nov 24 23:56:54 dell-xps kernel: pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid
Nov 24 23:56:54 dell-xps kernel: pci 0000:00:07.2: DPC: RP PIO log size 0 is invalid
Nov 24 23:56:53 dell-xps systemd-modules-load[313]: Failed to find module 'v4l2loopback'
Nov 24 23:56:55 dell-xps kernel: int3472-discrete INT3472:01: INT3472 seems to have no dependents.
Nov 24 23:56:56 dell-xps systemd[1]: Failed to start v4l2-relay daemon service.
-- Subject: A start job for unit v4l2-relayd.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- A start job for unit v4l2-relayd.service has finished with a failure.
--
-- The job identifier is 806 and the job result is failed.
Nov 24 23:57:01 dell-xps kernel: dell_smm_hwmon: unable to get SMM Dell signature
Nov 24 23:57:02 dell-xps bluetoothd[1450]: src/plugin.c:plugin_init() Failed to init vcp plugin
Nov 24 23:57:02 dell-xps bluetoothd[1450]: src/plugin.c:plugin_init() Failed to init mcp plugin
Nov 24 23:57:02 dell-xps bluetoothd[1450]: src/plugin.c:plugin_init() Failed to init bap plugin
Nov 24 23:57:04 dell-xps sddm-helper[1481]: gkr-pam: couldn't unlock the login keyring.
Nov 24 23:57:04 dell-xps pipewire[1492]: pw.module: No module "libpipewire-module-x11-bell" was found
Nov 24 23:57:04 dell-xps kernel: Bluetooth: hci0: Malformed MSFT vendor event: 0x02
Nov 24 23:57:04 dell-xps bluetoothd[1450]: src/device.c:set_wake_allowed_complete() Set device flags return status: Invalid Parameters
Nov 24 23:57:04 dell-xps bluetoothd[1450]: src/device.c:set_wake_allowed_complete() Set device flags return status: Invalid Parameters
Nov 24 23:57:11 dell-xps bluetoothd[1450]: src/profile.c:record_cb() Unable to get Hands-Free Voice gateway SDP record: Host is down
# GST_DEBUG=3 gst-launch-1.0 icamerasrc ! autovideoconvert
Setting pipeline to PAUSED ...
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov13b10.aiqb
[11-24 23:57:50.326] CamHAL[ERR] there is no aiqb file:ov13b10
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov13b10.aiqb
[11-24 23:57:50.326] CamHAL[ERR] there is no aiqb file:ov13b10
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov8856.aiqb
[11-24 23:57:50.326] CamHAL[ERR] there is no aiqb file:ov8856
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov8856.aiqb
[11-24 23:57:50.326] CamHAL[ERR] there is no aiqb file:ov8856
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov01a10.aiqb
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov01a10.aiqb
[11-24 23:57:50.326] CamHAL[INF] aiqb file name ov01a10.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name ov01a10.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV02C10_1BG203N3_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV02C10_1SG204N3_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV02C10_1SG204N3_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV02C10_CIFME14_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV02C10_CIFME14_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb
[11-24 23:57:50.327] CamHAL[INF] aiqb file name HM2170_1SG205N3_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HM2170_1SG205N3_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HM2170_CJFME18_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HM2170_CJFME18_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HI556_1BG502T3_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HI556_1BG502T3_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HI556_CJFLE25_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name HI556_CJFLE25_ADL.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name ov01a1s.aiqb
[11-24 23:57:50.328] CamHAL[INF] aiqb file name ov01a1s.aiqb
[11-24 23:57:50.329] CamHAL[ERR] @getDeviceName, Fail open : /sys/class/video4linux/
[11-24 23:57:50.329] CamHAL[ERR] Failed to find DevName for cameraId: 0, get video node: ov13b10 , devname: /dev/v4l-subdev1
[11-24 23:57:50.331] CamHAL[ERR] MediaControl init failed
0:00:00.263195316 8524 0x5650103c3a90 ERROR icamerasrc gstcamerasrc.cpp:2845:gst_camerasrc_start: CameraId=0 failed to open libcamhal device.
0:00:00.289852695 8524 0x5650103c3a90 WARN CamBaseSrc gstcambasesrc.cpp:4192:gst_cam_base_src_activate_push:<camerasrc0> Failed to start in push mode
0:00:00.289864168 8524 0x5650103c3a90 WARN GST_PADS gstpad.c:1141:gst_pad_set_active:<camerasrc0:src> Failed to activate pad
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
I don't have any /dev/video* virtual devices
Tested on both linux and linux-zen, XPS 13 Plus (i7-1260P)
I'm an idiot, I didn't have linux-headers installed
Now I am able to compile the modules and I do have some /dev/video* devices:
$ v4l2-ctl --list-devices
ipu6 (PCI:pci:pci0000:00):
/dev/video1
ipu6 (pci:pci0000:00):
/dev/media0
Virtual Camera (platform:v4l2loopback-000):
/dev/video0
# lshw
[...]
*-multimedia:0
description: Multimedia controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 5
bus info: pci@0000:00:05.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: pciexpress pm bus_master cap_list
configuration: driver=intel-ipu6 latency=0
resources: iomemory:600-5ff irq:16 memory:603c000000-603cffffff
[...]
I still don't get any video output tho (I can select a "Virtual Camera" webcam)
I have the same issue, but I did some steps some steps to get further. And I hope that you or someone can see if these steps get you further. And maybe you can see if you can get even further, and document what you did.
I can currently get image from the test.sh
script, here is what I did.
/etc/modprobe.d/v4l2loopback.conf
options v4l2loopback exclusive_caps=1
Made this file, instead of the instructions @stefanpartheym wrote here Its possible to add more settings here if they may help.
The issue is that Firefox and Cheese still does not see the camera.
The original test.sh did not work for me, several error, and I got different errors while trying different variations of the command. What worked for me is to replace the contents of test.sh
with this
#!/bin/sh
sudo -E gst-launch-1.0 icamerasrc buffer-count=7 ! video/x-raw,format=NV12,width=1280,height=720 ! videoconvert ! waylandsink
This works for me, if you have wayland I hope it will work for you too. If you have X11 then I believe you can replace waylandsink
with ximagesink
Other laptops with other sensors may require different variations of the command.
I have a Dell XPS 13 Plus 9320 with alder lake
I also tested this command as the test command, and it works
sudo -E gst-launch-1.0 icamerasrc ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! videoconvert ! waylandsink
notable changes are that I removed buffer-count=7
and added ,framerate=30/1
which are more similar to how v4l2-relayd standard settings.
I have yet to figure out why the test command now works but not v4l2-relayd
Hi @alba4k,
I still don't get any video output tho (I can select a "Virtual Camera" webcam)
For me, I also can only select "Virtual Camera". How did out test camera input? Using the test.sh script or in a chromium based browser using this website.
Also, I'm currently on kernel 6.0.12-arch1-1
. But I remember it was also working on 6.0.9
.
Best regards
Stefan
I used that website, on firefox tho, and discord (which counts as chromium based ig)
I might try this evening in chromium
Hi @alba4k,
I'm gonna be honest:
It doesn't work in Firefox for me either. I didn't notice, because I don't use Firefox.
Best regards
Stefan
HOLY SH*T, thanks a lot @stefanpartheym
The camera actually works in chromium! I had never seen that light turn on! This basically means that whenever I need it for something I can still use it via chromium!
Also, while still keeping my expectations low, I also tried cheese (it did not work). What was interesting tho was that is also found an "ipu6" device other than a the Virtual Camera one (I see 2 Virtual Camera and 2 ipu6). huh
v4l2-ctl --list-devices
ipu6 (PCI:pci:pci0000:00):
/dev/video1
ipu6 (pci:pci0000:00):
/dev/media0
Virtual Camera (platform:v4l2loopback-000):
/dev/video0
Also, about the IR camera, do you think Howdy would now work, as that would be the main use I'd have for the cam. linux-enable-ir-emitter seems to turn on the webcam light when using /dev/video0, but I don't see anyhting flashing using my phone's camera.
After some testing: firefox, cheese, discord and gphoto/kamera do NOT work; webcord, chromium and obs work
edit: both firefox and discord work with this workaround.
edit 2: chese now works too
Hi @alba4k,
I'm glad it works for you on Chromium :)
Also, about the IR camera, do you think Howdy would now work, as that would be the main use I'd have for the cam. linux-enable-ir-emitter seems to turn on the webcam light when using /dev/video0, but I don't see anyhting flashing using my phone's camera.
Unfortunately, I don't know if (or how) Howdy works. I have not yet tried it. I didn't even know such a thing exists. But good hint, I think I'll try it out at some point ;)
Best regards
Stefan
@stefanpartheym I would certainty recommend trying it out.
Apart from that, let me know if you (or some other guy(e.g. on the archlinux forums) get the camera to work in more or, ideally, all scenarios.
Congrats on the nice works on creating this repository, also :)
Hi @alba4k,
thank you! I'll let you know, if there are any news on this. ;)
I wanted to rename the packages in the repo anyways, as they always appear in the available updates list of my package manager due to the same name of the packages on AUR.
Best regards
Stefan
Yeah noticed that yesterday, and unfortunately the updates breaks stuff
maybe just rename the *-git or * to *-fix-git or *-fix?
The best of luck on your continuation!
Yeah noticed that yesterday, and unfortunately the updates breaks stuff
Uff, yeah didn't try to update yet, but good to know, that it's not an option haha.
maybe just rename the *-git or * to *-fix-git or *-fix?
Exactly, something like that, hopefully I'll have the time for this in the next few days.
@stefanpartheym @alba4k Has Howdy been updated to python 3 yet? I uninstalled it when python 2 was deprecated on Arch. Howdy worked quite well for me after it was configured properly, but I did not want to have a security related program depend on python 2 after it was deprecated from the repos
Amazing, chromium does indeed work with the webcam. I didn't test it because I used cheese to test instead.
I wonder why it doesn't work with firefox
@stefanpartheym it sadly does not seem to work anymore on 6.1
@stefanpartheym it sadly does not seem to work anymore on 6.1
Hi. I have just finalized the setup on my XPS 13 9320, and indeed I have had to tweak the ipu6_driver installation, because its build is currently broken on 6.1. The fix is ready to merge on Intel's repository but it seems to be stalled 🤷
While it is not merged, it is possible to pick a working copy of the driver by taking directly the source from the fix author repository:
diff --git a/intel-ipu6-dkms-git/PKGBUILD b/intel-ipu6-dkms-git/PKGBUILD
index 28e0d82..2238216 100644
--- a/intel-ipu6-dkms-git/PKGBUILD
+++ b/intel-ipu6-dkms-git/PKGBUILD
@@ -1,14 +1,15 @@
pkgname=intel-ipu6-dkms-git
_pkgname=ipu6-drivers
pkgver=r60.4ef83f208
pkgrel=1
pkgdesc="Intel IPU6 camera drivers (DKMS)"
arch=('any')
-url="https://github.com/intel/ipu6-drivers"
+url="https://github.com/jwrdegoede/ipu6-drivers"
license=('unknown')
depends=('dkms')
makedepends=('git')
-source=("git+${url}.git")
+revision="ipu6-kernel6.1-build-fix"
+source=("git+${url}#branch=${revision}")
sha256sums=('SKIP')
pkgver() {
I am able to get a valid stream from test.sh
with this workaround. Thanks a lot @stefanpartheym for this packaging !
@Tropicao Do you want to make a pull request to this repo with this change? It works for me, in fact, both hans' master branch and the ipu6-kernel6.1-build-fix works for me on 6.1.1. But you are maybe correct in using the specific branch in case the master branch is used for something else in the future.
Another merge request would be needed to revert this change, if when Intel merges this PR
@Tropicao Do you want to make a pull request to this repo with this change? It works for me, in fact, both hans' master branch and the ipu6-kernel6.1-build-fix works for me on 6.1.1. But you are maybe correct in using the specific branch in case the master branch is used for something else in the future.
Another merge request would be needed to revert this change, if when Intel merges this PR
I am not convinced it is desirable to point to jwrdegoede repository/branches "by default", because it will multiply the sources to monitor for drivers updates (it would be best to assume that its PR on Intel repository will eventually be merged), but if @stefanpartheym thinks otherwise, I'll gladly submit a PR
@Tropicao what about temporarily pointing the PKGBUILD file to a specific git commit in the intel repo, and then add Hans' changes as a patch file?
That is how many AUR packages do it anyway
When the PKGBUILD is updated to get a newer version, the patch can be removed at the same time, so its almost self regulating
Just thinking about making it easy for the user who just want to follow some instructions instead of finding comments here and there to compliment the instructions
@Tropicao what about temporarily pointing the PKGBUILD file to a specific git commit in the intel repo, and then add Hans' changes as a patch file?
That is how many AUR packages do it anyway
I am not very familiar with Arch packaging good practices, so I trust you on this. Its sounds convenient for both user and maintainer.
When the PKGBUILD is updated to get a newer version, the patch can be removed at the same time, so its almost self regulating
Just thinking about making it easy for the user who just want to follow some instructions instead of finding comments here and there to compliment the instructions
Agree on the purpose. I will submit a PR with your suggestions
EDIT: PR has been merged
Hey, Thanks for all your effort in this! 😄
I believe the issue with Firefox is the lack of support for the NV12 format, as identified here - https://bugzilla.mozilla.org/show_bug.cgi?id=1761519
In the meanwhile, I got it working by forcing v4l2-relayd to convert to a supported format (YUY2). I'm sure this is not the best way to do it, but I overwrote the service ExecStart by creating the file /etc/systemd/system/v4l2-relayd.service.d/override.conf
with content:
[Service]
ExecStart=
ExecStart=/bin/sh -c 'DEVICE=$(grep -l -m1 -E "^${CARD_LABEL}$" /sys/devices/virtual/video4linux/*/name | cut -d/ -f6); exec /usr/bin/v4l2-relayd -i "${VIDEOSRC}" $${SPLASHSRC:+-s "${SPLASHSRC}"} -o "appsrc name=appsrc caps=video/x-raw,format=${FORMAT},width=${WIDTH},height=${HEIGHT},framerate=${FRAMERATE} ! videoconvert ! video/x-raw,format=YUY2 ! v4l2sink name=v4l2sink device=/dev/$${DEVICE}"'
It just adds ! video/x-raw,format=YUY2
after videoconvert
to the original ExecStart.
After sudo systemctl status v4l2-relayd.service
it works in Firefox.
@maharifu I think the theoretical "propper way" to configure this would be in /etc/v4l2-relayd
so
sudo cp /etc/default/v4l2-relayd /etc/v4l2-relayd
sudo -e /etc/v4l2-relayd
I changed FORTMAT= to YUY2, the webcam looks like it works in firefox after I do that, but it just shows a single color black.
If it can work by editing that file, it can probably be shipped already working in this repo
@sigboe I believe that FORMAT specifies the input format from the webcam, so it should be NV12. That's why you get the black screen when changing it.
The problem is Firefox doesn't handle that format, so we need to convert it before the v4l2sink.
Maybe we could have a patch to change the systemd unit file of v4l2-relayd when building the package?
Agree on the purpose. I will submit a PR with your suggestions
Hi @Tropicao , thanks a lot for your effort! I merged your PR as requested.
Best regards
Stefan
I can confirm that it now seems to work on 6.1 :D
Also, the workaround proposed by @maharifu does indeed make the webcam work in firefox, and actually in discord too!
As for the mentioned workaround, I opened a pull request that allows the changes to be applied automatically when launching the install.sh
script with a --workaround
first command line argument.
Upgrading to kernel v6.1.6 breaks webcam for me unfortunately, even when using the new --workaround
flag. 😅
I need to figure out whats going on in my case. Maybe a Wayland thing, I don't know. I'll post an update once I now more.
That is interesting, everything still works perfectly for me on 6.1.6 (both zen and mainline arch).
I would be surprised if that was because of wayland, have you rebooted your system after upgrading?
That is interesting, everything still works perfectly for me on 6.1.6 (zen, but I doubt that's what makes it work).
I would be surprised if that was because of wayland, have you rebooted your system after upgrading?
@stefanpartheym
Same for me: With or and without the workaround, I get a black image for all test cases as output and the cam light doesn't show up. I rebooted after each installation and I'm using X and kernel 6.1.6-arch1-3.
@z4lem does DKMS give you any errors when running the install script? also, even though this shouldn't matter, are you running the uninstall script first?
Also, I just noticed that 6.1.7 just came out (it also works on my machine), so maybe check if that does anything?
@z4lem does DKMS give you any errors when running the install script? also, even though this shouldn't matter, are you running the uninstall script first?
Also, I just noticed that 6.1.7 just came out (it also works on my machine), so maybe check if that does anything?
@alba4k No errors during installation. And yes, in uninstalled the old version and rebooted, before trying the new one.
My error described above appears on the newest kernel version 6.1.7 :\
That's interesting, I honestly have no Idea what to suggest. maybe try to ask on the arch BBS discussion?
@z4lem does DKMS give you any errors when running the install script? also, even though this shouldn't matter, are you running the uninstall script first?
Also, I just noticed that 6.1.7 just came out (it also works on my machine), so maybe check if that does anything?@alba4k No errors during installation. And yes, in uninstalled the old version and rebooted, before trying the new one. My error described above appears on the newest kernel version 6.1.7 :\
Hi. I observed that DKMS build errors are quite silent during installation with the script, I only observed real errors when refreshing dkms manually (dmks status; dkms autoinstall
), when I searched for webcam issues on my laptop. Did you go this far to check for build error ? Is the driver really loaded after executing the install script ?
Moreover, some fixes have finally been merged mainline, so we will need to revert the hotfix to point on custom branch of mainline driver. I will try to test current state of driver install on my machine by the end of the week, and submit the revert if it works
Hi, I can't get it fully working on 6.1.8-arch1-1. No errors at the installation and test.sh
works properly. Problem is that no application detects the camera, tried with Chromium, Chrome, Firefox, Slack and Discord, with and without the --workarround
flag.
Here are some informations :
# v4l2-ctl --list-devices
ipu6 (PCI:pci:pci0000:00):
/dev/video1
ipu6 (pci:pci0000:00):
/dev/media0
Virtual Camera (platform:v4l2loopback-000):
/dev/video0
Webcam C170: Webcam C170 (usb-0000:04:00.0-2.3.2.1.3):
/dev/video2
/dev/video3
/dev/media1
# sudo lshw
*-multimedia:0
description: Multimedia controller
produit: Intel Corporation
fabriquant: Intel Corporation
identifiant matériel: 5
information bus: pci@0000:00:05.0
version: 02
bits: 64 bits
horloge: 33MHz
fonctionnalités: pciexpress pm bus_master cap_list
configuration: driver=intel-ipu6 latency=0
ressources: mémoireE/S:600-5ff irq:16 mémoire:603c000000-603cffffff
# dkms status
ipu6-drivers/r70.913905fe0, 6.1.8-arch1-1, x86_64: installed (WARNING! Diff between built and installed module!) (WARNING! Diff between built and installed module!)
ivsc-driver/r35.94ecb88, 6.1.8-arch1-1, x86_64: built
v4l2loopback/r10.b37d72d, 6.1.8-arch1-1, x86_64: installed
I'm actually trying to see what the dkms status
warning message means, but without result for now.
Anyway thanks a lot for your work !
No major issue on my side on 6.1.8-arch1-1
kernel, after full uninstall then reinstall (using the --workaround flag). I did it with custom patches removed and updated revision to make sure to get all latest fixes merged on mainline. I observe the opposite of @GorgetGuilhem : I still can not make test.sh
work because of following error :
[...]
ERROR: from element /GstPipeline:pipeline0/Gstcamerasrc:camerasrc0: src pad: Internal data flow error.
[...]
[01-28 17:10:48.595] CamHAL[WAR] Failed to open file /run/camera/ov01a10-uf_VIDEO.aiqd, error No such file or directory
However camera works properly when testing it in Cheese (using the proper device) and in Google Meet (tested in Firefox)
That is interesting
test.sh
does not report any errors on my 9320, but cheese doesn't seem to work. What device are you selecting?
That is interesting
test.sh
does not report any errors on my 9320, but cheese doesn't seem to work. What device are you selecting?
I select Virtual Camera
, since it is the name reported by v4l2-ctl --list-devices
on my machine
Nevermind, it does seem to work now in cheese too! I'm guessing some kernel between 6.1.6 and 6.1.8 did the trick, maybe in combination with the workaround for changing the video format (?).
Well, anyway, I think it's working basically everywhere for me now.
@Tropicao tried with custom patches removed and updated revision and I still cannot get applications seeing the webcam, even though v4l2-ctl --list-devices
find it. test.sh
works properly however.
@Tropicao tried with custom patches removed and updated revision and I still cannot get applications seeing the webcam, even though
v4l2-ctl --list-devices
find it.test.sh
works properly however.
Well, I have no clue why applications do not detect camera on your device test.sh
is working on your host, it means that your video stack is properly configured. You can not use webcam in chrome neither firefox ? Did you use the --workaround
parameter when executing the install script ?
As a pretty sad sidenote, it eventually stopped working for me too.
Something weird I noticed, is that the camera still does turn off for a split second when I turn my laptop on (which it also did when the driver was working.)
Anyway, I think I will temporarily be removing the driver, since I don't really need the webcam anyway.
I think that the issue might be on the driver-side.
No idea what's going on there, but I've noticed this running sudo systemctl status v4l2-relayd
(last line) :
● v4l2-relayd.service - v4l2-relay daemon service
Loaded: loaded (/usr/lib/systemd/system/v4l2-relayd.service; enabled; preset: disabled)
Drop-In: /etc/systemd/system/v4l2-relayd.service.d
└─override.conf
Active: active (running) since Thu 2023-02-02 18:19:44 CET; 14h ago
Main PID: 1182 (v4l2-relayd)
Tasks: 2 (limit: 18692)
Memory: 14.8M
CPU: 59ms
CGroup: /system.slice/v4l2-relayd.service
└─1182 /usr/bin/v4l2-relayd -i icamerasrc -o "appsrc name=appsrc caps=video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! videoconvert ! video/x-raw,format=YUY2 ! v4l2sink name=v4l2sink device=/dev/video0"
févr. 02 18:19:43 GuilhemArch systemd[1]: Starting v4l2-relay daemon service...
févr. 02 18:19:44 GuilhemArch systemd[1]: Started v4l2-relay daemon service.
févr. 02 18:19:44 GuilhemArch v4l2-relayd[1182]: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
EDIT : After some investigations, I found out that I needed to install gst-plugin-pipewire
... The webcam works for all applications now, thanks for your help !
EDIT : After some investigations, I found out that I needed to install gst-plugin-pipewire ... The webcam works for all applications now, thanks for your help !
Congratulations on finding the solution and making it work :) We should probably add a mention to this in the README or even automate it in the install script
I might do this tomorrow, if I find a couple of minutes :)
Congratulations on finding the solution and making it work :) We should probably add a mention to this in the README or even automate it in the install script
Yep, could definitively help someone else !
I might do this tomorrow, if I find a couple of minutes :)
That would be great, thanks ! Just to mention, I'm using pipewire ;)
Same
I would be curious to see if the same happened if someone using pulseaudio would be experiencing the same (most likely, the answer is yes, since pipewire handles a lot of non-audio related media stuff), but I'm too lazy to install it just to check out ;P
Anyway, I think I will be opening the PR later this evening (it's 20.28 at the moment of typing for me)
Ok so, it's not working for me, which I expected, but if any of you can confirm that it works with gst-plugin-pipewire
installed, then using my branch should be working too. I can open a pull request if someone is able to confirm that it is indeed working.
Also, the reason I suppose it is not working for me, is that the ivsc-driver
and ipu6-drivers
(no complaints for v4l2loopback
) modules fail to install with DKMS printing the following (wall of) errors:
==> dkms install --no-depmod ivsc-driver/r35.94ecb88 -k 6.1.9-arch1-1
Module version for ljca.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for spi-ljca.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for gpio-ljca.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for i2c-ljca.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for mei-vsc.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for intel_vsc.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for mei_csi.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for mei_ace.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for mei_pse.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Module version for mei_ace_debug.ko.zst
exactly matches what is already found in kernel 6.1.9-arch1-1.
DKMS will not replace this module.
You may override by specifying --force.
Error! Installation aborted.
==> WARNING: `dkms install --no-depmod ivsc-driver/r35.94ecb88 -k 6.1.9-arch1-1' exited 6
TL;DR: DKMS doesn't seem to like those modules already (seemingly) being there.
One more thing: paru warns about intel-ivsc-driver-dkms-git
conflicting with the AUR package intel-ipu6-dkms-git
. Altough I do recognize that this is not exactly the same as what is being installed by the script, I wonder if this recent update might cause siome issues too. So this also goes in favour of renaming the packages related to the ones in the AUR to avoid confusion.
Hi @alba4k ,
Also, the reason I suppose it is not working for me, is that the ivsc-driver and ipu6-drivers (no complaints for v4l2loopback) modules fail to install with DKMS printing the following (wall of) errors:
I'm experiencing the exact same issue. However, it seems like webcam does work regardless (at least in my browser, not with test.sh
though).
One more thing: paru warns about
intel-ivsc-driver-dkms-git
conflicting with the AUR packageintel-ipu6-dkms-git
. Altough I do recognize that this is not exactly the same as what is being installed by the script, I wonder if this recent update might cause siome issues too. So this also goes in favour of renaming the packages related to the ones in the AUR to avoid confusion.
Yes, same for me when using yay
. I modified all PKGBUILD
s in the repo to use a suffix in order for the AUR package managers to be able to distinguish between those packages (also specifying provides
and conflicts
). This will be part of the v1.0.0
"release".
Currently, I use the suffix -archfix
. Not sure, if it really fits, but probably not too important 😅
@alba4k @Tropicao @sigboe : Do you have any suggestions/wishes regarding the suffix? Otherwise I'll commit and push my changes to the repo.
Best regards
Stefan
Currently, I use the suffix -archfix. Not sure, if it really fits, but probably not too important
😅
Well my only opinion is that it's implicit this is a fix for arch, and many AUR packages have -fix suffix while no AUR package has -archfix suffix. So if you are interested in pushing this to AUR, then maybe the -fix suffix would suffice.
ops forgot to ping @stefanpartheym
Hi @sigboe,
Currently, I use the suffix -archfix. Not sure, if it really fits, but probably not too important sweat_smile
Well my only opinion is that it's implicit this is a fix for arch, and many AUR packages have -fix suffix while no AUR package has -archfix suffix. So if you are interested in pushing this to AUR, then maybe the -fix suffix would suffice.
You're right. However, I didn't plan to push those packages to AUR. With the archfix suffix I wanted to avoid any possible conflicts with packages from AUR. Hope you guys agree, otherwise I'm gonna change the suffix.
@stefanpartheym
I don't think it matters if you have zero intentions to put the packages on the AUR.
Just as an FYI here are the packaging guidelines, I guess you know about them already https://wiki.archlinux.org/title/Arch_package_guidelines
Currently, I use the suffix -archfix. Not sure, if it really fits, but probably not too important
😅
I guess using -fix
would be enough, but yeah that sounds good.
Also, @stefanpartheym @sigboe , can you confirm that my fork works, so I know whether to open a pr or not.
Yes, same for me when using yay. I modified all PKGBUILDs in the repo to use a suffix in order for the AUR package managers to be able to distinguish between those packages (also specifying provides and conflicts). This will be part of the v1.0.0 "release".
Currently, I use the suffix -archfix. Not sure, if it really fits, but probably not too important sweat_smile
@alba4k @Tropicao @sigboe : Do you have any suggestions/wishes regarding the suffix? Otherwise I'll commit and push my changes to the repo.
You're right. However, I didn't plan to push those packages to AUR. With the archfix suffix I wanted to avoid any possible conflicts with packages from AUR. Hope you guys agree, otherwise I'm gonna change the suffix.
Hi @stefanpartheym. Before seeing your last answer, I was about to preach for a push to AUR : not only for a "fix" package, but to improve existing AUR packages by providing your modifications to those. IMHO, while this whole repository is currently the best way to make the webcam work on alder lake hardware, this package conflict issues (and your suggestion to add a suffix to fix this) highlights a more general issue, which is that we are kind of "forking" what already exists in AUR. While it seems valid as a short term solution (since the webcam support mess is here to stay for a while), any newcomer wanting to make the camera work will be confronted to multiple packages sources : the AUR packages, and your repository.
In the mean time, I totally understand if you do not want to undertake this. In this case, I do not have any strong suggestion about the best prefix :)
Thanks @sigboe @alba4k @Tropicao for all the suggestions. I your answers give a clear direction as to what the suffix should be. Not that I would want to make a huge deal out of this, but you convinced me to use a simple fix
suffix instead a weird unconventional archfix
.
I'll change the suffix in the repo and release a v1.0.1
for this.
However, I think right now, I'm not going to release those packages to AUR any time soon. Also, not sure if I would need to ask the authors of the patches and PKGBUILD
s before doing so.
Again thanks to all of you for your input and contributions :)
Hi @alba4k,
Ok so, it's not working for me, which I expected, but if any of you can confirm that it works with
gst-plugin-pipewire
installed, then using my branch should be working too. I can open a pull request if someone is able to confirm that it is indeed working.
sorry, I didn't check your fork before committing my changes. But yes, go ahead and create a PR, so I can merge your commit :)
I also agree on not pushing to the aur, to be honest, as it would only add complexity to the already existing mess. I could though add a note on the Arch Wiki mentioning this, as it already mentions the arch support thread from which this was created.
I'm currently merging everything with your branch so I can open a pr.
Also, @stefanpartheym , if you get the same errors while building the modules, I believe that the only reason the camera works for you is that you already have the modules installed and never uninstalled them (I'm just assuming). Does dkms status
complain about anything? Have you ever uninstalled the drivers completely and then reinstalled them? I think that we might overcome this issue by calling dkms with --force
. This would either break everything or fix the issue.
Also, I do see the webcam led turn on for a split second when running test.sh
, which prints the following:
Setting pipeline to PAUSED ...
[02-05 01:41:05.210] CamHAL[INF] aiqb file name ov01a10.aiqb
[02-05 01:41:05.210] CamHAL[INF] aiqb file name ov01a10.aiqb
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
(gst-launch-1.0:26124): GStreamer-CRITICAL **: 01:41:05.294: Registering meta implementation 'GstCamerasrcMeta' without init function
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.829491013
Setting pipeline to NULL ...
Enter ia_aiq_get_aiqd_data()
Out-aiqd data size: 41480
[02-05 01:41:06.225] CamHAL[WAR] Failed to open file /run/camera/ov01a10-uf_VIDEO.aiqd, error No such file or directory
Freeing pipeline ...
Edit: Here it is.
I think this issue could be closed now. Camera still not working in all programs probably. However, with the --workaround
flag at least fixes it in some other programs, as far as I can tell.
Anyone seeing still a need for this issue, please open a new one – thanks :)
Fully agree. I think that now that the bulk of thee problem is gone (due to the "implicit" format conversion) new issues should be waaay more specific ahah