本帖最后由 myzr_soft 于 2019-10-25 09:24 编辑
主机平台: UBUNTU14.04
硬件平台:明远智睿MY-IMX6-EK200-6Q-1G
内核版本 :linux-4.1.15
交叉编译链:arm-poky-linux-gnueabi
文件系统:L4115-fsl-image-qt5-myimx6a9.tar.bz2
下载:
配置交叉工具:
$ source /home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
JPEG库:
$ tar xzvf jpegsrc.v9c.tar.gz $ cd jpeg-9c/ $ ./configure --host=arm-poky-linux --prefix=/home/myzr/jpeg --enable-shared --enable-static $ make $ make install
$ cd $ tar xzvf mjpg-streamer-r63.tar.gz $ cd mjpg-streamer-r63/ $ vi plugins/input_uvc/Makefile
将:CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
修改为:CFLAGS += -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/myzr/jpeg/include
将:$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
修改为:$(CC) $(CFLAGS) -L/home/myzr/jpeg/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
$ make CC=”arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi”
出现错误:fatal error: linux/videodev.h: No such file or directory 原因:这是因为内核2.6.38和以后的版本已经移除了对 v4l1 的支持,新的头文件是 video4linux2.h;相比v4l1很多接口都变化。
将头文件复制到工具链:
$ cp videodev.h ~/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/include/linux/
$ make CC=”arm-poky-linux-gnueabi-gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-fb-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi”
$ mkdir install $ cp *.so install/ $ cp mjpg_streamer install/ $ cp start.sh install/ $ cp www install/ -r
将/home/myzr/jpeg 文件夹复制到开发板 将/home/myzr/mjpg-streamer-r63/install 文件夹复制到开发板
在开发板上执行: # cp jpeg/lib/* ~/install/ # cd install/ # vi start.sh
根据具体情况修改start.sh mjpg-stream支持JPEG和YUV两种格式,由于我使用的usb摄像头是YUV格式的,所以在输入中加入"-y" :
./mjpg_streamer -i "input_uvc.so -y -d /dev/video2 -r 640x480 -f 10"
# ./start.sh
192.168.137.81为开发板的IP 效果图:
|