1.9 KiB
Troubleshooting
Check the Service
systemctl --user status surface-dial-renewed.service
journalctl --user -u surface-dial-renewed.service -n 100 --no-pager
Expected startup lines:
surface-dial-renewed: running in Multitouch mode
surface-dial-renewed: dial connected
Check Raw Dial Rotation
Find the current event node:
rg -n -C 8 "Surface Dial System Multi Axis" /proc/bus/input/devices
Then run:
sudo evtest /dev/input/eventXX
Rotation should produce:
type 2 (EV_REL), code 7 (REL_DIAL), value ...
If REL_DIAL does not appear, the driver cannot scroll. Reconnect the Dial over
Bluetooth and check again.
Wrong Event Node
The Control node is not the rotation node. It looks like:
Surface Dial System Control
and exposes KEY_SLEEP/KEY_WAKEUP. Use Surface Dial System Multi Axis for
rotation.
Haptics Work But Scroll Does Not
Haptics use HID raw access; scrolling uses evdev input plus uinput output. Haptics working only proves the HID path works.
Check:
- Raw
REL_DIALevents withevtest. - Service logs for
dial connected. /dev/uinputpermissions.- Whether
Surface Dial Renewed Touchpadappears in/proc/bus/input/devices.
Sensitivity OSD Warnings
The service may log messages from qdbus6 about locale fallback, for example
Detected locale "C". The OSD still works. This is caused by the systemd user
service environment lacking a UTF-8 locale variable.
If it becomes noisy, set locale environment for the user service or replace the shell-out OSD backend with a direct D-Bus implementation.
Reconnect Oddities
After Bluetooth reconnects, event numbers can change. Always rediscover with:
rg -n -C 8 "Surface Dial" /proc/bus/input/devices
If button events appear but rotation does not, disconnect and reconnect the Dial
again. The driver cannot synthesize rotation if the kernel is not emitting
REL_DIAL.