While you're here, please consider supporting GamingOnLinux on:
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Reward Tiers: Patreon. Plain Donations: PayPal.
This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!
You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register
- New Linux kernel patch submitted to improve Lenovo Legion series support including Lenovo Legion Go
- Team Fortress 2 Comic issue 7 is finally, officially available
- Steam Replay for 2024 is live to show off all those hours you played
- Proton Experimental gets fixes for Final Fantasy XIV, Nioh: Complete Edition and more for Steam Deck / Linux
- Stalker 2: Heart of Chornobyl gets a massive patch with an AI overhaul and lots of A-Life fixes
- > See more over 30 days here
View PC info
Preparation:
Download SteamOS 3 from here: link
It contains a single image file. Extract it. And backup the extracted image just in case, it keeps your changes and it seems to break very easily. Even clicking the "Steam" shortcut causes an "out of space" error at /home and breaks the image.
Install QEMU and edk2-ovmf. edk2-ovmf is UEFI firmware and SteamOS 3 boots only in UEFI.
Create an image file. I use
qemu-img create -f qcow2 /path/to/image.qcow2 64G
so I have a small image file that can grow up to 64 GB. With SteamOS 3 installed, my image file is currently at 15.7 GiB. Image creation might require root privileges. You may need to chown the image. Or probably I am doing something wrong regarding permissions
Boot & Install:
1. Boot up the image.
qemu-system-x86_64 -drive file=~/Downloads/steamdeck-recovery-1.img,format=raw,if=virtio -accel kvm -m 8G -bios /usr/share/ovmf/x64/OVMF.fd -smp cores=6,threads=2 -drive file=/path/to/image.qcow2,format=qcow2,if=virtio
* Using -cdrom won't work. I use -drive instead of -cdrom. if=virtio should speed up disk I/O operations a bit.
* -accel kvm enables HW acceleration for the VM. If it does not work, you may need to enable it in your firmware interface. Do not try to launch VM without KVM.
* -m 8G specifies the memory amount. 2G and above should work.
* -bios should point to edk2-ovmf firmware. This is the path on Arch (and derivates), change if necessary.
* -smp cores=x,threads=y defines number of cores and threads per core.
* the second -drive points to the qcow2 image you created.
* DO NOT USE SUDO.
The screen will go black for a while, you should eventually reach Plasma.
2. Set keyboard layout if neceaasry
You can do this from System Settings. Go to Input Devices > Keyboard > Layouts and click Add. Remove the default layout.i Apply changes.
3. Modify reimaging script
sudo fdisk -l
should show you a list of disks. Remember the device file of your disk. Open file ~/tools/repair_device.sh and change DISK and DISK_SUFFIX accordingly. They are near the beginning of the file. In my case I was
installing to /dev/vdb so DISK is /dev/vdb for me and DISK_SUFFIX is blank.
4. Install SteamOS
sh ~/tools/repair_reimage.sh
and wait as SteamOS dd's its partitions to your image file. Choose to stay in Recovery environment.
5. Chroot and modify
Replace /path/to/disk with the disk you installed SteamOS to.
sudo mount /path/to/disk4 (the 4 is not a typo) /mnt
sudo btrfs property set / ro false
sudo umount /mnt
sudo mount /path/to/disk5 /mnt
sudo btrfs property set / ro false
sudo umount /mnt
sudo steamos-chroot --disk /path/to/disk --partset A -- /bin/bash
sudo mount -o remount,rw /path/to/disk4 (the 4 is not a typo) /
sudo steamos-session-select plasma-persistent
* edit /etc/default/grub as noted below *
sudo update-grub
exit
sudo steamos-chroot --disk /path/to/disk --partset B -- /bin/bash
sudo mount -o remount,rw /path/to/disk5 /
sudo steamos-session-select plasma-persistent
* edit /etc/default/grub as noted below *
sudo update-grub
exit
The steamos-session-select command will make SteamOS start Plasma instead of gamescope. Replace with plasma-wayland-persistent if you wish.
Open /etc/default/grub (in both A and B) and remove the option fbcon:rotate=1 in GRUB_CMDLINELINUX_DEFAULT. Or... your ttys and splash screen will be rotated.
6. Restart
Power off the VM, remove
-drive file=~/Downloads/steamdeck-recovery-1.img,format=raw,if=virtio
and restart the VM. You will see a black screen (again). Let it boot. The installed OS is terribly slow, I hope this is because I have my image file on my HDD.
I do not have a discrete AMD GPU and I don't want to mess up with the OS bare metal so no gamescope for me.
Feel free to write up your experiences.
When I open /etc/default/grub (with nano), there is an alert saying that the file is read-only, despite following all the previous step... any idea ?
View PC info
1. Filesystem is mounted read-only. You can see mount options with
mount
command. Look for ro (read-only) and rw (read-write)
2. Filesystem is read-only. If
btrfs property get / ro
tells ro=true then filesystem is set to not be modified.
Also try
steamos-readonly disable
in chroot if nothing works.
Boot time on an SSD is around 10-15 seconds, a bit slower than my other VMs. Also, I put 4 cores / 8Gb of ram, where most of my other VMs run on 2 cores / 4Gb of ram (but they don't run KDE, not sure if it can have this much impact on boot time ?)