一、环境
主机环境 :ubuntu 12.04
目标机 :OK6410(S3C6410)
交叉工具链 :arm-unknown-linux-gnueabi(cross-4.2.2-eabi.tar.bz2)
摄像头 :Z301P
二、移植过程
1、配置内核是内核支持芯片为ZC301的摄像头
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)
2、重新编译内核
make zImage
3、mjpg-stream的移植
mkdir /tony 作为拷给开发板文件的目录
mkdir /home/forlinx/jpeg
(1)jpeg库的移植
解压源码包
tar vxzf jpegsrc.v8b.tar.gz
配置源码
cd jpeg-8b
./configure --prefix=/home/forlinx/jpeg --host=arm-unknown-linux-gnueabi
编译
make
安装
make install
注意把/home/forlinx/jpeg/lib/libjpeg.so.8 拷贝进ubuntu 的lib目录
cp libjpeg.so.8 /tony
(2)mjpg-stream的移植
解压源码
tar xvf mjpg-streamer-r63.tar.gz
修改源码
cd mjpg-streamer-r63
修改顶层makefile及plugins目录中的各级makefile将所有
CC=gcc
修改为
CC=arm-unknown-linux-gnueabi-gcc(或者在make的时候用make CC=arm-unknown-linux-gnueabi-gcc)
修改plugins/input_uvc/Makfile:
修改
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
为
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/forlinx/jpeg/include
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
为
$(CC) $(CFLAGS) -ljpeg -L/home/forlinx/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
编译
make
cp *.so /tony
cp mjpg-stream /tony
tony目录文件拷给开发板,把libjpeg.so.8放进lib中
在tony目录下运行以下命令
export LD_LIBRARY_PATH=”$(pwd)”
mjpg_streamer -i "input_uvc.so -d /dev/video2" -o "output_http.so -w /www"(设备端口自己看具体情况设定)
同时可以移植BOA服务器 把mjpg_streamer 下的www目录拷进boa相应目录
先启动boa然后 启动mjpg_streamer
在PC上 火狐浏览器地址栏输入http://192.168.69.222:8080(IP自己设定)(两台机子必须能双向PING通)
这样可以显示图像和网页了
成果图贴一张