歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Linux2.28內核上使用攝像頭

在Linux2.28內核上使用攝像頭

日期:2017/2/28 16:01:30   编辑:Linux教程

Ubuntu 8.04自帶的驅動已經能夠識別大多數攝像頭,然而兼容性並不好,很多只能被Ekiga識別,而無法使用skype進行視頻聊天。我們需要進行一些安裝和調試工作來讓攝像頭更好的工作。

首先,查看當前的usb口連接情況:

$ lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 002: ID 0483:2016 SGS Thomson Microelectronics Fingerprint Reader
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 005: ID 0ac8:301b Z-Star Microelectronics Corp. ZC0301 WebCam
Bus 002 Device 003: ID 046d:c01f Logitech, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

從這些信息我們可以看出攝像頭的Vendor_id=0ac8,Product_id=301b;還可以看出圖形界面已經使用的usb端口的情況及攝像頭芯片的制造商Z-Star Microelectronics Corp.說明我們的攝像頭已經被系統所識別,下面讓我們開始吧:
如果沒有連接,重新插一下攝像頭,在虛擬機上將會看到攝像頭的圖標,然後選擇到linux中,這樣在linux中就能發現USB攝像頭設備。

然後安裝攝像頭的萬能驅動,在linux2.6.18以上內核的都需要打補丁。
1. 下載gspcav1-20071224.tar.gz並解壓
$ wget -c http://www.slackware.com/~alien/slackbuilds/gspcav1/build/gspcav1-20071224.tar.gz
$ tar zxvf gspcav1-20071224.tar.gz

2. 編譯並安裝驅動
$ cd gspcav1-20071224
$ make clean
$ make
$ sudo make install

若編譯出現以下錯誤的解決辦法
/usr/src/gspcav1-20070508/gspca_core.c:2303: 錯誤: ‘VIDIOCSYNC’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2354: 錯誤: ‘VIDIOCGFBUF’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2357: 錯誤: ‘sizeof’ 不能用於不完全的類型 ‘struct video_buffer’
/usr/src/gspcav1-20070508/gspca_core.c:2357: 錯誤: ‘sizeof’ 不能用於不完全的類型 ‘struct video_buffer’
/usr/src/gspcav1-20070508/gspca_core.c:2357: 錯誤: ‘sizeof’ 不能用於不完全的類型 ‘struct video_buffer’
/usr/src/gspcav1-20070508/gspca_core.c:2357: 錯誤: ‘sizeof’ 不能用於不完全的類型 ‘struct video_buffer’
/usr/src/gspcav1-20070508/gspca_core.c:2357: 錯誤: ‘sizeof’ 不能用於不完全的類型 ‘struct video_buffer’
/usr/src/gspcav1-20070508/gspca_core.c:2357: 錯誤: ‘sizeof’ 不能用於不完全的類型 ‘struct video_buffer’
/usr/src/gspcav1-20070508/gspca_core.c:2358: 錯誤: 提領指向不完全類型的指針
/usr/src/gspcav1-20070508/gspca_core.c:2361: 錯誤: ‘BASE_VIDIOCPRIVATE’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2393: 錯誤: ‘VIDIOCKEY’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2395: 錯誤: ‘VIDIOCCAPTURE’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2397: 錯誤: ‘VIDIOCSFBUF’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2399: 錯誤: ‘VIDIOCGTUNER’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2400: 錯誤: ‘VIDIOCSTUNER’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2402: 錯誤: ‘VIDIOCGFREQ’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2403: 錯誤: ‘VIDIOCSFREQ’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2405: 錯誤: ‘VIDIOCGAUDIO’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c:2406: 錯誤: ‘VIDIOCSAUDIO’ 未聲明 (在此函數內第一次使用)
/usr/src/gspcav1-20070508/gspca_core.c: 在函數 ‘cd_to_spca50x’ 中:
/usr/src/gspcav1-20070508/gspca_core.c:2616: 警告: 隱式聲明函數 ‘to_video_device’
/usr/src/gspcav1-20070508/gspca_core.c:2616: 警告: 初始化時將整數賦給指針,未作類型轉換
/usr/src/gspcav1-20070508/gspca_core.c: 在函數 ‘spca50x_create_sysfs’ 中:
/usr/src/gspcav1-20070508/gspca_core.c:2655: 警告: 隱式聲明函數 ‘video_device_create_file’
/usr/src/gspcav1-20070508/gspca_core.c:2665: 警告: 隱式聲明函數 ‘video_device_remove_file’
make[2]: *** [/usr/src/gspcav1-20070508/gspca_core.o] 錯誤 1
make[1]: *** [_module_/usr/src/gspcav1-20070508] 錯誤 2
make[1]: Leaving directory `/usr/src/linux-2.6.21.2'
make: *** [default] 錯誤 2

解決辦法,打補丁

內核:linux2.6.27.11
到這兒下載兩個文件 http://www.slackware.com/~alien/slackbuilds/gspcav1/build/

gspca_kernel_2.6.27.diff
gspcav1-20071224.tar.gz
第一個文件是補丁文件,LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,18)用就用得上了。
第二個是驅動文件。

解壓:
gspcav1-20071224.tar.gz並進入其目錄,拷貝
gspca_kernel_2.6.27.diff到此目錄。

當前目錄運行命令:
patch -p1<gspca_kernel_2.6.27.diff
進行補丁

Copyright © Linux教程網 All Rights Reserved