Troubleshooting
Fixes for devices not appearing, buttons not responding, permission errors, and conflicts with Solaar.
Troubleshooting
No devices appear
Work through these in order — the cause is almost always one of the first two.
1. Confirm the permission setup actually applied
getfacl -p /dev/hidraw0 | grep '^user:'
You should see an entry naming your username. If you only see user::rw- with
no name, the ACL was not applied. Reinstall the rule:
sudo ./scripts/install-udev-rules.sh
2. Log out and back in
Group membership is established at login. If the installer just added you to
the openlogi group, your current session does not have it yet.
To verify without logging out:
id -nG | tr ' ' '\n' | grep openlogi
If that prints nothing but getent group openlogi shows you as a member, you
need a new session.
3. Check the device is visible to the kernel
ls -l /dev/hidraw*
sudo dmesg | grep -i logitech
A Logitech device with no hidraw node at all is a kernel or connection
problem, not an OpenLogi one.
4. Confirm the device speaks HID++
Not every Logitech product does — some budget peripherals are plain HID with no vendor protocol. The probe reports this directly:
./target/release/logi-probe
Buttons do not respond after remapping
Check uinput is available
ls -l /dev/uinput
If the file does not exist, the module is not loaded:
sudo modprobe uinput
The installer writes /etc/modules-load.d/openlogi.conf so this persists across
reboots. If that file is missing, create it:
echo uinput | sudo tee /etc/modules-load.d/openlogi.conf
If the file exists but the group is wrong, re-run the rule installer.
Check the control is actually divertable
Not every button can be diverted — the firmware decides. The probe lists which controls on your device support it:
./target/release/logi-probe watch 30
Press the buttons during the watch window. Anything that prints a notification is divertable; anything silent is not remappable on that device.
A button is dead and OpenLogi is closed
A diverted button sends no normal report, so if the application exits without restoring it, that button does nothing.
OpenLogi restores every diverted control on shutdown, including on SIGINT and
SIGTERM. If it was killed with SIGKILL — which cannot be caught — the
diversion survives. To clear it:
- Power-cycle the device (switch it off and on), or
- Start OpenLogi again and close it normally
Conflicts with Solaar
There should not be any. HID++ 2.0 requests carry a software id that the device echoes back, and OpenLogi uses a different one from Solaar and fwupd, so replies are matched to the program that asked.
If you do see erratic behaviour with both running, that is worth reporting — include which device, which connection type, and whether it also occurs with Solaar closed.
Settings do not survive a reboot
This is expected for host-side actions, and is the distinction described in Architecture.
- DPI is written to the device's flash and persists with OpenLogi closed.
- Button mappings to desktop actions, commands and URLs require OpenLogi to be running, because no firmware implements those concepts.
The application marks which is which.
Filing a useful bug report
Include the output of:
./target/release/logi-probe
That reports the device, its connection path, and its full capability list — which is the first thing anyone diagnosing the problem needs.