Skip to contentSkip to conversation

genius islim 310 webcam test

PATCH New Németh Márton 2 participants 6 messages Mar 31, 2010 – Jun 14, 2010 2 messages not in the archive

Subsystems (2)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

Hello Sergei,

Quoted 7 lines · Krivchikov Sergei

Hi!
I have a Genius iSlim 310 webcam and linux ubuntu 9.10 kernel 2.6.31. My developer level under linux - beginner (very beginner) :) but i'm ready to test this webcam undr linux. But I need the instructions:) How was your success in the launch of this webcam under Linux?

Sincerely, Sergei Krivchikov.

Currently the Genius iSlim 310 webcam is not supported by the mainline Linux kernel, but I think that the support can be added very easily. See the description at http://linuxtv.org/wiki/index.php/PixArt_PAC7301/PAC7302 why.

First thing what I'll need that you connect your Genius iSlim 310 to the Linux box, open an xterm and send the output of "lsusb" command. Then we can find out the USB ID of the device.

Also, please send the output of dmesg. The easiest way to do this is to redirect the standard output to a file like this: "dmesg >dmesg.txt" and then send the created file as an attachment.

The next thing is that you need to learn how to compile the Linux kernel from source code. There is a description for Ubuntu at
https://help.ubuntu.com/community/Kernel/Compile . After you are able to compile and install your new kernel, you can try to apply the patch in this email, recompile the kernel, install the kernel and the modules, unload the gspca_pac7302 kernel module ("rmmod gspca_pac7302"), and then plug the webcam in order it can load the new kernel module. When you were successful with these steps you'll see new messages in the output of "dmesg" command. Please send this output also.

Finally, what you will also need is that the libv4l-0 package of Ubuntu ( http://packages.ubuntu.com/intrepid/libv4l-0 ) is installed on your computer. This package you may have already installed.

These are the main points. Let's see how far you can proceed. Let me know if you need further assistance.

Regards,

Márton Németh

---
From: Márton Németh <[email protected]>

On the schematics in PixArt PAC7301/PAC7302 datasheet
(http://www.pixart.com.tw/upload/PAC7301_7302%20%20Spec%20V1_20091228174030.pdf)
pages 19, 20, 21 and 22 there is a note titled "PID IO_TRAP" which describes the possible product ID range 0x2620..0x262f. In this range there are some known webcams, however, there are some PIDs with unknown or future devices. Because PixArt PAC7301/PAC7302 is a System on a Chip (SoC) device is is probable that this driver will work correctly independent of the used PID.

---

linux/drivers/media/video/gspca/pac7302.c +28 -0
diff -r dfa82cf98a85 linux/drivers/media/video/gspca/pac7302.c
@@ -96,6 +96,7 @@
 	u8 flags;
 #define FL_HFLIP 0x01		/* mirrored by default */
 #define FL_VFLIP 0x02		/* vertical flipped by default */
+#define FL_EXPERIMENTAL 0x80	/* USB IDs based on heuristic without any known product */
 
 	u8 sof_read;
 	u8 autogain_ignore_frames;
@@ -1220,17 +1221,33 @@
 };
 
 /* -- module initialisation -- */
+/* Note on FL_EXPERIMENTAL:
+ * On the schematics in PixArt PAC7301/PAC7302 datasheet
+ * (http://www.pixart.com.tw/upload/PAC7301_7302%20%20Spec%20V1_20091228174030.pdf)
+ * pages 19, 20, 21 and 22 there is a note titled "PID IO_TRAP" which describes
+ * the possible product ID range 0x2620..0x262f. In this range there are some
+ * known webcams, however, there are some PIDs with unknown or future devices.
+ * Because PixArt PAC7301/PAC7302 is a System on a Chip (SoC) device is is
+ * probable that this driver will work correctly independent of the used PID.
+ */
 static const struct usb_device_id device_table[] __devinitconst = {
 	{USB_DEVICE(0x06f8, 0x3009)},
 	{USB_DEVICE(0x093a, 0x2620)},
 	{USB_DEVICE(0x093a, 0x2621)},
 	{USB_DEVICE(0x093a, 0x2622), .driver_info = FL_VFLIP},
+	{USB_DEVICE(0x093a, 0x2623), .driver_info = FL_EXPERIMENTAL },
 	{USB_DEVICE(0x093a, 0x2624), .driver_info = FL_VFLIP},
+	{USB_DEVICE(0x093a, 0x2625), .driver_info = FL_EXPERIMENTAL },
 	{USB_DEVICE(0x093a, 0x2626)},
+	{USB_DEVICE(0x093a, 0x2627), .driver_info = FL_EXPERIMENTAL },
 	{USB_DEVICE(0x093a, 0x2628)},
 	{USB_DEVICE(0x093a, 0x2629), .driver_info = FL_VFLIP},
 	{USB_DEVICE(0x093a, 0x262a)},
+	{USB_DEVICE(0x093a, 0x262b), .driver_info = FL_EXPERIMENTAL },
 	{USB_DEVICE(0x093a, 0x262c)},
+	{USB_DEVICE(0x093a, 0x262d), .driver_info = FL_EXPERIMENTAL },
+	{USB_DEVICE(0x093a, 0x262e), .driver_info = FL_EXPERIMENTAL },
+	{USB_DEVICE(0x093a, 0x262f), .driver_info = FL_EXPERIMENTAL },
 	{}
 };
 MODULE_DEVICE_TABLE(usb, device_table);
@@ -1239,6 +1256,17 @@
 static int __devinit sd_probe(struct usb_interface *intf,
 			const struct usb_device_id *id)
 {
+	if ((u8)id->driver_info & FL_EXPERIMENTAL) {
+		PDEBUG(D_ERR | D_PROBE, "WARNING: USB device ID %04x:%04x is "
+			"not known, but based on some heuristics this driver "
+			"tries to handle it.",
+			id->idVendor, id->idProduct);
+		PDEBUG(D_ERR | D_PROBE, "WARNING: Plase send an email to "
+			"[email protected] with 'lsusb -v' output, "
+			"the vendor and name of the product and whether the "
+			"device is working or not.");
+	}
+
 	return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd),
 				THIS_MODULE);
 }
#2 lore raw
Quoted 10 lines · On Wed, 31 Mar 2010 07:56:59 +0200 Németh Márton <[email protected]> wrote:

The next thing is that you need to learn how to compile the Linux kernel from source code. There is a description for Ubuntu at
https://help.ubuntu.com/community/Kernel/Compile . After you are able to compile and install your new kernel, you can try to apply the patch in this email, recompile the kernel, install the kernel and the modules, unload the gspca_pac7302 kernel module ("rmmod gspca_pac7302"), and then plug the webcam in order it can load the new kernel module. When you were successful with these steps you'll see new messages in the output of "dmesg" command. Please send this output also.

Hello Németh and Sergei,

I think the patch is not needed because it just gives the vend:prod which is already known by lsusb.

On the other hand, compiling a full kernel is not needed with a small tarball distribution as the one I have in my page (actual gspca-2.9.10).

Best regards.

Signature · 2 lines
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
#3 lore raw

Jean-Francois Moine írta:

Quoted 14 lines
Quoted 10 lines · On Wed, 31 Mar 2010 07:56:59 +0200 Németh Márton <[email protected]> wrote:

The next thing is that you need to learn how to compile the Linux kernel from source code. There is a description for Ubuntu at
https://help.ubuntu.com/community/Kernel/Compile . After you are able to compile and install your new kernel, you can try to apply the patch in this email, recompile the kernel, install the kernel and the modules, unload the gspca_pac7302 kernel module ("rmmod gspca_pac7302"), and then plug the webcam in order it can load the new kernel module. When you were successful with these steps you'll see new messages in the output of "dmesg" command. Please send this output also.

Quoted 4 lines

Hello Németh and Sergei,

I think the patch is not needed because it just gives the vend:prod which is already known by lsusb.

To avoid misunderstandings, the patch I sent is not just printing the USB vendor ID and product ID but also really enables the pac7302 gspca subdriver to actually work with the newly added USB IDs.

Quoted 2 lines

On the other hand, compiling a full kernel is not needed with a small tarball distribution as the one I have in my page (actual gspca-2.9.10).

This is also a possible way to go, the important thing is that a kernel module has to be built and the previous version of gspca_pac7302 kernel module has to be replaced with the newly built one.

Regards,

Márton Németh

A message that is not in the archive (sent off-list or not yet received): [email protected]

#5 lore raw

Hi Sergei, thanks for the report.

Hi Jean-Francois, I got this report about a working Genius iSlim 310 webcam. Maybe it would be a good idea to add the device 0x093a:0x2625 in pac7302.c. Should I send a patch for you?

Regards,

Márton Németh

Quoted 40 lines · Krivchikov Sergei

Hi! All works.
From: http://forum.ubuntu.ru/index.php?topic=9767.msg717310#msg717310
and
http://stemp.wordpress.com/2009/11/03/karmic-get-the-latest-drivers-for-gspca-uvc-usbvideo-and-other/

|1. sudo aptitude install mercurial build-essential linux-headers libncurses5-dev

||2. hg clone http://linuxtv.org/hg/v4l-dvb/
||3. cd v4l-dvb
4. Add to | v4l-dvb/linux/drivers/media/video/gspca/pac7302.c in section

/* -- module initialisation -- */

static const struct usb_device_id device_table[] __devinitconst = {
	{USB_DEVICE(0x06f8, 0x3009)},
	{USB_DEVICE(0x093a, 0x2620)},
	{USB_DEVICE(0x093a, 0x2621)},
	{USB_DEVICE(0x093a, 0x2622), .driver_info = FL_VFLIP},

	{USB_DEVICE(0x093a, 0x2624), .driver_info = FL_VFLIP},
*	{USB_DEVICE(0x093a, 0x2625)}*,
	{USB_DEVICE(0x093a, 0x2626)},
	{USB_DEVICE(0x093a, 0x2628)},
	{USB_DEVICE(0x093a, 0x2629), .driver_info = FL_VFLIP},

	{USB_DEVICE(0x093a, 0x262a)},
	{USB_DEVICE(0x093a, 0x262c)},
	{}
};
|5. sudo cp /boot/config-`uname -r` v4l/.config|
|6. sudo make menuconfig|

Set <M> in "Multimedia Support -> Video Capture adapters -> V4L USB devices -> GSPCA -> pac7302.c and Uncheck all other devices if you want. |7. make
8. sudo make install|

Thanks!

#6 lore raw
Quoted 3 lines · On Mon, 14 Jun 2010 16:58:15 +0200 Németh Márton <[email protected]> wrote:

Hi Jean-Francois, I got this report about a working Genius iSlim 310 webcam. Maybe it would be a good idea to add the device 0x093a:0x2625 in pac7302.c. Should I send a patch for you?

Hi Németh,

OK for the patch. Don't forget to add the webcam in the file Documentation/video4linux/gspca.txt.

Thanks.

Signature · 2 lines
Ken ar c'hentañ	|	      ** Breizh ha Linux atav! **
Jef		|		http://moinejf.free.fr/
#7 lore raw

PATCH 1/1 gspca_pac7302: add Genius iSlim 310

From: Márton Németh <[email protected]>

Add Genius iSlim 310 webcam to the supported list of the PAC7302 driver. For more information see http://linuxtv.org/wiki/index.php/PixArt_PAC7301/PAC7302 .

---

Documentation/video4linux/gspca.txt +1 -0
index f13eb03..f9b9d32 100644
@@ -253,6 +253,7 @@ pac7302		093a:2620	Apollo AC-905
 pac7302		093a:2621	PAC731x
 pac7302		093a:2622	Genius Eye 312
 pac7302		093a:2624	PAC7302
+pac7302		093a:2625	Genius iSlim 310
 pac7302		093a:2626	Labtec 2200
 pac7302		093a:2628	Genius iLook 300
 pac7302		093a:2629	Genious iSlim 300
drivers/media/video/gspca/pac7302.c +1 -0
index 2a68220..7c0f265 100644
@@ -1200,6 +1200,7 @@ static const struct usb_device_id device_table[] __devinitconst = {
 	{USB_DEVICE(0x093a, 0x2621)},
 	{USB_DEVICE(0x093a, 0x2622), .driver_info = FL_VFLIP},
 	{USB_DEVICE(0x093a, 0x2624), .driver_info = FL_VFLIP},
+	{USB_DEVICE(0x093a, 0x2625)},
 	{USB_DEVICE(0x093a, 0x2626)},
 	{USB_DEVICE(0x093a, 0x2628)},
 	{USB_DEVICE(0x093a, 0x2629), .driver_info = FL_VFLIP},