OLED does not support Ubuntu, at least none of the LTS versions from 16.04 to 22.04. After unsuccessful attempts of installing Ubuntu on SDO, we resolve to relying on the original SteamOS which is a modified Arch Linux system.
- Set a root password
passwd- Disable read only file system
sudo steamos-readonly disable- Configue pacman (Required for installing binary packages from AUR)
sudo pacman-key --init
sudo pacman-key --populate archlinux- Trust all signiture
Warning: this may allow you to install malware. Be careful with what you are installing.
This can be done by setting SigLevel to TrustAll in /etc/pacman.conf.
sudo sed 's/SigLevel.*/SigLevel = TrustAll/g;' /etc/pacman.conf- (optional) Install VS code
sudo pacman -Sy code- (optional) Install Yay (Makes installing from AUR easier)
The latest Yay (12.3.5 at the time of writing) does not work with SteamOS. Instead, we can use 12.3.1.
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si- (optional) Set to load Linux desktop instead of Steam interface on boot.
/usr/bin/steamos-session-select plasma-wayland-persistent
To reverse it
/usr/bin/steamos-session-select gamescope
You have at least two options to run ROS/ROS2 on SteamOS:
- a native installation;
- a stack envrionment using conda.
We prefer the second approach as it is safe and flexible.
Warning: your milage may vary, especially after Arch linux and/or SteamOS update.
We have successfully installed ROS2 humble using yay:
yay ros2-humble -SWe have not had success with ROS1 noetic however.
Robostack is a bundling of ROS packages for various operating system using the conda package manager. It provides an easy approach to install ROS on non-natively supported OS, including SteamOS. Currently Robostack only support ROS1 noetic and ROS2 humble. Details can be found on their website.
First we need to install miniconda
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.shNext, you can follow the steps on Robostack/GettingStarted. For sake of completion, I have included an example of installing ROS Noetic.
- Install mamba
conda install mamba -c conda-forge- Create and configure a ROS environment
mamba create -n noetic_env
mamba activate noetic_env
# this adds the conda-forge channel to the new created environment configuration
conda config --env --add channels conda-forge
# and the robostack channel
conda config --env --add channels robostack-staging
# remove the defaults channel just in case, this might return an error if it is not in the list which is ok
conda config --env --remove channels defaults- Install ROS noetic
mamba install ros-noetic-desktop- Re-activate the environment to initialise ROS.
mamba deactivate
mamba activate noetic_envThat's it.
You need to first activate the envrionment.
mamba activate noetic_envAfter this, you can source your workspace, export ROS_MASTER_URI etc., and use ROS commands as if you were using Ubuntu, e.g. roscore, roslaunch, etc. Graphics interfaces such as rviz and rqt also work well.
There are a limited number of packages that can be directly installed. You can find a list of packages on their website, e.g. Available Packages/ROS1 Noetic. Note that new packages will be added over time.
To install packages:
mamba install ros-noetic-velodyneTo update:
mamba update --allYou can also use catkin_make to build and install any unlisted packages like what you do in Ubuntu.
Foxglove Studio is a visulisation tool that can be used instead of RVIZ and with the added benefit of not requiring any ROS installation or envrionment. Unless you plan to use the software in a large team with a lot of teamwise co-operation, it is free-of-charge.
The latest Foxglove package from Arch linux repository, at the time of writing, was outdated. To install the latest version (2.0.1) at the time, we have to pull it from the official website:
mkdir foxglove-studio-bin
cd foxglove-studio-bin
wget https://raw.githubusercontent.com/ICE9-Robotics/ROS-for-Steam-Deck-OLED/main/files/pkgbuild_foxglove -O PKGBUILD
makepkg -siYou can download a newer version, if it is available, by updating the pkgver parameter in pkgbuild_foxglove and rename the file to PKGBUILD, followed by running the makepkg -si command within the same directory of the file.
- Keep your dock/hub plugged in while Steam deck is powered on.
- Hold
volume -button and...button at the same time for 5-8 seconds until you hear a beep - Unplug and replug in your dock/hub, your USB device should work now.
Credit: https://steamcommunity.com/app/1675200/discussions/3/6063574513305899672/
Your mamba installation is broken, try reinstall:
conda uninstall mamba
conda install mamba -c conda-forge
Install fakeroot with overwrite:
sudo pacman -Sy --overwrite \* fakeroot
