Ubuntu的libusb安装与相机连接(简单有效)

概述

 Linux系统(如Ubuntu)在与一些USB设备通信时(如单片机、相机等),往往需要安装usb驱动,而其中最常见的便是libusb。本文将简单介绍libusb的安装与配置,同时介绍如何利用libusb控制相机采集图像以及中间可能存在的问题和解决方法。

第一部分:libusb的安装编译

  • 环境:Ubuntu16.04
  • Step1:libusb下载
     下载地址:https://github.com/libusb/libusb/releases
     选择合适的版本并下载:如libusb-1.0.20.tar.bz2
    在这里插入图片描述
  • Step2:解压文件到当前目录
     解压命令:tar -jxvf libusb-1.0.20.tar.bz2
     得到如下文件夹
    在这里插入图片描述
     进入解压后的文件夹
    在这里插入图片描述
  • Step3:配置
     在配置之前,需要先安装libudev,键入如下命令:
      sudo apt-get install libudev-dev
    在这里插入图片描述
     配置命令:sudo ./configure
    在这里插入图片描述
  • Step4:make
     命令:sudo make install
    在这里插入图片描述
  • Step5:使用libusb的测试例子检查是否成功安装
     进入libusb-1.0.20/examples
    在这里插入图片描述
     这里使用listdevs.c作为测试例子
      键入sudo make listdevs,生成可执行文件 listdevs
    在这里插入图片描述
      键入sudo ./listdevs,出现下面结果,则测试成功
    在这里插入图片描述

第二部分:libusb驱动相机与Ubuntu通信

  • 相机:PCO工业相机
  • Step1:在终端键入lsusb,查看设备已被系统识别
     未插入usb设备在这里插入图片描述
     插入usb设备后
    在这里插入图片描述
  • Step2:运行相机的sdk示例程序,这里可能会出现打开相机失败的情况,如下图
    在这里插入图片描述
     出现此情况的原因很可能是权限不足,切换到root(su - root)或者在命令输入前加上sudo,顺利打开相机
    在这里插入图片描述
  • Step3:鉴于Step2需要在运行时切换到root权限,比较麻烦;我们可以修改/etc/udev/rules.d的配置,使其对普通用户也可以永久生效。

   进入/etc/udev/rules.d,新建文件名为pco_usb.rules的规则并编辑
    键入sudo vim pco_usb.rules
    编辑pco_usb.rules并保存

# links for pco usb cameras
#
SUBSYSTEM=="usb" , ATTR{idVendor}=="1cb2" , GROUP="video" , MODE="0666" , SYMLINK+="pco_usb_camera%n"

   其中,“1cb2”为相机的idVendor,即上面lsusb图中红框标注的位置,它是不会随着连接电脑或者USB端口的改变而改变的

  • Step4:
    拔出USB线,键入sudo udevadm control --reload使设置生效
  • Step5:
    重新插入USB线连接设备,使用普通用户运行示例程序,若正常打开相机,则设置成功
    在这里插入图片描述

参考资料

 https://blog.csdn.net/ngy321/article/details/80041908
 https://blog.csdn.net/gd6321374/article/details/79903132

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
libusb-1.0.22是一个开源的用户空间USB库,可以用于Linux、macOS、Windows等操作系统。它提供了一个简单的编程接口,使开发者能够方便地与USB设备进行通信。 libusb-1.0.22支持USB 1.1和USB 2.0标准,并且还提供了对USB 3.0和USB 3.1的初步支持。它可以用于控制USB设备的各种功能,如数据的读取和写入、设备的配置和控制、USB接口的复位等。开发者可以使用libusb-1.0.22库来开发各种用途的USB设备驱动程序、USB设备管理工具以及其他需要与USB设备进行交互的应用程序。 libusb-1.0.22的主要特点包括: 1. 跨平台支持:libusb-1.0.22可以在不同的操作系统上使用,开发者可以使用相同的代码来编写USB应用程序,而无需考虑底层操作系统的差异。 2. 简单易用:libusb-1.0.22提供了一组简单的API函数,使得开发者能够轻松地进行USB设备的操作和通信。开发者只需了解USB设备的通信协议和规范,就可以使用libusb-1.0.22来实现与USB设备的交互。 3. 功能丰富:libusb-1.0.22支持各种USB设备的操作,包括控制传输、批量传输、中断传输以及同步传输。此外,libusb-1.0.22还支持USB设备的热插拔和事件通知,方便开发者进行设备的动态管理。 总之,libusb-1.0.22是一个强大而灵活的USB库,可以帮助开发者更简便地实现USB设备的控制和通信功能。无论是开发USB设备驱动程序还是与USB设备进行交互的应用程序,libusb-1.0.22都是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值