當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]攝像頭在Windows的驅(qū)動(dòng)極為容易,最多是點(diǎn)幾下鼠標(biāo),沒(méi)有什么太大的難度。但在Linux中,驅(qū)動(dòng)起來(lái)是有點(diǎn)困難,這并不是說(shuō)Linux多高雅。只能說(shuō)開發(fā)商唯利是圖,沒(méi)有好處的事,他們的確不怎么積極。Linux 的用戶比較少,所以他們也不把用戶當(dāng)回事。

1、攝像頭(Webcam)驅(qū)動(dòng)說(shuō)明;

攝像頭在Windows的驅(qū)動(dòng)極為容易,最多是點(diǎn)幾下鼠標(biāo),沒(méi)有什么太大的難度。但在Linux中,驅(qū)動(dòng)起來(lái)是有點(diǎn)困難,這并不是說(shuō)Linux多高雅。只能說(shuō)開發(fā)商唯利是圖,沒(méi)有好處的事,他們的確不怎么積極。Linux 的用戶比較少,所以他們也不把用戶當(dāng)回事。

目前看來(lái)攝像頭(Webcam)在 Linux 中驅(qū)動(dòng)基本成熟,缺少的是應(yīng)用程序的支持,比如即時(shí)通訊工具支持視頻的好程序比較少。有些芯片組是沒(méi)有任何問(wèn)題,在國(guó)內(nèi),大多攝像頭的芯片組是Z-Star,也有顯示為Vimmicro(和Z-Star是同樣的芯片)的。在Fedora 5.0或SuSE 10.x中,已經(jīng)支持了很多攝像頭,應(yīng)該說(shuō)即插即用。對(duì)于我們來(lái)說(shuō),是不是即插即用,那是另一回事,只有幸運(yùn)兒才有這個(gè)的福氣。如果您的攝像頭接上還是用不了,那您就有必要看一下我寫的這個(gè)文檔了。

本文操作環(huán)境: Fedora Core 5.0 。由于大部份是用源碼包編譯 ,所以還是有通用性的;

1.1 攝像頭在Linux中是如何支持的;

在 Linux中,硬件的驅(qū)動(dòng)程序,都是由內(nèi)核支持的;目前比較新內(nèi)核版本也集成了一些的攝像頭驅(qū)動(dòng)。就是Fedora、SuSE最新版本所支持的內(nèi)核也是來(lái)自由 kernel.org 。所以支持也是極為正常的。內(nèi)核對(duì)硬件的支持分為內(nèi)置于和外掛模塊兩種方便。對(duì)于攝像頭來(lái)說(shuō),大多是模塊支持的;

1.2 攝像頭(Webcam)驅(qū)動(dòng)網(wǎng)址;

http://mxhaard.free.fr

目前最新版本的攝像頭驅(qū)動(dòng),已經(jīng)到了 spca5xx-20060501.tar.gz 版本;您可以在上面的地址下載;

2、驅(qū)動(dòng)攝像頭詳細(xì)過(guò)程;

2.1 查看攝像頭型號(hào);

我們用用到 lshal 工具,在老版本的Linux是沒(méi)有這個(gè)工具的。在最新版本的Linux都有這個(gè)工具;

[root@localhost ~]# lshal |grep WebCam

info.product = 'ZC0303 WebCam' (string)

usb_device.product = 'ZC0303 WebCam' (string)

上面這個(gè)命令是列出系統(tǒng)硬件設(shè)備,然后從輸出中,提取WebCam字樣的信息。這說(shuō)明這個(gè)攝像頭是ZC0303芯片組的;如果想更詳細(xì)的,就用下面的命令,找到帶有ZC0303 WebCam設(shè)備的詳細(xì)信息,就把所有USB設(shè)備都列出來(lái);

[root@localhost ~]# lshal |grep usb

然后就找 ZC0303字樣的設(shè)備 ,那一大段都要仔細(xì)的看;

也可以這樣的方法;

[root@localhost ~]# lshal -s |grep usbusb_device_0_0_0000_00_1d_0usb_device_0_0_0000_00_1d_0_if0usb_device_4fc_3_noserialusb_device_4fc_3_noserial_if0usb_
device_4fc_3_noserial_if0_logicaldev_inputusb_device_4fc_3_noserial_usbrawusb_device_0_0_0000_00_1d_0_usbrawusb_device_
0_0_0000_00_1d_1usb_device_0_0_0000_00_1d_1_if0usb_device_ac8_303b_noserialusb_device_ac8_303b_noserial_if0usb_
device_ac8_303b_noserial_usbrawusb_device_ac8_303b_noserial_video4linuxusb_device_0_0_0000_00_1d_1_usbrawusb_
device_0_0_0000_00_1d_2usb_device_0_0_0000_00_1d_2_if0usb_device_0_0_0000_00_1d_2_usbrawusb_device_0_0_
0000_00_1d_7usb_device_0_0_0000_00_1d_7_if0usb_device_0_0_0000_00_1d_7_usbraw

我們看到帶有video4linux字樣的,他的設(shè)備號(hào)是 usb_device_ac8_303b_noserial_video4linux字樣的,在其前面還有幾個(gè)差不多的編號(hào)的設(shè)備。比如 usb_device_ac8_303b_noserial。我們就先查這個(gè)設(shè)備,大多數(shù)這樣的一組相似的設(shè)備號(hào),查第一個(gè)就能知道是什么設(shè)備。于是用。。

[root@localhost ~]# lshal -l -u usb_device_ac8_303b_noserial

udi = '/org/freedesktop/Hal/devices/usb_device_ac8_303b_noserial'

info.udi = '/org/freedesktop/Hal/devices/usb_device_ac8_303b_noserial' (string)

linux.subsystem = 'usb' (string)

linux.hotplug_type = 1 (0x1) (int)

usb_device.bus_number = 3 (0x3) (int)

usb_device.can_wake_up = false (bool)

usb_device.is_self_powered = false (bool)

usb_device.version_bcd = 272 (0x110) (int)

usb_device.speed_bcd = 4608 (0x1200) (int)

usb_device.linux.device_number = 2 (0x2) (int)

usb_device.num_ports = 0 (0x0) (int)

usb_device.max_power = 160 (0xa0) (int)

usb_device.device_revision_bcd = 256 (0x100) (int)

info.product = 'ZC0303 WebCam' (string)

usb_device.product = 'ZC0303 WebCam' (string)

info.vendor = 'Z-Star Microelectronics Corp.' (string)

usb_device.vendor = 'Z-Star Microelectronics Corp.' (string)

usb_device.product_id = 12347 (0x303b) (int)

usb_device.vendor_id = 2760 (0xac8) (int)

usb_device.device_protocol = 0 (0x0) (int)

usb_device.device_subclass = 0 (0x0) (int)

usb_device.device_class = 255 (0xff) (int)

usb_device.num_interfaces = 1 (0x1) (int)

usb_device.num_configurations = 1 (0x1) (int)

usb_device.configuration_value = 1 (0x1) (int)

usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1' (string)

info.linux.driver = 'usb' (string)

info.bus = 'usb_device' (string)

info.parent = '/org/freedesktop/Hal/devices/usb_device_0_0_0000_00_1d_1' (string)

linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1' (string)

linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1' (string)

這回應(yīng)該詳細(xì)了吧??瓷厦娴脑O(shè)備是哪個(gè)廠出品的?


usb_device.vendor_id = 2760 (0xac8) (int)

usb_device.product_id = 12347 (0x303b) (int)

info.product = 'ZC0303 WebCam' (string)

info.vendor = 'Z-Star Microelectronics Corp.' (string)

usb_device.product_id = 12347 (0x303b) (int)

在Gnome桌面環(huán)境下,還用hal-gnome軟件包工具可用;您可以通過(guò)下面的方式來(lái)安裝此軟件包

[root@localhost ~]# yum install hal-gnome

然后運(yùn)行hal-device-manager工具;

[root@localhost ~]# hal-device-manager

點(diǎn)鼠標(biāo)查看攝像頭的詳細(xì)信息還是沒(méi)有問(wèn)題吧。

2.2 根據(jù)攝像頭信息到驅(qū)動(dòng)網(wǎng)站對(duì)號(hào)入座;

請(qǐng)參見: http://mxhaard.free.fr/spca5xx.html

請(qǐng)注意:這兩個(gè)最重要的信息,也驅(qū)動(dòng)網(wǎng)址攝像頭芯片所對(duì)應(yīng)地址對(duì)號(hào)入座,如果這張列表上沒(méi)有攝像頭,可能您得等一等了。不過(guò)也不是絕對(duì)的,給開發(fā)者捐贈(zèng)一個(gè)不被支持的攝像頭,肯定能解決。驅(qū)動(dòng)開發(fā)者有捐贈(zèng)主頁(yè),不妨捐一個(gè)看看。

usb_device.vendor_id = 2760 (0xac8) (int)

usb_device.product_id = 12347 (0x303b) (int)

比如我的這款攝像頭,在其網(wǎng)站上,顯示為支持。

2.3 攝像頭驅(qū)動(dòng)的選擇;

spca5xx-20060501.tar.gz

對(duì)于Fedora Core 5.0 4.0 攝像頭驅(qū)動(dòng)RPM包:

其實(shí)在Fedora Core 5.0 中已經(jīng)有這款驅(qū)動(dòng)的RPM包了,但我嘗試后發(fā)現(xiàn)根本不能用。如果您也想嘗試RPM包,請(qǐng)到下面的網(wǎng)址去下載;或用YUM在線安裝也行,不過(guò)得設(shè)置YUM的源;

http://mirrors.ircam.fr/pub/atrpms/fc5-i386/atrpms/RPMS.testing

如果是Fedora 4.0的,就到下面的地址去下載;

http://mirrors.ircam.fr/pub/atrpms/fc4-i386/atrpms/RPMS.testing/

首先:要看自己的內(nèi)核版本,然后再下載;

[root@localhost ~]# uname -r -i

其次:下載軟件包選擇;

下載spca5xx開頭的,要安裝兩個(gè)包左右,一個(gè)是 spca5xx-kmdl,另一個(gè)是 video4linux-kmdl,還有一個(gè)是 video4linux-kernheaders。根據(jù)軟件包的時(shí)間、版本、內(nèi)核版本對(duì)照下載安裝。這方面不能說(shuō)的太多。自己試試看,我是沒(méi)有成功。

2.4 下載并編譯內(nèi)核;

由于RPM包安裝上也不可用,所以我采用的是源碼包安裝的方法,當(dāng)然因?yàn)槲矣玫氖潜容^新的內(nèi)核,2.6.16.19。所以這個(gè)文檔就是通用性了。源碼包安裝大多都差不多。所以其它發(fā)行版本也可以做為參考。

2.41 下載內(nèi)核;

我測(cè)試攝像頭所用的內(nèi)的內(nèi)核版本是 2.6.16.19;

linux-2.6.16.19.tar.bz2

下載內(nèi)核配置文件:

我從Slackware的FTP上,找到了2.6.16.19的配置文件。請(qǐng)到這里下載;kernel261619.txt

2.42 編譯內(nèi)核;

第一步:解壓內(nèi)核軟件包;

[root@localhost ~]# tar jxvf linux-2.6.16.19.tar.bz2

[root@localhost ~]# mv linux-2.6.16.19 /usr/src

把下載下來(lái)的內(nèi)核配置文件改名復(fù)制到 /usr/src/linux-2.6.16.19

[root@localhost ~]# cp kernel261619.txt /usr/src/linux-2.6.16.19/.config

第二步:編譯內(nèi)核;

[root@localhost ~]# cd /usr/src/linux-2.6.16.19/

[root@localhost linux-2.6.16.19]# make

[root@localhost linux-2.6.16.19]# make modules_install

[root@localhost linux-2.6.16.19]# make install

第三步:查看/boot/grub/menu.lst文件;

一般的情況下,make install 安裝內(nèi)核后,系統(tǒng)會(huì)把啟動(dòng)寫入GRUB的配置文件。/boot/grub/menu.lst。您可以看到有類似如下的一段;

title Fedora Core (2.6.16.19)

root (hd0,6)

kernel /boot/vmlinuz-2.6.16.19 ro root=LABEL=/1 rhgb quiet

initrd /boot/initrd-2.6.16.19.img

對(duì)于其它發(fā)行版本,您可以修改menu.lst文件。

2.5 編譯攝像頭驅(qū)動(dòng)程序;


在編譯攝像頭驅(qū)動(dòng)的前題是,我們要用2.6.16.19這個(gè)內(nèi)核來(lái)啟動(dòng)系統(tǒng),然后在 2.6.16.19內(nèi)核系統(tǒng)環(huán)境下編譯攝像頭驅(qū)動(dòng);

2.51 下載攝像頭驅(qū)動(dòng);

http://mxhaard.free.fr

spca5xx-20060501.tar.gz

2.52 解壓編譯;

再說(shuō)一點(diǎn),可能在編譯的過(guò)程中需要各種開發(fā)庫(kù)和或開發(fā)工具之類的,比如gcc、make、automake等,您要懂得自己把這些東西安裝上;少什么就安裝什么吧。

[root@localhost ~]# tar zxvf spca5xx-20060501.tar.gz

[root@localhost ~]# cd spca5xx-20060501

[root@localhost spca5xx-20060501]# make

[root@localhost spca5xx-20060501]# make install

[root@localhost spca5xx-20060501]# depmod -a

[root@localhost spca5xx-20060501]# modprobe spca5xx

看看驅(qū)動(dòng)模塊掛載好了沒(méi)有?

[root@localhost spca5xx-20060501]# lsmod |grep spca5xx

spca5xx 659920 0

videodev 7040 1 spca5xx

我們?cè)俨榭匆幌略O(shè)備/dev/video0是否存在?

[root@localhost spca5xx-20060501]# ls -lh /dev/video0

crw------- 1 beinan root 81, 0 06-08 09:33 /dev/video0

3、攝像頭應(yīng)用程序 SpcaView;

3.1 SpcaView 軟件包,包括一組工具;

spcaview工具是用來(lái)紀(jì)錄數(shù)據(jù)流,也能用來(lái)播放數(shù)據(jù);

spcaserv 是流媒體服務(wù)器;

spcacat 簡(jiǎn)單圖片的抓取工具;

SpcaView 下載和安裝;

下載地址:

http://mxhaard.free.fr/spca50x/Download ,我下載的是目前這個(gè)版本:spcaview-20051212.tar.gz

依賴關(guān)系;

此軟件依賴 libsdl,要先安裝它才行,下載地址:http://www.libsdl.org ,我下載的是:SDL-1.2.10.tar.gz

http://www.libsdl.org/download-1.2.php

[root@localhost ~]# tar zxvf SDL-1.2.10.tar.gz

[root@localhost ~]# cd SDL-1.2.10

[root@localhost SDL-1.2.10]# ./configure ; make ;make install

安裝SpcaView:

[root@localhost ~]# tar zxvf spcaview-20051212.tar.gz

[root@localhost ~]# cd spcaview-20051212

[root@localhost spcaview-20051212]# make ; make install

配置可執(zhí)行程序的路徑:

可執(zhí)行的工具被安裝到 /usr/local/bin目錄中,所以我們還要配置一下用戶的環(huán)境變量PATH 。配置命令執(zhí)行路徑,在當(dāng)前用戶家目錄下的.bashrc文件中加入下面的一行;

export PATH=".:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"

然后運(yùn)行如下命令;

[root@localhost ~]# source .bashrc

3.2 通用spcaview來(lái)測(cè)試攝像頭;

[root@localhost ~]# spcaview -d /dev/video0 -f jpg -s 320x240

如果您想看的圖像分辨率,可以調(diào)整 -s后面的參數(shù),比如 640x480

如果抓取數(shù)據(jù)流,嘗試用下面的命令,比如我們把抓取的數(shù)據(jù)流存在一個(gè)linuxsir.org.avi文件中;如果想播放,就用mplayer就行,xine也可以。

[root@localhost ~]# spcaview -f yuv -o linuxsir.org.avi

更多的幫助: http://mxhaard.free.fr/sview.html

4、即時(shí)通訊工具;


即時(shí)通訊工具在 Linux 視頻下比較少,其中有aMSN,不過(guò)aMSN雖然能簡(jiǎn)單的應(yīng)用,但如果您的機(jī)器是接在路由器或防火墻之后,還要配置端口轉(zhuǎn)發(fā)。由于我的路由器功能比較差,所以沒(méi)有發(fā)現(xiàn)有哪塊配端口轉(zhuǎn)發(fā)。不過(guò)在公司內(nèi)部局域網(wǎng)和同事聊天還是能用看到對(duì)方的。Mercury 也是MSN的客戶端 ,需要Java虛擬機(jī)支持,安裝起來(lái)有點(diǎn)麻煩。我在Fedora 5.0 Core 中沒(méi)有安裝成功。如果您想安裝嘗試,請(qǐng)自行安裝一下。如果有問(wèn)題,咱們?cè)俳涣?

4.1 aMSN ;

主頁(yè):http://amsn.sourceforge.net

aMSN 支持視頻,不過(guò)在路由器或防火墻后的計(jì)算機(jī)需要配置路由器。我和公司同事聊天測(cè)試,無(wú)需配置路由器。由于我的路由器功能比較簡(jiǎn)單,還沒(méi)有找到相應(yīng)的選項(xiàng)??磧蓮垐D吧;—— 2006.06.08 北南南北;

今天(2006.06.10),我換了一個(gè)路由器,總算把這個(gè)問(wèn)題測(cè)試成功了;在路由器上找到 有ip forward 類似的選項(xiàng),要把 6890 - 6900轉(zhuǎn)發(fā)到您所用的計(jì)算機(jī)上上的端口上,協(xié)議是TCP/UDP。比如我用的計(jì)算機(jī)的IP地址是:192.168.1.3;我的路由器上有NAT 選項(xiàng),我在NAT中的防火墻規(guī)則中設(shè)置的。也就是把 來(lái)自WAN的數(shù)據(jù)流,協(xié)議TCP/UDP ,端口 6890 - 6900,轉(zhuǎn)發(fā)到 192.168.1.3 機(jī)器上的 6890 - 6900。—— 2006.06.08 北南南北;

4.2 Mercury (MSN客戶端)

主頁(yè): http://www.mercury.to

4.3 Gaimvv ;

主頁(yè): http://gaim-vv.sourceforge.net

Gaim-vv 包含支持YahooMessager 視頻功能;目前Gaimvv已停止開發(fā),據(jù)說(shuō)在未來(lái)的Gaim 2.x中要做為重點(diǎn)開發(fā);Gaim-vv效果還是不錯(cuò)的,遺憾的是只支持 YahooMessager 視頻。我測(cè)試了 Gaim-vv 的YahooMessager 視頻,性能還比較不錯(cuò),對(duì)系統(tǒng)資源占用相對(duì)來(lái)說(shuō)較少

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉