【linux】usb设备千千万,哪个才是对的口

光usb设备,目前接触到需要连接到linux的有u盘,usb摄像头,usb转串口设备,每次将usb设备接入linux都会一脸懵,因为不会像win10一样自动弹出信息,所以整理了一下linux上关于usb的知识点。

0. 前言

先说几个比较通用但并没有多大用的知识点:

  1. ls /dev
    这个目录下的文件就是所有的设备描述符文件,与外部的接口都会在这个文件中显示出来。
  2. 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摄像头

  1. 将摄像头连接linux系统;

  2. 安装V4l2工具包,这个工具包可以帮助查看usb摄像头的一些信息,具体命令可以参考linux USB摄像头 V4L2工具调试摄像头

    # 安装V4l2工具包
    sudo apt install v4l-utils
    
    # 查看摄像头对应的设备描述符文件
    sudo v4l2-ctl --list-devices
    
    # 查看设备信息
    v4l2-ctl -d  /dev/video0 --all
     
    # 获取连接的Video设备
    ls /dev/video*
    

    拓展信息:v4l2是什么?刚开始看到这个名字的时候完全不知道这是什么,知道看到它全程:video for linux 2才明白,它是在Linux中用来管理视频设备,v4l2框架向用户空间提供统一访问接口。

  3. 下载guvcview,guvcview就像一个播放器,可以播放摄像头采集到的画面

    sudo apt install guvcview
    # 摄像头
    guvcview -d /dev/video0
     
    # cheese测试
    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转串口设备

猜你喜欢

转载自blog.csdn.net/weixin_42442319/article/details/125801742
今日推荐