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格式的攝像頭,也能夠作完項目視頻的全部實驗,
只是進行遠程視頻傳輸時,須要用軟件進行圖像壓縮,致使視頻播放有些卡接口

相關文章
相關標籤/搜索