Ubuntu 下调试摄像头
1. 安装 xawtv 测试软件
#sudo apt-get install xawtv
2. 执行 xawtv 后面带 usb 摄像头的设备节点
#xawtv /dev/video0
驱动移植过程
make menuconfig //这里我将两种摄像头的移植都放上去
1、添加驱动支持USB储存设备
Device Drivers --->
[*] USB support --->
<*> EHCI HCD (USB 2.0) support
<*> EHCI support for Samsung S5P/EXYNOS SoC Series
<*> USB Mass Storage support
<*> USB3503 HSIC to USB20 Driver
USB Physical Layer drivers --->
<*> Samsung USB 2.0 PHY controller Driver
SCSI device support --->
<*> SCSI device support
<*> SCSI disk support
2、选中 Multimedia support
Device Drivers --->
<*> Multimedia support --->
进行如下配置:
3、再进入 Media USB Adapters
Device Drivers --->
<*> Multimedia support --->
<*>Media USB Adapters --->
进行如下配置:
4、进入 GSPCA base webcams
Device Drivers --->
<*> Multimedia support --->
[*] Cameras/video grabbers support //这个必须先选中
<*>Media USB Adapters --->
<*>GSPCA based webcams --->
进行如下配置:
5、进入 V4L platform devices
Device Drivers --->
<*> Multimedia support --->
<*>V4L platform devices --->
进行如下配置:
6、编译内核
make uImage
重新拷贝到我们的tftp目录下。
mjpg-stream的移植
1、jpeg源码包下载链接:https://pan.baidu.com/s/1-u_FnaYOzMeSHCkZykv1OQ 密码:b0f0
2、解压源码包: tar xvf jpegsrc.v8b.tar.gz
3、配置源码
cd jpeg-8b
./configure --prefix=/home/fengjunhui/smartstorage/mjpeg-streamer/video/jpegarm--host=arm-none-linux-gnueabi
(注意:此处必须使用绝对路径,--host=arm-none-linux-gnueabi 末尾不能加-)
4、编译
make
5、安装
make install
(如果直接make install出现错误,则按照下图所示步骤操作即可,其中两个箭头处可以都填写1,具体错误分析见:
https://blog.csdn.net/wang_walfred/article/details/38900393)
6、拷贝库到文件系统中
sudo cp /home/fengjunhui/smartstorage/mjpeg-streamer/video/jpegarm/lib/* /nfs/rootfs/lib //将/video/jpegarm/lib/目录下的所有文件拷贝到/nfs/rootfs/lib目录下
移植mjpg-streamer
1、源码下载链接:https://pan.baidu.com/s/1qPGFwqb683sgD05oZ2ro9A 密码:z24f
2、解压源码:unzip mjpg-streamer-code-182.zip
进入目录一共有 这么多目录
doc mjpg-streamer udp_client
mjpeg-client mjpg-streamer-experimental uvc-streamer
mjpg-streamer :目录下提供了 的执行程序和各个输入输出设备组件
uvc-streamer : 目录下提供了 uvc-streamer的可执行目录
mjpeg-client: : 分别有 linux和windows 的客户端
3、进入mjpg-streamer目录
4、修改源码
vi plugins/input_uvc/Makefile
修改
CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
为
CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I /home/fengjunhui/smartstorage/mjpeg-streamer/video/jpegarm/include
修改
$(CC) $(CFLAGS) -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo $(LFLAGS)
为
$(CC) $(CFLAGS) -L /home/fengjunhui/smartstorage/mjpeg-streamer/video/jpegarm/lib -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo $(LFLAGS)
注:/home/fengjunhui/smartstorage/mjpeg-streamer/video/jpegarm/lib就是上面移植jpeg库后生成的lib、include的目录
5、编译
make CC=arm-linux-gcc
在mjpg-streamer生成了 input*.so output*.so 和 mjpg_streamr 可执行文件
6、在开发板建立mjpg-streamer安装目录
mkdir /nfs/rootfs/mjpg-streamer (你的根文件系统目录)
拷贝相关文件
cp *.so /nfs/rootfs/mjpg-streamer -arf
cp mjpg_streamer /nfs/rootfs/mjpg-streamer -arf
修改start.sh文件
vi start.sh
将
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
修改为
./mjpg_streamer -i "./input_uvc.so -y" -o "./output_http.so -w ./www"
将源码目录中的start.sh和目录www拷贝到/nfs/rootfs/mjpg-streamer/目录下,然后就可以测试啦
sudo cp start.sh www/ /nfs/rootfs/mjpg-streamer/ -arf
摄像头连接板子测试
1、测试的板子先连接好摄像头
2、启动板子,进入mjpg-streamer目录,运行start.sh
cd mjpg-streamer
./start.sh
3、虚拟机中打开浏览器,输入 http://192.168.31.66:8080/?action=stream 就可以看到图像了
(ip地址是板子的ip地址)