linux下特定usb设备的权限设置

文章目录

  • 背景
  • 查找资料
  • 解决方案

背景

目前我在Ubuntu下使用一个USB热成像摄像头,通过调用它的sdk进行图像的采集以及获取对应像素点的温度。假设我现在的测试程序名称为MyApp。
当我用下面的命令运行时,程序是正常运行且能从热成像仪采集图像

sudo ./MyApp

但是当我以下面的命令运行时,

./MyApp

会报错:

libiruvc error [libiruvc.c:357/uvc_camera_open] uvc camera open device failed (uvc_error_code:-3)

这个错误是说权限的问题,也就是只能用root权限才能操作。
然而麻烦的是,在我的正式程序中,需要用到ROS2的库及环境变量一些环境变量。而这些参数无法同步到root用户的环境下。也就是说,不能用sudo启动我的程序,否则我的程序的ROS2部分功能无法使用。
但是不用sudo,热成像仪又用不了,怎么搞?

查找资料

只能修改热成像仪的读写权限了。
热成像的说明书说在linux下,系统会把这个摄像头识别成video设备,识别为/dev/video*。但是实际上我没在/dev目录下找到任video*,那也就意味着我无法直接通过 “chmod 666 /dev/video1”来更改热成像设备的权限。
然后我换一种思路,问了一下chatgpt:

在通过lsusb命令知道了usb设备的基本信息后,如何知道它对应的是/dev或者别的地方的哪个文件节点?

下面是它的回答的截图。它提到一个 /dev/bus/usb 的路径。
在这里插入图片描述
好像我那个没被识别为video的摄像头,就藏在这个路径下。

解决方案

先进行lsusb,获取到插到主机上的USB设备的信息:
在这里插入图片描述
上图用红色框框出来的设备,就是我的热成像设备。

Bus 007 Device 002: ID 0bda:5830 Realtek Semiconductor Corp. USB Camera

可以看到,Bus为007,Device为002
那么,对应在 /dev/bus/usb路径下的节点为

/dev/bus/usb/007/002

在这里插入图片描述
然后更改它的权限就行:

sudo chmod 666 /dev/bus/usb/007/002

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/114993.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为OD机试 - 特异性双端队列(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》。 刷的越多…

Vue-cli搭建SPA项目

前言 Vue CLI(Vue Command Line Interface)是一个用于快速搭建基于Vue.js的前端项目的工具。它是Vue.js官方提供的一个脚手架工具,旨在简化Vue.js项目的开发过程。Vue CLI提供了一些强大的功能,帮助开发者轻松创建、开发和构建Vu…

Verilog:$readmemb和$readmemh系统函数的使用与其中的初始化地址相关问题(详细细节)

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 $readmemb和$readmemh两个系统函数用于将文件中的数据加载到存储器或者被称为数组的memory中。首先给出他们的语法的BNF范式,有关BNF范式的内容可以在…

Merge之后,还没有Push,如何回滚

Merge之后,还没有Push,如何回滚 Merge之后,还没有Push,如何回滚 1:代码操作: 1:git log 查看git执行历史记录 GIT所有的执行记录会以倒叙呈现;最上面的就是需要回滚的merge序列号&a…

爬虫 — Scrapy 框架(一)

目录 一、介绍1、同步与异步2、阻塞与非阻塞 二、工作流程三、项目结构1、安装2、项目文件夹2.1、方式一2.2、方式二 3、创建项目4、项目文件组成4.1、piders/__ init __.py4.2、spiders/demo.py4.3、__ init __.py4.4、items.py4.5、middlewares.py4.6、pipelines.py4.7、sett…

芯科蓝牙BG27开发笔记9-蓝牙温控器例程阅读

源码: https://download.csdn.net/download/hxkrrzq/88353283 以上源码都是官方资源,可以自行gitbub下载(参见之前笔记) 蓝牙广播格式化 之前的笔记中广播数据是直接使用的十六进制字符串,关于这32bytes数据的格式化…

【Linux】系统编程线程互斥与同步(C++)

目录 【1】线程互斥 【1.1】进程线程间的互斥相关背景概念 【1.2】互斥量mutex 【1.3】互斥量实现原理探究 【1.4】RAII的加锁风格 【2】可重入VS线程安全 【2.1】概念 【2.2】常见的线程不安全的情况 【2.3】常见的线程安全的情况 【2.4】常见不可重入的情况 【2.5…

Linux之ASCII码表查询tools(五十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

基于复旦微的FMQL45T900全国产化ARM核心模块(100%国产化)

TES745D是一款基于上海复旦微电子FMQL45T900的全国产化ARM核心板。该核心板将复旦微的FMQL45T900(与XILINX的XC7Z045-2FFG900I兼容)的最小系统集成在了一个87*117mm的核心板上,可以作为一个核心模块,进行功能性扩展,能…

Flask框架-2-[单聊]: flask-socketio实现websocket的功能,实现单对单聊天,flask实现单聊功能

一、概述和项目结构 在使用flask-socketio实现单聊时,需要将会话id(sid) 与用户进行绑定,通过emit(事件,消息,tosid) ,就可以把消息单独发送给某个用户了。 flask_websocket |--static |--js |--jquery-3.7.0.min.js |--socket.io_4.3.1.js |--template…

实验五 熟悉 Hive 的基本操作

实验环境: 1.操作系统:CentOS 7。 2.Hadoop 版本:3.3.0。 3.Hive 版本:3.1.2。 4.JDK 版本:1.8。 实验内容与完成情况: (1)创建一个内部表 stocks,字段分隔符为英文逗号…

Linux 中的make/makefile

一:背景 make是一个命令工具,是一个解释makefifile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C的nmake,Linux下GNU的make。可见,mak…