Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
I Built My New Linux Gaming Desktop in 2021 with AMD (CPU+GPU) and GNU Guix (boilingsteam.com)
210 points by ekianjo on Sept 23, 2021 | hide | past | favorite | 140 comments


Also built a linux gaming machine this year, AMD CPU but Nvidia GPU (3080)

For work, it's a beast. For gaming, it's a beast. I love it.

I'm really happy to hear Steam's push to get all games working on Linux. I still dual-boot for those games that require Easy Anti Cheat, but for everything else linux has been incredible for both indie and AAA gaming.

My biggest gripes aren't all that major but there are a lot of Windows-specific tools for changing the colors inside the case for the various fans. I'm not a fan of the RGB-puke and like a solid color, but after a few tweaks and hacks it mostly works as I intend it to.


Are you using Wayland? If so, where the compatibility issues resolved? (that's one reason why I moved to AMD GPUs over Nvidia).


Not GP but I have an Nvidia card and no, Wayland on Fedora 34 does not work. And unfortunately Nouveau is highly unstable and crashes multiple times per week, usually when I'm in a meeting or something important.

I just build a new rig and I didn't even consider Nvidia. AMD for me all the way. My only regret is that there's no `nvtop` equivalent for AMD.


there's radeontop, but i don't know if that's comparable


Cool ty, I'm going to check out radeontop.

RE: the article, I also built a 100% amd desktop (in 2020) for Linux. Wayland, sway, vaapi, pipewire, etc... all working without drama. I've considered posting about it somewhere, but just haven't had time.


Radeontop is awesome and I'm grateful for it, but it's nowhere near equivalent.


From reading this it sounds like support should land soon in Fedora 35

https://lwn.net/Articles/869561/


I just recently setup wayland+sway on my linux dev machine running a 970gtx. I made sure to use `mesa` the open source drivers for nvidia and everything worked pretty well.

I will definitely be purchasing AMD GPUs if I intend on running linux in the future. I know nvidia is working on supporting GBM (which is the sticking point for wayland support) but who knows when that will land.


I went from a 1060 -> 3060ti and didn't have any problems. All I did was an apt update after booting. I'm on KDE+X.


I don't believe I am, I'm using Fedora + i3 but I don't have any transparency or special fx on the windows. I do remember setting that up on my last machine but it never looked great so I left it out this time.


are you using i3 with compton? Without it my 2070s had screen tearing, with it, weird visual glitches here and there. never figured it out


Compton sounds familiar, I think that's what I was confusing for wayland before. It adds a bunch of transparency effects and other "nice to haves" but I believe I had similar issues.

Drivers on Linux have always been ... non-ideal. I use the Fedora kmod drivers these days. It's held up nicely so far without any boot halts.


Have you seen OpenRGB? https://openrgb.org/


Yes! One of the tools I ended up trying.


Some newer boards allow you to control your RGB LEDs from the BIOS (ASUS ones in my experience, at least), if you don't need much control over it that can be a viable alternative as well.


Good point! The motherboard I have apparently allows for this but it never saves? I tried playing with it for a week before giving up. Ultimately, I ended up dual-booting windows and using the official brand tool to do something to the motherboard to save the correct colors. Been working since, even when booting to linux.


Speaking of Easy Anti Cheat, it's coming to Linux! https://dev.epicgames.com/en-US/news/epic-online-services-la...


If you haven't doscovered it yet, theres is OpenRGB on Gitlab. It works with an increasing number of devices, and it also exposes an API for which there are a couple of SDKs, and it works well (tired python).


have you bothered with VR? On PopOS i get audio issues with the mic and i have to manually switch the speakers to output to my index and it still gives me feedback. i dual boot as well but i would love to ditch my windows partition.. just need VR working 100%


VR is still the one reason to keep using Windows if you want a better experience. It kind of works on Linux but it lacks a lot of polish as per the example you mentioned.


> I'm really happy to hear Steam's push to get all games working on Linux.

Word on the street is that the TPM 2.0 requirements for Windows 11 are, in part, to provide a common DRM platform for all Windows applications including games. Meaning that instead of custom DRM software like Denuvo, antipiracy measures will be implemented as common Windows APIs that take advantage of the TPM to provide secure attestation of genuine, nonpirated binaries. Remember Palladium? Yeah, it's that again, quietly implemented piecemeal beginning with Secure Boot.

Linux will have to implement this DRM down to the kernel level, or it will be simply locked out of many Windows games.

Forget it. Linux gaming is over. Proton for me has been busted enough to have spotty support from release to release anyway.


> Linux gaming is over.

Minecraft: Let me introduce myself.

It's almost ironic that one of the most popular games ever made just so happens to perform its best on Linux.


Hold your horses young one - I haven't finished my run on dwarf fortress yet!


Have you tried the same games on Windows and Linux? I wonder if there is a significant performance difference.


I've tried some, Sea of Thieves primarily.

SoT performs better on Linux for me but the online experience has a lot to be desired. Microphone doesn't work, anything Microsoft live is absent ... though playable.

I'd say that 9/10 games I try on Linux run at Windows performance if not better. YMMV


Windows performance is overall much better, don't listen to people with 3080 or equivalent.


This is simply not true anymore, at least not across the board. In fact, many games run better on Linux than on Windows—it depends highly on the title.


This is pretty much a lie. For example DLSS does not work on Linux so how can it have better performance that Windows.

Drivers are better on windows, games are developped for windows and optimized for it so the vaste majority run better on Windows.


DLSS is in the Linux NVIDIA driver since 470 (June 22nd).

That is if you use it directly with Linux APIs (Vulkan). I think Direct3D implementations on Linux (like Proton/DXVK/VKD3D) are still catching up to wrap the D3D API for it, but, that's out of NVIDIA's court.


Followup: Proton has implemented a mapping for D3D12 DLSS to this new NVIDIA 470 Vulkan DLSS implementation.

https://www.phoronix.com/scan.php?page=news_item&px=Proton-6...


> For example DLSS does not work on Linux so how can it have better performance that Windows.

What does DLSS have to do with anything?

> Drivers are better on windows

[citation needed]

Anecdotally, I've had way more driver-related stability problems on Windows than I've had on Linux, at least within the last ~3 years.

> games are developped for windows and optimized for it so the vaste majority run better on Windows.

How games are developed is irrelevant; Mesa has different performance characteristics than the respective Windows drivers, and so performs better in a lot of cases due to lower overhead. Projects like DXVK can further improve performance by translating DirectX calls to Vulkan.

In any case, there are plenty of benchmarks online showing some games achieving higher FPS on Linux than on Windows. For a fairly extreme example, see this 3-year-old benchmark[0] showing Dota 2 on Linux wiping the floor with its Windows counterpart in 1080p. I have also personally tested this and noticed an improvement on Linux with certain games. (Granted, not very many, but this was also a few years ago, before some of the recent performance optimizations in Mesa, Wine, and related projects.)

Disclaimer: I'm not a subject expert, so can't go into detail about the how/why, but I also believe the benchmarks speak for themselves.

[0]: https://www.phoronix.com/scan.php?page=article&item=june-201...


Dota 2 is and most Valve games are native on Linux so it's irrelevant.


As another builder of a Linux gaming desktop, let me just say: nice! I ended up going with an Nvidia 3080 because I'm more familiar with CUDA than AMD equivalents (and I do still need to get work done). If it wasn't for that, I'd likely have gone AMD as well!

One thing that I'd love to hear more on is what Guix gets you as a package manager and/or as a distro. I'm not really following how it differs from other, perhaps more traditional, package managers.

I've stuck it out on Arch, mainly for software availability in the AUR-- i.e. getting out of repo gaming utilities like greenwithenvy and the glorious eggroll proton fork without having to navigate flatpak/snap/etc. My last experience with Steam in a snap on Ubuntu was particularly bad: the application wasn't able to see the mounted drives where I was installing games, nor was it able to detect proton-ge-custom. I've heard the flatpak experience is better, but I haven't played with it at all.


In my experience, snap is Just Bad and will probably disappear in the next few years like all of Canonical's other NIH projects. Software availability is kinda ok, but compatibility and functionality is all over the place, primarily I think due to the sandboxing. Though, even classically confined snaps will sometimes misbehave in weird ways.

E.g. for me, the classically confined nodejs snap cannot be used to run a simple mocha test suite for our backend app, as it causes every test to time out. native install, no problem. The classically confined golang snap, installs a bunch of go tools as you'd expect, which are weirdly invisible to VSCode's Golang addons. You install Slack, click a link in a conversation, and it opens in a new Firefox window with all of your settings and addons disappeared; you have to delete an about:profiles profile in Firefox to make it use the existing configuration. App startup times can range from hundreds of milliseconds to 10+ seconds. Its just really not a good situation; some of these problems have solutions, but these are issues I've seen in, who knows, 19.04, 19.10, 20.04, 20.10, 21.04, we'll see if they fix it in 21.10 but I'm not holding my breath; we're talking years of decay.

Flatpak is definitely better. I've never ran into any compatibility or functionality issues. But, availability isn't as good; it seems like flatpak is geared more toward UI software; so, Discord, Slack, Spotify, Atom, Steam, even nvidia drivers, these I have installed through flatpak (Manjaro Gnome; so, Arch). You search flathub for Golang, or NodeJS, or other more dev/cli focused software, and it has nothing. So, I don't know if that's a cultural or technical thing, but it at least seems like flatpak has a focus, and excels within that focus.


(Author here)

Long time Arch user, and loved it, but now loving Guix. I'll be writing a followup article about how I set up everything in Guix, but as I mentioned here the only wrinkle on the software side was Steam via Flatpak. The beta version of Flatpak has solved the Proton issues, and it works great for me. Nonguix also has a Steam package, but we need to figure out some newer sandboxing that Valve has done to get newer Proton working.

Edit: And thanks!


can you elaborate what do you love about guix?


Similar to aijony, and something I will be writing in a followup article. Off the top of my head, and based on my experience so far, my biggest would be:

1. Guix is written in Guile Scheme, and I love anything Lisp (a joy to work with)

2. System configuration in one file, no more remembering all the random /etc/ files or tweaks here and there, it is all together

3. Easy package transformations: update source, different git branch, add a patch

4. Rollbacks of both the system configuration and packages (something breaks, just go back)

5. Minor, but user installation of packages is nice, rarely need to reach for sudo now

6. Active and friendly community. The project has plenty of steam I'd say, but is small enough you can get involved and contribute. I've enjoyed writing some patches and packages.

7. Overall, just a different way of doing a distro and running a system (nix is similar). It has been fun to learn and use, getting me excited for Linux again.


Not OP but here are some of mine:

- Universal package manager (replaces pip, cabal, npm, etc.)

- Declarative OS-config which makes deploys on new devices and servers a breeze

- Scheme declaration language (I prefer it to Nix-lang)

- Bootstrapable from 512 byte binary [1]

- I can build a package from source or download the binary

- Easily modify package source, deps, or compiler [2]

Cons:

- No official nonfree software [3]

- Smaller package set than Nix

- No KDE yet and old version of Gnome (it takes a lot of work to update)

Neutral:

- No systemd

- Works with GNU Hurd

- No MacOS or BSD support (yet)

[1] https://guix.gnu.org/en/blog/2020/guix-further-reduces-boots...

[2] https://guix.gnu.org/manual/en/html_node/Defining-Package-Va...

[3] https://gitlab.com/nonguix/nonguix


> no systemd

i was on this front for a long time, but now it feels like a lost cause.

What guix suggest for managing services/containers/chroots/cgroups?


Guix includes some containerization support: https://github.com/pjotrp/guix-notes/blob/927a46dc754770ec52...


GUIX (and NixOS) are significantly different than other package managers. They get you declarative system configuration, immutable and reproducible builds.

Declarative config = entire system config specified in a single config file - all config that is normally scattered across different /etc files and other locations now goes into a single config file (which instructs the system to write those /etc files on install, so /etc is still used but there’s a single source for configuring all of it). All packages and package config, boot loader, systemd/init system config, networking, etc configured in one file. And all config is declarative, not imperative - eg, you tell the system what you want in your build, and the system handles how. In NixOS this all just a big JSON file, and GUIX it’s a Scheme data structure.

Immutable builds = any time you make a configuration change, an entire new system is built with the change incorporated, and the system updated to point at the new build. Prior system builds are retained unchanged, and you can rollback to them any time if needed, if your new one is broken in some way not caught by compiler. Since current and prior builds are immutable, you can be sure that if a prior build worked reliably, it will continue to do so in case you need to rollback to it. In NixOS, builds are stored in /nix and soft-linked as needed to /bin, /usr/bin/, etc. Not sure about the equivalent on GUIX but that’s the idea.

Reproducible builds = you can take your system configuration file and use it to install an identical system build on other hardware. Everything will be the same except different hardware drivers for different hardware. Reinstalling the same configuration on the same system with no hardware changes will result in an identical system build with the same checksum.

One thing this does is make rapidly experimenting with different system configs much more possible. There’s no penalty to experimentation and failure, you can’t brick your system. If you do, just rollback to the prior working config, only takes a few seconds. You can iterate through many different config ideas, testing them all, and optimizing it to your needs.

I spent the past spring/summer migrating to NixOS. There’s a learning curve, but now that I’ve gotten through most of it, I could never go back to a normal linux. GUIX/NixOS is really the right way to architect an OS, so much farther out of the tarpit than anything else I’ve seen.


It's spelt out in the article, but be aware that Guix as a distro will give you a libre kernel, so no blobs. I am afraid it might not work with nvidia or AMD GPUs, as well as some wi-fi adapters (there's the cough nonguix project umbrella I haven't yet dug into).

Other than that, the approach taken by Guix and Nix to package management (or even fedora silverblue) is quite interesting, and I've been folowing it rather closely.

You get a more ansible-like (one config file for deployment) way of configuring your system, with rollbacks possible, it lets you have multiple software configurations exist simultaneously, that would be hard to achieve on other distributions (say, different environments with various versions of glibc). And portability+reproductibility of your environments.


> I am afraid it might not work with nvidia or AMD GPUs,

You can still install non-free blobs on Guix, as described in the article.


Yeah, I commented before reading the article, I had missed "Guix" in the title. I now read it, and adjusted my comment a bit. Nice to know that firmware is easily available, though I am not sure nvidia's driver can install and play nice with guix, unless it's packaged up in the nonguix channel.

I have previously had a test run on Guix on an old laptop with 1GB of ram, but it was clearly not powerful enough, as a guix pull could take 2-3 days (!) to complete. I guess I'll revisit it in a few months on a more powerful computer (an leave my old one with Alpine)


I'm not sure exactly the Nvidia situation, I know people have it working but still a little bit of work. I think the drivers are fine, but also might need some changes to make sure Nvidia's GL libraries are used. But it does work. I, for one, am happy to be in AMD-land now.

(Good on you for admitting commenting before reading, and extra points for then reading! I jest, but we are all guilty)


GUIX should work with AMD’s open source drivers, just not Nvidia’s blob drivers.


Not out-of-the box, though, as recent GPUs need to have firmware loaded before being usable. IIRC, older AMD GPUs have firmware pre-loaded (and though they would be better performing with newer firmware, they can run as-is).


The issue is loading firmware with the kernel, which linux-libre won't (by design) do. You can run the full linux kernel instead (but not in Guix default channels).


It's not that simple, unfortunately. The AMD drivers are free, but rely on some blobs in the kernel that aren't there when using linux-libre.


I'd just like to clarify that these blobs are never executed on the main CPU, and are instead running inside the GPU, or possibly "management engine"-like cores inside it. They also likely contain opaque data like DRM-related keys, thermal management look-up tables, etc.


I really would like to get Valve interested in NixOS (or Guix), because it really is a much better foundation for what they are trying to do. Especially when juggling old precompiled games, it's essential to be flexible with multiple versions of libraries etc. But e.g.

FlatPak is just that, which is the pendulum swinging too far in the other direcition when you want the Steam Deck Steam OS too still be a coherent experience outside specific games.

The proof of that latter is simple: any fedora silverfish-like pure flatpak thing is still vapourware at this point, where Nix and Guix are production-ready, and very self-contained so one can be sure they aren't going to suddenly fail outside of your control.


Valve are basically doing Flatpak on their own. They're using Bubblewrap (made for Flatpak) with their Linux runtimes. See here: https://www.youtube.com/watch?v=KrbWbBYAolo


Will check out, thanks.


Nice build, but personal preference gripe:

I'm so tired of the glass-box-with LED fans aesthetic.

I bought an intel NUC ECE + a small form factor case. My PC is about the size of a 12 pack of beer and runs everything I throw at it.

That's nice, but what I really want is a rack in the closet or a small impact-resistant case with a handle to carry to LAN parties, whenever those exist again.


Does what you want not exist? I love the crazy LED features. It's a kind of simple fun that I haven't seen in electronics since the Game Boy Color, GBA, Nintendo 64, Gamecube kind of days.


The Hyte Revolt 3 might fit the bill for a small case with a handle.

If you weren't keen on a handle, I'd recommend the SSUPD Meshlicious instead though.


I'm also a happy AMD/Linux user. I have the same GPU as OP, but with 5900x, 64Gb of RAM and the x570 motherboard. Except for Bluetooth, everything worked without any headaches. There was some screen/display issues at first (related to the card, but I got it 2 weeks after launch and AMD hadn't shipped official drivers back then) but now it has incredible performance to run multiple screens without any lag.

One suggestion: Get an NVME with a heatsink. The difference in write/read speed is simply ridiculous. You can get 5-7Gb/sec speeds and it makes your environment ridiculously lightweight.


(Author here) One photo had a bare NVME right after I installed it, before I put the heatsink on that came with the motherboard. This is my first NVME in a desktop; while I haven't done any storage benchmarks, I certainly don't find myself waiting much for anything to load. HDD --> SSD might have felt a more impressive change though.


Yep, openSUSE Tumbleweed with KDE on a SATA SSD feels snappier than Mint with Cinamon on a NVME SSD for me.


I got the Asus x570 TUF. Wireless and Bluetooth work out of the box. I'm using kernel 5.11.x. Looking forward to upgrading to a newest kernel as AMD cards are better supported. The build also has an AMD 5800x, 6700xt nitro+, nvme 1TB, and celsius S36+.


How do you do this with with NVMe devices that have a manufacturer label placed in between the chips and where the heat sink would be effective? It’s my understanding that most manufacturers won’t honor the warranty if the label has been removed.


I didn't install the heatsink. The NVMe had a heatsink (check Crosair products).


> Get an NVME with a heatsink.

How did you find out about that? (first time I hear of this)


I custom built my PC. You select all the components yourself. My retailer had some of these.


I mean, did your retailer tell you that the heatsink would provide much better performance? or did you hear it from somewhere else?


Isn't this common knowledge? nVME disks run pretty hot under load. A heatsink gives more thermal mass and better cooling, so the disk can sustain its high speeds for longer time. Though I doubt a heatsink [significantly] increases peak performance.


You need a heatsink for the PCIe4 SSDs to get their full performance, PCIe3 SSDs are fine without. My goto for HW knowledge is https://anandtech.com


No. But they had same capacity, different prices. I figured something must be different and it turns out it was write/read speeds.


At least ASUS gaming motherboards come with heat sinks for nvme slots already.


Must be a new feature. My B450F did not.


It's common sense, isn't it? SSDs fail from overheating, NVMe SSDs even more so. Always use a heatsink and better yet, have good airflow.


Only PCIe4 SSDs, and sorry but no, common knowledge does not exist IMHO. Assuming it leads to The Experts Blind Spot i guess.


I am very happy to see linux gaming grow every year. I gave up pubg and star citizen to go exclusively native linux(kubuntu 20.04[c. 2019]). There are still plenty of titles out there to play that are entertaining. At the end of the day, gaming is just a way to entertain the brain and wind down before bed for me.

I have had some minor hiccups with steam, but they seem to have ironed out cs:go very well. A lot of the older games I've played through the years have open source versions that actually work better than their original counterpart.

ryzen 3900x, gtx 1080


I built a similar machine:

* NixOS

* AMD 5700G (8c/16t)

* Nvidia GTX 760 (already owned)

* 32GB of old ram at 3400 MT/s (was really surprised my old Micron RAM could be overclocked by 1000MT/s but I'll take it).

* Old/existing 850W PSU

Having the integrated Vega 8 graphics lets me run sway at 2 4K screens pretty much without issue. It's pretty simple on NixOS to configure PRIME such where the 'nvidia-offload' command can run any program on the Nvidia card.

Sadly Vega 8 is only half the speed of my GTX 760... really wish AMD had included RDNA graphics like the Steamdeck. If I can grab a AMD GPU at a good price or Nvidia's GBM backend for Wayland support actually is released and works well I might upgrade to a 5700X or greater. It would be nice to have twice the L3 cache and even more threads when it comes to building some NixOS packages.

Currently temperature reporting on the 5700G is somewhat broken on Linux 5.14. I can see the integrated GPU temperature (I think) which should be close enough to the CPU die temp. Using sleep (suspend to RAM) on the 5700G has issues with Sway/Wayland.

System idles around ~50W which is about half that of my old 6700K system.


I tried GNU Guix for a week (coming from Arch). While I really liked that it has an integrated approach for almost everything I found the following drawbacks which made me switch to NixOS ultimately.

- lack of packages, I found myself constantly using the Nix package manager to get most of the packages - package download speed was considerably slower than Arch - the overall size of the community is small


Adding missing packages to the guix wishlist (on the libreplanet wiki), and maybe even helping package some things yourself is one way to help with that problem.


Controversial Opinion - 2022 will finally be the year of the linux desktop for 2 reasons:

1) steam deck will fix gaming on linux. 2) flatpak + snap will finally fix distributing software on linux.


To nitpick, it’s really Steam Play (Proton) + Lutris (for games not available in Steam) + Wine that have already fixed gaming on Linux. With those three you can play ~90% of games now. The Steam app is already widely in use, but it remains to be seen how successful Steam Deck will be.

And Linux Desktop is already here, it’s just not evenly distributed. Lots of innovators and early adopters, aka the cool kids, are now on Linux Desktop, including for gaming thanks to the above. It’s only a matter of time till the mainstream and late adopters follow.


Not to mention, recent work with things like Maui in KDE and the “platform building” nature of Gnome 40+ have lent a growing polish to the desktop experience of both environments.

There’s still a lot of work to be done for Linux to reach the hardware and software ubiquity of Windows or the UX polish of MacOS, but I increasingly see a more diverse set of talent, including design talent, lending their experience to the platform.

And as more disciplines work on the ecosystem, eventually demand for a more diverse set of software will follow.

Combine that with an initially lukewarm reception to Windows 11 so far, and growing privacy concerns on MacOS, and the incentives for an alternative platform are more widespread than they’ve been in a long time.

I know “the year of Linux desktops” has been a thing for forever, but it really does feel closer to the tipping point than ever.

Doesn’t mean it will definitely happen, but the momentum feels more with it than against it, IMO.


For now, flatpack and snap sandboxes perf hit are quite significant, and devs don't manage the permissions well so you often end up with software that can't open the files you want.

When you fire and electron app from a sandbox, it's a hog riding a slug, then you try to open your files only to find yourself in a temp folder or chrooted to a config subdir.

It think those tech can bring a lot, but there is still work to do.


Flatpak doesn't hurt performance any worse than something like Docker. It's Snap that's slower since they keep the entire app compressed on disk. Permissions are also up to the app developer in the case of Flatpak so if they don't use portals like they're supposed to then they can just allow the app to access the whole host filesystem. You can change this easily too through your terminal or an app like Flatseal.


Snap permissions are a mess.

The fact that I have to give Remmina each of its permissions one at a time after installing with snap is silly.


No doubt. My 3700/rx5700 build has been running Manjaro with minimal issues overall, including on the gaming side.

We're close to the point where pretty much everything will be running in an year or so. It's remarkable how much can change in just a few years


I really wish I could jump ship from Nvidia.

Having CUDA is just too important for work though, I really wish more ML libraries would add ROCm support. I understand it's now supported in Pytorch, but doing something like finetuning a Transformer model just isn't there yet (someone please, pleease tell me if I'm wrong)

The state of the closed source binaries required to get Nvidia GPU's running stable on Linux is a frustrating state of affairs.


I know for Tensorflow, ROCm keeps their own docker image you can pull against.

Though iirc ROCm isn't supported on recent consume level cards which I find incredulous that wasn't a goal to have working from launch.


Really looking forward to the follow-up article on this.

>There’s a lot more to say, which I’ll be writing up in some future articles to introduce everyone to Guix and breaking out of GNU-land for a gaming machine. (Note: please don’t discuss non-free software on any official Guix channels, like their mailing lists or IRC channel. They are friendly and will just politely remind you, but best to discuss somewhere like #nonguix on IRC.)


I better get right on it! If you are curious, you can see my current Guix config here [0], though not very commented. But those files (combined with the rest of my dot files) would reproduce this system configuration.

[0] https://github.com/podiki/dot.me/tree/master/guix/.config


Thank you for sharing! Your configuration files are beautiful. One last piece I am curious about are the steps required for the Btrfs install. I am new to Btrfs and am curious about giving it a try - did Guix handle the setup for that too, or were there additional commands required?


You are welcome! The Guix installer has Btrfs support, so you can use the partitioner in the installer to get set up. I (and others) have found that part of the installer in general to be a bit brittle, best to use the most up to date version and/or do the partitioning by hand (same as eg Arch install). I'd recommend asking any questions in the #guix IRC channel as there are quite a few of us that use Btrfs.

I had done a manual install for other reasons anyway, but it should work just find from the installer, no extra steps. And as you can see in my config, in the end you just declare the file system and partitions/subvolumes. Since it is Guix, it is all that one file for the system. (You could use that file to write a live bootable USB image of that system, or initialize a new install directly with that file. Since I have some nonguix and additional channels it requires slightly more, but that is the idea of a system like Guix.)


That would be great. I'm very interested in the declarative OS space and Scheme would be way easier for me since i did HTDP with Kiczales. Gonna check out SUSEs microOS (their Silverblue equivalent) first i guess. Still looking forward to your article though. Stay open, keep learning.


I too want to take a closer look at microOS. Like podiki's Guix setup here, microOS also installs to Btrfs and includes rollback features. Also, if you check the Guix blog, there are some novel steps they've taken towards using Guix for containerization. In theory, any containers developed on Guix would work well on top of microOS.


Thanks, I'll be sure to post on HN when it is done. Guix is still pretty new, but there's also Nix in a similar space (but not Scheme). And it has certainly been a learning experience, in a very good sense!


You are welcome. I know about Nix, but investing six months to learning it are sadly offputting to me. Since i dabbled in Racket with HTDP (How to design programs), i'm pretty sure i'll have an easier time with Scheme. As an infovor myself, i cherish learning too. Looking forward to your article.


I've been thinking of building AMD based gaming Linux workstation as well. What has been a bit daunting is to understand which combination of drivers should I use? And what they do / how they perform? E.g. should I use AMD proprietary driver[0] or it's free(?) alternative from AMD? Or stick with the linux default driver? What about MESA? Which version should I use? Latest available[1][2], or what ever comes with the distro?

Also, it's not obvious (to me anyways) how to properly measure performance should I want to measure the impact of different kernels/drivers/etc. combinations for the GFX performance.

And then there is VRR / FreeSync. I believe it will work under X and Wayland (only using Sway?). What about under 'raw' KMS/DRM?

Nonetheless soon probably boldly going to where little guides / instructions exists...

[0] https://www.amd.com/en/support/kb/release-notes/rn-amdgpu-un... [1] https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa [2] https://launchpad.net/~oibaf/+archive/ubuntu/graphics-driver...


I can't answer all your questions, but a few at least. You should use the latest kernel (and firmware) and Mesa you can. That will give you amdgpu (kernel driver) and radv (user Vulkan driver) from Mesa and the best compatibility and performance. AMD's proprietary driver, amdgpu pro, sometimes performs better, but the consensus these days is to just stick to Mesa and open source.


You don't need the proprietary AMD drivers, those included in the kernel are on par mostly. If you want to <edit>see benchmarks</edit> check out Phoronix [0].

Freesync works with in kernel drivers for sure, it was a little work, but worth it. Used it before i sold my undervolted <edit>(made it cooler, quieter and increased performance!)</edit> RX570, can't say how the situation is with newer cards.

Arch Wiki [1],[2] is an invaluable resource as always, applies to other distros as well.

If your base is Ubuntu you will need newer Mesa packages, which you can get here [3] (more recent/bleeding edge but used by default by some distributions, the one tested by Phoronix) or there [4]

(addition) Had this [5] in bookmarks, looks solid.

(edit) formatting

[0] https://www.phoronix.com/scan.php?page=article&item=radeon-r...

[1] https://wiki.archlinux.org/title/AMDGPU#Overclocking

[2] https://wiki.archlinux.org/title/Variable_refresh_rate

[3] https://launchpad.net/~oibaf/+archive/ubuntu/graphics-driver...

[4] https://launchpad.net/~ernstp/+archive/ubuntu/mesarc?field.s...

[5] https://reddit.artemislena.eu/r/linux_gaming/comments/agwrc1...


i would love to buy an AMD GPU but price&&availability are just ridiculous and impossible


Sadly too true still, but same with Nvidia, and even older gen stuff. Hopefully things improve, but at the very least would be helpful if manufacturers and stores had good bot measures, queuing, or some waitlist function for real humans.


If you don't need 4k 60fps max settings, a used R9 290 is reasonably priced.


Yeah, PC gaming will be dead for a few years at least.

Might try to get a Steam Deck.


The problem isn't exclusive to PCs. The PS5 and Xbox Series X use the same process as AMD CPUs and Nvidia GPUs, and tons of people have had trouble getting their hands on them.


It gets worse: on top of things like cars and other consumer electronics, even the cheap chips you need to make a keyboard are hard to get! I wanted to build a mechanical keyboard from scratch but have put it on indefinite hold until it gets better.


Just bought a cheap first gen 12 core Threadripper. I like Void Linux so I installed Void Musl. The only issue with Musl libc is you can not build the proprietary Nvidia drivers (considered a feature to me) so I plugged in an OLD Radeon HD5850 for now. In the future I plan to kill off my long in the tooth Win 7 machine and move its GTX1060 to the Void machine but I don't think nouveau is stable enough. Might have to buy an AMD card or switch to Void glibc.

I installed flatpack to install Steam and the experimental community build of Proton for flatpack Steam. I was instantly able to play a favorite Windows only game: Two Point Hospital. Flatpack also made installing Discord (used sparingly I might add) and GzDoom to run Brutal Doom, dead simple.

The major hurdle is AAA titles with ghastly anti-piracy/cheat software as well as 3rd party gaming platforms do not work. Of course this is all getting fixed by Valve so I have nothing but praise for them. So as of now the following older AAA's I own do not work: GTA5, Skyrim, Crysis, Farcry 3.

So if you think you need a specific Linux to get a good gaming experience, you don't. The kernel is the important part. The rest is just software dependency solved by flatpack.


Nouveau words fine up to 7X0 cards. I'd recommend getting a Quadro, more RAM, lower TDP (thus less noise), longer support with the blob. I use a K2200 which draws 75W via PCIe slot. I don't play anymore but it runs Dota2 fine at 1440. The bigger models might deliever enough perf for more demanding games.



I'm intrigued by gaming on Linux, but one thing has thrown a wrench in the works re: migrating over -- Gamepass for PC. As much as I'd like to try to game exclusively on a Linux machine, I don't want to lose out on my gamepass games.


You would not necessary lose access to the game pass games: https://boilingsteam.com/so-i-tried-xbox-game-pass-on-linux/


Very interesting. I'm glad this exists, but it appears to be streaming-based, which doesn't meet my needs (I want to run my games natively at a high resolution -- though if Gamepass streaming gets better and can deliver near native performance in the future, I'd seriously consider this).


Why don't massive new ATX cases have 5.25" drive bays anymore?! I get that an optical drive on a laptop is a bit extra, but I still need to burn media, backups and images!

Where is the IO panel? Where are the hot-swappable drives? Why is the underutilized CPU liquid cooled, when the over-stressed GPU is poorly air cooled?!

Nothing about this makes sense, except it's conformance to modern fashion. Don't even get me started about the fan placement...

Don't get me wrong though, I love the glass (or plastic).


(Author here)

Yeah, no more 5.25" drivers, but honestly I haven't used my DVD drive in the previous computer in a very long time. I'll probably get an enclosure or external one for the rare CD ripping I do.

IO panel is in the back, I didn't include a picture but you can find it on the Asus page for the motherboard of course. Pretty much what you'd expect: lots of USB, ethernet, display out (if you have integrated graphics), etc.

"Underutilized CPU"? It is not a server, but I do plenty of compiling and other CPU tasks. Water cooling is efficient and quiet too, so why not?

(Perhaps you've assumed a fan setup here, but I think I've configured them sensibly.)

"Over-stressed GPU...poorly air cooled"? I'd love a water block and custom loop, but that is outside of what I want to do/spend money on. The bottom fans are intake (as are the side radiator fans, the rear and top are exhaust). The GPU fans are off unless I'm playing games as it stays cool enough. And when I do play I don't notice any noise, no throttling, ... is well cooled I'd say.


I mean, I have an integrated water block on my CPU as well... it just makes sense these days. It's just hilarious to me that I have the good cooler on the part that's less in need.

The external thing is a decent idea, but I just have way too many junk drawers full of random shit in my little apartment, so I'd rather put it where it belongs, and leave it connected. There's really no harm in that, plus it can even help with air flow if you do it right.

On a tangential note: I once knew a professor with a completely passively liquid cooled rig. Just buy a big enough radiator (about the size of yours) and test things out for yourself. If you have a cool enough room, it should be fine.

Meanwhile, now I'm trying to wire up an old mobo to a side table in the living room, so I guess I don't have a 5.25" bay (yet) either. Or any fans.


Some people have made builds with the whole thing immersed in some liquid no? Sounds...messy, but interesting.


Mineral oil. Food oils will degrade over time.

https://grabcad.com/library/custom-micro-atx-mineral-oil-com...!


What, you don't want it to double as a deep fryer?


With GPUs these days running at ~100C we're getting closer and closer to this becoming a reality.


Sorry for being a pedant but deep frying happens around 300°C.


> The external thing is a decent idea

You know... I take this back. I just plugged in my external SATA to USB adapter and immediately re-mourned my last broken backup HDD, which I broke because I tripped on the fucking cable.

Spinning disks should be properly mounted.


5.25" bays are also handy for general purpose I/O shenanigans. My eyes were opened when I realized you can fit 6x hot swap 2.5" drives into a single 5.25" bay.


CPU water coolers are cheap because the mounting is pretty much standardized. A GPU requires a unique mounting bracket for each model although you can buy GPUs that come with a AIO water loop installed for premium.

>90% of custom PC builds do not install a disk drive and there is a large preference for aesthetics over function plus 5.25" drive bays also block airflow anyway. It's also easier to work in a case that has fewer drive bays. It's a lot easier to just buy a external disk drive anyway.

Using optical disks as a backup medium is pretty much dead. Optical disks are more expensive per GB than hard drives. (Bluray seems to be about ~$38/TB while HDDs are ~$25/TB). I would not be surprised if the main use of Bluray drives was ripping/saving the disk contents to a hard drive.

Anything plugged into the front panel just looks bad so most cases just have a USB A and C + audio ports. TBH the front audio ports are often useless anyway because they pick up a lot of noise.

Not sure what you mean about fan placement since most cases are designed to operate with positive pressure which reduces the amount of dust collected.

Also the case in the OP article is not a big case, it is just shorter and wider than a normal mATX case so it looks big in pictures.


> CPU water coolers are cheap because the mounting is pretty much standardized. A GPU requires a unique mounting bracket for each model although you can buy GPUs that come with a AIO water loop installed for premium.

True

RE Optical vs Magnetic: Unless someone has some good hard data to show me (I'm honestly very interested in seeing more numbers on this subject), I'm going to continue to assume high quality optical media is going to last longer and require less special treatment than hard drives, tapes, etc. Flash media lasts even less time. Yes, information density is lower on optical, so it really depends what you are backing up. If your concern is rolling backups of an entire prod server worth of customer records perhaps don't choose optical, however that's so far from what we're talking about in this thread that I don't see why it would influence your decision making process. However, if the goal is to backup a save file, or some old family photos, optical is still my go-to.

> Anything plugged into the front panel just looks bad

LOL OK, so I need to dig around in back every time I need to plug in my headphones? Really?! Perhaps you just make the back the new front, I've done that on a few rigs in the past.

> Not sure what you mean about fan placement since most cases are designed to operate with positive pressure which reduces the amount of dust collected.

Interesting, I hadn't considered that before. I'll have to test that out on my next rebuild.

That being said, I doubt the OP has positive interior pressure, since there are two "lower speed fans on the radiator" for intake, and three pushing out from the top.


I'm not sure what the pressure would be. And there are dust filters everywhere but the rear fan (which is exhaust anyway). The fans are pretty similar, and at least by count: 5 intake (2 radiator, 3 bottom), 4 exhaust (3 on top, 1 rear), plus GPU exhaust (not counting the power supply since it is behind everything). There are some tests on YouTube of this case and running the radiator as intake if it is on the side was better for thermals, from there I think the way I have it at least isn't the worst setup. Open to suggestions, but as I wrote, thermals are quite good (to me).


Ah yes, I was looking at the incomplete build, sorry for my sloppy comment. This thing has so many fans I can't imagine having air flow issues. Like I said, don't get me started about fans, rofl. Since you have a cat, I'm sure you'll be cleaning out those filters quite often, as I do.

Can you share your GPU (under load) temps, or did I miss those as well?

I hope I wasn't coming off too negatively on your build. I'm still reeling about my last build, which was quite similar.


No worries! I haven't built something with so many fans before, but it looked empty without them so I went all in. Now that I think about it, I'm not sure some of them (like the bottom ones) ramp up as needed, since they will go on CPU temp on the motherboard control I think (which won't be high in games when it is the GPU being taxed more). Since I moved the computer on to the desk I'm hoping it won't get as much dust and hair as on the floor.

I haven't looked at GPU temps much so far, but the last screenshot of Red Dead Redemption 2 shows 81 C. From my quick searches that seems quite reasonable for the 6700XT. Maybe I can tweak some fan settings to improve that a bit, but that should be well below any throttling or stability temperatures.

Edit: 81 C probably not being the peak junction temperature, I'm guessing, not sure what Mango is using by default. In that same instance the CPU is only 51 degrees.


The thermically better solution might net you 2°K. Getting an aftermarket AIO for the GPU would make a bigger difference IMHO. The voltage converters for CPU & GPU (if not full block) need a bit if airflow though.


Optical media have a life expectancy around ten years IIRC. For long term storage of huge amounts of data, tape rules supreme, until these writable quartz (IIRC) discs become feasible.


> but I still need to burn media, backups and images!

crazy, I haven't used any optical media directly since 2009


I run my homeserver as a sometimes gaming machine (i5/Nvidia 1050Ti) and unfortunately Steam and desktop gaming isn't a well fit on a machine that gets regular updates (Arch) and doesn't reboot often. Kernel/Driver/Steam updates would often leave Steam not running and only reboots would fix it.

One of the reasons I'm very excited about the Steam Deck is because it would let me de-couple my homeserver and gaming usecases while still running Arch in both.


You just HAD to have a cat in there, didn't you... Here, have a point! Oh, the rest was a good read too :)


Haha thanks! I swear I didn't put him there. It has become a running thing, he just loves to get into the photos I take for articles. He tends to want to "help" and knows that new boxes and gear means there's plenty to help with.

I also have a shot of him wide-eyed at seeing the computer turned on for the first time, and still sometimes stops to stare at the lights.


Hm. I build my Workstation Desktop in 2019 with AMD and nVidia and an Ubunut flavor. Focused a little bit on low noise and a video card supporting several Screens.

Has assembling a Desktop become an art in 2021?


750 W seems like overkill for a 5600x + 6700XT.


(Author) Probably is, but hopefully not far from the sweet spot in efficiency for the power supply. I didn't mention it, but my preferred GPU would be a 6800XT, which this should easily cover too. Also, it doesn't run the fan at low loads, so even quieter for light desktop usage.


Efficiency is highest around 50% of load usually.


Has anybody tried to use an Intel integrated graphics (for Linux) and play games on Windows with KVM/GPU passthrough.


I like to build my linux computers AMD only. No intel IME and nightmarish proprietary nvidia drivers. Smooth Sailing.


Why the LEDs? I just don't understand.


Fun


Is that trauma survivor book helping with coping with lisp ? Asking for a friend.

:)


OP, please compress your photos!


Slow loading? They were reduced to around HD size (from larger), but probably should have used smaller thumbnails in the article. Noted. Also, the server is seeing some traffic so might be slower.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: