最近在用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