刚接触Linux硬件驱动有关的项目,配置摄像头经历的一些操作

(这篇文章是刚接触Linux下V4L时作为记录记下的,感觉只有几个命令还有参考作用)                               

一 确定摄像头种类

确定是否符合UVC标准协议,一般Linux 2.6.3(好像是,不用在意)以上的版本都在内核集成了。

1.lsusb

使用这条命令能看到USB有关设备。lsusb -v | grep "14 Video",打印信息如下:

bFunctionClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video
bInterfaceClass 14 Video

说明是支持UVC的摄像头

2.dmesg

刚插入摄像头的打印信息如下:

[17102.026976] usb 3-4: new high-speed USB device number 23 using xhci_hcd
[17102.155595] usb 3-4: New USB device found, idVendor=1908, idProduct=2311
[17102.155603] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[17102.155606] usb 3-4: Product: USB2.0 PC CAMERA
[17102.155610] usb 3-4: Manufacturer: Generic
[17102.156147] uvcvideo: Found UVC 1.00 device USB2.0 PC CAMERA (1908:2311)
[17102.156690] input: USB2.0 PC CAMERA as /devices/pci0000:00/0000:00:14.0/usb3/3-4/3-4:1.0/input/input29

暂时不知道这信息怎么使用。 (1908:2311)这个信息是可以在http://www.ideasonboard.org/uvc/查询是否支持UVC的(然而我没找到自己这摄像相应的,但其实也是支持UVC的)。

二 注意摄像头加载的文件位置。

http://blog.csdn.net/linczone/article/details/48342419(这是一篇如何使usb设备创建指定设备名的博客,暂时未懂也还用不上,以后学习)

摄像头加载到/dev/video*上。通过摄像头插入前后对比知道了摄像头的设备文件名。

三 已有的支持摄像头的软件

luvcview

webcam

spcaview

xawtv

可以通过apt-get install直接安装,也可以尝试自主编译源码,由于嵌入式开发交叉编译需要,我必须尝试自主编译源码。

四 编译软件源码(通过apt-get更方便)

luvcview

1.luvcview编译缺少库文件支持

SDL与linux/videodev.h

SDL(Simple DirectMedia Layer)在网上下载安装。

linux/videodev.h解决方案:

方案1:(其实是有问题的,编译不通过)

sudo apt-get install libv4l-dev 

sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h

方案2:

sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h

2.启动luvcview报错(未解决)

luvcview 0.2.6

Couldn't initialize SDL: No available video device

xawtv-3.95

1.make 问题

问题一 :Oops: (n)curses library not found. You need this one, please install.

sudo apt-get install libncurses5-dev

问题二:jpeg library not found.

sudo apt-get install libjpeg-dev    

Linux下学习摄像头使用的更多相关文章

  1. C语言高级应用---操作linux下V4L2摄像头应用程序

    我们都知道,想要驱动linux下的摄像头,其实很简单,照着V4L2的手册一步步来写,很快就可以写出来,但是在写之前我们要注意改变系统的一些配置,使系统支持framebuffer,在dev下产生fb0这 ...

  2. Linux 下V4l2摄像头采集图片,实现yuyv转RGB,RGB转BMP,RGB伸缩,jpeglib 库实现压缩RGB到内存中,JPEG经UDP发送功(转)

    ./configure CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld --host=arm-linux --prefix=/usr/loca ...

  3. C语言高级应用---操作linux下V4L2摄像头应用程序【转】

    转自:http://blog.csdn.net/morixinguan/article/details/51001713 版权声明:本文为博主原创文章,如有需要,请注明转载地址:http://blog ...

  4. 在 Linux 下学习 C 语言有什么好处?

    作者:宅学部落链接:https://www.zhihu.com/question/23893390/answer/832610610来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  5. Linux下学习王爽老师的汇编语言

    坐起来非常容易,找到这条路确实非常曲折,为了后来的同志们不再纠结,特记录如下: 这几天看汇编语言时,很多人都推荐王爽老师的<汇编语言>,老师的书的确写的很好,但是讲的是ms的汇编,但是总不 ...

  6. 2018.3.26 Linux下学习命令

    Linux下的终端文件颜色说明 ---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never'.'always'或'auto'其中之一 白色:表示普通文件 蓝色:表示目录 绿色:表 ...

  7. linux下motion摄像头监控编译与配置

    利用linxu下的开源的motion搭建嵌入式视频动态监控系统 所谓移动图像监测,简单来说就是利用摄像头定点监测某个区域,当有移动物体经过时,摄像头便自动抓拍(要监测多大物体.按拍照速率都是可调的), ...

  8. 在Linux下开始C语言的学习

    为什么要在linux下学习C语言? linux下可以体验到最纯粹的C语言编程,可以抛出其他IDE的影响 环境配置简单,一条命令就足够.甚至对于大多数linux发行版本,都已经不需要配置C语言的环境 查 ...

  9. Linux 下从头再走 GTK+-3.0 (一)

    原本由于项目需求在 Linux 下学习过一段时间的 GTK+2.0 图形开发,时隔一段时间,想真正深入学习一下 GTK . 这次直接从头学习 GTK+-3.0 ,并写下博文便于日后查看,也方便新手入门 ...

随机推荐

  1. linux中一些特殊的中文文件不能删除问题

    例: [root@iZ2zecl4i8oy1rvs00dqzeZ tmp]# ,),(,,' [root@iZ2zecl4i8oy1rvs00dqzeZ tmp]# echo "rm -rf ...

  2. 生成统计数据并导出Excel

    需求:看如下表格的统计需求 生产调度中心部门需要从IT技术部门得到这些统计数据 步骤: (1)获取所有的子公司列表 (2)遍历所有的子公司,获取每个子公司的库存信息 (3)遍历所有的库存信息,并对库存 ...

  3. delphi 怎么实现主窗口退出时,有一个提示框?

    无论点窗口上的[按钮]还是[右上角的叉],能出现一个提示窗口,“是”-退出窗口,“否”-重新登录(调出登录窗口),“取消”-返回.MessageBox能实现吗?还是要调用新窗口(我调用窗口,有些错误) ...

  4. java 中 的 字节流!

    package cn.zhouzhou; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  5. 1064 - You have an error in your SQL syntax;

    mysql 1064 错误: SQL语法错误,check the manual that corresponds to your MySQL server version for the right ...

  6. [离散时间信号处理学习笔记] 10. z变换与LTI系统

    我们前面讨论了z变换,其实也是为了利用z变换分析LTI系统. 利用z变换得到LTI系统的单位脉冲响应 对于用差分方程描述的LTI系统而言,z变换将十分有用.有如下形式的差分方程: $\displays ...

  7. 【C/C++】C/C++中的数组是怎么实现的?

    几乎所有的语言都把数组作为一种固有的数据类型,数组也是我们最常用的数据结构之一.在语言底层,数组是如何实现的呢?本文以抽象数据类型的形式,定义.实现数组. 创建数组,理论上,我们可以使用创建任意维度的 ...

  8. 如何在Ubuntu 18.04上安装Django

    Django是一个免费的开源高级Python Web框架,旨在帮助开发人员构建安全,可扩展和可维护的Web应用程序. 根据您的需要,有不同的方法来安装Django.它可以使用pip在系统范围内安装或在 ...

  9. [BZOJ 2743] [HEOI 2012] 采花

    Description 萧芸斓是Z国的公主,平时的一大爱好是采花.今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了 \(n\) 朵花,花有 \(c\) 种颜色(用整数 \ ...

  10. CH2101 可达性统计(算竞进阶习题)

    拓扑排序+状态压缩 考虑每一个点能够到达的所有点都是与该店相邻的点的后继节点,可知: 令f[u]表示u点可到达的节点个数,f[u]={u}与f[v](u, v)的并集 于是可以利用状态压缩,能够到达的 ...