Comment 13 for bug 1450009

Revision history for this message
Andreas Schultz (aschultz) wrote : Re: suspends on closed lid, does not recognized external monitors/dock

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

  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.....