概述
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