I have the same problem on an HP EliteBook 8560w (with AMD GPU running fglrx driver) in an HP Docking Station.
In this setup, systemd is unable to determine the docked state. There is no /sys/class/drm device (because of the fglrx driver) and systemd does not find the input event source.
When running system in debug mode, I found this in dmesg:
> [ 12.740423] systemd-logind[1019]: Watching system buttons on /dev/input/event2 (Power Button)
> [ 12.740505] systemd-logind[1019]: Watching system buttons on /dev/input/event4 (Video Bus)
> [ 12.740576] systemd-logind[1019]: Watching system buttons on /dev/input/event1 (Lid Switch)
> [ 12.740624] systemd-logind[1019]: Watching system buttons on /dev/input/event0 (Sleep Button)
After investigating those event sources, I found that none of them report the docked state (SW_DOCK event). That event is in my case on /dev/input/event15 -- the hp_wmi module.
Systemd is not considering that input, because it only scans for udev input devices that have the 'power-switch' tag.
So, at least for HP Notebook with WMI the workaround is simple, edit /lib/udev/rules.d/70-power-switch.rules and include the line
I'mnot sure if the udev rule is simply missing or if systemd locking only for power-switch udev input device is wrong. After all, the WMI inputs are not power switches.....
I have the same problem on an HP EliteBook 8560w (with AMD GPU running fglrx driver) in an HP Docking Station.
In this setup, systemd is unable to determine the docked state. There is no /sys/class/drm device (because of the fglrx driver) and systemd does not find the input event source.
When running system in debug mode, I found this in dmesg:
> [ 12.740423] systemd- logind[ 1019]: Watching system buttons on /dev/input/event2 (Power Button) logind[ 1019]: Watching system buttons on /dev/input/event4 (Video Bus) logind[ 1019]: Watching system buttons on /dev/input/event1 (Lid Switch) logind[ 1019]: Watching system buttons on /dev/input/event0 (Sleep Button)
> [ 12.740505] systemd-
> [ 12.740576] systemd-
> [ 12.740624] systemd-
After investigating those event sources, I found that none of them report the docked state (SW_DOCK event). That event is in my case on /dev/input/event15 -- the hp_wmi module.
Systemd is not considering that input, because it only scans for udev input devices that have the 'power-switch' tag.
So, at least for HP Notebook with WMI the workaround is simple, edit /lib/udev/ rules.d/ 70-power- switch. rules and include the line
SUBSYSTEM= ="input" , KERNEL=="event*", ATTRS{name}=="HP WMI hotkeys", TAG+="power-switch"
and reboot.
I'mnot sure if the udev rule is simply missing or if systemd locking only for power-switch udev input device is wrong. After all, the WMI inputs are not power switches.....