我尝试sigrok
使用真实硬件运行。但是,运行时pulseview
,不可能有真实硬件。我怀疑这是由于sigrok
没有访问硬件的权限,因此我以 root 身份运行它,并且能够访问硬件。
我的问题是:如何在没有 root 权限的情况下运行它?我假设我需要更改设备文件的gid
或uid
才能访问它。如果是这样:
- 我如何找到硬件的设备文件?
- 如何干净地做到这一点?即当硬件断开并重新连接时自动执行此操作。
- 哪个 gid?有约定吗?
如果相关
- Hantek 6022BL。目前,以逻辑分析仪模式运行并使用驱动程序“Saleae Logic”。
- LTS 18.04
答案1
网络手册中有一个关于如何在没有 root 权限的情况下运行 PulseView 的主题:https://sigrok.org/doc/pulseview/0.4.1/manual.html
如果您不安装 PulseView 发行版软件包(使用 AppImage 或从源代码构建时就是这种情况),PulseView 将无法访问 USB 和串行端口设备,除非以 root 身份运行。由于除非绝对必要,否则程序不应以 root 身份运行,因此我们提供了 udev 配置文件,允许 PulseView 以非 root 身份访问这些设备。安装方法如下:
sudo bash
cd /etc/udev/rules.d/
wget https://sigrok.org/gitweb/?p=libsigrok.git;a=blob_plain;f=contrib/60-libsigrok.rules -O 60-libsigrok.rules
wget https://sigrok.org/gitweb/?p=libsigrok.git;a=blob_plain;f=contrib/61-libsigrok-plugdev.rules -O 61-libsigrok-plugdev.rules
wget https://sigrok.org/gitweb/?p=libsigrok.git;a=blob_plain;f=contrib/61-libsigrok-uaccess.rules -O 61-libsigrok-uaccess.rules
sudo udevadm control --reload-rules