I've been quite happy with my Steam Deck - both as a gaming console and as a secondary computer when it's docked, but for newer titles I picked up a Rog Zephyrus M16 (2023) last year.
Now that Windows is going off the deep end with AI, I'm looking to dual boot/trial Linux on this laptop with the goal to give Microsoft the boot.
It's a beefy laptop:
13th Gen i9-13900
32GB Memory
NVIDIA GeForce RTX 4070
1TB NVMe (Windows)
2TB NVMe (Linux)
I added the second drive to avoid any issues with dual-booting with Grub/Windows Bootloader - instead making the Linux device the primary boot device and spamming Esc if I want to change to the Windows drive.
For distributions, I'm most familiar with Debian/Ubuntu - it's the daily driver for my work laptop, and the vast majority of my home lab VMs are Ubuntu. With the Steam Deck, I started to get more into Arch with the Steam Deck, and now it's the OS of choice for my HTPCs for simple streaming/Plex media player. I've also messed around with ZorinOS (basically a fancy skinned Ubuntu).
I need some advice on what to throw on this laptop - and some suggestions on how to squeeze the best performance out of this (Optimus vs. Proprietary NVIDIA vs. Open source drivers).
Optimised for gaming (gaming optimised kernel, common tweaks pre-applied, all common gaming apps pre-installed like Steam, Mangohud etc)
All necessary drivers pre-installed (game controllers, RGB, and even proprietary nVidia)
A Steam-Deck like gaming experience, if you want (the Deck variant boots directly to Steam)
Immutable and atomic (image-based OS updates, so updates either work or don't - there's no chance of a broken state)
Easy rollbacks (just select the previous image in the GRUB menu)
But since you said:
how to squeeze the best performance out of this
and if you're really serious about squeezing the best performance, then check out the Arch-based CachyOS - unlike most other Linux distros, Cachy has optimised x86-64-v3 and v4 packages in their repos, which means apps can make use of advanced CPU instructions such as SSE3, AVX512 etc. Most other Linux distros on the other hand still use x86-64-v1 for compatibility reasons, which unfortunately means that you'd be missing out on all the cool new optimised CPU instructions introduced over the past 16 years.
In addition to the MARCH, Cachy's packages have other optimisations such as LTO/PGO, optimised kernel with the BORE and Rusty schedulers which are better for gaming, plus several performance-oriented tweaks which you'd otherwise have to do manually on Arch (such as makepkg.conf tweaks, pacman.conf tweaks etc).
Finally, Cachy are always on the bleeding edge when it comes to gaming/driver/kernel/performance related stuff, so you'll get all the good stuff even before Bazzite or other optimised distros. For instance, Cachy was the first distro to include the new nVidia driver which has explicit sync support for better Wayland compatibility, and they're always on top of major Arch developments and provide detailed announcements which are relevant to gamers and performance freaks.
as you maybe noticed, we have rolled out the new NVIDIA Driver, which includes the explicit sync protocol and tearing for Vulkan.
We have been prioritized to move this forward to finally resolve the wayland situation. Additionally arch has pushed CUDA to 12.5, which is NOT compatible with the current 550 driver (it needs the 555 Driver).
The beta driver is not perfect, but so far we are applying some fixes to avoid issues and restore performance problems with disabling the GSP Firmware load. This is handled via the "cachyos-settings" package.
Anyways, since some people maybe have problems with this driver, here is a short instruction to manually downgrade and block the driver:
We are also shipping now an precompiled nvidia-open module. This will be also as default installed for users, which have supported cards as soon NVIDIA releases the 560 drivers.
The CachyOS Team
So as you can see, they're pretty on to it with this sorta stuff.
Now the Bazzite team are also like the Cachy guys and keep up with this stuff, but because they're based on Fedora, they can't be as bleeding edge or as optimised as Arch. So it's up to you - if you prefer stability, a primarily gaming-focused optimisations, and want something that "just works" then get Bazzite; or if you want an ultra-optimised distro to squeeze out the most performance out of your box but also don't mind ocassionally diving into the terminal and getting your hands dirty, then get CachyOS.
Personally, I was in the same boat. I have landed on Pop! OS for my daily driver: https://pop.system76.com/
I dealt with Ubuntu, trying to get NVIdia drivers to work, no native flatpak, etc etc. PopOS has an NVidia version with the drivers baked in already, and apps just... work. It has been the lowest annoyance distro I've ever used, and I can't recommend it enough.
(I do gaming, AI stuff, coding, pretty much anything I've had to do Pop! has done a great job)
Linux Mint if you want a "just works" distro that isn't Ubuntu. It's Ubuntu-based, but with a better desktop and no snap.
Nobara if you want a distro that focuses on gaming. It's Fedora-based and maintained by Glorious Eggroll, known for his custom Wine and Proton forks.
If you want Arch, just use Arch. It's much less of a bitch to install with the archinstall script compared to earlier releases. EndeavourOS is another option -- basically Arch, but preconfigured with a desktop and a graphical installer.
I'm currently deciding between nobara and vanilla arch, coming from windows (but am a software engineer). I like arch because, as I understand it, its lighter and more customisable. I also like that it's not corporate driven which potentially has conflict of interests (which I'm to understand red hat might). My biggest worry though is how much time I may spend maintaining an arch desktop and the possibility of hitting fail states too frequently. Obviously I can overcome some of that with good a good backup system, but I'd like to spend less nights working on my desktop and more time working on projects my desktop should enable. So I've been recommended Nobara as still cutting edge but more stable.
If anyone has some strong recommendations or thoughts I'd appreciate it. I think sticking as close to main is important and if fedora really does introduce issues I can always jump ship to arch or Debian after I've gotten my feet wet - but I'd like to not for as long as possible.
@gusgalarnyk@rtxn hi! Started my journey (this time, tried a few distros end of the nineties and landed at Debian then) with Fedora, and the quickly switched to Nobara. Had some issues which brought me on to currently running Garuda (IT was my hardware, not the distros...). Nobara is definitely a solid choice. Haven't tried direct Arch yet.
I don't game much but I'd try to stay closer to the debian ecosystem, or one of the more well-known distros. There are a lot of cases where there's a debian and ubuntu installer for something and otherwise you gotta compile or hope for an appimage or flatpak. Ubuntu's out because snaps are horrible, although you can get rid of those. Personally I install debian on all my boxes. It's a really minimal distro and things tend to go pretty fast because of that. Debian or I hear Fedora's great.
I'd go with Arch, or EndeavourOS if installing Arch isn't your idea of fun.
It gets the newest drivers first and the AUR includes basically every software available for Linux.
Go with KDE, since it's much saner than Gnome, and use the proprietary nVidia drivers. Anything else will limit your performance.
Don't worry about sudden breakage, that's a thing of the past. A good practice is to put the following in your .bashrc: alias update="yay -Pw ; sudo pacman -Syu ; yay -Syu ; sudo find /etc -name *.pac*"
then use the update command to update.
yay -Pw shows all new items in the Arch news since your last update. A couple times a year there are messages about updates requiring manual intervention in there. sudo pacman -Syu ; yay -Syu updates the Arch packages first, then the AUR packages. Seperating these is good in case there are dependency issues. That way, your base system still updates fine, even if the dependencies of an AUR package are out of sync. (This never happened to me in 10 years, but I do it out of principle) sudo find /etc -name *.pac* lists all config files where there's a new version available, but your old config wasn't overwritten cause you've changed that manually.
(You can get even more fancy with updating your mirrorlist first, always checking for keyring updates first, checking for orphaned or abandoned packages, etc. but lastly, system maintenance can never be fully automated)
(If this seems too complicated, you'll be happier with a different distro)
Fedora KDE spin. Should be similar to your Steam Deck desktop mode and it is most likely to land KDE 6.1 very soon, which improves the Nvidia experience a lot due to explicit sync.
I think the RPM Fusion repo for the nvidia drivers is enabled by default so that you can easily install them.
I need some advice on what to throw on this laptop - and some suggestions on how to squeeze the best performance out of this (Optimus vs. Proprietary NVIDIA vs. Open source drivers).
One thing here, the open source Nvidia drivers still have a lot of performance issues. It's only fairly recently that NVIDIA has opened their drivers up enough to allow any kind of reasonable performance from open source drivers, and getting them up to par is still a work in progress. So stick with the propietary drivers for now, but keep an eye on the new open source driver, NVK.
(As far as distro recs go, I recently started using OpenSUSE Tumbleweed and am really liking it, but I don't have enough experience with it yet to make an informed recommendation)
Since you have Nvidia you'll want to use the Nvidia proprietary drivers for the best performance. The open source driver for Nvidia (nouveau) is awful when it comes to gaming performance, unfortunately. (Although this will soon be fixed with NVK)
Depending on your distro of choice, you'll need to figure out whether you want Secure Boot on or not. I believe Windows 10 doesn't require Secure Boot to be enabled, but I think Windows 11 does. So depending on how frequent you want to be booting into Windows this might be a bit of an annoyance. You can leave Secure Boot disabled and use the Nvidia Proprietary drivers as-is, but if you want to enable Secure Boot you'll have to sign the Kernel yourself - it's a pretty straight forward process.
I recommend you try to keep Secure Boot enabled for the added benefit of security and ease of use when dual-booting, but if you don't want to go through the hassle of signing your own Kernel, then simply leaving Secure Boot disabled when in Linux will suffice.
I recommend against using Ubuntu because of Canonical's many poor decisions with Ubuntu. I won't get into it right now, but if you're comfortable with Ubuntu don't let me stop you from using it.
In reality, you can use whatever distro you want. One distro isn't inherently better at gaming then another. It's a matter of configuration.
Just stick with what you know. So either Arch or Ubuntu. Maybe Pop if you want something a little bit more gaming focused. But I guess out of those Arch should be the best since it will always come with the latest packages, especially for your nvidia card, which is finally moving towards better Wayland and later open source support.
Honestly, it doesn't really matter, pick the one you're most familiar with. Performance-wise, distros are largely the same, unless the distro ships really old libraries or something.
So I recommend either Debian or Arch since that's what you're familiar with.
If you want to try something new, consider openSUSE MicroOS. It has a readonly root like Steam Deck, and you interact with it in transactions, so you get a really solid system. Theoretically. I haven't actually used it, but I do plan to once I need ti reinstall one of my Tumbleweed systems (or maybe I'll reinstall my Leap NAS at some point).
And yeah, avoid the nvidia open source drivers. It's a cool project, but performance sucks because nvidia refuses to provide technical documentation.