Displaylink: Difference between revisions

add details for KDE and Gnome
Tags: Mobile edit Mobile web edit Visual edit
Mention that pre-sleep.service has the potential to block suspend
Line 155: Line 155:


[https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1823#note_2146862 Source]
[https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1823#note_2146862 Source]
== Troubleshooting ==
=== Suspend blocked by <code>pre-sleep.service</code> ===
As of NixOS 25.05, installing <code>pkgs.displaylink</code> inserts some directives into the script referenced by <code>pre-sleep.service</code>. If suspending does not work and causes the reboot and poweroff buttons to stop working, it may be a symptom of [[Power Management#Suspend blocked by pre-sleep.service|suspend being blocked by pre-sleep.service]].
The script in question:<syntaxhighlight lang="bash" line="1">
#!/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash
set -e
#flush any bytes in pipe
while read -n 1 -t 1 SUSPEND_RESULT < /tmp/PmMessagesPort_out; do : ; done;
#suspend DisplayLinkManager
echo "S" > /tmp/PmMessagesPort_in
#wait until suspend of DisplayLinkManager finish
if [ -f /tmp/PmMessagesPort_out ]; then
  #wait until suspend of DisplayLinkManager finish
  read -n 1 -t 10 SUSPEND_RESULT < /tmp/PmMessagesPort_out
fi
</syntaxhighlight>Because of a stray <code>/tmp/PmMessagesPort_out</code> caused by an unclean shutdown, the suspend action was blocked by this script trying to flush the port. A myriad of solutions can be used to unblock the script and restore suspend:
* Start <code>dlm.service</code> so that DisplayLinkManager can clear the ports and unblock the script
* Use <code>sudo DisplayLinkManager</code> to clear the ports and unblock the script
Untested solutions:
* Removing the file
* Killing the script


[[Category:Video]]
[[Category:Video]]