摄像头驱动搞了好久,昨晚终于使新买的Logictech QuickCam Image 摄像头在Qwerk板上工作了,好兴奋:)
一下是修改步骤:
1. 将摄像头插入Qwerk,读取其产品Vendor和ProdID号:
# more /proc/bus/usb/devices
找到Product=Camera块,记下vendor=046d, prodID=08a7.
2. 修改驱动spca5xx:
# gedit drivers/usb/media/spca5xx/spca_core.c &
a. 在312行的enum结构体中加入LogictechQCImage声明:
b. 在结构体cam_list clist[]中添加如下行:
c. 在static __devinitdata struct usb_device_id device_table[]中添加:
这就是第1步中读取的vendor和ProdID号。
d. 在static int spcaDetectCamera (struct usb_spca50x *spca50x)函数中添加LogictechQCImage声明:
在switch ( vendor )
......
case 0x041E:
switch ( product ) 下添加:
其中spca50x->sensor属性SENSOR_PAS202可以从网页http://mxhaard.free.fr/spca5xx.html中找到。
3. 重新编译内核,生成zImage,连同opts.out ramdisk.gz按照QwerkDevelopmentGuide烧写到Qwerk版里。至此一直工作完成。
在PC端用Java程序TeRK Diff Drive Client连接Qwerk,即可看到输出图像。适当调整摄像头焦距,得到的图像还比较清晰。
PS:
从网页http://mxhaard.free.fr/spca5xx.html中可以看出,Logictech最新几款摄像头用的驱动是linux-uvc:http://linux-uvc.berlios.de/,但其需要内核2.6.14以上。
还有驱动gspca,也要内核高于2.6.11才行。而我们的Qwerk板目前的内核版本是2.6.8.1,故只能移植spca5xx的摄像头驱动。
参考文献:
1.Qwerk Development Guide
2.http://mxhaard.free.fr/spca5xx.html
2.http://www.terk.ri.cmu.edu/forum/
file spca_core.c, after added Logictech QC Image supports:
UploadFiles/2007-5/56160902.zip
chern 发表于 2007-5-6 11:16:00
一下是修改步骤:
1. 将摄像头插入Qwerk,读取其产品Vendor和ProdID号:
# more /proc/bus/usb/devices
T: Bus
=
01
Lev
=
01
Prnt
=
01
Port
=
00
Cnt
=
01
Dev#
=
2
Spd
=
12
MxCh
=
0
D: Ver = 1.10 Cls = 00 ( > ifc ) Sub = 00 Prot = 00 MxPS = 8 #Cfgs = 1
P: Vendor = 046d ProdID = 08a7 Rev = 1.00
S: Product = Camera
D: Ver = 1.10 Cls = 00 ( > ifc ) Sub = 00 Prot = 00 MxPS = 8 #Cfgs = 1
P: Vendor = 046d ProdID = 08a7 Rev = 1.00
S: Product = Camera
找到Product=Camera块,记下vendor=046d, prodID=08a7.
2. 修改驱动spca5xx:
# gedit drivers/usb/media/spca5xx/spca_core.c &
a. 在312行的enum结构体中加入LogictechQCImage声明:
CyberpixS550V,
LogitechQCImage,
LastCamera
LogitechQCImage,
LastCamera
{LogitechQCImage,"Logitech QuickCam Image"}
,
{USB_DEVICE (0x046d, 0x08a7)}
,
/* Logitech QC image */
d. 在static int spcaDetectCamera (struct usb_spca50x *spca50x)函数中添加LogictechQCImage声明:
在switch ( vendor )
......
case 0x041E:
switch ( product ) 下添加:
case
0x08a7
:
spca50x -> desc = LogitechQCImage;
spca50x -> bridge = BRIDGE_ZC3XX;
spca50x -> sensor = SENSOR_PAS202;
spca50x -> header_len = SPCA50X_OFFSET_DATA;
spca50x -> i2c_ctrl_reg = 0 ;
spca50x -> i2c_base = 0 ;
spca50x -> i2c_trigger_on_write = 0 ;
spca50x -> cameratype = JPGH;
info
( " USB SPCA5XX camera found. Logitech QC Image " );
break ;
spca50x -> desc = LogitechQCImage;
spca50x -> bridge = BRIDGE_ZC3XX;
spca50x -> sensor = SENSOR_PAS202;
spca50x -> header_len = SPCA50X_OFFSET_DATA;
spca50x -> i2c_ctrl_reg = 0 ;
spca50x -> i2c_base = 0 ;
spca50x -> i2c_trigger_on_write = 0 ;
spca50x -> cameratype = JPGH;
info
( " USB SPCA5XX camera found. Logitech QC Image " );
break ;
其中spca50x->sensor属性SENSOR_PAS202可以从网页http://mxhaard.free.fr/spca5xx.html中找到。
3. 重新编译内核,生成zImage,连同opts.out ramdisk.gz按照QwerkDevelopmentGuide烧写到Qwerk版里。至此一直工作完成。
在PC端用Java程序TeRK Diff Drive Client连接Qwerk,即可看到输出图像。适当调整摄像头焦距,得到的图像还比较清晰。
PS:
从网页http://mxhaard.free.fr/spca5xx.html中可以看出,Logictech最新几款摄像头用的驱动是linux-uvc:http://linux-uvc.berlios.de/,但其需要内核2.6.14以上。
还有驱动gspca,也要内核高于2.6.11才行。而我们的Qwerk板目前的内核版本是2.6.8.1,故只能移植spca5xx的摄像头驱动。
参考文献:
1.Qwerk Development Guide
2.http://mxhaard.free.fr/spca5xx.html
2.http://www.terk.ri.cmu.edu/forum/
file spca_core.c, after added Logictech QC Image supports:
UploadFiles/2007-5/56160902.zip
chern 发表于 2007-5-6 11:16:00