新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Arm-linux下USB攝像頭的視頻服務器的實現

        Arm-linux下USB攝像頭的視頻服務器的實現

        作者: 時間:2016-11-21 來源:網絡 收藏
        我使用的是webcom 001 的攝像頭,它的控制芯片是zc301,以這款芯片做的攝像頭在市場上占有率

        很高,大概有70%左右。開發板的內核是Linux2.6.18,交叉編譯器是arm-linux-gcc 3.4.1。
        配置一下內核,在內核目錄下make menuconfig,在Device driver->Multimedia devices->Video4Linux,將它編譯進內核,使系統提供V4L。然后就是USB攝像頭的驅動,盡管其內核中就集成了對0V511、zc301等系列攝像頭的支持,開源驅動spca5xx/gspca也提供了對大部分主流攝像頭的支持,但還是無法涵蓋所有品牌的各種型號的攝像頭,尤其是對于國內的中低端用戶,很難找到直接可用的Linux下的驅動。于是我在網上下載了gspca驅動(http://mxhaard.free.fr/spca50x/Download/gspcav1-20070508.tar.gz,如果無法鏈接
        的話,可以到csdn上下載,我已經上傳了,免資源分),交叉編譯make,其中Makefile參考的是

        本文引用地址:http://www.104case.com/article/201611/319079.htm

        VERSION = 01.00.18

        DEFINES =

        ###
        # The following flags enable experimental features.
        # By default, these are enabled for development versions of the driver, and
        # disabled for release versions.

        # Optional: Enable driver debugging
        DEFINES += -DGSPCA_ENABLE_DEBUG

        # Optional: Enable direct register read/write for PAC207 development
        #DEFINES += -DGSPCA_ENABLE_REGISTERPLAY

        ###
        # The following flags enable features that arent yet implemented, and
        # therefore are disabled by default.

        # Optional: Enable compression
        DEFINES += -DGSPCA_ENABLE_COMPRESSION

        ###
        # Rest of Makefile follows here. You probably wont need to touch this.

        # Setup defines
        DEFINES += -DCONFIG_USB_GSPCA_MODULE=1 -DMODULE -D__KERNEL__
        DEFINES += -DVID_HARDWARE_GSPCA=0xFF -DGSPCA_VERSION="$(VERSION)"

        ifneq ($(KERNELRELEASE),) # We were called by kbuild
        CFLAGS += $(DEFINES)
        obj-m += gspca.o
        gspca-objs := gspca_core.o decoder/gspcadecoder.o

        else # We were called from command line

        KERNEL_VERSION = `uname -r`
        KERNELDIR := /usr/src/linux-2.6.20.3
        PWD := $(shell pwd)
        MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/
        MODULE_INSTALLDIR2 = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/media/video/
        CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc
        CROSS_COMPILE=/usr/local/arm/3.4.1/bin/arm-linux-
        ARCH=arm

        default:
        $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules

        install:
        mkdir -p $(MODULE_INSTALLDIR)
        rm -f $(MODULE_INSTALLDIR)spca5xx.ko
        rm -f $(MODULE_INSTALLDIR2)gspca.ko
        install -c -m 0644 gspca.ko $(MODULE_INSTALLDIR)
        /sbin/depmod -ae

        uninstall:
        rm -f $(MODULE_INSTALLDIR)gspca.ko
        /sbin/depmod -aq

        endif

        ##############################################################################
        # OTHER TARGETS
        ##############################################################################
        clean:
        rm -r -f *.o decoder/.gspcadecoder.o.cmd decoder/*.o
        .gspca.o.cmd *.o *.ko *.mod.* .[a-z]* core *.i
        *.symvers *.err

        ##############################################################################

        就會在解壓目錄下生成gspca.ko,然后cp gspca.ko /home/NFS,在開發板上insmod gspca.ko。
        這時ls /dev就會看到一些設備文件vedio0 usbdev1.2_ep82 usbdev1.2_ep81。將USB攝像頭插入開發板的USB接口。這時USB攝像頭的驅動已經搞定了。下面再移植servfox做服務器,用spacview播放即可。注意,
        spacview需要SDL庫的支持,如果沒有的話會出錯。還有就是運行交叉編譯的servfox要帶參數的,如

        ./servfox -d /dev/video0 -s 640x480 -w 192.168.1.75:7070,當然運行客戶端播放程序也要帶參數的,

        如在局域網內另一臺PC上運行./spcaview -d /dev/video0 -s 640x480 -w 192.168.1.75:7070。csdn上編譯好的servfox和spcaview下載。當然也可以下載到源碼自己編譯。

        運行后的效果圖如下:



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鹤峰县| 潜山县| 灌南县| 景德镇市| 顺义区| 名山县| 金华市| 大邑县| 健康| 灵丘县| 万年县| 平江县| 康定县| 峨山| 南部县| 锡林郭勒盟| 全南县| 义乌市| 兰坪| 伊宁县| 炎陵县| 万荣县| 安塞县| 岑巩县| 临沂市| 深泽县| 乌恰县| 东阳市| 赫章县| 苗栗县| 团风县| 南涧| 清水河县| 噶尔县| 布尔津县| 合阳县| 乌兰县| 广灵县| 肇东市| 肇州县| 黎川县|