Yunes Lab

Engineering a home lab, one day at a time


New PC Build

Summary

The driving force behind building a new PC is the obsolescence of my previous PC. I want to start playing around with Virtualization, compiling firmware and to locally host an Large Language Model (LLM). The near 8 year old components were certainly showing their age so with the consent of my wife, we invested in a new PC to be the spearhead of my lab as I explore new technologies.


Mission Statement

To establish a precedence to cyclically build a new computer every 5-7 years (depending on tech advancements and fiscal obligations) to keep my lab up to date responsibly.
To build a PC with modern components for better performance in the following use cases:

  • Virtualization
  • Local AI
  • Better Programming
  • General User

End of Life
Many of the design choices are partially motivated using a seven year lifespan estimation and an end-of-life use case being to retire it from being my daily driver into a server in my homelab primarily for robust virtualization. Therefore satisfying short (within 5 years) and long term (7+ years) goals.


Hardware

I classify my specifications in 2 ways.

  • 1) Main
  • 2) Secondary

The main specs are components which have a direct effect on performance. Whereas the secondary specs indirectly effect performance. For example, the CPU cooler has an indirect effect on performance as it cools the CPU, enabling more computations and higher usage. However, the part itself doesn’t contribute to any form of performance. Moreover, a CPU cooler is seen as largely an aesthetic choice.


Main

ComponentName
CPUAMD Ryzen 9900X
MotherboardMSI MAG Tomahawk X870E
Graphics Card:AMD 6650 XT
RAM32 GB G.Skill Flare X5 6000 MHz
Storage – NVMe2 TB – Samsung 990 Pro
Power SupplyLian Li Edge Gold 1000W

Bundle
I picked up a bundle deal from Micro Center containing the CPU, Motherboard and RAM. I ideally would have preferred 2x 32 GB to have ability to expand to 128 as needed. For the sake of the bundle deal, I could at least see how far 32 GB of RAM could get me with my current workload and ugrade later on if necessary. There was a couple different combo deals being offered, with changes in motherboard or CPU. I ultimately decided on this bundle considering my use case as described below.
CPU
When selecting the AMD Ryzen 9 9900X, I carefully weighed its price-to-performance ratio against the flagship 9950X. While the 9950X boasts more cores and slightly higher performance, the real-world gains for my use case—virtualization and AI workloads in a homelab—would be marginal at best. The extra cost didn’t justify the diminishing returns, as the 9900X already provides an excellent balance of high core counts, clock speeds, and efficiency. Unless I were pushing heavily multi-threaded workloads at an extreme scale, the added expense of the 9950X wouldn’t offer a meaningful improvement.
Regarding AI, I intend to run a GPU inference LLM, so seemingly the CPU is only necessary for preprocessing for the graphics card.
Regarding virtualization and compiling code, the extra cores of the 9950X would be nice but I may barely push the 9900X to its limits. I will document this in future posts to see if it holds true. I will be tracking CPU load and usage.
Motherboard
I opted for the MSI MAG Tomahawk X870E, which offers notable improvements, over the older X670E. While both platforms provide PCIe 5.0 support and ample connectivity, the X870E features a newer chipset with enhanced power efficiency, refined I/O capabilities, and better memory support. Given that AMD’s AM5 platform is set to last several generations, the X870E ensures I’m getting the most up-to-date feature set while maintaining excellent stability and reliability. Given that the bundle was only $50 more expensive for the newer X870 platform, I assumed it was a no-brainer to go for this deal.
PSU
The Lian Li Edge Gold 1000W PSU was a deliberate choice for future-proofing. While my current power requirements are more modest, I anticipate adding an NVIDIA GPU soon for AI workloads. High-performance AI accelerators, especially NVIDIA’s RTX 4090 or even 5090 demand significant power. A 1000W PSU ensures I won’t need to upgrade again when I introduce a power-hungry GPU into my setup.
Graphics Card
For now, I’m using the AMD 6650 XT. While it’s not ideal for AI workloads, I already had the card on hand and it serves my current needs well. I’m approaching the AI hardware market with cautious optimism—especially given the ongoing AI bubble, crazy GPU pricing and the disastrous launch of NVIDIA’s new RTX 50 series. The uncertain trajectory of GPU pricing, software optimizations, and hardware availability makes me hesitant to invest heavily in a new AI-focused GPU just yet. I’ll be keeping a close eye on the market before making any significant upgrades.
There are a lot of different directions I could take the graphics card, such as running 2 3090s for the extra VRAM at a lower price or a 4090 to get closer to current gen optimizations and even shelling out for the 5090. Either way the market is fairly volatile right now and I feel the most Appropriate decision will be to wait and see the fallout from the 50 series launch. Maybe even AMD cards could close the gap in the AI field.


Secondary

ComponentName
CPU CoolerLian Li Gallahad 2 Trinity360
CaseLian Li O11 Vision Compact
FansLian Li TL LED Reverse 120 3-pack
FansLian Li TL LED 3-pack
FanLian Li TL LCD
Mini ScreenAIDA 8.8″ Screen

Aesthetic
The aesthetic vision for this build was inspired by the Disney movie Tron: Legacy, aiming for a sleek, futuristic look dominated by infinity mirrors, hexagonal glowing accents and a touch of minimalism. The Lian Li O11 Vision Compact was a natural choice, offering a glass-heavy, showcase-style chassis that highlights the internal components. While the full-sized O11 Vision provides more room for expansion, I deliberately opted for the Compact version to create a more intentional and refined design. A smaller case forces a more efficient layout, making every component choice feel deliberate rather than excessive. The reduced footprint also enhances the mirror effect and lighting, ensuring a visually striking build without unnecessary empty space. To further elevate the aesthetic, I selected Lian Li TL Uni Fans over the SL Infinity series. While both feature infinity mirror effects, the TL fans provide a more seamless, continuous mirror look and lacks ARGB on the blades, better matching the cohesive neon-grid aesthetic I was aiming for.
CPU Cooler
Ideally, I would have preferred a CPU cooler with an LCD screen to display the Tron logo, to mimic the chest emblem in the Tron: Uprising TV show. The NZXT Kraken Elite 360 is arguably the best option, with a crisp, customization display, but its high cost makes it an impractical choice for now. Instead, I opted for the Lian Li Galahad 2 Infinity 360, which perfectly integrates into the design with its built-in infinity mirror effect, maintaining the futuristic aesthetic while delivering excellent cooling performance. A future upgrade to a display-based block is still on the table, but for now, the Galahad 2 aligns best with both form and function.
Mini Monitor
The AIDA64 8.8″ touchscreen monitor** was originally selected purely for aesthetic appeal, acting as a dynamic data display that enhances the high-tech feel of the build. However, as I’ve spent more time with it, I’ve begun experimenting with more practical applications, such as system monitoring, sensor readouts, and even lightweight secondary tasks. While it’s not a full-fledged second monitor, it adds both functionality and immersion to the setup, making it a well-rounded addition.
Lian Li Fans Setup
The Lian Li TL Uni Fans also bring another modern feature to the build—wireless connectivity. Eliminating unnecessary cables helps maintain the clean, futuristic look, but setting up the fans isn’t entirely seamless. The proprietary Lian Li software “L-Connect” has its quirks, the biggest of which being that it seems to only work in Windows. I am still troubleshooting a solution which will be elaborated on later.


Software

OS Design
For this build, I chose Arch Linux as my primary OS due to its customizability, lightweight nature, and rolling-release model. Having previously experimented with Arch in the Hyprland desktop environment, I found its Windows tiling management experience incredibly enjoyable, providing a fun, modern and highly customizable workflow. Arch’s hands-on approach aligns well with my homelab mentality—giving me full control over package management, performance optimizations, and software choices. Unlike bloated mainstream distributions, Arch allows me to build the OS from the ground up and fine-tune my system specifically for my virtualization and AI workloads, ensuring a lean, efficient environment. Arguably, the biggest reason for selecting Arch was the robust information available on the Arch Wiki. Although most of the information is geared towards its namesake OS, a majority of the information can be applicable to Linux and the basics computer systems in general.
Another major reason Arch stood out to me is the fact that Valve’s Steam Deck is built on an Arch fork. Historically, Linux adoption for proprietary software has been fragmented due to the sheer number of distributions, leading many companies to ignore Linux entirely. However, with the Steam Deck’s popularity, there’s now a stronger unified effort to develop binary packages for Arch-based systems. This gives me confidence in Arch’s longevity and usability knowing that more developers are being encouraged to work with the platform instead of outright dismissing Linux compatibility.

Initial Setup


Windows

My initial OS install was Windows, primarily for quick hardware validation and case fan configuration. It was far from a smooth experience. Initially, I had internet connectivity but I noticed the download speed for the Lian Li software L-Connect estimated time of completion was several days. Upon inspection of my networking equipment in UniFi, I had ethernet connectivity issues. This forced me to troubleshoot network drivers right from the start and the lack of built-in driver support meant I had to manually download and install chipset updates. Additionally, the RGB color mismatches across my fans and the inability to properly control them through L-Connect made for a frustrating experience. I decided to push off the L-Connect download until after a proper Arch install and run a windows Virtual Machine to use L-Connect via USB pass-through; which will be explained further in another post. While Windows may have broader compatibility, I realize that all I was trying to accomplish could have been accomplished in Linux as well. Old habits die hard I guess.


Arch

My first install of Arch, I chose to use the automated ArchInstall command. I ran into the same networking issues as on Windows. This time I decided to use this as a learning lesson of how to setup drivers in Linux, while offline. I spent half a day researching the Arch Wiki and coming up with solutions, like using my phone to link the WiFi. I figure if I could just download and setup the latest version of arch then I could sort out the drivers on its own. I couldn’t figure out why all these fixes didn’t work. Only to realize it was the bootable USB, I downloaded Arch before some major updates and therefore is outdated. Sometimes I gotta just keep it simple.


Hyprland ML4W dotfiles

Hyprland configuration is handled through “dotfiles”, which are essentially plain text files that define settings for the window manager, keybindings, themes, and overall system behavior. These dotfiles allow for a fully customized environment, making it easy to tweak Hyprland to fit specific workflows. My go to for custom dotfiles is from the ML4W GitHub which enhances the Hyprland experience by providing pre-configured scripts, optimized keybindings and improved window management settings. Notable changes include better floating window behavior, fine-tuned animations and pre-set workspace rules that make multitasking more efficient. Additionally, ML4W’s dotfiles integrate auto-start scripts for essential programs and include theme enhancements that create a more polished look out of the box. By using and adapting these dotfiles, I was able to quickly establish a streamlined and visually cohesive desktop environment tailored for my homelab needs.

8.8″ Monitor Config

Configuring the 8.8″ touchscreen monitor in Arch Linux and Hyprland was an interesting challenge. Using the Hyprland Wiki, I was able to properly map the screen as an auxiliary display, defining its resolution, position and scale relative to my main monitor. Additionally, I integrated AIDA64-like system monitoring tools, displaying real-time performance stats, temperatures, and network activity. This setup not only completes the build aesthetically but also enhances functionality, providing quick at-a-glance information without cluttering my primary workspace.

Monitor Orientation

The default orientation for the auxiliary monitor is vertical. I need to set the orientation to landscape. First, I thought I could use hyprctl. Although this works, after reading the wiki, the better set up is to edit the config files.
First, I need to identify what is the connection ID of the monitor.

hyprctl monitors

The output should produce information regarding all displays outputs. The Id should be something like HDMI-A-1, DP-1, etc.
Then, I edited the monitor hyprland config file with the following code:

nano .config/hypr/conf/monitors/default.conf

Adding the following line to configure the AIDA64 monitor:

# AIDA64 8.8" Monitor Setup
monitor=HDMI-A-1,1920x1080,1920x0,0.83,transform,3

To explain the aforementioned line,

  • HDMI-A-1 is the ID of the display output.
  • 1920×1080 is the resolution, as per the AIDA64 support resolutions
  • 1920×0 places the monitor to the right of my main monitor
  • 0.83 is the scale of the window, because the default of 1 is not sufficient
  • Transform controls monitor orientation; 1 rotates 90°, 2 rotates 180°, and 3 rotates 270°

For more information, refer to the documentation for monitor configuration in the wiki.

Workspace Layout

The final step of the screen configuration is how hyprland utilizes workspaces. Workspaces are like virtual desktops that in my opinion mimics multiple monitors. Switching between them with the push of a button vastly improves my workflow even in a single monitor setup, let alone with multiple monitors.
By default, workspaces aren’t bound to any specific monitor and the configuration is commented out. It automatically sets up every odd numbered workspace to the primary monitor and evens to the auxillary monitor. The way I wanted to setup my workspaces was 1-5 for my main monitor and 6-8 for auxiliary.
First, I edited the workspace config file with the following:

nano .config/hypr/conf/workspaces/default.conf

Then add the lines:

workspace = 1, monitor:DP-1
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:HDMI-A-1
workspace = 7, monitor:HDMI-A-1
workspace = 8, monitor:HDMI-A-1

I may configure the workspaces further in the future but for now this is sufficient.

For more information, refer to the documentation for workspace rules in the wiki.


Conclusion

With the hardware now fully assembled and the core OS configured, the next steps will focus on setting up virtual machines and optimizing software. One of my first goals is to configure a Windows VM with USB pass-through to run L-Connect and finalize my fan setup. On the AI side, I plan to install Ollama for localized LLM inference. I found initial success by containerizing an AI model but its only in CLI. My next objective is to integrate OpenWebUI for a more ChatGPT-like interface, making AI interaction more accessible and streamlined. These software configurations, along with troubleshooting any remaining quirks, will be covered in a future post.
This post covered my hardware choices, OS selection, and initial setup challenges, providing insight into my reasoning behind each component and software decision. From choosing the Ryzen 9 9900X for its price-to-performance balance to navigating Arch Linux’s setup and configuring Hyprland, this build was designed with intention and aesthetics in mind. The Tron: Legacy-inspired theme makes this PC both visually striking and functionally effective. While this is just the beginning, I’m excited to refine and expand this system over time, tailoring it to my evolving homelab needs.