You are not logged in.

#101 2025-02-20 15:42:34

zoomy942
Member
Registered: 2025-02-19
Posts: 6

Re: How to use the IPU6 webcam with kernel 6.10+?

getcha wrote:

To use webcam in chrome/zoom/teams/whatever i use OBS virtual camera, works fine.

Morning.  This is the first I've heard of this - can you elaborate?

Offline

#102 2025-02-20 15:46:42

getcha
Member
Registered: 2016-10-28
Posts: 17

Re: How to use the IPU6 webcam with kernel 6.10+?

zoomy942 wrote:
getcha wrote:

To use webcam in chrome/zoom/teams/whatever i use OBS virtual camera, works fine.

Morning.  This is the first I've heard of this - can you elaborate?

I see my webcam in OBS, so I created a scene with the webcam video feed and then created a virtual camera that sends that feed back. In chrome I choose this virtual webcam as the source.

Offline

#103 2025-02-20 15:52:33

zoomy942
Member
Registered: 2025-02-19
Posts: 6

Re: How to use the IPU6 webcam with kernel 6.10+?

getcha wrote:
zoomy942 wrote:
getcha wrote:

To use webcam in chrome/zoom/teams/whatever i use OBS virtual camera, works fine.

Morning.  This is the first I've heard of this - can you elaborate?

I see my webcam in OBS, so I created a scene with the webcam video feed and then created a virtual camera that sends that feed back. In chrome I choose this virtual webcam as the source.

Very clever!  I'll give that a try.  Thank you!

Offline

#104 2025-02-25 13:03:25

henkv
Member
Registered: 2024-10-08
Posts: 3

Re: How to use the IPU6 webcam with kernel 6.10+?

I finally managed to get my camera working on my Lenovo X1 2in1  gen 9 with the ov08x40 sensor.
All I needed was a modified version of the ov08x40 kernel module, the usbio kernel modules and the libcamera package. And v4l2loopback and v4l2-relayd for v4l2 compatibility.

I created a github repo with the required files and packages: https://github.com/henkv1/ov08x40_arch

Offline

#105 2025-02-26 01:13:06

zoomy942
Member
Registered: 2025-02-19
Posts: 6

Re: How to use the IPU6 webcam with kernel 6.10+?

henkv wrote:

I finally managed to get my camera working on my Lenovo X1 2in1  gen 9 with the ov08x40 sensor.
All I needed was a modified version of the ov08x40 kernel module, the usbio kernel modules and the libcamera package. And v4l2loopback and v4l2-relayd for v4l2 compatibility.

I created a github repo with the required files and packages: https://github.com/henkv1/ov08x40_arch

I'm copying the github and got this -

[pzimmerman@paul-latitude7320detachable ~]$ cd usbio-drivers
bash: cd: usbio-drivers: No such file or directory

Offline

#106 2025-02-26 07:23:48

henkv
Member
Registered: 2024-10-08
Posts: 3

Re: How to use the IPU6 webcam with kernel 6.10+?

zoomy942 wrote:
henkv wrote:

I finally managed to get my camera working on my Lenovo X1 2in1  gen 9 with the ov08x40 sensor.
All I needed was a modified version of the ov08x40 kernel module, the usbio kernel modules and the libcamera package. And v4l2loopback and v4l2-relayd for v4l2 compatibility.

I created a github repo with the required files and packages: https://github.com/henkv1/ov08x40_arch

I'm copying the github and got this -

[pzimmerman@paul-latitude7320detachable ~]$ cd usbio-drivers
bash: cd: usbio-drivers: No such file or directory

I updated the installation instructions. Please let me know if it works for you.

Offline

#107 2025-02-26 15:58:40

zoomy942
Member
Registered: 2025-02-19
Posts: 6

Re: How to use the IPU6 webcam with kernel 6.10+?

henkv wrote:
zoomy942 wrote:
henkv wrote:

I finally managed to get my camera working on my Lenovo X1 2in1  gen 9 with the ov08x40 sensor.
All I needed was a modified version of the ov08x40 kernel module, the usbio kernel modules and the libcamera package. And v4l2loopback and v4l2-relayd for v4l2 compatibility.

I created a github repo with the required files and packages: https://github.com/henkv1/ov08x40_arch

I'm copying the github and got this -

[pzimmerman@paul-latitude7320detachable ~]$ cd usbio-drivers
bash: cd: usbio-drivers: No such file or directory

I updated the installation instructions. Please let me know if it works for you.

Thank you!  I followed the steps, no errors.  The camera is detected (webcamtest.com for example) but the output is black.  To have an accurate test, what do you use to test the camera?  I want to emulate that so the comparison is the same.

Offline

#108 2025-02-26 17:20:05

henkv
Member
Registered: 2024-10-08
Posts: 3

Re: How to use the IPU6 webcam with kernel 6.10+?

First check if cam -l shows any devices (you can ignore the errors):

cam -l
[3:03:10.411035390] [84277] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[3:03:10.411049515] [84277] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[3:03:10.411059643] [84277]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[3:03:10.418994168] [84278] ERROR V4L2 v4l2_subdevice.cpp:1085 'ov08x40 15-0010': Unable to get rectangle 2 on pad 0/0: Inappropriate ioctl for device
[3:03:10.419009310] [84278]  WARN CameraSensor camera_sensor.cpp:304 'ov08x40 15-0010': The PixelArraySize property has been defaulted to 1928x1208
[3:03:10.419012039] [84278] ERROR V4L2 v4l2_subdevice.cpp:1085 'ov08x40 15-0010': Unable to get rectangle 1 on pad 0/0: Inappropriate ioctl for device
[3:03:10.419014093] [84278]  WARN CameraSensor camera_sensor.cpp:315 'ov08x40 15-0010': The PixelArrayActiveAreas property has been defaulted to (0, 0)/1928x1208
[3:03:10.419016509] [84278] ERROR V4L2 v4l2_subdevice.cpp:1085 'ov08x40 15-0010': Unable to get rectangle 0 on pad 0/0: Inappropriate ioctl for device
[3:03:10.419018202] [84278]  WARN CameraSensor camera_sensor.cpp:323 'ov08x40 15-0010': Failed to retrieve the sensor crop rectangle
[3:03:10.419019524] [84278]  WARN CameraSensor camera_sensor.cpp:329 'ov08x40 15-0010': The sensor kernel driver needs to be fixed
[3:03:10.419021125] [84278]  WARN CameraSensor camera_sensor.cpp:331 'ov08x40 15-0010': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[3:03:10.419128480] [84278]  WARN CameraSensorProperties camera_sensor_properties.cpp:293 No static properties available for 'ov08x40'
[3:03:10.419131178] [84278]  WARN CameraSensorProperties camera_sensor_properties.cpp:295 Please consider updating the camera sensor properties database
[3:03:10.419554754] [84278]  WARN IPAProxy ipa_proxy.cpp:160 Configuration file 'ov08x40.yaml' not found for IPA module 'simple', falling back to 'uncalibrated.yaml'
[3:03:10.419561141] [84278]  WARN IPASoft soft_simple.cpp:114 Failed to create camera sensor helper for ov08x40
Available cameras:
1: Internal front camera (\_SB_.PC00.LNK1)

If the camera is not detected, check if the usbio modules are loaded:

lsmod | grep usbio
i2c_usbio              16384  0
gpio_usbio             12288  3
usbio                  40960  2 gpio_usbio,i2c_usbio

Then check if you get an image with qcam and firefox with media.webrtc.camera.allow-pipewire set to true in about:config

If this works you can test if the camera works with gstreamer:

gst-launch-1.0 libcamerasrc ! video/x-raw,format=RGBA ! videoconvert  ! waylandsink
or for X11:
gst-launch-1.0 libcamerasrc ! video/x-raw,format=RGBA ! videoconvert  ! ximagesink

If this all works check if v4l2-relayd is started:

systemctl status v4l2-relayd
● v4l2-relayd.service - v4l2-relay daemon service
     Loaded: loaded (/usr/lib/systemd/system/v4l2-relayd.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-02-26 18:16:50 CET; 1s ago
 Invocation: 79af410c85fa4b1b8fb1e78f074fe868
    Process: 85110 ExecCondition=/usr/bin/test -n ${VIDEOSRC} (code=exited, status=0/SUCCESS)
    Process: 85112 ExecCondition=/usr/bin/test -n $FORMAT (code=exited, status=0/SUCCESS)
    Process: 85114 ExecCondition=/usr/bin/test -n $WIDTH (code=exited, status=0/SUCCESS)
    Process: 85116 ExecCondition=/usr/bin/test -n $HEIGHT (code=exited, status=0/SUCCESS)
    Process: 85118 ExecCondition=/usr/bin/test -n $FRAMERATE (code=exited, status=0/SUCCESS)
    Process: 85120 ExecCondition=/usr/bin/test -n ${CARD_LABEL} (code=exited, status=0/SUCCESS)
   Main PID: 85122 (v4l2-relayd)
      Tasks: 6 (limit: 76349)
     Memory: 18M (peak: 19.4M)
        CPU: 96ms
     CGroup: /system.slice/v4l2-relayd.service
             └─85122 /usr/bin/v4l2-relayd -i libcamerasrc -o "appsrc name=appsrc caps=video/x-raw,format=RGBA,width=1280,height=720,framerate=30/1 ! vi>

feb 26 18:16:50 systemd[1]: Starting v4l2-relay daemon service...
feb 26 18:16:50 systemd[1]: Started v4l2-relay daemon service.
feb 26 18:16:50 (sh)[85122]: v4l2-relayd.service: Referenced but unset environment variable evaluates to an empty string: SPLASHSRC

Now finally, set media.webrtc.camera.allow-pipewire to false in firefox and check again. You should now be able to select 'Virtual Camera' as camera device.

Offline

#109 2025-02-26 17:53:54

zoomy942
Member
Registered: 2025-02-19
Posts: 6

Re: How to use the IPU6 webcam with kernel 6.10+?

Welp, right out of the gate - 2 errors

[pzimmerman@paul-latitude7320detachable ~]$ cam -l
[0:01:24.831726744] [6300] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:01:24.831736820] [6300] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:01:24.831743731] [6300]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:01:24.844987634] [6301]  INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0
Available cameras:
[pzimmerman@paul-latitude7320detachable ~]$

Updating this - I was in a hurry and didn't slow down

[pzimmerman@paul-latitude7320detachable ~]$ lsmod | grep usbio
i2c_usbio              16384  0
gpio_usbio             12288  0
usbio                  40960  2 gpio_usbio,i2c_usbio
[pzimmerman@paul-latitude7320detachable ~]$ ^C


Next

qcam

[pzimmerman@paul-latitude7320detachable ~]$ qcam
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
[0:07:29.941074204] [9664] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:07:29.941132813] [9664] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:07:29.941158088] [9664]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:07:29.969452431] [9671]  INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0
[pzimmerman@paul-latitude7320detachable ~]$


Next

[pzimmerman@paul-latitude7320detachable ~]$ gst-launch-1.0 libcamerasrc ! video/x-raw,format=RGBA ! videoconvert  ! waylandsink
Setting pipeline to PAUSED ...
[0:08:01.596303196] [9820] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:08:01.596325648] [9820] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:08:01.596349936] [9820]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2
[0:08:01.626660944] [9823]  INFO SimplePipeline simple.cpp:1548 No sensor found for /dev/media0
ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Could not find any supported camera on this system.
Additional debug info:
../libcamera/src/gstreamer/gstlibcamerasrc.cpp(395): gst_libcamera_src_open (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0:
libcamera::CameraMananger::cameras() is empty
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...
[pzimmerman@paul-latitude7320detachable ~]$

Last edited by zoomy942 (2025-02-26 21:00:40)

Offline

Board footer

Powered by FluxBB