我试图在RHEL5上作为非root用户与USB设备连接.该设备是一个GPIO接口(其文档可在

http://www.xdimax.com/sub20/sub20.html找到),它使用libusb-1.0.使用其API打开设备的过程是:

sub_device d;

d = sub_find_devices(0);

sub_handle h = sub_open(d);

当我这样做时,sub_find_devices()调用工作,但在sub_open()调用,我得到libusb错误-3,这表明我没有权限打开设备进行写入.

我对这个问题进行了一些研究,发现我应该创建一个udev规则.在设备的sysfs节点上使用udevinfo,我得到了:

looking at device '/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2':

KERNEL=="2-1.2"

SUBSYSTEM=="usb"

SYSFS{configuration}==""

SYSFS{serial}=="15F2"

SYSFS{product}=="SUB-20"

SYSFS{manufacturer}=="XDIMAX"

SYSFS{maxchild}=="0"

SYSFS{version}==" 1.10"

SYSFS{devnum}=="6"

SYSFS{speed}=="12"

SYSFS{bMaxPacketSize0}=="64"

SYSFS{bNumConfigurations}=="1"

SYSFS{bDeviceProtocol}=="00"

SYSFS{bDeviceSubClass}=="00"

SYSFS{bDeviceClass}=="ff"

SYSFS{bcdDevice}=="0001"

SYSFS{idProduct}=="ffc3"

SYSFS{idVendor}=="04d8"

SYSFS{bMaxPower}=="100mA"

SYSFS{bmAttributes}=="80"

SYSFS{bConfigurationValue}=="1"

SYSFS{bNumInterfaces}==" 1"

然后我在/etc/udev/rules.d/991-local.rules文件中创建了以下udev规则:

SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="ffc3", NAME="sub20", GROUP="582", MODE="0660"

582是我的普通用户所属的组的GID.我也尝试了组名称的规则,但它没有用.创建此规则后,将使用正确的权限创建设备文件/ dev / sub20,但仅在插入设备时才存在,这使我有理由相信udev规则在正确的设备上匹配.但是,我的代码仍然会出错-3.

对代码进行分析后发现了这个问题:

open("/dev/bus/usb/002/006", O_RDWR) = -1 EACCES (Permission denied)

/ dev / bus / usb …节点上的权限仍然是root:root,所以这可能表明我的udev规则存在问题,尽管我不知道那可能是什么.

如果我尝试打开调用(“/ dev / sub20”,O_RDWR),我得到返回值ENXIO(没有这样的设备或地址),这是udev规则中错误的另一个可能指示,尽管/ dev / sub20文件清楚地以某种方式与正确的设备相关联,因为它仅在插入设备时才存在.

我还能做些什么来尝试让它发挥作用?

我用来访问libusb设备的udev规则如下所示:SUBSYSTEMS ==“usb”,ATTRS {idVendor} ==“04d8”,ATTRS {idProduct} ==“ffc3”,SYMLINK =“sub20”, GROUP =“usb”,MODE =“660”.它应该只是添加一个符号链接到设备,但之后权限也适用于我(我是组usb的成员).

linux libusb应用实例,在Linux中使用libusb-1.0作为非root用户访问USB设备相关推荐

  1. linux普通用户libusb访问usb,linux – 使用libusb-1.0作为非root用户访问USB设备

    我试图在RHEL5上作为非root用户与USB设备连接.该设备是一个GPIO接口(其文档可在 http://www.xdimax.com/sub20/sub20.html找到),它使用libusb-1 ...

  2. linux 6.4定时启动,Centos6.4 设置开机自动以某个非root用户启动脚本

    搭建LAMP环境注意事项 一:安装mysql 5.5以上版本需要使用cmake 和 bison 并且需要安装ncurses 在安装MySQL完毕之后,需要覆盖 掉 /etc/my.cnf centos ...

  3. java libusb_Windows下的Java访问USB设备解决之道(翻译Java libusb / libusb-win32 wrapper)收...

    Java libusb / libusb-win32 封装包 概要 Java libusb 封装包是对libsub和libusb-win32 USB library的Jave封装. libusb旨在创 ...

  4. linux以非root身份运行,以非root用户身份在linux中运行mono-service

    我需要在嵌入式系统上以最低Ubuntu安装方式运行.net C#应用程序(在Windows系统上开发)作为服务/守护程序(不包括X,除服务器外SSH,只有相关的软件).我创建了一个/etc/init. ...

  5. linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装

    linux系统下安装pfam数据库中hmmer软件以及python3非root用户的安装 http://hmmer.org/从该链接下载源,其中有Userguide.pdf 下载,解压缩并切换目录 之 ...

  6. Linux使用非root用户在根目录中创建文件夹

    使用非root用户在根目录中创建文件夹时出现以下问题:mycentos(非root用户名)权限不够 使用  sudo mkdir test 指令提示  mycentos(非root用户名)不在 sud ...

  7. linux上验证cudnn是否安装成功_非root用户安装cuda与cudnn

    很多小伙伴都和我抱怨(其实我自己也是)服务器上管理员已安装好显卡驱动或已安装的CUDA版本无法满足自己要求(要么太高要么太低),与自己需要的TensorFlow或者Pytorch版本不兼容,急的头皮发 ...

  8. linux下挂载windows上的共享目录,并设置所有者为非root用户

    参考了很多文章,这里总结下我得出来的最优答案(针对我的需求而言)吧,但是还是存在bug,稍后指出! 以下是我的bash脚本,防止多次重复挂载,相信看了就能明白: [zcm@vm-fedora20 sh ...

  9. linux安装mongodb(设置非root用户和开机启动)

    官网地址:https://www.mongodb.com/ 在官网上选择不同的linux系统得到不同的下载地址,我们用的下载地址是:https://fastdl.mongodb.org/linux/m ...

最新文章

  1. 定义一个员工类(JAVA)
  2. 如何正确的对待设计模式——我的观点
  3. [BZOJ1068/Luogu2470][SCOI2007]压缩
  4. Redis-10Redis的事务回滚
  5. python discover()没有加载测试用例_对python_discover方法遍历所有执行的用例详解
  6. 【转发活动】Hey, 是你吗? | 寻粉启示
  7. 车牌识别系统论文python_车牌识别系统的设计与实现毕业论文
  8. 利用科学计算机转换角度,角度换算计算器(角度换算弧度计算器)
  9. 手机企业微信下载文件存储地址
  10. AndroidStudio打包成APK安装运行闪退的解决方法
  11. php进行Markdown解析
  12. 安卓逆向010之实战破解内购(斗地主)
  13. Linux启动/停止/重启防火墙
  14. 老Java程序员谈谈swing要不要学
  15. MYSQL 性能优化 index 函数,隐藏,前缀,hash 索引 使用方法(2)
  16. 图片融合 c++ cuda加速
  17. 人生值得一看-观念,关键在观念 !
  18. oracle转行交流群,oracle多列转行
  19. Linux schedule 4、负载均衡
  20. 自动识别MP3:酷我MP3伴侣0.6.2.0发布

热门文章

  1. 2020中关村论坛未来青年论坛:聚焦科技与产业数字化转型,让创新成果落地开花
  2. 数据结构与算法、讲解、动态规划一脸懵?看完之后轻松掌握!
  3. 亚信安全发布“安全定义边界”2020发展理念 赋能企业在5G时代的数字化安全运营能力
  4. 云重磅 | 没有硬件,苹果发布多款“云服务”;阿里云发布基于公共云的虚拟GPU服务;中国移动首发5G套餐...
  5. python读取oracle数据到hvie parquet_创建Hive表来从parquet / avro模式读取parquet文件
  6. hikari如何切换数据源_如何使用Spring为HikariCP设置数据源?
  7. html截取url字段,Html中截取url参数 实现HTML间的url传值
  8. host文件注释 ubuntu_Redis and MongoDB 设置密码验证(scrapy)(win)(ubuntu)
  9. java 生产者消费者 demo_生产者与消费者--demo1---bai
  10. python pandas csv getitem_Python调用pandas 读csv档时出现了错误