Executando verificação de segurança...
1

UDEV - Configurando Teclado Keychron V10 para usevia.app

Para explorar as features do teclado V10 é utilizado o software usevia.app diretamente pelo navegador! E a parte boa é a sua compatibilidade com Linux.

  • meu cenário:

    • Fedora release 40 (Forty)
    • Google Chrome
  • Basta acessar o link do aplicativo usevia.app e clicar em Authorize device

[!WARNING]
Porem ao tentar fazer a autorizacão do dispositivo! Ocorre o erro de permissão de acesso

[!note]
é preciso criar uma regra udev para o driver Linux hidraw que é utilizado para comunicacão com o teclado.

Solucão

Primeiro liste as infos do barramento USB pra coletar os dados do device

Obtendo os dados

  • lsusb
    Sem rodeios
$ lsusb
...
...
Bus 001 Device 005: ID 3434:03a1 Keychron Keychron V10
...

[!tip]
lsusb -D /dev/bus/usb/001/005

  1. remova o teclado
  2. inicie o monitoramento
  3. conecte o teclado
$ sudo udevadm monitor -up |grep -E "ID_VENDOR_ID|ID_MODEL_ID|DEVNAME"
...
DEVNAME=/dev/bus/usb/001/005
ID_MODEL_ID=03a1
ID_VENDOR_ID=3434

Com o path do device em mãos, também podemos obter dados com o comando udevadm usando a opcão info

  • nos interessa os campos:
    • ID_MODEL_ID
    • ID_VENDOR_ID

[!tip]
$ sudo udevadm info /dev/bus/usb/001/005 |grep -E "ID_VENDOR_ID|ID_MODEL_ID"

Sabemos que:

  • o barramento é: 001
  • o dispositivo é: 005
  • o ID do vendor Keychron é: 3434
  • o ID do produto Keychron V10 é: 03a1

Regra UDEV

Específica para o device hidraw

  • primeiro crie uma variável com o group id do usuário
    • meu usuário é 0xttfx
export USER_GID=`id -g 0xttfx`
  • enfim a regra:
$ sudo --preserve-env=USER_GID sh -c 'cat <<EOF > /etc/udev/rules.d/via.rules 
# Keychron_V10
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="03a1", MODE="0660", GROUP="${USER_GID}", TAG+="uaccess", TAG+="udev-acl"
EOF'

Em seguida recarregue as regras UDEV

sudo sh -c 'udevadm control --reload-rules && udevadm trigger'

Funfando :)

Carregando publicação patrocinada...