最近在用Electron写跨平台桌面开发,Linux下使用‘node-hid’打开设备报以下错误: node
使用sudo打开AppImagegit
sudo ./*.AppImage
复制代码
可是报以下错误 [10261:1112/113058.429080:FATAL:atom_main_delegate.cc(194)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180. 追踪与中断点陷阱
github
在这里我找到了解决方法ubuntu
解决方案:只需在没有沙箱的状况下将其做为sudo运行便可。 sudo ./Biscuit-1.1.7.AppImage --no-sandbox 但我不知道这是不是最佳解决方案。vim
经过查看‘node-hid’readme
大多数Linux发行版使用UDEV来管理对物理设备的访问,USBHID设备一般由root用户拥有。若要容许非根访问,必须根据设备供应商ID和Productid为设备建立UDEV规则。bash
只须要为USBHID设备建立一个udev rule文件便可,操做步骤以下
cd /etc/udev/rules.d
sudo touch my.rules
sudo vim my.rules
输入i进入编辑模式,添加以下脚本,请注意,idVendor和idProduct的值必须为十六进制且小写。修改idVendor和idProduct的十六进制修改成您的设备ui
# Copy this udev with "sudo cp 51-blink1.rules /etc/udev/rules.d/"
# Edit it to suit your type of Linux. It's currently set up for modern Ubuntu
# When done, do "sudo udevadm control --reload-rules"
# and unplug and replug in the blink1 device.
# Note the hex values for vid & pid must be lower-case
# SYSFS{idVendor}=="27b8", SYSFS{idProduct}=="01ed", MODE="666"
#ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed", SUBSYSTEMS=="usb", ACTION=="add", MODE="0666", GROUP="plugdev"
# modern ubuntu
SUBSYSTEM=="input", GROUP="input", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed", MODE:="666", GROUP="plugdev"
KERNEL=="hidraw*", ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed", MODE="0666", GROUP="plugdev"
复制代码
按下ESC退出编辑,输入:wq
或按下ZZ
退出vim
最后执行以下命令
sudo udevadm control --reload-rules
最后最后从新插拔您的设备
如今你能够经过双击鼠标打开AppImage文件,而且可以打开USBHID设备了!this