光usb设备,目前接触到需要连接到linux的有u盘,usb摄像头,usb转串口设备,每次将usb设备接入linux都会一脸懵,因为不会像win10一样自动弹出信息,所以整理了一下linux上关于usb的知识点。
0. 前言
先说几个比较通用但并没有多大用的知识点:
ls /dev 这个目录下的文件就是所有的设备描述符文件,与外部的接口都会在这个文件中显示出来。lsusb 可以查看usb设备有没有连上操作系统,然后就只是看个信息,并不能说明能不能成功驱动。
1. u盘
(待写, fdisk)
2. usb摄像头
2.1 确定USB支持UVC
UVC(USBVideoClass)即USB视频类,是一种为USB视频捕获设备定义的协议标准,由Microsoft与另外几家设备厂商联合推出,目前已成为USB org标准之一。 通过这个网页 http://www.ideasonboard.org/uvc/ 可以查看是否支持 UVC,这个网站是 USB Video Class Linux device driver 的主页,里面有 UVC 的详细的介绍。
2.2 启动usb摄像头
-
将摄像头连接linux系统; -
安装V4l2工具包,这个工具包可以帮助查看usb摄像头的一些信息,具体命令可以参考linux USB摄像头 V4L2工具调试摄像头
sudo apt install v4l-utils
sudo v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --all
ls /dev/video*
-
下载guvcview,guvcview就像一个播放器,可以播放摄像头采集到的画面 sudo apt install guvcview
guvcview -d /dev/video0
cheese
2.3 摄像头驱动
我在龙芯派上尝试驱动摄像头的时候,居然没有/video0,应该需要重新编译内核,这个晚点再试试。
Linux USB 摄像头驱动
3. usb转串口
在linux上实现usb转串口通信,第一是需要驱动,比如ch341,能让系统识别这个usb;第二是需要找到对应的设备描述符,虽然通用都是ttyUSB0。
3.1 CH341驱动
之前有更新过驱动,但是有段时间了,下次如果需要再补上。
3.2 找对应的设备描述符
在终端输入dmesg | grep tty* ,在我的系统上有非常详细的说明: ch341-uart转换器与ttyUSB0相互绑定,所以我想给串口发送消息,对应的设备描述符就是/dev/ttyUSB0 ,类似于win10下的com3。 最后说一下,我在访问串口的时候,出现了权限不够的问题,解决方法:Cannot open /dev/ttyUSB0: Permission denied #2 修改所属组就可以了。 参考链接 ubuntu下如何使用USB转串口设备
|