新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Arm-linux下USB攝像頭的視頻服務器的實現(xiàn)

        Arm-linux下USB攝像頭的視頻服務器的實現(xiàn)

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

        很高,大概有70%左右。開發(fā)板的內(nèi)核是Linux2.6.18,交叉編譯器是arm-linux-gcc 3.4.1。
        配置一下內(nèi)核,在內(nèi)核目錄下make menuconfig,在Device driver->Multimedia devices->Video4Linux,將它編譯進內(nèi)核,使系統(tǒng)提供V4L。然后就是USB攝像頭的驅(qū)動,盡管其內(nèi)核中就集成了對0V511、zc301等系列攝像頭的支持,開源驅(qū)動spca5xx/gspca也提供了對大部分主流攝像頭的支持,但還是無法涵蓋所有品牌的各種型號的攝像頭,尤其是對于國內(nèi)的中低端用戶,很難找到直接可用的Linux下的驅(qū)動。于是我在網(wǎng)上下載了gspca驅(qū)動(http://mxhaard.free.fr/spca50x/Download/gspcav1-20070508.tar.gz,如果無法鏈接
        的話,可以到csdn上下載,我已經(jīng)上傳了,免資源分),交叉編譯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,在開發(fā)板上insmod gspca.ko。
        這時ls /dev就會看到一些設備文件vedio0 usbdev1.2_ep82 usbdev1.2_ep81。將USB攝像頭插入開發(fā)板的USB接口。這時USB攝像頭的驅(qū)動已經(jīng)搞定了。下面再移植servfox做服務器,用spacview播放即可。注意,
        spacview需要SDL庫的支持,如果沒有的話會出錯。還有就是運行交叉編譯的servfox要帶參數(shù)的,如

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

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

        運行后的效果圖如下:



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 钟山县| 丹寨县| 恭城| 策勒县| 蓝田县| 南丰县| 成武县| 蒙山县| 台南市| 临汾市| 高密市| 康马县| 楚雄市| 霍邱县| 卢龙县| 望江县| 新田县| 保靖县| 兰考县| 大同市| 桦甸市| 临城县| 盐源县| 句容市| 东乌| 京山县| 临沂市| 玛沁县| 张家界市| 秦皇岛市| 兴业县| 军事| 义乌市| 乡城县| 安新县| 巴林左旗| 太仓市| 邹平县| 垦利县| 定陶县| 始兴县|