2七、从零写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接受ubuntu

sudo update-grub
sudo rebootwindows

c. ubuntu禁止root用户登陆
先修改root密码: sudo passwd root
而后执行"su root"就能够用root登陆了ide

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_registerhtm

(在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元
生产出来后, 我会针对它补录一个视频,现场修改代码blog

注意:即便不支持MJPEG格式的摄像头,也能够作完项目视频的全部实验,
只是进行远程视频传输时,须要用软件进行图像压缩,致使视频播放有些卡接口

相关文章
相关标签/搜索