Files

4.2 KiB

description
description
Установка, udev-правило и решение проблем доступа к устройству.

Установка

Зависимости

Нужен Python 3.10+. Зависимости: pyusb (для reset) и pyyaml (для apply); сам транспорт работает на голых fcntl-ioctl'ах к /dev/hidraw* (на Linux) или через hidapi (на macOS, см. ниже):

python3 -m venv .venv
.venv/bin/pip install pyusb pyyaml

udev-правило

Без правила доступ к /dev/hidraw* есть только у root. Файл 70-ganss-katana.rules даёт доступ группе plugdev и через uaccess (логин-сессии systemd):

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8006", MODE="0660", GROUP="plugdev", TAG+="uaccess"
SUBSYSTEM=="usb",    ATTRS{idVendor}=="0c45", ATTRS{idProduct}=="8006", MODE="0660", GROUP="plugdev", TAG+="uaccess"

Первая строка — доступ к hidraw-узлам (весь обмен RGB), вторая — к USB-устройству (нужна только для команды reset, которая делает USB port reset).

Установка:

sudo cp 70-ganss-katana.rules /etc/udev/rules.d/ && \
  sudo udevadm control --reload-rules && \
  sudo udevadm trigger

Проверка: katana.py mode ... должен работать без sudo.

Проверка устройства

Наличие клавиатуры проще всего проверить по USB ID 0c45:8006:

lsusb | grep -i 0c45
Bus 001 Device 028: ID 0c45:8006 Microdia Dual Mode Camera (8006 VGA)

Подпись «Dual Mode Camera (8006 VGA)» — это норма, не пугайтесь. ID 0c45:8006 принадлежит чипу Sonix SN32, который производитель ставит и в вебкамеры Microdia, и в клавиатуры. База имён usb.ids знает за этим ID только камеру, поэтому lsusb показывает её название для любого устройства с этим ID — включая эту клавиатуру. Реальный тип устройства видно по интерфейсам: 2 HID-интерфейса (boot keyboard и mouse/consumer) в usb-devices или lsusb -d 0c45:8006 -v.

!!! note "Если не помогло"

Переподключите клавиатуру.
Если пользователь не в группе `plugdev` — `sudo usermod -aG plugdev $USER` и перелогин.

Установка на macOS

Экспериментальная поддержка: транспорт работает через IOKit напрямую (ctypes), сторонние HID-библиотеки не нужны, udev-правило не нужно.

python3 -m venv .venv
.venv/bin/pip install pyusb pyyaml

macOS выдаёт доступ к HID-клавиатурам вручную: Системные настройки → Конфиденциальность и безопасность → «Input Monitoring» — добавьте приложение, из которого запускается katana.py (Terminal, iTerm2, VS Code), включите его и перезапустите приложение (разрешение подхватывается только новым процессом). Без разрешения katana.py выведет подсказку об этом.

Важно: утилиты, перехватывающие клавиатуры (Karabiner-Elements и подобные), открывают их в монопольном режиме — пока Karabiner работает, открыть устройство нельзя (ошибка kIOReturnExclusiveAccess). Выйдите из Karabiner на время настройки или исключите ARDOR_Katana в его настройках (вкладка Devices). Проверить, кто мешает, можно диагностикой misc/iokit_probe.py (см. scripts.md).

Транспорт выбирается автоматически: на macOS — IOKit, на Linux — hidraw-ioctl.