Skip to content

Instantly share code, notes, and snippets.

@k3karthic
Last active February 15, 2026 14:15
Show Gist options
  • Select an option

  • Save k3karthic/b149c3fdbe51bf579dadcb5cfe44ae94 to your computer and use it in GitHub Desktop.

Select an option

Save k3karthic/b149c3fdbe51bf579dadcb5cfe44ae94 to your computer and use it in GitHub Desktop.
Fedora Silverblue - Steam

Create Steam toolbox

$ toolbox create -d ubuntu --release 24.04 -c steam
$ toolbox enter steam

Install Steam

Get steam_latest.deb from https://store.steampowered.com/about/

$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install libnss3 policykit-1
$ sudo apt install sudo apt install libc6:amd64 libc6:i386 libegl1:amd64 libegl1:i386 libgbm1:amd64 libgbm1:i386 libgl1-mesa-dri:amd64 libgl1-mesa-dri:i386 libgl1:amd64 libgl1:i386 steam-libs-amd64:amd64 steam-libs-i386:i386 xdg-desktop-portal xdg-desktop-portal-gtk
$ sudo dpkg -i steam_latest.deb

Run steam from toolbox to start the client

Integration

Move the steam.dekstop from ~/Desktop to ~/.local/share/applications/

For all .desktop files from steam, prepend toolbox run -c steam to the Exec line

[Desktop Entry]
Name=Steam
Comment=Application for managing and playing games on Steam
Exec=toolbox run -c steam /usr/bin/steam %U
[Desktop Entry]
Name=METAL SLUG
Comment=Play this game on Steam
Exec=toolbox run -c steam steam steam://rungameid/366250
Icon=steam_icon_366250
Terminal=false
Type=Application
Categories=Game;

Attach Controller

Run lsusb to check if the controller is identified

⬢ [karthic@toolbx karthic]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 046d:c548 Logitech, Inc. Logi Bolt Receiver
Bus 001 Device 003: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 001 Device 005: ID 8087:0025 Intel Corp. Wireless-AC 9260 Bluetooth Adapter
Bus 001 Device 017: ID 2dc8:310a 8BitDo 8BitDo Ultimate 2C Wireless Controller
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Check which hidraw device matches the controller

⬢ [karthic@toolbx karthic]$ grep -H . /sys/class/hidraw/hidraw*/device/uevent
/sys/class/hidraw/hidraw4/device/uevent:DRIVER=hid-generic
/sys/class/hidraw/hidraw4/device/uevent:HID_ID=0003:00002DC8:0000310A
/sys/class/hidraw/hidraw4/device/uevent:HID_NAME=8BitDo 8BitDo Ultimate 2C Wireless Controller
/sys/class/hidraw/hidraw4/device/uevent:HID_PHYS=usb-0000:01:00.0-9/input1
/sys/class/hidraw/hidraw4/device/uevent:HID_UNIQ=D520522688
/sys/class/hidraw/hidraw4/device/uevent:MODALIAS=hid:b0003g0001v00002DC8p0000310A
/sys/class/hidraw/hidraw5/device/uevent:DRIVER=hid-generic
/sys/class/hidraw/hidraw5/device/uevent:HID_ID=0003:00002DC8:0000310A
/sys/class/hidraw/hidraw5/device/uevent:HID_NAME=8BitDo 8BitDo Ultimate 2C Wireless Controller
/sys/class/hidraw/hidraw5/device/uevent:HID_PHYS=usb-0000:01:00.0-9/input2
/sys/class/hidraw/hidraw5/device/uevent:HID_UNIQ=D520522688
/sys/class/hidraw/hidraw5/device/uevent:MODALIAS=hid:b0003g0001v00002DC8p0000310A

On the host, add the following udev rules to ensure the hidraw devices are accessible by users

echo 'KERNEL=="hidraw*", ATTRS{idVendor}=="2dc8", ATTRS{idProduct}=="310a", MODE="0666"' | sudo tee /etc/udev/rules.d/99-8bitdo.rules
sudo udevadm control --reload-rules && sudo udevadm trigger

Disconnect and re-connect the dongle, ensure the device has rw permissions for all users

⬢ [karthic@toolbx karthic]$ ls -lah /dev/hidraw*
crw-------. 1 nobody nogroup 241, 0 Feb 15 19:34 /dev/hidraw0
crw-------. 1 nobody nogroup 241, 1 Feb 15 19:34 /dev/hidraw1
crw-------. 1 nobody nogroup 241, 2 Feb 15 19:34 /dev/hidraw2
crw-------. 1 nobody nogroup 241, 3 Feb 15 19:34 /dev/hidraw3
crw-rw-rw-. 1 nobody nogroup 241, 4 Feb 15 19:35 /dev/hidraw4
crw-rw-rw-. 1 nobody nogroup 241, 5 Feb 15 19:35 /dev/hidraw5

Restart the steam client and it should be able to see the controller.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment