QuickCam Messenger/Communicate kernel module for Linux 2.6.30 その2について、ここに記述してください。

背景

1.認識するかな? カーネルモジュールは?

# dmesg
...
[    3.984025] usb 3-1: new full speed USB device using uhci_hcd and address 2
[    4.171081] usb 3-1: New USB device found, idVendor=046d, idProduct=08f5
[    4.171086] usb 3-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    4.171090] usb 3-1: Product: Camera
[    4.171209] usb 3-1: configuration #1 chosen from 1 choice
# ls /dev/video*
ls: cannot access /dev/video*: そのようなファイルやディレクトリはありません
#

2.カーネルモジュールを探す

# ls /lib/modules/2.6.30-1-686/kernel/drivers/media/video/usbvideo/
ibmcam.ko  konicawc.ko  quickcam_messenger.ko  ultracam.ko  usbvideo.ko  vicam.ko

# view /usr/src/linux/drivers/media/video/usbvideo/quickcam_messenger.c
...
#define USB_LOGITECH_VENDOR_ID  0x046D
#define USB_QCM_PRODUCT_ID      0x08F0
...
static struct usb_device_id qcm_table [] = {
        { USB_DEVICE(USB_LOGITECH_VENDOR_ID, USB_QCM_PRODUCT_ID) },
        { }
};
...
        if (sensor_id != cpu_to_le16(0x08F0)) {
                err("Sensor ID %x != %x. Unsupported. Sorry\n",
                        le16_to_cpu(sensor_id), (0x08F0));
                return -ENODEV;
        }
...
#

3.カーネルモジュールのモディファイ

# mv /usr/src/linux/drivers/media/video/usbvideo/quickcam_messenger.c{,.ORG}
# cp -a /usr/src/linux/drivers/media/video/usbvideo/quickcam_messenger.c{.ORG,}
# vi /usr/src/linux/drivers/media/video/usbvideo/quickcam_messenger.c
...
# diff -u /usr/src/linux/drivers/media/video/usbvideo/quickcam_messenger.c{.ORG,}
--- quickcam_messenger.c.ORG    2009-06-10 12:05:27.000000000 +0900
+++ quickcam_messenger.c        2009-10-03 02:35:56.000000000 +0900
@@ -78,6 +78,9 @@

 static struct usb_device_id qcm_table [] = {
        { USB_DEVICE(USB_LOGITECH_VENDOR_ID, USB_QCM_PRODUCT_ID) },
+       { USB_DEVICE(USB_LOGITECH_VENDOR_ID, 0x08F5) }, /* QuickCam Communicate */
+       { USB_DEVICE(USB_LOGITECH_VENDOR_ID, 0x08F6) }, /* QuickCam Messenger (new) */
+       { USB_DEVICE(USB_LOGITECH_VENDOR_ID, 0x08DA) }, /* QuickCam Messenger (new) */
        { }
 };
 MODULE_DEVICE_TABLE(usb, qcm_table);
@@ -995,11 +998,11 @@
                err("Couldn't read sensor values. Err %d\n",err);
                return err;
        }
-       if (sensor_id != cpu_to_le16(0x08F0)) {
-               err("Sensor ID %x != %x. Unsupported. Sorry\n",
-                       le16_to_cpu(sensor_id), (0x08F0));
-               return -ENODEV;
-       }
+//     if (sensor_id != cpu_to_le16(0x08F0)) {
+//             err("Sensor ID %x != %x. Unsupported. Sorry\n",
+//                     le16_to_cpu(sensor_id), (0x08F0));
+//             return -ENODEV;
+//     }

        uvd = usbvideo_AllocateDevice(cams);
        if (!uvd)
# make modules
...
# make modules_install
...
# depmod -a
#

4.さぁ、Let's enjoy

お手軽だしこれでいいやという方向けに、patch と binaries も置いておきます

Your own risk でね

QuickCam Messenger/Communicate kernel module for Linux 2.6.30 (2) (最終更新日時 2013-07-21 19:39:08 更新者 mmizuki)