2

I have a Lenovo Miix 510. That machine has an ov2680 CMOS sensor for one of its cameras. There's been an ov2680.c in the Linux kernel for a little while, and that's definitely translated into a driver that I can find:

djrscally@valhalla:/lib/modules/5.4.0-37-generic$ find . -name *2680*
./kernel/drivers/media/i2c/ov2680.ko

and even modprobe and lsmod successfully:

djrscally@valhalla:/lib/modules/5.4.0-37-generic$ sudo modprobe ov2680
djrscally@valhalla:/lib/modules/5.4.0-37-generic$ lsmod | grep ov2680
ov2680                 24576  0
videodev              184320  1 ov2680
mc                     40960  2 videodev,ov2680

And that translates to a /sys/bus/i2c/devices/i2c-OVTI2680:00 directory. So it's at least partially working...but as far as I can tell never actually grabbing the device. For example dmesg | grep ov2680 returns nothing at all, and starting Cheese simply tells me "There was an error playing video from the webcam".

What's going on? Device has a driver, why isn't it working?

2 Answers 2

0

Do you have "access" (the file permissions kind of "access") to /dev/video?

ls -l /dev/video

will show you.

sudo adduser $USER $(stat -G /dev/video)

followed by logout/login will give you "group" access to /dev/video.

1
  • Thanks; I've tried that, I definitely have permissions to the video devices as a member of the video group, but no dice.
    – Dan Scally
    Jun 15, 2020 at 20:47
0

Answer: the existing driver isn't designed for an x86 platform, and is intended to be discovered via i2c matching, so the device is never paired to the driver. sysfs directories for the devices are not created by the driver; just by the subsystem following instructions from ACPI.

Changing the driver to perform ACPI matching allows it to be found, but it's not functional as a driver currently.

4
  • Hi, could you please detail in your answer, how you did "Changing the driver to perform ACPI matching", and whether current kernels 5.9+ change something? I have a front and rear camera on an Intel-based tablet that i can see the ACPI nodes for them in /sys/, but no v4l devices. Thank you Jan 23, 2021 at 22:34
  • @AlexStragies Hello - Kernel 5.9 doesn't change anything, but actually I and others have done a bunch of work on updating the kernel to fix the problem we were having that stopped this working. It's quite a niche issue though; if you tell me the model of your device I'll check if it's in scope.
    – Dan Scally
    Jan 24, 2021 at 23:08
  • @Dan Scally: Would a Lenovo Miix 310 be part of the devices for which you've found a workaround?
    – Lorenz
    Apr 22, 2022 at 10:19
  • @Lorenz late reply; sorry. Not at present, but we can probably do it. If you can make a post at github.com/linux-surface/linux-surface/issues/91 I can collect the info we need to see what needs to be done
    – Dan Scally
    Apr 27, 2022 at 21:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.