Skip to content

Instantly share code, notes, and snippets.

@noahm
Created March 15, 2026 00:30
Show Gist options
  • Select an option

  • Save noahm/e2b52009d76ba9394bef816804d96d33 to your computer and use it in GitHub Desktop.

Select an option

Save noahm/e2b52009d76ba9394bef816804d96d33 to your computer and use it in GitHub Desktop.
Diagnosing SMX stages on linux

1. Identify your hidraw devices

plug in your stages and run

for dev in /dev/hidraw*; do
  node=$(basename $dev)
  name=$(cat /sys/class/hidraw/${node}/device/uevent | grep HID_NAME)
  echo "$dev: $name" | grep StepManiaX
done

also ls -l /dev/hidraw* should show the stages found by the above, hopefully with RW perms on something other than root:

crw-------  1 root root 240,  0 Mar 14 16:52 /dev/hidraw0
crw-------  1 root root 240,  1 Mar 14 16:52 /dev/hidraw1
crw-rw-rw-  1 root root 240, 10 Mar 14 17:12 /dev/hidraw10
crw-------  1 root root 240,  2 Mar 14 16:52 /dev/hidraw2
crw-rw-rw-  1 root root 240,  3 Mar 14 17:11 /dev/hidraw3
crw-------  1 root root 240,  4 Mar 14 16:52 /dev/hidraw4
crw-------  1 root root 240,  5 Mar 14 16:52 /dev/hidraw5
crw-------  1 root root 240,  6 Mar 14 16:52 /dev/hidraw6
crw-------  1 root root 240,  7 Mar 14 16:52 /dev/hidraw7
crw-------  1 root root 240,  8 Mar 14 16:52 /dev/hidraw8
crw-rw----+ 1 root root 240,  9 Mar 14 16:52 /dev/hidraw9

e.g. my stages are 10 and 3, show RW for all three positions (root, root group, and world)

2. Test your stage's hidraw interaction with your udev rules

Replace my hidraw3 with one specific to your stage in these commands:

path=$(udevadm info --name=/dev/hidraw3 --query=path)
udevadm test $path 2>&1 | grep -E "smx|hidraw"

For my mint install this outputs the following WITHOUT the udev rule added:

sd-device: Failed to chase symlinks in "/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1/1-3.1:1.2/0003:2341:8037.000E/hidraw/hidraw3".
hidraw3: /usr/lib/udev/rules.d/50-udev-default.rules:17 Importing properties from results of builtin command 'hwdb'
hidraw3: hwdb modalias key: "hid:b0003g0001v00002341p00008037"
hidraw3: hwdb modalias key: "usb:v2341p8037d0100dc00dsc00dp00ic03isc00ip00in02"
hidraw3: /usr/lib/udev/rules.d/60-fido-id.rules:5 Importing properties from results of 'fido_id'
hidraw3: Starting 'fido_id'
hidraw3: 'fido_id'(err) 'Failed to get current device from environment: Invalid argument'
hidraw3: Process 'fido_id' failed with exit code 1.
hidraw3: /usr/lib/udev/rules.d/60-fido-id.rules:5 Command "fido_id" returned 1 (error), ignoring
hidraw3: Preserve permissions of /dev/hidraw3, uid=0, gid=0, mode=0600
hidraw3: Failed to adjust timestamp of node /dev/hidraw3: Permission denied
hidraw3: Failed to create symlink '/dev/char/240:3' to '/dev/hidraw3': Permission denied
hidraw3: Failed to create device symlink '/dev/char/240:3': Permission denied
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1/1-3.1:1.2/0003:2341:8037.000E/hidraw/hidraw3
DEVNAME=/dev/hidraw3
SUBSYSTEM=hidraw

And the following WITH the udev rule in place:

Reading rules file: /etc/udev/rules.d/95-smx.rules
sd-device: Failed to chase symlinks in "/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1/1-3.1:1.2/0003:2341:8037.0010/hidraw/hidraw3".
hidraw3: /usr/lib/udev/rules.d/50-udev-default.rules:17 Importing properties from results of builtin command 'hwdb'
hidraw3: hwdb modalias key: "hid:b0003g0001v00002341p00008037"
hidraw3: hwdb modalias key: "usb:v2341p8037d0100dc00dsc00dp00ic03isc00ip00in02"
hidraw3: /usr/lib/udev/rules.d/60-fido-id.rules:5 Importing properties from results of 'fido_id'
hidraw3: Starting 'fido_id'
hidraw3: 'fido_id'(err) 'Failed to get current device from environment: Invalid argument'
hidraw3: Process 'fido_id' failed with exit code 1.
hidraw3: /usr/lib/udev/rules.d/60-fido-id.rules:5 Command "fido_id" returned 1 (error), ignoring
hidraw3: /usr/lib/udev/rules.d/71-seat.rules:74 Importing properties from results of builtin command 'path_id'
hidraw3: /usr/lib/udev/rules.d/73-seat-late.rules:16 RUN 'uaccess'
hidraw3: /etc/udev/rules.d/95-smx.rules:1 MODE 0666
hidraw3: Preserve permissions of /dev/hidraw3, uid=0, gid=0, mode=0666
hidraw3: Failed to create symlink '/dev/char/240:3' to '/dev/hidraw3': Permission denied
hidraw3: Failed to create device symlink '/dev/char/240:3': Permission denied
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1/1-3.1:1.2/0003:2341:8037.0010/hidraw/hidraw3
DEVNAME=/dev/hidraw3
SUBSYSTEM=hidraw
ID_FOR_SEAT=hidraw-pci-0000_00_14_0-usb-0_3_1_1_2

The important bits here being: Reading rules file: /etc/udev/rules.d/95-smx.rules and hidraw3: /etc/udev/rules.d/95-smx.rules:1 MODE 0666 which is our specific rule adding RW perms for everyone on the device

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment