• 27、从零写UVC驱动之分析数据传输(设置ubuntu通过串口打印,指定打印到文件,ubuntu切换root用户)


    A. 设置ubuntu让它从串口0输出printk信息
    a. 设置vmware添加serial port, 使用文件作为串口(在vmware中设置,文件是保存在windows中)
    b. 启动ubuntu,修改/etc/default/grub(可以参考Ubuntu Serial Console Login.htm)
    GRUB_CMDLINE_LINUX_DEFAULT=""
    GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"  //tty0是指可以输出到屏幕,ttyS0指可以输出到串口,输入都可以从tty接受

    sudo update-grub
    sudo reboot

    c. ubuntu禁止root用户登录
    先修改root密码: sudo passwd root
    然后执行"su root"就可以用root登录了

    d. echo "8 4 1 7" > /proc/sys/kernel/printk

    再次重启后,只要执行这2个命令就可以:
    su root
    echo "8 4 1 7" > /proc/sys/kernel/printk

    B. 写代码:

    (代码中有个cnt=2在执行,因为UVC设备有两个接口VC和VS,probe会被调用两次,在第二次在执行注册分配操作)
    1.构造一个usb_driver
    2.设置
      probe:
        2.1. 分配video_device:video_device_alloc
        2.2. 设置
          .fops
          .ioctl_ops (里面需要设置11项)
          如果要用内核提供的缓冲区操作函数,还需要构造一个videobuf_queue_ops
        2.3. 注册: video_register_device
      id_table: 表示支持哪些USB设备
    3.注册: usb_register

    (在mmap函数中根据虚拟地址找到一个page结构体,通过vm_insert_page可以把page映射到mmap提供的地址区,这样应用程序就可以操作这块区域)

    USB摄像头型号:
    a. 视频里用的是: 环宇飞扬 6190 ,它输出的是原始YUV数据,不支持输出MJPEG压缩数据
    大概35元
    b. 你也可以使用其它符合UVC规范的摄像头: 就是接到WINDOWS电脑上后不用装驱动的摄像头
    如果你要从零写驱动,就需要你会变通。
    c. 我们也会生产一款摄像头, 有2个接口:USB、CMOS(ITU-R BT. 601/656)
    支持输出YUV(原始数据)、MJPEG格式数据, 正在生产调试中, 2013年8月20号左右会在100ask.taobao.com发布
    大概100元
    生产出来后, 我会针对它补录一个视频,现场修改代码

    注意:即使不支持MJPEG格式的摄像头,也可以做完项目视频的所有实验,
    只是进行远程视频传输时,需要用软件进行图像压缩,导致视频播放有些卡

  • 相关阅读:
    情报收集:Metasploit命令、查询网站和测试网站
    Hbase 学习笔记5----hbase region, store, storefile和列簇的关系
    Hbase 学习笔记4----原理
    Hbase 学习笔记3----操作以及维护
    Hbase 学习笔记2----概念
    Hbase 学习笔记1----shell
    Flume日志收集 总结
    Hadoop应用开发实战案例 第2周 Web日志分析项目 张丹
    2016.4.9-关于“放生”反而促进“捕猎”的思考
    Hadoop应用开发实战案例 第1周 基本介绍
  • 原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/8733188.html
Copyright © 2020-2023  润新知