Skip to content

Solaris17/SteamOS-USB-Wake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

SteamOS USB Wake

Note

This tool and its author are not affiliated with Valve in any way.

Tip

Please do not request install help in this repo!

About

This script installs and activates a service that allows USB devices on any USB root hub to wake SteamOS from sleep.

SteamOS is installed on many DIY PCs by enthusiasts to make faux steam machines.

However; given the Steam Machine and Steam Decks nature, and OSs in general, these DIY PCs cannot be woken by most controllers.

To get around this, this service detects changes on the USB root hubs (USB device controllers) and if a change is detected (like a controller waking up (state change), or randomly appearing on the bus (bluetooth)) it triggers the wake command in the OS (like you pushed the power button.).


Works with

The following is a small subset of tested controllers and devices.

It is worth mentioning that this service does not work on pure built in BT receivers (like combo wifi/bt cards).

A USB of some kind must be triggered, such as a dock or dongle.

Device Model Connection Type Wake On
8BitDo Controller Ultimate 2 Dongle & Base Controller Wake
Xbox One Controller 1708 Cable Unplug & Plug event
Logitech KB/M Combo K400 Plus Included 2.4ghz Dongle Button Press

How to install

  • Switch SteamOS to Desktop mode.
  • Download the script from releases or copy it.

Now you must make the script executable:

chmod a+x usb-wake.sh

Tip

A sudo password must be set and it is not by default!

SteamOS does not ship with a root password, so one must be set before you can execute things with sudo set one temporarily and then remove it again like so.

Note

It is assumed that you are using the default SteamOS user "deck", if not change command accordingly.

First set the password for the account, make this something memorable or copy and paste the following.

yes "USBWake!" | passwd deck

Now simply navigate to the folder the script belongs to and execute it.

sudo ./usb-wake.sh

The script will output its status as it completes.

alt text

After the script runs and installs the service you remove the password using the following:

echo "USBWake!" | sudo -S -k passwd -d deck

Once the service install is complete you can test it by setting your sleep timeout in settings to a low number then turning off your controller. After the machine goes to sleep simply wake the controller.


Features

  • Installs service that runs once each boot enabling currently connected usb hubs to wake the system
  • Automatically backs up the current USB hub configuration during installation for restoration later
  • Includes restoration feature to restore backups
  • Includes uninstall feature to remove the service

Utility

The script itself has several flags to choose from including simply running it.

Use --help to open the menu.

Usage:
  ./usb-wake.sh
  ./usb-wake.sh --restore
  ./usb-wake.sh --uninstall

alt text

Additionally; user inputs are safeguarded for mistypes, preventing accidental usage.

alt text

Restoring

Using the --restore flag allows you to temporarily restore USB hub settings from a backup.

alt text

Uninstalling

Using the --uninstall flag allows you to remove the service and optionally restore from a configuration backup.

alt text

About

A system service that allows steamOS DIY PCs to wake from any USB device

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages