Page 1 of 1

"...udev rule needs to be configured appropriately..."

Posted: Tue May 06, 2025 9:49 am
by bambuko
I am trying to customise my new keyboard using web app (https://github.com/Keychron/qmk_firmwar ... ron/v1_max)
To do that I had to install Opera browser (the app seems to work only in Chrome based browsers)

All is easy until I discover that:
"...To access the connected device on the Linux system, the udev rule needs to be configured appropriately..."
so my app knows there are paired devices but attempting to connect leads nowhere

I know enough to be dangerous, but this is something I have never done before...
Can someone, please point me, in the direction of where I can learn what to do?

Code: Select all

System:
  Kernel: 6.1.0-34-amd64 [6.1.135-1] arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.1.0-34-amd64 root=UUID=<filter> ro quiet splash
  Desktop: KDE Plasma v: 5.27.5 wm: kwin_x11 vt: 7 dm: SDDM Distro: MX-23.6_KDE_x64 Libretto May
    19 2024 base: Debian GNU/Linux 12 (bookworm)
Machine:
  Type: Mini-pc System: HP product: HP EliteDesk 800 G3 DM 65W v: N/A serial: <superuser required>
    Chassis: type: 35 serial: <superuser required>
  Mobo: HP model: 829A v: KBC Version 06.29 serial: <superuser required> UEFI: HP
    v: P21 Ver. 02.40 date: 04/08/2022
CPU:
  Info: model: Intel Core i7-7700 bits: 64 type: MT MCP arch: Kaby Lake gen: core 7 level: v3
    note: check built: 2018 process: Intel 14nm family: 6 model-id: 0x9E (158) stepping: 9
    microcode: 0xF8
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache: L1: 256 KiB
    desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 8 MiB desc: 1x8 MiB
  Speed (MHz): avg: 1600 min/max: 800/4200 scaling: driver: intel_pstate governor: powersave
    cores: 1: 1600 2: 1600 3: 1600 4: 1600 5: 1600 6: 1600 7: 1600 8: 1600 bogomips: 57600
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: itlb_multihit status: KVM: VMX unsupported
  Type: l1tf mitigation: PTE Inversion
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2 mitigation: IBRS; IBPB: conditional; STIBP: conditional; RSB filling;
    PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort mitigation: TSX disabled
Graphics:
  Device-1: Intel HD Graphics 630 vendor: Hewlett-Packard driver: i915 v: kernel arch: Gen-9.5
    process: Intel 14nm built: 2016-20 ports: active: DP-1,DP-2,DP-3
    empty: HDMI-A-1,HDMI-A-2,HDMI-A-3 bus-ID: 00:02.0 chip-ID: 8086:5912 class-ID: 0300
  Display: x11 server: X.Org v: 1.21.1.7 with: Xwayland v: 22.1.9 compositor: kwin_x11 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915 display-ID: :0 screens: 1
  Screen-1: 0 s-res: 6200x1920 s-dpi: 96 s-size: 1640x508mm (64.57x20.00")
    s-diag: 1717mm (67.59")
  Monitor-1: DP-1 pos: primary,bottom-c model: BenQ EX2710Q serial: <filter> built: 2024
    res: 2560x1440 hz: 60 dpi: 109 gamma: 1.2 size: 597x336mm (23.5x13.23") diag: 685mm (27")
    ratio: 16:9 modes: max: 2560x1440 min: 720x400
  Monitor-2: DP-2 pos: bottom-r model: BenQ GW2765 serial: <filter> built: 2018 res: 2560x1440
    hz: 60 dpi: 109 gamma: 1.2 size: 597x336mm (23.5x13.23") diag: 685mm (27") ratio: 16:9 modes:
    max: 2560x1440 min: 720x400
  Monitor-3: DP-3 pos: top-left model: BenQ BL2480T serial: <filter> built: 2022 res: 1080x1920
    hz: 60 dpi: 93 gamma: 1.2 size: 296x527mm (11.65x20.75") diag: 604mm (23.8") ratio: 16:9 modes:
    max: 1920x1080 min: 720x400
  API: OpenGL v: 4.6 Mesa 24.2.8-1mx23ahs renderer: Mesa Intel HD Graphics 630 (KBL GT2)
    direct-render: Yes
Audio:
  Device-1: Intel 200 Series PCH HD Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel
    bus-ID: 00:1f.3 chip-ID: 8086:a2f0 class-ID: 0403
  API: ALSA v: k6.1.0-34-amd64 status: kernel-api tools: alsamixer,amixer
  Server-1: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse status: active
    2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Ethernet I219-LM vendor: Hewlett-Packard driver: e1000e v: kernel port: N/A
    bus-ID: 00:1f.6 chip-ID: 8086:15e3 class-ID: 0200
  IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel modules: wl pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 01:00.0 chip-ID: 8086:24fd class-ID: 0280
  IF: wlan0 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth wireless interface type: USB driver: btusb v: 0.8 bus-ID: 1-14:5
    chip-ID: 8087:0a2b class-ID: e001
  Report: hciconfig ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 2.1 lmp-v: 4.2
    sub-v: 100 hci-v: 4.2 rev: 100
  Info: acl-mtu: 1021:4 sco-mtu: 96:6 link-policy: rswitch hold sniff
    link-mode: peripheral accept service-classes: rendering, capturing, object transfer, audio,
    telephony
Drives:
  Local Storage: total: 223.58 GiB used: 93.04 GiB (41.6%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/sda maj-min: 8:0 vendor: SanDisk model: SSD PLUS 240GB size: 223.58 GiB block-size:
    physical: 512 B logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 00RL scheme: GPT
Partition:
  ID-1: / raw-size: 115.1 GiB size: 112.73 GiB (97.94%) used: 93.04 GiB (82.5%) fs: ext4
    dev: /dev/sda2 maj-min: 8:2
  ID-2: /boot/efi raw-size: 2.24 GiB size: 2.23 GiB (99.80%) used: 428 KiB (0.0%) fs: vfat
    dev: /dev/sda1 maj-min: 8:1
Swap:
  Kernel: swappiness: 15 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: file size: 58.69 GiB used: 0 KiB (0.0%) priority: -2 file: /swap/swap
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Repos:
  Packages: 2479 pm: dpkg pkgs: 2460 libs: 1290 tools: apt,apt-get,aptitude,nala pm: rpm pkgs: 0
    pm: flatpak pkgs: 19
  No active apt repos in: /etc/apt/sources.list
  Active apt repos in: /etc/apt/sources.list.d/debian-stable-updates.list
    1: deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/debian.list
    1: deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
    2: deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
  Active apt repos in: /etc/apt/sources.list.d/mx.list
    1: deb http://mxlinux.mirrors.uk2.net/packages/mx/repo/ bookworm main non-free
    2: deb http://mxlinux.mirrors.uk2.net/packages/mx/repo/ bookworm ahs
  Active apt repos in: /etc/apt/sources.list.d/onlyoffice.list
    1: deb https://download.onlyoffice.com/repo/debian squeeze main
  Active apt repos in: /etc/apt/sources.list.d/opera-stable.list
    1: deb https://deb.opera.com/opera-stable/ stable non-free
  Active apt repos in: /etc/apt/sources.list.d/signal-xenial-added-by-mxpi.list
    1: deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main
Info:
  Processes: 240 Uptime: 19m wakeups: 1 Memory: 15.5 GiB used: 4.09 GiB (26.4%) Init: SysVinit
  v: 3.06 runlevel: 5 default: graphical tool: systemctl Compilers: gcc: 12.2.0 alt: 12
  Client: shell wrapper v: 5.2.15-release inxi: 3.3.26
Boot Mode: UEFI

Re: "...udev rule needs to be configured appropriately..."  [Solved]

Posted: Tue May 06, 2025 11:08 am
by asqwerth
For linux systems, you have to grant permission to the HID (don't ask me what that is) device, before the VIA webapp can access the keyboard. If you do that, you don't need to go the udev route (I didn't).

https://bbs.archlinux.org/viewtopic.php?id=285709

If you faced an error trying to use the VIA webapp,
...Check in Chrome [or your chrome-based browser] device logs (chrome://device-log) the name, there should be an access denied error.
From that, you will see what number your device is, whether it's hidraw1 or hidraw2, etc etc....

Then you run in terminal

Code: Select all


sudo chmod a+rw /dev/hidraw[whatever the number is]
to enable permissions for all users.

To remove permissions again after the keyboard is configured,

run

Code: Select all

sudo chmod 600 /dev/hidraw[the same number]
[CAVEAT ADDED: I am not using a keychron keyboard, but a China-made keyboard that provides the json file to be used by the VIA webapp. I don't know if Keychron does it the same way, though I note that the Arch forum thread I linked to relates to a Keychron user]

Re: "...udev rule needs to be configured appropriately..."

Posted: Tue May 06, 2025 12:04 pm
by bambuko
asqwerth wrote: Tue May 06, 2025 11:08 am ..Check in Chrome [or your chrome-based browser] device logs (chrome://device-log) the name, there should be an access denied error.
struggled with that in Opera :rolleyes:
searched for a while, in the end gave up and installed (confession time ;) ) Google Chrome

from than onwards it was simple

Thank you very much indeed !

Re: "...udev rule needs to be configured appropriately..."

Posted: Tue May 06, 2025 12:16 pm
by asqwerth
I always install Google Chrome as a backup browser for sites that don't work well with Firefox. Don't worry about it. ;-)

Re: "...udev rule needs to be configured appropriately..."

Posted: Tue May 06, 2025 12:31 pm
by bambuko
asqwerth wrote: Tue May 06, 2025 12:16 pm ...Don't worry about it. ;-)
I feel like I've been to the confession and have been absolved from my sins :p
Thank you, I shall keep Chrome as a backup browser

Re: "...udev rule needs to be configured appropriately..."

Posted: Tue May 06, 2025 1:10 pm
by Stevo
asqwerth wrote: Tue May 06, 2025 11:08 am For linux systems, you have to grant permission to the HID (don't ask me what that is)
FYI, HID means Human Interface Device.