# 問題描述
ErgoKB 在 Chrome 進行 Remap 時,選擇 HID 裝置後出現 Could not open 錯誤訊息。
# 環境
- OS: EndeavourOS
- 鍵盤: ErgoKB Phoenix v2 分離式人體工學機械鍵盤
# Diagnosis
查看 HID 裝置權限,全部都只有 root 才有讀寫權限,應該是權限問題(這邊看不出每個 HID 是什麼裝置)
ls -l /dev/hidraw* | ||
crw------- 1 root root 243, 0 2月 9 12:50 /dev/hidraw0 | ||
crw------- 1 root root 243, 1 2月 9 12:50 /dev/hidraw1 | ||
crw------- 1 root root 243, 2 2月 9 12:50 /dev/hidraw2 | ||
crw------- 1 root root 243, 3 2月 9 12:50 /dev/hidraw3 |
# Solution
查看裝置 VID, PID, 得知 VID/PID 為 1209:2304
lsusb | ||
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver | ||
Bus 001 Device 004: ID 8087:0029 Intel Corp. AX200 Bluetooth | ||
Bus 001 Device 007: ID 1209:2304 Generic Phoenix-v2 | ||
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub | ||
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub |
建立裝置專用 rule 檔案 /etc/udev/rules.d/99-ergokb.rules
寫入設定
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", \ | |
ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2304", MODE="0666" |
說明:
- VID/PID 為剛剛查詢到的
1209:2304 MODE="0666"設定裝置權限為rw-rw-rw-,允許所有使用者讀寫- 原本裝置權限是
crw------- (600),只有 root 可以存取 - 改為
0666後,一般使用者(包含 Chrome)也能存取 HID 裝置
重新載入設定
sudo udevadm control --reload-rules # 重新載入 udev 規則檔案 | |
sudo udevadm trigger # 觸發事件,將新規則應用到現有設備 |
udevadm control --reload-rules:重新讀取/etc/udev/rules.d/目錄下的所有規則檔案udevadm trigger:觸發 udev 事件,讓系統重新掃描所有設備並套用新規則
執行完後 如果還是不行我勸你鍵盤拔掉重插啦,重新開啟 remap 頁面即可正常使用。 🎉
對了,如果在 Linux OS, 這篇就有可能遇到這個問題;Node.JS 控制 USB 繼電器