I am the owner of a webcam named “Microdia videocam NB 300”, but the outcase says “Genius”.
This camera DOES works on openSUSE 11.1 but not on 11.2 (my current setup) and after a lot of research i realise that the preblem is that the proper driver “sn9c102” for my webcam is not compiled on the new kernels.
I was unsuccessful on setting up the kernel driver again and i hope that somebody here can help me, or better, fix this problem for the next kernel release.
uname -r
2.6.31.12-0.2-desktop
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 1bcf:0007 Sunplus Innovation Technology Inc.
Bus 004 Device 003: ID 0c45:602b Microdia VideoCAM NB 300
If you look in kernel’s menuconfig at next point zou will see it disabled.
make menuconfig
Linux kernel Configuration -> Device Drivers -> Multimedia Support -> V4L USB devices -> USB SN9C1xx PC Camera Controller support
I tried to compile this driver without recompiling the whole kernel and i succeded, but with some problems which make it fail.
I followed the instructions from here:
Como compilar un módulo sin recompilar todo el kernel (en OpenSuSE 10.2) « El magnÃfico – Unico e irreproducible
Howto compile a kernel’s module without recompiling the whole kernel:
cd /usr/src/linux
make clean
make cloneconfig
make menuconfig (and select the module mentioned)
make modules_prepare
make SUBDIRS=drivers/media/video/sn9c102 modules
cp drivers/media/video/sn9c102/sn9c102.ko /lib/modules/2.6.31.12-0.2-desktop/kernel/drivers/media/video/sn9c102/sn9c102.ko
depmod -a
This works to compile the kernel’s module but with the next warnning:
WARNING: Symbol version dump /usr/src/linux-2.6.31.12-0.2/Module.symvers
is missing; modules will have no dependencies and modversions.
modprobe sn9c102
FATAL: Error inserting sn9c102 (/lib/modules/2.6.31.12-0.2-desktop/kernel/drivers/media/video/sn9c102/sn9c102.ko): Invalid module format
This would be because of the warnning, so i forced it to load with the nexts results:
modprobe -f sn9c102 (worked, no errors on stdout)
dmesg
…
5040.323180] sn9c102: no symbol version for module_layout
5170.050070] sn9c102: V4L2 driver for SN9C1xx PC Camera Controllers v1:1.47pre49
5170.051867] usb 4-5: SN9C10[12] PC Camera Controller detected (vid:pid 0x0C45:0x602B)
5170.159850] usb 4-5: MI-0343 image sensor detected
5170.351826] usb 4-5: Initialization succeeded
5170.351946] usb 4-5: V4L2 device registered as /dev/video0
5170.351955] usb 4-5: Optional device control through ‘sysfs’ interface disabled
5170.351993] usbcore: registered new interface driver sn9c102
5170.358930] usb 4-5: usb_submit_urb() failed, error -28
5170.371833] ohci_hcd 0000:00:04.0: leak ed f52be240 (#81) state 2
5170.371860] usb 4-5: usb_submit_urb() failed, error -28
The driver recogniced my camera and created the device video0 but failed on usb_submit_urb().
How can i fix this ?
Why is the file Module.symvers missing?
Why was this working driver removed from opensuse?
I hope that somebody have a clue.
Thanks in advance