also,
a few notes:
- it should be mentioned that these instructions work only in vanilla unmodified
bash
- btw notice that it is vcpkg, however we use cmake anyway, it’s a strange mix of windows and linux, but remember that BeamMP is a volunteer project lol
- IMPORTANT!!! if you want to do this on a Steam Deck and you’re on SteamOS, and you use it as a “portable linux machine” daily like me, installing the
base-devel
package and any other dependency it requires to compile theBeamMP-Launcher
binary – WILL BE FUTILE since SteamOS is a read-only distro and you will have to make your ENTIRE FILESYSTEM writable/editable to install anything that isn’t a flatpak, let alone building a native beamMP client (yes, SteamOS doesnt come with compile tools nor does it even come with a user (you have/had to set the user and password yourself!), cos it’s considered a “gaming distro” and not a workstation for you to tinker with, or so they say… i say ■■■■ the system ■■■■■, i made a guide for y’all:)
-
SO, if you wish to proceed with installing and compiling, as well as getting one step closer to using arch btw (kill me ), YOU THEN UNDERSTAND THE RISKS OF BRICKING YOUR STEAM DECK!
BEFORE YOU BEGIN THOUGH – TRY NOT TO ERASE YOUR STEAM DECK’S INTERNAL DRIVE, it is very difficult to update your steam deck’s firmware OUTSIDE of steamOS. and with that, finally, you are ready to proceed…
–consider these requirements:
(1). get/buy an external (!) SSD (& a cable to connect it with) AND a dock station AND/OR a usb-hub for your Steam Deck (w/ at least 3 USB-A ports for the periphery and generally quality of life, 1 USB-C PD for charging, OPTIONALLY with a built-in NVMe for an SSD); also optionally (!) a USB-C to USB-A adapter in case you are going periphery-less by using only track pads and on-screen touch keyboard or if you’re controlling your steam deck remotely via SSH, but be aware that you will not be able to charge your steam deck simultaneously,
–bit of trivia: steamOS, unlike most other distro’s, is imaged as is, it occupies your WHOLE drive where it is installed on, it is impossible to shrink its partitions because it reimages itself after an update anyway (and because obviously you cant change anything on the same drive that you’re on), therefore it is impossible to install anything alongside it, which is why we’re getting a secondary system to tinker with on an external drive. if you DID manage to find a way to dual boot with steamOS on the same drive and not lose the image merely after an update, let us know! you’d be the first person!
(2). connect keyboard (and optionally mouse),
– of course, if you know how to and/or haven’t already, use SSH.
–WARNING: hot swapping (aka hot plugging) on SOME dock stations could temporarily disable ALL OF YOUR PERIPHERY!!! this is enough to potentially cause corruption with flash- and external- drives. DO NOT disconnect, connect or reconnect ANYTHING while installing, burning or otherwise making ANY changes to your drives. this includes (un)-plugging the charger! PROCEED WITH EVEN MORE CAUTION.
(3). connect usb flash drive (leaving room only for keyboard, use track pad as mouse),
(4). burn your .iso of choice (see list below) onto said flash drive (if you only have one flash drive but also want to copy some other files, you can use Ventoy, that can both be used as a boot loader with different .iso’s and as a storage device),
(5). connect your external (!) SSD (unless your dock/hub has a built-in one),
(6). turn off your SD,
(7). when it is off, keep holding the “volume down ‘–’” button and press the power button ONCE (1 time) until it beeps,
(8). when it beeps, go to boot manager and pick your new bootable drive with your live .iso,
(9). proceed with installation onto your external (!) drive
–DO NOT accidentally or deliberately rewrite/wipe steamOS in the installation process, it is needed for firmware updates!!! (at least)
*ALSO because it’s mildly infuriating getting it back in case you brick your steam deck completely. here’s why (READ THIS IF YOUR SD IS BRICKED): now that you probably understand that steamOS has a very aggressive approach to imaging, it gets even worse than that - its recovery image block size is 128 megabytes (link to instructions), which means you HAVE to use an external drive like an SSD (unless you dont want your steam deck anymore LOL XD) or a VERY FAST (and expensive!) flash drive that you probably dont have or want to sacrifice, otherwise it’ll basically freeze or not boot at all… thankfully and hopefully by step 1 you should already own an SSD. now, for this you have to use another computer. once you’ve burnt the recovery steamOS image onto your external drive, plug that in to your SD and boot off of it, then choose what recovery option suits best for you. once you got your steamOS back, fancy trying all this again?
(10). now you should hopefully have two working systems to choose from in the boot menu: SteamOS and your desired distro or its linux boot loader!
(11). obviously, now you can follow the guide to compile beamMP. -
here’s some out-of-the-box Steam Deck recommended distro’s that worked for me (except the last one ):
(1) CachyOS Handheld Edition (arch, optimised kernel for gaming, uses zram),
(2) Bazzite (fedora, can update firmware like steamOS, also very optimised),
(3) EndeavourOS (at least it’s not Manjaro, copium… has steam deck drivers),
(4) NixOS (independent, as a challenge, and there is a steam deck community). -
HOWEVER, IF YOU ARE UNABLE TO INSTALL A SECOND SYSTEM, THEN RISK IT FOR THE BISCUIT EVEN MORE WITH THESE GUIDES THAT MODIFY STEAMOS:
(1) this simple guide for SD,
(2) this github SteamOS issue,
(3) this alternative reddit tutorial,
(4) this userspace (!) guide for SD.
4. ATTENTION!!! even after you’ve built the launcher binary, it STILL requires compilator libraries to be installed – if one were to delete/lose base-devel
after the compilation AND/OR share a binary to another computer that doesnt have base-devel
(for example, a Steam Deck) you will still NOT be able to launch it (devs, you need to include such libraries inside the binary and/or link them! shameful, honestly…)