A detailed blog post about building a high-end Linux PC in 2025, including component selection, setup, and troubleshooting a faulty Intel CPU.
<aside class="admonition note">
<div class="note-container">
<div class="note-icon" style="width: 20px; height: 20px">
<svg id="exclamation-icon" width="100%" height="100%" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
<path d="M0,0L24,0L24,24L0,24L0,0Z" style="fill:none;"/>
<g transform="matrix(1.2,0,0,1.2,-2.4,-2.4)">
<path d="M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2ZM13,17L11,17L11,15L13,15L13,17ZM13,13L11,13L11,7L13,7L13,13Z" style="fill-rule:nonzero;"/>
</g>
</svg>
</div>
<div class="admonition-content"><strong>Update (2025-09-07):</strong> The replacement CPU also died and I have given up on
Intel. See <a href="/posts/2025-09-07-bye-intel-hi-amd-9950x3d/">Bye Intel, hi AMD!</a> for
more details on the AMD 9950X3D.</div>
</div>
</aside>
<p>Turns out <a href="/posts/2025-03-19-intel-core-ultra-9-285k-on-asus-z890-not-stable/">my previous attempt at this build had a faulty
CPU!</a> With
the CPU replaced, the machine now is stable and fast! đ In this article, Iâll
go into a lot more detail about the component selection, but in a nutshell, I
picked an Intel 285K CPU for low idle power, chose a 4TB SSD so I donât have to
worry about running out of storage quickly, and a capable nvidia graphics card
to <a href="/posts/2017-12-11-dell-up3218k/">drive my Dell UP3218K 8K monitor</a>.</p>
<a href="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4795_featured.jpg"><img
srcset="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4795_featured_hu_3a23d743855185e1.jpg 2x,https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4795_featured_hu_5752380bee188abe.jpg 3x"
src="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4795_featured_hu_90d519e68715b8d6.jpg"
width="600"
height="800"
style="
border: 1px solid #000;
"
loading="lazy"></a>
<h2 id="components">Components</h2>
<p>Which components did I pick for this build? Hereâs the full list:</p>
<table>
<thead>
<tr>
<th>Price</th>
<th>Type</th>
<th>Article</th>
</tr>
</thead>
<tbody>
<tr>
<td>140 CHF</td>
<td>Case</td>
<td><a href="https://www.digitec.ch/de/s1/product/fractal-define-7-compact-black-solid-atx-matx-mini-itx-pc-gehaeuse-13220301">Fractal Define 7 Compact Black Solid</a></td>
</tr>
<tr>
<td>155 CHF</td>
<td>Power Supply</td>
<td><a href="https://www.digitec.ch/de/s1/product/corsair-rm850x-850-w-pc-netzteil-47356173?supplier=8560040">Corsair RM850x</a></td>
</tr>
<tr>
<td>233 CHF</td>
<td>Mainboard</td>
<td><a href="https://www.digitec.ch/de/s1/product/asus-prime-z890-p-lga-1851-intel-z890-atx-mainboard-50252296">ASUS PRIME Z890-P</a></td>
</tr>
<tr>
<td>620 CHF</td>
<td>CPU</td>
<td><a href="https://www.digitec.ch/de/s1/product/intel-core-ultra-9-285k-lga-1851-370-ghz-24-core-prozessor-49734792">Intel Core Ultra 9 285K</a></td>
</tr>
<tr>
<td>120 CHF</td>
<td>CPU fan</td>
<td><a href="https://www.digitec.ch/de/s1/product/noctua-nh-d15-g2-168-mm-cpu-kuehler-46985628">Noctua NH-D15 G2</a></td>
</tr>
<tr>
<td>39 CHF</td>
<td>Case fan</td>
<td><a href="https://www.digitec.ch/de/s1/product/noctua-nf-a14-pwm-140-mm-1-x-pc-luefter-657800?supplier=3204073">Noctua NF-A14 PWM (140 mm)</a></td>
</tr>
<tr>
<td>209 CHF</td>
<td>RAM</td>
<td><a href="https://www.digitec.ch/de/s1/product/corsair-vengeance-2-x-32gb-6400-mhz-ddr5-ram-dimm-ram-24473300">64 GB DDR5-6400 Corsair Vengeance (2 x 32GB)</a></td>
</tr>
<tr>
<td>280 CHF</td>
<td>Disk</td>
<td><a href="https://www.digitec.ch/de/s1/product/samsung-990-pro-4000-gb-m2-2280-ssd-37073751?supplier=406802">4000 GB Samsung 990 Pro</a></td>
</tr>
<tr>
<td>554 CHF</td>
<td>GPU</td>
<td><a href="https://www.digitec.ch/de/s1/product/msi-geforce-rtx-3060-ti-gaming-x-trio-8gb-grafikkarte-14365529">MSI GeForce RTX 3060 Ti GAMING X TRIO</a></td>
</tr>
</tbody>
</table>
<p>Total: 2350 CHF</p>
<p>âŠand the next couple of sections go into detail on how I selected these components.</p>
<h3 id="case">Case</h3>
<p>I have been a fan of Fractal cases for a couple of generations. In particular, I
realized that the âCompactâ series offers plenty of space even for large
graphics cards and CPU coolers, so thatâs now my go-to case: the Fractal Define
7 Compact (Black Solid).</p>
<p>My general requirements for a PC case are as follows:</p>
<ol>
<li>No extra effort should be required for the case to be as quiet as possible.</li>
<li>The case should not have any sharp corners (no danger of injury!).</li>
<li>The case should provide just enough space for easy access to your components.</li>
<li>The more support the case has to encourage clean cable routing, the better.</li>
<li>USB3 front panel headers should be included.</li>
</ol>
<p>I really like building components into the case and working with the case. There
are no sharp edges, the mechanisms are a pleasure to use and the
cable-management is well thought-out.</p>
<p>The only thing that wasnât top-notch is that Fractal ships the case screws in
sealed plastic packages that you need to cut open. I would have wished for a
re-sealable plastic baggie so that one can keep the unused screws instead of
losing them.</p>
<p>With this build, I have standardized all my PCs into Fractal Define 7 Compact
Black cases!</p>
<h3 id="power-supply">Power Supply</h3>
<p>I wanted to keep my options open regarding upgrading to an nvidia 50xx series
graphics card at a later point. Those models have a TGP (âTotal Graphics Powerâ)
of 575 watts, so I needed a power supply that delivers enough power for the
whole system even at peak power usage in all dimensions.</p>
<p>I ended up selecting the Corsair RM850x, which <a href="https://www.tomshardware.com/reviews/corsair-rm850x-2021-power-supply-review">reviews favorably (âleader in
the 850W gold
categoryâ)</a>
and was available at my electronics store of choice.</p>
<p>This was a good choice: the PSU indeed runs quiet, and I really like the power
cables (e.g. the GPU cable) that they include: they are very flexible, which
makes them easy to cable-manage.</p>
<p>One interesting realization was that itâs more convenient to not use the PSUâs
12VHPWR cable, but instead stick to the older 8-pin power connectors for the GPU
in combination with a 12VHPWR-to-8-pin adapter. The reason is that the 12VHPWR
connectorâs locking mechanism is very hard to unlock, so when swapping out the
GPU (as I had to do a number of times while trouble-shooting), unlocking an
8-pin connector is much easierâŠ</p>
<h3 id="ssd-disk">SSD disk</h3>
<p>I have been avoiding PCIe 5 SSDs so far because they consume a lot more power
compared to PCIe 4 SSDs. While bulk streaming data transfer rates are higher on
PCIe 5 SSDs, random transfers are not significantly faster. Most of my compute
workload are random transfers, not large bulk transfers.</p>
<p>The power draw situation with PCIe 5 SSDs seems to be getting better lately,
with the Phison E31T being the first controller that implements power saving. A
disk that uses the E31T controller is the Corsair Force Series MP700
Elite. Unfortunately, said disk was unavailable when I ordered.</p>
<p>Instead, I picked the Samsung 990 Pro with 4 TB. I have had good experiences
with the Samsung Pro series over the years (never had one die or degrade
performance), and my previous 2 TB disk was starting to fill up, so the extra
storage space is appreciated.</p>
<h3 id="onboard-25gbe-network-card">Onboard 2.5GbE Network Card</h3>
<p>One annoying realization is that most mainboard vendors seem to have moved to
2.5 GbE (= 2.5 Gbit/s ethernet) onboard network cards. I would have been
perfectly happy to play it safe and buy another Intel I225 1 GbE network card,
as long as it <em>just works</em> with Linux.</p>
<p>In the 2.5 GbE space, the main players seem to be Realtek and Intel. Most
mainboard vendors opted for Realtek as far as I could see.</p>
<p>Linux includes the <code>r8169</code> driver for Realtek network cards, but whether the
card will work out of the box depends on the exact revision of the network card!
For example:</p>
<ul>
<li>The AsRock Z890 Pro-A has rev 8125B. lshw:
<code>firmware=rtl8125b-2_0.0.2 07/13/20</code></li>
<li>The ASUS PRIME Z890-P has rev 8125<strong>D</strong>. lshw:
<code>firmware=rtl8125d-1_0.0.7 10/15/24</code></li>
</ul>
<p>For revision 8125D, you need a recent-enough Linux version (6.13+) that includes
commit â<a href="https://github.com/torvalds/linux/commit/f75d1fbe7809bc5ed134204b920fd9e2fc5db1df">r8169: add support for
RTL8125D</a>â,
accompanied by a recent-enough linux-firmware package.</p>
<p>Even with the latest firmware, there is some concern around stability and ASPM
support. See for example <a href="https://serverfault.com/a/1169558">this ServerFault
post</a> by someone working on the <code>r8169</code>
driver. But, despite the Intel 1 GbE options being well-supported at this point,
Intelâs 2.5 GbE options might not fare any better than the Realtek ones: I found
<a href="https://www.reddit.com/r/HomeServer/comments/1cc0yuq/are_intel_25_gbe_nics_i225v_i226v_stable_now/">reports of instability with Intelâs 2.5 GbE network
cards</a>.</p>
<p>That said, aside from the annoying firmware requirements, the Realtek 2.5 GbE
card seems to work fine for me in practice.</p>
<h3 id="mainboard">Mainboard</h3>
<p>Despite the suboptimal network card choice, I decided to stick to the ASUS PRIME
series of mainboards, as I made good experiences with those in my past few
builds. Here are a couple of thoughts on the ASUS PRIME Z890-P mainboard I went
with:</p>
<ul>
<li>I like the quick-release PCIe mechanism: ASUS understood that people had
trouble unlocking large graphics cards from their PCIe slot, so they added a
lever-like mechanism that is easily reachable. In my couple of usages, this
worked pretty well!</li>
<li>I wrote about <a href="/posts/2022-01-15-high-end-linux-pc/#slow-boot">slow boot times with my 2022 PC
build</a> that were caused by
time-consuming memory training. On this ASUS board, I noticed that the board
blinks the Power LED to signal that memory training is in progress. Very nice!
It hadnât occurred to me previously that the various phases of the boot could
be signaled by different Power LED blinking patterns :)
<ul>
<li>The downside of this feature is: While the machine is in suspend-to-RAM, the
Power LED also blinks! This is annoying, so I might just disconnect the
Power LED entirely.</li>
</ul>
</li>
<li>The UEFI firmware includes what they call a Q-Dashboard: An overview of what
is installed/connected in which slot. Quite nice:</li>
</ul>
<a href="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4809.jpg"><img
srcset="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4809_hu_9cc794b41e61aa66.jpg 2x,https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4809_hu_2e30747227d38ee6.jpg 3x"
src="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4809_hu_2bc1c1ff7fd21242.jpg"
width="600"
height="357"
style="
border: 1px solid #000;
"
loading="lazy"></a>
<p>One surprising difference between the two mainboards I tested was that the
AsRock Z890 Pro-A does not seem to report the correct DIMM clock in <code>lshw</code>,
whereas the ASUS does:</p>
<div class="highlight"><pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-diff" data-lang="diff"><span style="display:flex;"><span><span style="color:#a00000">--- lshw-intel-285k-asrock.txt 2025-04-30 20:35:24 +0200
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+++ lshw-intel-285k-asus.txt 2025-04-30 21:39:52 +0200
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> *-firmware
</span></span><span style="display:flex;"><span> description: BIOS
</span></span><span style="display:flex;"><span><span style="color:#a00000">- vendor: American Megatrends International, LLC.
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ vendor: American Megatrends Inc.
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> physical id: 0
</span></span><span style="display:flex;"><span><span style="color:#a00000">- version: 2.25
</span></span></span><span style="display:flex;"><span><span style="color:#a00000">- date: 03/24/2025
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ version: 1601
</span></span></span><span style="display:flex;"><span><span style="color:#00a000">+ date: 02/07/2025
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> size: 64KiB
</span></span><span style="display:flex;"><span><span style="color:#a00000">- capacity: 32MiB
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ capacity: 16MiB
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd acpi biosbootspecification uefi
</span></span><span style="display:flex;"><span>[âŠ]
</span></span><span style="display:flex;"><span> *-memory
</span></span><span style="display:flex;"><span> description: System Memory
</span></span><span style="display:flex;"><span><span style="color:#a00000">- physical id: 9
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ physical id: e
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> slot: System board or motherboard
</span></span><span style="display:flex;"><span> size: 64GiB
</span></span><span style="display:flex;"><span> *-bank:0
</span></span><span style="display:flex;"><span><span style="color:#a00000">- description: DIMM [empty]
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ description: [empty]
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> physical id: 0
</span></span><span style="display:flex;"><span> slot: Controller0-ChannelA-DIMM0
</span></span><span style="display:flex;"><span> *-bank:1
</span></span><span style="display:flex;"><span><span style="color:#a00000">- description: DIMM Synchronous 4800 MHz (0,2 ns)
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ description: DIMM Synchronous 6400 MHz (0,2 ns)
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> product: CMK64GX5M2B6400C32
</span></span><span style="display:flex;"><span> vendor: Corsair
</span></span><span style="display:flex;"><span> physical id: 1
</span></span><span style="display:flex;"><span><span style="color:#800080;font-weight:bold">@@ -40,13 +42,13 @@
</span></span></span><span style="display:flex;"><span><span style="color:#800080;font-weight:bold"></span> slot: Controller0-ChannelA-DIMM1
</span></span><span style="display:flex;"><span> size: 32GiB
</span></span><span style="display:flex;"><span> width: 64 bits
</span></span><span style="display:flex;"><span><span style="color:#a00000">- clock: 505MHz (2.0ns)
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ clock: 2105MHz (0.5ns)
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> *-bank:2
</span></span><span style="display:flex;"><span><span style="color:#a00000">- description: DIMM [empty]
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ description: [empty]
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> physical id: 2
</span></span><span style="display:flex;"><span> slot: Controller0-ChannelB-DIMM0
</span></span><span style="display:flex;"><span> *-bank:3
</span></span><span style="display:flex;"><span><span style="color:#a00000">- description: DIMM Synchronous 4800 MHz (0,2 ns)
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ description: DIMM Synchronous 6400 MHz (0,2 ns)
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> product: CMK64GX5M2B6400C32
</span></span><span style="display:flex;"><span> vendor: Corsair
</span></span><span style="display:flex;"><span> physical id: 3
</span></span><span style="display:flex;"><span><span style="color:#800080;font-weight:bold">@@ -54,7 +56,7 @@
</span></span></span><span style="display:flex;"><span><span style="color:#800080;font-weight:bold"></span> slot: Controller0-ChannelB-DIMM1
</span></span><span style="display:flex;"><span> size: 32GiB
</span></span><span style="display:flex;"><span> width: 64 bits
</span></span><span style="display:flex;"><span><span style="color:#a00000">- clock: 505MHz (2.0ns)
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+ clock: 2105MHz (0.5ns)
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span>[âŠ]
</span></span></code></pre></div><p>I havenât checked if there are measurable performance differences (e.g. if the
XMP profile is truly active), but at least you now know to not necessarily trust
what <code>lshw</code> can show you.</p>
<h3 id="cpu-fan">CPU fan</h3>
<p>I am a long-time fan of Noctuaâs products: This company makes silent fans with
great cooling capacity that work reliably! For many years, I have swapped out
all the fans of each of my PCs with Noctua fans, and it was always an
upgrade. Highly recommended.</p>
<p>Hence, it is no question that I picked the latest and greatest Noctua CPU cooler
for this build: the Noctua NH-D15 G2. There are a couple of things to pay
attention to with this cooler:</p>
<ul>
<li>I decided to configure it with one fan instead of two fans: Using only one fan
will be the quietest setup, yet still have plenty of cooling capacity for this
setup.</li>
<li>There are 3 different versions that differ in how their base plate is
shaped. Noctua recommends: âFor LGA1851, we generally recommend the regular
standard version with medium base convexityâ
(<a href="https://noctua.at/en/intel-lga1851-all-you-need-to-know">https://noctua.at/en/intel-lga1851-all-you-need-to-know</a>)</li>
<li>With a height of 168 mm, this cooler fits well into the Fractal Define 7
Compact Black.</li>
</ul>
<h3 id="cpu-and-gpu-idle-power-vs-peak-performance">CPU and GPU: Idle Power vs. Peak Performance</h3>
<h4 id="cpu-choice-intel-over-amd">CPU choice: Intel over AMD</h4>
<p>Probably the point that raises most questions about this build is why I selected
an Intel CPU over an AMD CPU. The primary reason is that Intel CPUs are so much
better at power saving!</p>
<p>Let me explain: Most benchmarks online are for gamers and hence measure a usage
curve that goes âstart game, run PC at 100% resources for hoursâ. Of course,
when you never let the machine idle, you would care about <em>power efficiency</em>:
how much power do you need to use to achieve the desired result?</p>
<p>My use-case is software development, not gaming. My usage curve oscillates
between âbarely any usage because Michael is reading textâ to âcomplete this
compilation as quickly as possible with all the power availableâ. For me, I need
both absolute power consumption at idle, and absolute performance to be
best-of-class.</p>
<p>AMDâs CPUs offer great performance (the recently released <a href="https://www.phoronix.com/review/amd-ryzen-9-9950x3d-linux">Ryzen 9 9950X3D is
even faster</a> than the
Intel 9 285K), and have great <em>power efficiency</em>, but poor <em>power consumption</em>
at idle: With â35W of idle power draw, Zen 5 CPUs consume â3x as much power as
Intel CPUs!</p>
<p>Intelâs CPUs offer great performance (like AMD), but excellent power consumption
at idle.</p>
<p>Therefore, I canât in good conscience buy an AMD CPU, but if you want a fast
gaming-only PC or run an always-loaded HPC cluster with those CPUs, definitely
go ahead :)</p>
<h4 id="graphics-card-nvidia-over-amd">Graphics card: nvidia over AMD</h4>
<p>I donât necessarily recommend any particular nvidia graphics card, but I have
had to stick to nvidia cards because they are the only option that work with my
picky <a href="/posts/2017-12-11-dell-up3218k/">Dell UP3218K monitor</a>.</p>
<p>From time to time, I try out different graphics cards. Recently, I got myself an
AMD Radeon RX 9070 because I read that it works well with open source drivers.</p>
<p>While the Radeon RX 9070 works with my monitor (great!), it seems to consume 45W
in idle, which is much higher than my nvidia cards, which idle at â 20W. This is
unacceptable to me: Aside from high power costs and wasting precious resources,
the high power draw also means that my room will be hotter in summer and the
fans need to spin faster and therefore louder.</p>
<p>People asked me on Social Media if this could be a measurement error (like, the
card reporting inaccurate values), so I double-checked with a <a href="https://mystrom.ch/de/wifi-switch/">myStrom WiFi
Switch</a> and confirmed that with the Radeon
card, the PC indeed draws 20-30W more from the wall socket.</p>
<h4 id="why-low-idle-power-is-so-important">Why Low Idle Power is so important</h4>
<p>In the comments for my <a href="/posts/2025-03-19-intel-core-ultra-9-285k-on-asus-z890-not-stable/">my previous blog post about the first build of this
machine not running
stable</a>,
people were asking why it is worth it to optimize a few watts of power
usage. People calculate what higher power usage might cost, put it in relation
to the total cost of the components, and conclude that saving ±10% of the price
canât possibly be worth the effort.</p>
<p>Let me try to illustrate the importance of low idle power with this anecdote:
For one year, I was suffering from an nvidia driver bug that meant the GPU would
not clock down to the most efficient power-saving mode (because of the high
resolution of my monitor). The 10-20W of difference should have been
insignificant. Yet, when the bug was fixed, I noticed how my PC got quieter
(fans donât need to spin up) and my room noticeably cooled down, which was great
as it was peak temperatures in summer.</p>
<p>To me, having a whisper-quiet computing environment that does not heat up my
room is a great, actual, real-life, measurable benefit. Not wasting resources
and saving a tiny amount of money is a nice cherry on top.</p>
<p>Obviously all the factors are very dependent on your specific situation: Your
houseâs thermal behavior might differ from mine, your tolerance for noise
(and/or baseline noise levels) might be different, you might put more/less
weight on resource usage, etc.</p>
<h2 id="installation">Installation</h2>
<h3 id="uefi-setup">UEFI setup</h3>
<p>On the internet, I read that there was some issue related to the Power Limits
that mainboards come with by default. Therefore, I did a <a href="https://www.asus.com/motherboards-components/motherboards/prime/prime-z890-p/helpdesk_bios?model2Name=PRIME-Z890-P">UEFI firmware
update</a>
immediately after getting the mainboard. I upgraded to version 1404 (2025/01/10)
using the provided ZIP file (<code>PRIME-Z890-P-ASUS-1404.zip</code>) on an MS-DOS
FAT-formatted USB stick with the EZ Flash tool in the UEFI firmware
interface. Tip: do not extract the ZIP file, otherwise the EZ Flash tool cannot
update the Intel ME firmware. Just put the ZIP file onto the USB disk as-is.</p>
<p>I verified that with this UEFI version, the <code>Power Limit 1 (PL1)</code> is 250W, and
<code>ICCMAX=347A</code>, which are exactly the values that Intel recommends. Great!</p>
<p>I also enabled XMP and verified that memtest86 reported no errors.</p>
<h3 id="software-setup-early-adopter-pains">Software setup: early adopter pains</h3>
<p>To copy over the data from the old disk to the new disk, I wanted to boot a live
linux distribution (specifically, <a href="https://grml.org/">grml.org</a>) and follow my
usual procedure: boot with the old disk and the new (empty) disk, then use <code>dd</code>
to copy the data. Itâs nice and simple, hard to screw up.</p>
<p>Unfortunately, while grml 2024.12 technically does boot up, there are two big
problems:</p>
<ol>
<li>
<p>There is no network connectivity because the kernel and linux-firmware
versions are too old.</p>
<ul>
<li>Kernel commit <a href="https://github.com/torvalds/linux/commit/f75d1fbe7809bc5ed134204b920fd9e2fc5db1df">r8169: add support for
RTL8125D</a>
is not included.</li>
</ul>
</li>
<li>
<p>I could not get Xorg to work at all. Not with the Intel integrated GPU, nor
with the nvidia dedicated GPU. Not with <code>nomodeset</code> or any of the other
options in the grml menu. This wasnât merely a convenience problem: I needed
to use <code>gparted</code> (the graphical version) for its partition moving/resizing
support.</p>
</li>
</ol>
<p>Ultimately, it was easier to upgrade my old PC to Linux 6.13 and linux-firmware
20250109, then put in the new disk and copy over the installation.</p>
<h3 id="trim-your-ssds">TRIM your SSDs</h3>
<p>SSD disks can degrade over time, so it is essential that the Operating System
tells the SSD firmware about freed-up blocks (for wear leveling). When using
full-disk encryption, all involved layers need to have TRIM support enabled.</p>
<p>I think I saw the effect of an incorrectly configured TRIM setup in action back
in 2022, <a href="/posts/2022-01-15-high-end-linux-pc/#copying-the-data">when I copied my data from a Force MP600 to a WD Black
SN850</a>, which
unexpectedly took many hours!</p>
<p>To make sure my disk has a long and healthy life, I double-checked that both
<a href="https://wiki.archlinux.org/title/Solid_state_drive">periodic and continuous TRIM are
enabled</a> on my Arch Linux
system: The <a href="https://manpages.debian.org/fstab.5"><code>fstab(5)</code></a>
file contains the <code>discard</code>
option (and <a href="https://manpages.debian.org/mount.8"><code>mount(8)</code></a>
lists the <code>discard</code> option),
and <code>fstrim.service</code> ran within the last week:</p>
<pre tabindex="0"><code>systemd[1]: Starting Discard unused blocks on filesystems from /etc/fstab...
fstrim[779617]: /boot: 10.1 GiB (10799427584 bytes) trimmed on /dev/nvme0n1p1
fstrim[779617]: /: 1.8 TiB (2018906263552 bytes) trimmed on /dev/mapper/cryptroot
systemd[1]: fstrim.service: Deactivated successfully.
</code></pre><p>Speaking of copying data: the transfer from my WD Black SN850 to my Samsung 990
PRO ran at 856 MB/s and took about 40 minutes in total.</p>
<h2 id="performance">Performance</h2>
<p>Here are the total times for a couple of typical workloads I run:</p>
<table>
<thead>
<tr>
<th>Workload</th>
<th><a href="/posts/2022-01-15-high-end-linux-pc/">12900K (2022)</a></th>
<th>285K (2025)</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://go.dev/dl/">build Go 1.24.3 (<code>cd src; ./make.bash</code>)</a></td>
<td>â35s</td>
<td>â26s</td>
</tr>
<tr>
<td><a href="https://github.com/gokrazy/rsync/tree/0c5ac23ecf8b337dd5672c2ae9f945defa5d0b7f">gokrazy/rsync tests (<code>make test</code>)</a></td>
<td>â0.5s</td>
<td>â0.4s</td>
</tr>
<tr>
<td><a href="https://github.com/gokrazy/gokrazy/">gokrazy UEFI test (<code>go test ./integration/...</code>)</a></td>
<td>â30s</td>
<td>â10s</td>
</tr>
<tr>
<td><a href="https://github.com/gokrazy/kernel/tree/699ad7a064b8702dbe91b801ea21c2da2f0e9737">gokrazy Linux compile (<code>gokr-rebuild-kernel -cross=arm64</code>)</a></td>
<td>3m 13s</td>
<td>2m 7s</td>
</tr>
</tbody>
</table>
<p>The performance boost is great! Building Linux kernels a whole minute faster is
really nice.</p>
<h2 id="stability-issues">Stability issues</h2>
<p>In March, I published <a href="/posts/2025-03-19-intel-core-ultra-9-285k-on-asus-z890-not-stable/">an article about how the first build of this machine was
not stable</a>,
in which you can read in detail about the various crashes I ran into.</p>
<p>Now, in early May, I know for sure that the CPU was defective, after a lengthy
trouble-shooting in which I swapped out <strong>all</strong> the other parts of this PC, sent
back the CPU and got a new one.</p>
<p>The CPU was the most annoying component to diagnose in this build because itâs
an LGAÂ 1851 socket and I donât (yet) have any other machines which uses
that same socket. AMDâs approach of sticking to each socket for a longer time
would have been better in this situation.</p>
<h3 id="stress-testing">Stress testing</h3>
<p>When I published my earlier blog post about the PC being unstable, I did not
really know how to reliably trigger the issue. Some compute-intensive tasks like
running a Django test suite seemed to trigger the issue. I <em>suspect</em> that the
problem somehow got worse, because when I started stress testing the machine,
suddenly it would crash <strong>every time</strong> when building a Linux kernel.</p>
<p>That got me curious to see if other well-known CPU stress testers like
<a href="https://en.wikipedia.org/wiki/Prime95">Prime95</a> would show problems, and
indeed: within seconds, Prime95 would report errors.</p>
<p>I figured I would use Prime95 as a quick signal: if it reports errors, the
machine is faulty. This typically happens within seconds of starting Prime95.</p>
<p>If Prime95 reported no errors, I would use Linux kernel compilation as a slow
signal: if I can successfully build a kernel, the machine is likely stable
enough.</p>
<p>The specific setup I used is to run <code>./mprime -m</code>, hit N (do not participate in
distributed computation projects), then Enter a few times to confirm the
defaults. Eventually, Prime95 starts calculating, which pushes the CPU to 100%
usage (see the <a href="https://manpages.debian.org/dstat.1"><code>dstat(1)</code></a>
-like output by my
<a href="https://github.com/gokrazy/stat"><code>gokrazy/stat</code></a> implementation) and draws the
expected â300W of power from the wall:</p>
<a href="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5271.jpg"><img
srcset="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5271_hu_a483aa202805316.jpg 2x,https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5271_hu_1496b18130c8ac83.jpg 3x"
src="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5271_hu_bba47b0510adbc9c.jpg"
alt="photo of running Prime95 to stress-test a CPU" title="photo of running Prime95 to stress-test a CPU"
width="600"
height="339"
style="
border: 1px solid #000;
"
loading="lazy"></a>
<a href="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/2025-05-04-power.jpg"><img
srcset="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/2025-05-04-power_hu_40bc570775db33a0.jpg 2x,https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/2025-05-04-power_hu_528a10bbc1d5b8a1.jpg 3x"
src="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/2025-05-04-power_hu_f6e7bcb349fedc2f.jpg"
alt="screenshot of PC power usage" title="screenshot of PC power usage"
width="600"
height="216"
style="
border: 1px solid #000;
"
loading="lazy"></a>
<p>In addition, I also ran <a href="https://en.wikipedia.org/wiki/MemTest86">MemTest86</a> for
a few hours:</p>
<a href="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4821.jpg"><img
srcset="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4821_hu_1bd21d248405fe7.jpg 2x,https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4821_hu_cc06de0f056aaed9.jpg 3x"
src="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4821_hu_5b10ba64b206ef86.jpg"
alt="photo of running memtest86" title="photo of running memtest86"
width="600"
height="306"
style="
border: 1px solid #000;
"
loading="lazy"></a>
<p>To be clear: I also successfully ran MemTest86 on the previous, unstable build,
so only running MemTest86 is not good enough if you are dealing with a faulty
CPU.</p>
<h3 id="rma-timeline">RMA timeline</h3>
<ul>
<li>Jan 15th: I receive the components for my new PC
<ul>
<li>In January and February, the PC crashes occasionally.</li>
</ul>
</li>
<li>Mar 4th: I switch back to my old PC and start writing my blog post</li>
<li>Mar 19th: I publish my blog post about the machine not being stable
<ul>
<li>The online discussion does not result in any interesting tips or leads.</li>
</ul>
</li>
<li>Mar 20th: I order the AsRock Z890 Pro-A mainboard to ensure the mainboard is OK</li>
<li>Mar 24th: the AsRock Z890 Pro-A arrives</li>
<li>Apr 5th (Sat): started an RMA for the CPU
<ul>
<li>They ask me to send the CPU to orderflow, which is the merchant that fulfilled my order.</li>
<li>Typically, I prefer buying directly at digitec, but many PC components seem
to only be available from orderflow on digitec nowadays.</li>
</ul>
</li>
<li>Apr 9th (Wed): package arrives at orderflow (digitec gave me a non-priority return label)</li>
<li>Apr 14th (Mon): I got the following mail from digitecâs customer support and
had to explain that I have thoroughly diagnosed the CPU as defective (a link
to my blog post was sufficient):</li>
</ul>
<blockquote>
<p>HĂ€ndler hat dies beim Hersteller angemeldet und dieser hat folgende Fragen:</p>
<p>Um sicherzugehen, dass wir Sie richtig verstehen: Sie haben die CPU auf zwei
verschiedenen Motherboards getestet und das gleiche Problem besteht weiterhin?</p>
<p>Könnten Sie uns mitteilen, welche Marke und welches Modell die beiden
verwendeten Motherboards sind?</p>
<p>Wurde auf beiden Motherboards die neueste BIOS-Version verwendet?</p>
<p>Bestand das Problem von Anfang an oder trat es erst spÀter auf?</p>
<p>Wurde der Prozessor ĂŒbertaktet? (Bitte beachten Sie, dass durch Ăbertakten die
Garantie erlischt.)</p>
</blockquote>
<ul>
<li>Apr 25th (Fri): orderflow hands the replacement CPU to Swiss Post</li>
<li>May 1st (Thu): the machine successfully passes stress tests; I start using it</li>
</ul>
<p>In summary, I spent March without a working PC, but that was because I didnât
have much time to pursue the project. Then, I spent April without a working PC
because RMA’ing an Intel CPU through digitec seems pretty slow. I would have
wished for a little more trust and a replacement CPU right away.</p>
<h2 id="conclusion">Conclusion</h2>
<p>What a rollercoaster and time sink this build was! I have never received a
faulty-on-arrival CPU in my entire life before. How did the CPU I first received
pass Intelâs quality control? Or did it pass QC, but was damaged in transport? I
will probably never know.</p>
<p>From now on, I know to extensively stress test new PC builds for stability to
detect such issues quicker. Should the CPU be faulty, unfortunately getting it
replaced is a month-long process â itâs very annoying to have such a costly
machine just gather dust for a month.</p>
<p>But, once the faulty component was replaced, this is my best PC build yet:</p>
<a href="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5278.jpg"><img
srcset="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5278_hu_f29f24e40749dfe6.jpg 2x,https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5278_hu_16b3f50e4be80194.jpg 3x"
src="https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5278_hu_cc3023c1203ab816.jpg"
width="600"
height="800"
style="
border: 1px solid #000;
"
loading="lazy"></a>
<p>The case is the perfect size for the components and offers incredibly convenient
access to all components throughout the entire lifecycle of this PC, including
the troubleshooting period, and the later stages of its life when this PC will
be rotated into its âlab machineâ period before I sell it second-hand to someone
who will hopefully use the machine for another few years.</p>
<p>The machine is quiet, draws little power (for such a powerful machine) and
really packs a punch!</p>
<p>As usual, I run Linux on this PC and havenât noticed any problems in my
day-to-day usage. I use <a href="/posts/2025-05-10-grobi-x11-monitor-autoconfig/#zleep">suspend-to-RAM multiple times a
day</a> without any issues.</p>
<p>I hope some of these details were interesting and useful to you in your own PC
builds!</p>
<p>If you want to learn about which peripherals I use aside from my 8K monitor
(e.g. the Kinesis Advantage keyboard, Logitech MX Ergo trackball, etc.), check
out my post <a href="/posts/2020-05-23-desk-setup/">stapelberg uses this: my 2020 desk
setup</a>. I might publish an updated version at
some point :)</p>
# My 2025 high-end Linux PC đ§
Source: [https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/)
Table of contents- [Components](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#components)- [Case](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#case) - [Power Supply](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#power-supply) - [SSD disk](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#ssd-disk) - [Onboard 2\.5GbE Network Card](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#onboard-25gbe-network-card) - [Mainboard](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#mainboard) - [CPU fan](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#cpu-fan) - [CPU and GPU: Idle Power vs\. Peak Performance](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#cpu-and-gpu-idle-power-vs-peak-performance)
- [Installation](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#installation)- [UEFI setup](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#uefi-setup) - [Software setup: early adopter pains](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#software-setup-early-adopter-pains) - [TRIM your SSDs](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#trim-your-ssds)
- [Performance](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#performance)
- [Stability issues](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#stability-issues)- [Stress testing](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#stress-testing) - [RMA timeline](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#rma-timeline)
- [Conclusion](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/#conclusion)
Turns out[my previous attempt at this build had a faulty CPU\!](https://michael.stapelberg.ch/posts/2025-03-19-intel-core-ultra-9-285k-on-asus-z890-not-stable/)With the CPU replaced, the machine now is stable and fast\! đ In this article, Iâll go into a lot more detail about the component selection, but in a nutshell, I picked an Intel 285K CPU for low idle power, chose a 4TB SSD so I donât have to worry about running out of storage quickly, and a capable nvidia graphics card to[drive my Dell UP3218K 8K monitor](https://michael.stapelberg.ch/posts/2017-12-11-dell-up3218k/)\.
[](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4795_featured.jpg)
## Components
Which components did I pick for this build? Hereâs the full list:
PriceTypeArticle140 CHFCase[Fractal Define 7 Compact Black Solid](https://www.digitec.ch/de/s1/product/fractal-define-7-compact-black-solid-atx-matx-mini-itx-pc-gehaeuse-13220301)155 CHFPower Supply[Corsair RM850x](https://www.digitec.ch/de/s1/product/corsair-rm850x-850-w-pc-netzteil-47356173?supplier=8560040)233 CHFMainboard[ASUS PRIME Z890\-P](https://www.digitec.ch/de/s1/product/asus-prime-z890-p-lga-1851-intel-z890-atx-mainboard-50252296)620 CHFCPU[Intel Core Ultra 9 285K](https://www.digitec.ch/de/s1/product/intel-core-ultra-9-285k-lga-1851-370-ghz-24-core-prozessor-49734792)120 CHFCPU fan[Noctua NH\-D15 G2](https://www.digitec.ch/de/s1/product/noctua-nh-d15-g2-168-mm-cpu-kuehler-46985628)39 CHFCase fan[Noctua NF\-A14 PWM \(140 mm\)](https://www.digitec.ch/de/s1/product/noctua-nf-a14-pwm-140-mm-1-x-pc-luefter-657800?supplier=3204073)209 CHFRAM[64 GB DDR5\-6400 Corsair Vengeance \(2 x 32GB\)](https://www.digitec.ch/de/s1/product/corsair-vengeance-2-x-32gb-6400-mhz-ddr5-ram-dimm-ram-24473300)280 CHFDisk[4000 GB Samsung 990 Pro](https://www.digitec.ch/de/s1/product/samsung-990-pro-4000-gb-m2-2280-ssd-37073751?supplier=406802)554 CHFGPU[MSI GeForce RTX 3060 Ti GAMING X TRIO](https://www.digitec.ch/de/s1/product/msi-geforce-rtx-3060-ti-gaming-x-trio-8gb-grafikkarte-14365529)Total: 2350 CHF
âŠand the next couple of sections go into detail on how I selected these components\.
### Case
I have been a fan of Fractal cases for a couple of generations\. In particular, I realized that the âCompactâ series offers plenty of space even for large graphics cards and CPU coolers, so thatâs now my go\-to case: the Fractal Define 7 Compact \(Black Solid\)\.
My general requirements for a PC case are as follows:
1. No extra effort should be required for the case to be as quiet as possible\.
2. The case should not have any sharp corners \(no danger of injury\!\)\.
3. The case should provide just enough space for easy access to your components\.
4. The more support the case has to encourage clean cable routing, the better\.
5. USB3 front panel headers should be included\.
I really like building components into the case and working with the case\. There are no sharp edges, the mechanisms are a pleasure to use and the cable\-management is well thought\-out\.
The only thing that wasnât top\-notch is that Fractal ships the case screws in sealed plastic packages that you need to cut open\. I would have wished for a re\-sealable plastic baggie so that one can keep the unused screws instead of losing them\.
With this build, I have standardized all my PCs into Fractal Define 7 Compact Black cases\!
### Power Supply
I wanted to keep my options open regarding upgrading to an nvidia 50xx series graphics card at a later point\. Those models have a TGP \(âTotal Graphics Powerâ\) of 575 watts, so I needed a power supply that delivers enough power for the whole system even at peak power usage in all dimensions\.
I ended up selecting the Corsair RM850x, which[reviews favorably \(âleader in the 850W gold categoryâ\)](https://www.tomshardware.com/reviews/corsair-rm850x-2021-power-supply-review)and was available at my electronics store of choice\.
This was a good choice: the PSU indeed runs quiet, and I really like the power cables \(e\.g\. the GPU cable\) that they include: they are very flexible, which makes them easy to cable\-manage\.
One interesting realization was that itâs more convenient to not use the PSUâs 12VHPWR cable, but instead stick to the older 8\-pin power connectors for the GPU in combination with a 12VHPWR\-to\-8\-pin adapter\. The reason is that the 12VHPWR connectorâs locking mechanism is very hard to unlock, so when swapping out the GPU \(as I had to do a number of times while trouble\-shooting\), unlocking an 8\-pin connector is much easierâŠ
### SSD disk
I have been avoiding PCIe 5 SSDs so far because they consume a lot more power compared to PCIe 4 SSDs\. While bulk streaming data transfer rates are higher on PCIe 5 SSDs, random transfers are not significantly faster\. Most of my compute workload are random transfers, not large bulk transfers\.
The power draw situation with PCIe 5 SSDs seems to be getting better lately, with the Phison E31T being the first controller that implements power saving\. A disk that uses the E31T controller is the Corsair Force Series MP700 Elite\. Unfortunately, said disk was unavailable when I ordered\.
Instead, I picked the Samsung 990 Pro with 4 TB\. I have had good experiences with the Samsung Pro series over the years \(never had one die or degrade performance\), and my previous 2 TB disk was starting to fill up, so the extra storage space is appreciated\.
### Onboard 2\.5GbE Network Card
One annoying realization is that most mainboard vendors seem to have moved to 2\.5 GbE \(= 2\.5 Gbit/s ethernet\) onboard network cards\. I would have been perfectly happy to play it safe and buy another Intel I225 1 GbE network card, as long as it*just works*with Linux\.
In the 2\.5 GbE space, the main players seem to be Realtek and Intel\. Most mainboard vendors opted for Realtek as far as I could see\.
Linux includes the`r8169`driver for Realtek network cards, but whether the card will work out of the box depends on the exact revision of the network card\! For example:
- The AsRock Z890 Pro\-A has rev 8125B\. lshw:`firmware=rtl8125b\-2\_0\.0\.2 07/13/20`
- The ASUS PRIME Z890\-P has rev 8125**D**\. lshw:`firmware=rtl8125d\-1\_0\.0\.7 10/15/24`
For revision 8125D, you need a recent\-enough Linux version \(6\.13\+\) that includes commit â[r8169: add support for RTL8125D](https://github.com/torvalds/linux/commit/f75d1fbe7809bc5ed134204b920fd9e2fc5db1df)â, accompanied by a recent\-enough linux\-firmware package\.
Even with the latest firmware, there is some concern around stability and ASPM support\. See for example[this ServerFault post](https://serverfault.com/a/1169558)by someone working on the`r8169`driver\. But, despite the Intel 1 GbE options being well\-supported at this point, Intelâs 2\.5 GbE options might not fare any better than the Realtek ones: I found[reports of instability with Intelâs 2\.5 GbE network cards](https://www.reddit.com/r/HomeServer/comments/1cc0yuq/are_intel_25_gbe_nics_i225v_i226v_stable_now/)\.
That said, aside from the annoying firmware requirements, the Realtek 2\.5 GbE card seems to work fine for me in practice\.
### Mainboard
Despite the suboptimal network card choice, I decided to stick to the ASUS PRIME series of mainboards, as I made good experiences with those in my past few builds\. Here are a couple of thoughts on the ASUS PRIME Z890\-P mainboard I went with:
- I like the quick\-release PCIe mechanism: ASUS understood that people had trouble unlocking large graphics cards from their PCIe slot, so they added a lever\-like mechanism that is easily reachable\. In my couple of usages, this worked pretty well\!
- I wrote about[slow boot times with my 2022 PC build](https://michael.stapelberg.ch/posts/2022-01-15-high-end-linux-pc/#slow-boot)that were caused by time\-consuming memory training\. On this ASUS board, I noticed that the board blinks the Power LED to signal that memory training is in progress\. Very nice\! It hadnât occurred to me previously that the various phases of the boot could be signaled by different Power LED blinking patterns :\)- The downside of this feature is: While the machine is in suspend\-to\-RAM, the Power LED also blinks\! This is annoying, so I might just disconnect the Power LED entirely\.
- The UEFI firmware includes what they call a Q\-Dashboard: An overview of what is installed/connected in which slot\. Quite nice:
[](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4809.jpg)
One surprising difference between the two mainboards I tested was that the AsRock Z890 Pro\-A does not seem to report the correct DIMM clock in`lshw`, whereas the ASUS does:
```
--- lshw-intel-285k-asrock.txt 2025-04-30 20:35:24 +0200
+++ lshw-intel-285k-asus.txt 2025-04-30 21:39:52 +0200
*-firmware
description: BIOS
- vendor: American Megatrends International, LLC.
+ vendor: American Megatrends Inc.
physical id: 0
- version: 2.25
- date: 03/24/2025
+ version: 1601
+ date: 02/07/2025
size: 64KiB
- capacity: 32MiB
+ capacity: 16MiB
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd acpi biosbootspecification uefi
[âŠ]
*-memory
description: System Memory
- physical id: 9
+ physical id: e
slot: System board or motherboard
size: 64GiB
*-bank:0
- description: DIMM [empty]
+ description: [empty]
physical id: 0
slot: Controller0-ChannelA-DIMM0
*-bank:1
- description: DIMM Synchronous 4800 MHz (0,2 ns)
+ description: DIMM Synchronous 6400 MHz (0,2 ns)
product: CMK64GX5M2B6400C32
vendor: Corsair
physical id: 1
@@ -40,13 +42,13 @@
slot: Controller0-ChannelA-DIMM1
size: 32GiB
width: 64 bits
- clock: 505MHz (2.0ns)
+ clock: 2105MHz (0.5ns)
*-bank:2
- description: DIMM [empty]
+ description: [empty]
physical id: 2
slot: Controller0-ChannelB-DIMM0
*-bank:3
- description: DIMM Synchronous 4800 MHz (0,2 ns)
+ description: DIMM Synchronous 6400 MHz (0,2 ns)
product: CMK64GX5M2B6400C32
vendor: Corsair
physical id: 3
@@ -54,7 +56,7 @@
slot: Controller0-ChannelB-DIMM1
size: 32GiB
width: 64 bits
- clock: 505MHz (2.0ns)
+ clock: 2105MHz (0.5ns)
[âŠ]
```
I havenât checked if there are measurable performance differences \(e\.g\. if the XMP profile is truly active\), but at least you now know to not necessarily trust what`lshw`can show you\.
### CPU fan
I am a long\-time fan of Noctuaâs products: This company makes silent fans with great cooling capacity that work reliably\! For many years, I have swapped out all the fans of each of my PCs with Noctua fans, and it was always an upgrade\. Highly recommended\.
Hence, it is no question that I picked the latest and greatest Noctua CPU cooler for this build: the Noctua NH\-D15 G2\. There are a couple of things to pay attention to with this cooler:
- I decided to configure it with one fan instead of two fans: Using only one fan will be the quietest setup, yet still have plenty of cooling capacity for this setup\.
- There are 3 different versions that differ in how their base plate is shaped\. Noctua recommends: âFor LGA1851, we generally recommend the regular standard version with medium base convexityâ \([https://noctua\.at/en/intel\-lga1851\-all\-you\-need\-to\-know](https://noctua.at/en/intel-lga1851-all-you-need-to-know)\)
- With a height of 168 mm, this cooler fits well into the Fractal Define 7 Compact Black\.
### CPU and GPU: Idle Power vs\. Peak Performance
#### CPU choice: Intel over AMD
Probably the point that raises most questions about this build is why I selected an Intel CPU over an AMD CPU\. The primary reason is that Intel CPUs are so much better at power saving\!
Let me explain: Most benchmarks online are for gamers and hence measure a usage curve that goes âstart game, run PC at 100% resources for hoursâ\. Of course, when you never let the machine idle, you would care about*power efficiency*: how much power do you need to use to achieve the desired result?
My use\-case is software development, not gaming\. My usage curve oscillates between âbarely any usage because Michael is reading textâ to âcomplete this compilation as quickly as possible with all the power availableâ\. For me, I need both absolute power consumption at idle, and absolute performance to be best\-of\-class\.
AMDâs CPUs offer great performance \(the recently released[Ryzen 9 9950X3D is even faster](https://www.phoronix.com/review/amd-ryzen-9-9950x3d-linux)than the Intel 9 285K\), and have great*power efficiency*, but poor*power consumption*at idle: With â35W of idle power draw, Zen 5 CPUs consume â3x as much power as Intel CPUs\!
Intelâs CPUs offer great performance \(like AMD\), but excellent power consumption at idle\.
Therefore, I canât in good conscience buy an AMD CPU, but if you want a fast gaming\-only PC or run an always\-loaded HPC cluster with those CPUs, definitely go ahead :\)
#### Graphics card: nvidia over AMD
I donât necessarily recommend any particular nvidia graphics card, but I have had to stick to nvidia cards because they are the only option that work with my picky[Dell UP3218K monitor](https://michael.stapelberg.ch/posts/2017-12-11-dell-up3218k/)\.
From time to time, I try out different graphics cards\. Recently, I got myself an AMD Radeon RX 9070 because I read that it works well with open source drivers\.
While the Radeon RX 9070 works with my monitor \(great\!\), it seems to consume 45W in idle, which is much higher than my nvidia cards, which idle at â 20W\. This is unacceptable to me: Aside from high power costs and wasting precious resources, the high power draw also means that my room will be hotter in summer and the fans need to spin faster and therefore louder\.
People asked me on Social Media if this could be a measurement error \(like, the card reporting inaccurate values\), so I double\-checked with a[myStrom WiFi Switch](https://mystrom.ch/de/wifi-switch/)and confirmed that with the Radeon card, the PC indeed draws 20\-30W more from the wall socket\.
#### Why Low Idle Power is so important
In the comments for my[my previous blog post about the first build of this machine not running stable](https://michael.stapelberg.ch/posts/2025-03-19-intel-core-ultra-9-285k-on-asus-z890-not-stable/), people were asking why it is worth it to optimize a few watts of power usage\. People calculate what higher power usage might cost, put it in relation to the total cost of the components, and conclude that saving ±10% of the price canât possibly be worth the effort\.
Let me try to illustrate the importance of low idle power with this anecdote: For one year, I was suffering from an nvidia driver bug that meant the GPU would not clock down to the most efficient power\-saving mode \(because of the high resolution of my monitor\)\. The 10\-20W of difference should have been insignificant\. Yet, when the bug was fixed, I noticed how my PC got quieter \(fans donât need to spin up\) and my room noticeably cooled down, which was great as it was peak temperatures in summer\.
To me, having a whisper\-quiet computing environment that does not heat up my room is a great, actual, real\-life, measurable benefit\. Not wasting resources and saving a tiny amount of money is a nice cherry on top\.
Obviously all the factors are very dependent on your specific situation: Your houseâs thermal behavior might differ from mine, your tolerance for noise \(and/or baseline noise levels\) might be different, you might put more/less weight on resource usage, etc\.
## Installation
### UEFI setup
On the internet, I read that there was some issue related to the Power Limits that mainboards come with by default\. Therefore, I did a[UEFI firmware update](https://www.asus.com/motherboards-components/motherboards/prime/prime-z890-p/helpdesk_bios?model2Name=PRIME-Z890-P)immediately after getting the mainboard\. I upgraded to version 1404 \(2025/01/10\) using the provided ZIP file \(`PRIME\-Z890\-P\-ASUS\-1404\.zip`\) on an MS\-DOS FAT\-formatted USB stick with the EZ Flash tool in the UEFI firmware interface\. Tip: do not extract the ZIP file, otherwise the EZ Flash tool cannot update the Intel ME firmware\. Just put the ZIP file onto the USB disk as\-is\.
I verified that with this UEFI version, the`Power Limit 1 \(PL1\)`is 250W, and`ICCMAX=347A`, which are exactly the values that Intel recommends\. Great\!
I also enabled XMP and verified that memtest86 reported no errors\.
### Software setup: early adopter pains
To copy over the data from the old disk to the new disk, I wanted to boot a live linux distribution \(specifically,[grml\.org](https://grml.org/)\) and follow my usual procedure: boot with the old disk and the new \(empty\) disk, then use`dd`to copy the data\. Itâs nice and simple, hard to screw up\.
Unfortunately, while grml 2024\.12 technically does boot up, there are two big problems:
1. There is no network connectivity because the kernel and linux\-firmware versions are too old\. - Kernel commit[r8169: add support for RTL8125D](https://github.com/torvalds/linux/commit/f75d1fbe7809bc5ed134204b920fd9e2fc5db1df)is not included\.
2. I could not get Xorg to work at all\. Not with the Intel integrated GPU, nor with the nvidia dedicated GPU\. Not with`nomodeset`or any of the other options in the grml menu\. This wasnât merely a convenience problem: I needed to use`gparted`\(the graphical version\) for its partition moving/resizing support\.
Ultimately, it was easier to upgrade my old PC to Linux 6\.13 and linux\-firmware 20250109, then put in the new disk and copy over the installation\.
### TRIM your SSDs
SSD disks can degrade over time, so it is essential that the Operating System tells the SSD firmware about freed\-up blocks \(for wear leveling\)\. When using full\-disk encryption, all involved layers need to have TRIM support enabled\.
I think I saw the effect of an incorrectly configured TRIM setup in action back in 2022,[when I copied my data from a Force MP600 to a WD Black SN850](https://michael.stapelberg.ch/posts/2022-01-15-high-end-linux-pc/#copying-the-data), which unexpectedly took many hours\!
To make sure my disk has a long and healthy life, I double\-checked that both[periodic and continuous TRIM are enabled](https://wiki.archlinux.org/title/Solid_state_drive)on my Arch Linux system: The[`fstab\(5\)`](https://manpages.debian.org/fstab.5)file contains the`discard`option \(and[`mount\(8\)`](https://manpages.debian.org/mount.8)lists the`discard`option\), and`fstrim\.service`ran within the last week:
```
systemd[1]: Starting Discard unused blocks on filesystems from /etc/fstab...
fstrim[779617]: /boot: 10.1 GiB (10799427584 bytes) trimmed on /dev/nvme0n1p1
fstrim[779617]: /: 1.8 TiB (2018906263552 bytes) trimmed on /dev/mapper/cryptroot
systemd[1]: fstrim.service: Deactivated successfully.
```
Speaking of copying data: the transfer from my WD Black SN850 to my Samsung 990 PRO ran at 856 MB/s and took about 40 minutes in total\.
## Performance
Here are the total times for a couple of typical workloads I run:
Workload[12900K \(2022\)](https://michael.stapelberg.ch/posts/2022-01-15-high-end-linux-pc/)285K \(2025\)[build Go 1\.24\.3 \(`cd src; \./make\.bash`\)](https://go.dev/dl/)â35sâ26s[gokrazy/rsync tests \(`make test`\)](https://github.com/gokrazy/rsync/tree/0c5ac23ecf8b337dd5672c2ae9f945defa5d0b7f)â0\.5sâ0\.4s[gokrazy UEFI test \(`go test \./integration/\.\.\.`\)](https://github.com/gokrazy/gokrazy/)â30sâ10s[gokrazy Linux compile \(`gokr\-rebuild\-kernel \-cross=arm64`\)](https://github.com/gokrazy/kernel/tree/699ad7a064b8702dbe91b801ea21c2da2f0e9737)3m 13s2m 7sThe performance boost is great\! Building Linux kernels a whole minute faster is really nice\.
## Stability issues
In March, I published[an article about how the first build of this machine was not stable](https://michael.stapelberg.ch/posts/2025-03-19-intel-core-ultra-9-285k-on-asus-z890-not-stable/), in which you can read in detail about the various crashes I ran into\.
Now, in early May, I know for sure that the CPU was defective, after a lengthy trouble\-shooting in which I swapped out**all**the other parts of this PC, sent back the CPU and got a new one\.
The CPU was the most annoying component to diagnose in this build because itâs an LGA 1851 socket and I donât \(yet\) have any other machines which uses that same socket\. AMDâs approach of sticking to each socket for a longer time would have been better in this situation\.
### Stress testing
When I published my earlier blog post about the PC being unstable, I did not really know how to reliably trigger the issue\. Some compute\-intensive tasks like running a Django test suite seemed to trigger the issue\. I*suspect*that the problem somehow got worse, because when I started stress testing the machine, suddenly it would crash**every time**when building a Linux kernel\.
That got me curious to see if other well\-known CPU stress testers like[Prime95](https://en.wikipedia.org/wiki/Prime95)would show problems, and indeed: within seconds, Prime95 would report errors\.
I figured I would use Prime95 as a quick signal: if it reports errors, the machine is faulty\. This typically happens within seconds of starting Prime95\.
If Prime95 reported no errors, I would use Linux kernel compilation as a slow signal: if I can successfully build a kernel, the machine is likely stable enough\.
The specific setup I used is to run`\./mprime \-m`, hit N \(do not participate in distributed computation projects\), then Enter a few times to confirm the defaults\. Eventually, Prime95 starts calculating, which pushes the CPU to 100% usage \(see the[`dstat\(1\)`](https://manpages.debian.org/dstat.1)\-like output by my[`gokrazy/stat`](https://github.com/gokrazy/stat)implementation\) and draws the expected â300W of power from the wall:
[](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5271.jpg)[](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/2025-05-04-power.jpg)
In addition, I also ran[MemTest86](https://en.wikipedia.org/wiki/MemTest86)for a few hours:
[](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_4821.jpg)
To be clear: I also successfully ran MemTest86 on the previous, unstable build, so only running MemTest86 is not good enough if you are dealing with a faulty CPU\.
### RMA timeline
- Jan 15th: I receive the components for my new PC- In January and February, the PC crashes occasionally\.
- Mar 4th: I switch back to my old PC and start writing my blog post
- Mar 19th: I publish my blog post about the machine not being stable- The online discussion does not result in any interesting tips or leads\.
- Mar 20th: I order the AsRock Z890 Pro\-A mainboard to ensure the mainboard is OK
- Mar 24th: the AsRock Z890 Pro\-A arrives
- Apr 5th \(Sat\): started an RMA for the CPU- They ask me to send the CPU to orderflow, which is the merchant that fulfilled my order\. - Typically, I prefer buying directly at digitec, but many PC components seem to only be available from orderflow on digitec nowadays\.
- Apr 9th \(Wed\): package arrives at orderflow \(digitec gave me a non\-priority return label\)
- Apr 14th \(Mon\): I got the following mail from digitecâs customer support and had to explain that I have thoroughly diagnosed the CPU as defective \(a link to my blog post was sufficient\):
> HĂ€ndler hat dies beim Hersteller angemeldet und dieser hat folgende Fragen: Um sicherzugehen, dass wir Sie richtig verstehen: Sie haben die CPU auf zwei verschiedenen Motherboards getestet und das gleiche Problem besteht weiterhin? Könnten Sie uns mitteilen, welche Marke und welches Modell die beiden verwendeten Motherboards sind? Wurde auf beiden Motherboards die neueste BIOS\-Version verwendet? Bestand das Problem von Anfang an oder trat es erst spĂ€ter auf? Wurde der Prozessor ĂŒbertaktet? \(Bitte beachten Sie, dass durch Ăbertakten die Garantie erlischt\.\)
- Apr 25th \(Fri\): orderflow hands the replacement CPU to Swiss Post
- May 1st \(Thu\): the machine successfully passes stress tests; I start using it
In summary, I spent March without a working PC, but that was because I didnât have much time to pursue the project\. Then, I spent April without a working PC because RMAâing an Intel CPU through digitec seems pretty slow\. I would have wished for a little more trust and a replacement CPU right away\.
## Conclusion
What a rollercoaster and time sink this build was\! I have never received a faulty\-on\-arrival CPU in my entire life before\. How did the CPU I first received pass Intelâs quality control? Or did it pass QC, but was damaged in transport? I will probably never know\.
From now on, I know to extensively stress test new PC builds for stability to detect such issues quicker\. Should the CPU be faulty, unfortunately getting it replaced is a month\-long process â itâs very annoying to have such a costly machine just gather dust for a month\.
But, once the faulty component was replaced, this is my best PC build yet:
[](https://michael.stapelberg.ch/posts/2025-05-15-my-2025-high-end-linux-pc/IMG_5278.jpg)
The case is the perfect size for the components and offers incredibly convenient access to all components throughout the entire lifecycle of this PC, including the troubleshooting period, and the later stages of its life when this PC will be rotated into its âlab machineâ period before I sell it second\-hand to someone who will hopefully use the machine for another few years\.
The machine is quiet, draws little power \(for such a powerful machine\) and really packs a punch\!
As usual, I run Linux on this PC and havenât noticed any problems in my day\-to\-day usage\. I use[suspend\-to\-RAM multiple times a day](https://michael.stapelberg.ch/posts/2025-05-10-grobi-x11-monitor-autoconfig/#zleep)without any issues\.
I hope some of these details were interesting and useful to you in your own PC builds\!
If you want to learn about which peripherals I use aside from my 8K monitor \(e\.g\. the Kinesis Advantage keyboard, Logitech MX Ergo trackball, etc\.\), check out my post[stapelberg uses this: my 2020 desk setup](https://michael.stapelberg.ch/posts/2020-05-23-desk-setup/)\. I might publish an updated version at some point :\)
Did you like this post?[Subscribe to this blogâs RSS feed](https://michael.stapelberg.ch/feed.xml)to not miss any new posts\!
I run a blog since 2005, spreading knowledge and experience for over 20 years\! :\)
After two Intel Core Ultra 9 285K CPUs failed within months, the author switches to an AMD Ryzen 9950X3D, citing widespread stability issues with Intel's current CPUs.
A developer rebuilt their entire Linux desktop stackâfrom shell to terminal, window manager, and utilitiesâin pure x86_64 Assembly using Claude Code, achieving microsecond startup times and hours of extra battery life.
A community member details a custom PC build using discontinued Intel Optane Persistent Memory to successfully run the 1-trillion parameter Kimi K2.5 model locally at roughly 4 tokens per second via llama.cpp.
Bought a GEEKOM A9 Max AI mini PC with AMD Ryzen AI 9 HX 370, 32GB RAM, 1TB SSD, and installed OmarchyLinux; praised as a small, quiet, powerful setup under $1,000.
The author documents the process of building a vintage PC from 1997-1998 to play all versions of Quake, covering hardware choices like the Pentium MMX, 3dfx Voodoo2, and Socket 7 motherboards.