基于linux3.0.15內核的中(zhong)星微zc301攝像頭驅(qu)動及網絡(luo)視頻服務(wu)器移(yi)
時間:2018-08-15 來(lai)源:未知
一、 移植環境:
【移植環境】
1、 主(zhu)機:Ubuntu 10.10發行版
2、 目(mu)標(biao)機:FS4412平臺
3、 交叉編譯工具:arm-none-linux-gnueabi-4.5.1
4、 攝像頭模塊:ZC301
5、Linux文(wen)件系(xi)統:rootfs. cramfs.
6、內核:linux-3.0.15-fs4412_V3
二、 內核配置
4. 添加(jia)驅(qu)動(video)
Make menuconfig
Device Drivers --->
<*> Multimedia support --->
<*> Video For Linux
[*] Enable Video For Linux API 1 (DEPRECATED) (NEW)
[*] Video capture adapters (NEW) --->
[*] V4L USB devices (NEW) --->
<*> USB Video Class (UVC)
[*] UVC input events device support (NEW)
<*> USB ZC0301[P] webcam support (DEPRECATED)
make zImage
三、 網絡視頻服務器移植
由(you)于項目需要,現在(zai)需要移(yi)植(zhi)網絡視(shi)頻(pin)服務器,對(dui)于內(nei)核linux-3.0.15-fs4412_V3,不能再(zai)使用(yong)servfox,如果(guo)要使用(yong)的需要修改大量的代碼,在(zai)此選(xuan)用(yong)新的方(fang)法來移(yi)植(zhi)。需要兩個文件jpeg,mjpg-stream.移(yi)植(zhi)如下:
mkdir /source/rootfs/mjpg
1. jpeg庫(ku)的移植
mkdir /home/linux/jpeg
jpeg源(yuan)碼(ma)包通過下(xia)面這個(ge)網址下(xia)載
//www.ijg.org/files/jpegsrc.v8b.tar.gz
解壓源碼包
tar xvf jpegsrc.v8b.tar.gz
配置源碼
cd jpeg-8b
./configure --prefix=/home/linux/jpeg --host=arm-none-linux-gnueabi
(./configure 配(pei)置源代碼樹
安裝目錄:
--prefix=PREFIX體系無(wu)關文件的頂級安裝目錄。
--host=HOST指定交(jiao)叉工(gong)具鏈(lian)
)
編譯
make
安裝
make install
拷貝庫到文(wen)件系統中
cp –d /home/linux/jpeg/lib/* /source/rootfs/lib
2. mjpg-stream的移植
mjpg-stream源碼包通過下(xia)面這(zhe)個(ge)網址(zhi)下(xia)載(zai)
//sourceforge.net/projects/mjpg-streamer/
解壓源碼
tar xvf mjpg-streamer-r63.tar.gz
修改源碼
cd mjpg-streamer-r63
修(xiu)(xiu)改頂層makefile及(ji)plugins目(mu)錄中的各級makefile將所有 (注意這里需(xu)要修(xiu)(xiu)改的內容)
CC=gcc
修改為

修改(gai)plugins/input_uvc/Makfile
修改
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
為
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared –fPIC –I/homw/linux/jpeg/include
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
為
$(CC) $(CFLAGS) –ljpeg -L/home/linux/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
編譯
Make
拷貝文件到目標板:
cp *.so /source/rootfs/mjpg
cp mjpg_streamer /source/rootfs/bin
cp /opt/arm-2009q3/arm-none-linux-gnueabi/libc/lib/* /source/rootfs/lib/
在(zai)開發板上執行
mjpg_streamer -i "/mjpg/input_uvc.so -d /dev/video0" -o "/mjpg/output_http.so -w /www"
實驗現象:
在瀏覽器上輸入:開發板IP:8080/?action=stream


