xx_zz 发表于 2005-4-4 18:17:57

ML上两款USB摄像头安装总结(spca5xx/pwcx)

经过几天的努力,终于在ml上成功驱动了两款USB摄像头,写写自己的心得,希望能给还在摸索的朋友一些帮助。

1.远见301P(spca5xx)
具体芯片型号并不是很清楚,在win下使用查看设备id为0AC8 301B
打开
http://mxhaard.free.fr/spca5xx.html
查到Spca5xx可以支持这个设备(大家如果不知道自己的摄像头是否支持,也可以先查查看。)
下载最新版本的驱动
http://mxhaard.free.fr/spca50x/Download/spca5xx-20050328.tar.gz

解开spca5xx-20050328.tar.gz
tar -xzvf spca5xx-20050319.tar.gz
进入spca5xx-20050328目录
cd spca5xx-20050328
编译
make
可能会有类似下面的出错:
/bin/sh: scripts/basic/fixdep: 没有那个文件或目录
这是因为ml自带的源代码是未编译过的,编译驱动的时候就找不到这几个必要的模块。只能把内核再编译一下了。^_^

cd /usr/src/linux-2.6.9
cp /boot/config-2.6.9 .config
make scripts

scripts编译完了,照前面的步骤make吧,应该不会再有什么错误提示了^_^
cd spca5xx-20050328
make
make install

加载驱动模块
modprobe spca5xx
再检查一下
lsmod

驱动装好了,试试吧...
下载gqcam
http://cse.unl.edu/~cluening/gqcam/download/gqcam-0.9.tar.gz

解压,编译
tar -xzvf gqcam-0.9.tar.gz
cd gqcam-0.9
make

运行gqcam
./gqcam

提示错误
/dev/video: Is a directory

video应该是一个设备啊,怎么会是路径呢?
MAKEDEV /dev/video

现在再运行gqcam应该没什么问题了,如图(^_^):

http://www.linuxfans.org/nuke/modules/Forums/files/z-star_822.png

2.Logitech Quickcam Pro 4000(pwcx)
似乎自从2.6.6内核以后,内核自带的pwc驱动就被取消了,这么一个摄像头白扔着不能用实在是太可惜了,自己想办法吧!^_^
先下载PWC/PWCX驱动
http://www.smcc.demon.nl/webcam/
[2006.1.31新编辑:
#新版本pwc驱动请查找:
#http://www.saillard.org/linux/pwc/
#另外推荐pwc驱动的调试软件setpwc:
#http://www.vanheusden.com/setpwc/
]

pwc/pwcx的硬件支持列表:
Supported cameras:
PCA645VC
PCA646VC
PCVC675K "Vesta"
PCVC680K "Vesta Pro"
PCVC690K "Vesta Scan"
PCVC720K/40 "ToUCam XS"
PCVC730K "ToUCam Fun"
PCVC740K "ToUCam Pro"
PCVC750K "ToUCam Scan"
PCVC830K "ToUCam FUN II"
PCVC840K "ToUCam Pro II"
Askey VC010
Creative Labs Webcam 5
Creative Labs Webcam Pro Ex
Logitech QuickCam 3000 Pro
Logitech QuickCam 4000 Pro
Logitech QuickCam Notebook Pro
Logitech QuickCam Zoom (read this)
Logitech QuickCam Orbit/Sphere
Samsung MPC-C10
Samsung MPC-C30
Sotec Afina Eye
AME Co. Afina Eye
Visionite VCS UM100
Visionite VCS UC30

把pwc-9.0.2.tar.gz和pwcx-9.0.tar.gz都下回来。
tar -xzvf pwc-9.0.2.tar.gz
tar -xzvf pwcx-9.0.tar.gz

cd pwcx-9.0
驱动所带的内核补丁patch-2.4.25和patch-2.6.4已经无法用了,自己改源码吧...
cd /usr/src/linux-2.6.9/drivers/usb/media
在Makefile中加入pwc和pwcx模块

pwc-objs        := pwc-if.o pwc-misc.o pwc-ctrl.o pwc-uncompress.o
pwcx-objs        := pwcx-glue.o libpwcx.a

obj-$(CONFIG_USB_PWC)                += pwc.o
obj-$(CONFIG_USB_PWCX)                += pwcx.o


再在Kconfig中加入模块编译的选项

config USB_PWC
        tristate "Philips Webcam driver"
        depends on USB && VIDEO_DEV

config USB_PWCX
        tristate "PWCX decompressor module"
        depends on USB_PWC

我自己做了个补丁,大家可以下载直接patch就行了。
http://www.linuxfans.org/nuke/modules/Forums/files/magic-pwcx.patch

cp magic-pwcx.patch /usr/src/linux-2.6.9/
cd /usr/src/linux-2.6.9/
patch -p1 -s < magic-pwcx.patch

将驱动的源文件拷贝到/usr/src/linux-2.6.9/drivers/usb/media目录下
cp ~/pwcx-9.0/x86/libpwcx.a /usr/src/linux-2.6.9/drivers/usb/media/libpwcx.a
cp ~/pwcx-9.0/pwcx/*. /usr/src/linux-2.6.9/drivers/usb/media
cp ~/pwc-9.0.2/2.6/*. /usr/src/linux-2.6.9/drivers/usb/media

重新配置编译内核
cd /usr/src/linux-2.6.9
cp /boot/config-2.6.9 .config
make menuconfig

在Device Drivers的USB Support里就能找到这个选项了:
<M> Philips Webcam driver
<M>   PWCX decompressor module
都选上吧!^_^

另外由于该摄像头自带了USB麦克风,系统启动以后USB音频会抢占声卡的优先权,造成声卡无法发声,所以最好把
< > USB Device Class drivers
< >   USB Audio support

以及
Sound--->Advanced Linux Sound Architecture---> ALSA USB devices--->< > USB Audio/MIDI driver   
都取消掉。

保存设置。
make modules
make modules_install

gqcam的安装同上,效果如图:

http://www.linuxfans.org/nuke/modules/Forums/files/4000.png

xx_zz 发表于 2005-4-4 18:22:00

实际使用上发现其实摄像头在linux平台上效果并不好,这个应该是和驱动的不完善有很大的关系。大家如果真有兴趣就试试看吧 :)
经过几天的使用,发现Spca5xx附带的一个视频软件非常的好用:
http://mxhaard.free.fr/spca50x/Download/spcagui20050108.tar.gz
这个软件不仅仅能支持Spca5xx驱动的设备,其他驱动的设备也能很好的使用,下面的图就是我用pro4000拍的。而且这个软件还支持直接拍照和视频录制功能,调节参数也比较全,值得推荐。

xx_zz 发表于 2005-4-4 18:32:06

Logitech Quickcam Pro 4000(pwcx)的内核补丁。

stdio 发表于 2005-4-4 20:39:25

嘿嘿,原来xx_zz也喜欢snoppy啊 8)

flyeagle00s1 发表于 2005-4-23 13:15:23

我的摄像头也是可以用spca5xx驱动的
请问如果,我想把它打入内核的话,我改怎么写patch呢?

xx_zz 发表于 2005-4-23 15:19:35

没有必要。单独编译spca5xx驱动的话就几分钟时间,而patch到内核中以后却要花数小时重新编译新内核……实在想要这样做的话,研究一下spca5xx驱动的Makefile,然后仿照上面pwcx的方法修改就行了,理论上是没问题的。

flyeagle00s1 发表于 2005-4-23 15:31:03

是啊,我就是打算重编译一个内核阿。为我的机器定制一个精简版的内核

我上网找了找才发现,原来mdv下面的mm版内核里面就有关于这个东东的支持 :oops:

但是用这个,我一打开摄像头看画面就死机

zhebei 发表于 2005-5-26 01:22:03

我用的系统是FC2(内核是2.6.5)用的是QuickCam Pro 4000摄像头 我也照你装QuickCam Pro 4000方法去装一切跟足(没用你的patch但照你方法自己去改) 但是重开机还是不行
我打了lsmod指令结果如下没挂到pwcx的模块 请指教为啥会如此谢谢
Module                  SizeUsed by
snd_seq                394400
snd_mixer_oss          138240
snd_intel8x0         262801
snd_ac97_codec         504361 snd_intel8x0
gameport                33281 snd_intel8x0
snd_mpu401_uart         48641 snd_intel8x0
parport_pc             193921
lp                      82360
parport                296402 parport_pc,lp
autofs4                106240
sunrpc                1010641
8139too                177920
mii                     35841 8139too
ipt_REJECT            47361
ipt_state               15361
ip_conntrack         249681 ipt_state
iptable_filter          20481
ip_tables            134403 ipt_REJECT,ipt_state,iptable_filter
floppy               474400
sg                     275520
scsi_mod               913441 sg
dm_mod               331840
snd_usb_audio          565520
snd_rawmidi            171842 snd_mpu401_uart,snd_usb_audio
snd_seq_device          61522 snd_seq,snd_rawmidi
snd_pcm                688722 snd_intel8x0,snd_usb_audio
snd_page_alloc          79402 snd_intel8x0,snd_pcm
snd_timer            171562 snd_seq,snd_pcm
snd                  3837212 snd_seq,snd_mixer_oss,snd_intel8x0,snd_ac97_codec,snd_mpu401_uart,snd_usb_audio,snd_rawmidi,snd_seq_device,snd_pcm,snd_timer
audio                  366120
soundcore               61122 snd,audio
ohci_hcd               147480
ehci_hcd               218960
button                  45040
battery               69240
asus_acpi               84720
ac                      33400
ipv6                  18428810
ext3                  1023761
jbd                  402161 ext3

xx_zz 发表于 2005-5-26 02:13:45

1.确认你新编译的内核中确实包含了pwc模块。
2.手动modprobe pwc看看。pwc模块是真正的驱动模块,pwcx只是提供X下的图像放大功能,pwcx默认是不会加载的。

zhebei 发表于 2005-5-26 02:49:44

我再重make一次 在make modules时USB部份有如下错误探讨过还没找到原因 请帮看看 指教一下 我应该那里出错 谢谢
CC drivers/usb/media/dabusb.o
drivers/usb/media/dabusb.c: In function `dabusb_read':
drivers/usb/media/dabusb.c:527: warning: `interruptible_sleep_on' is deprecated (declared at include/linux/wait.h:231)
CC drivers/usb/media/dsbr100.o
CC drivers/usb/media/ibmcam.o
CC drivers/usb/media/usbvideo.o
drivers/usb/media/usbvideo.c: In function `RingQueue_InterruptibleSleepOn':
drivers/usb/media/usbvideo.c:228: warning: `interruptible_sleep_on' is deprecated (declared at include/linux/wait.h:231)
CC drivers/usb/media/ultracam.o
CC drivers/usb/media/konicawc.o
CC drivers/usb/media/ov511.o
CC drivers/usb/media/pwc-if.o
CC drivers/usb/media/pwc-misc.o
CC drivers/usb/media/pwc-ctrl.o
CC drivers/usb/media/pwc-uncompress.o
CC drivers/usb/media/pwcx-glue.o
make: *** ????????"drivers/usb/media/pwc.o"?????"drivers/usb/media/libpwcx.a"? ???
make: *** ?? 2
make: *** ?? 2
make: *** 错误 2

xx_zz 发表于 2005-5-26 13:05:49

都是些"????",实在没办法判断到底是什么问题。不过好像pwcx解压以后,会有不同CPU类型支持的libpwcx.a,要cp正确的libpwcx.a才能正确编译。我原来按照官方的说明来做,好像也有类似的错误。再试试看吧 :-)

zhebei 发表于 2005-5-26 14:01:15

謝謝你 我今晚再試

KDE 发表于 2005-7-4 22:44:16

遗憾的是,大部分 z-star 芯片的摄像头都不能驱动,而 z-star 芯片的摄像头占据了国内绝大多数市场。

KDE 发表于 2005-7-4 23:31:19

蓝动科技的系列产品也无法驱动,比如我的 vc3u31。

kiman 发表于 2005-7-31 17:58:17

我曾经在FC2下成功安装过Z-Star的Webcam,就是跟楼主一样就是啦。
页: [1] 2
查看完整版本: ML上两款USB摄像头安装总结(spca5xx/pwcx)