docs(hosts): refresh the ai screenshots and correct its hardware notes

- replace the btop screenshot with the 2026-10-06 annotated capture
  (btop + fastfetch + the strata/llama.cpp serving logs); the old
  2026-10-01 file is gone, so the README link moves to the new name
- drop the Helix/AI-agents screenshot and its README reference
- fix stale hardware descriptions: the hosts/README.md inventory row and
  the idols-ai header comment still said i5-13600KF, and the zswap pool
  comment sized its percentages against the old 96G of RAM (now 128G)
- record the hardware history: the platform was rebuilt on 2026-04-27
  (PR #257/#258) onto the Colorful CVN Z890 ARK FROZEN + Core Ultra 7
  270K Plus, replacing the MSI board and i5-13600KF the host was added
  with in 2023-05; the 2x48G kit predates that rebuild, the 2x16G kit
  was added 2026-10-06
- make the DIMM bring-up order mandatory and record its failure mode:
  with the 48G pair in first, or all four DIMMs from the start, the
  board does not POST
- gloss the Chinese BIOS labels in English, marked as translations of
  the labels rather than the firmware's own English wording

Left alone on purpose: the 96G swapfile in hosts/idols-ai/disko-fs.nix.
It was grown from 20G to 1x-RAM on 2026-10-02 (a26ab3be), when the host
still had 96G; resizing it again means re-running disko on the machine,
so that stays a separate decision.
This commit is contained in:
Ryan Yin committed 2026-10-06 22:32:34 +08:00
1 parent e653ec3306
commit a091fe1aca
7 files changed
+39 -20

No files matched your search

+1 -3
View File
@@ -82,9 +82,7 @@ Wallpapers: https://github.com/ryan4yin/wallpapers
![desktop](./_img/2026-10-02_niri-noctalia_desktop.webp)
![btop monitoring and system information](./_img/2026-10-01_btop-monitoring-system-info.webp)
![Helix and AI agents in a terminal workspace](./_img/2026-10-02_helix-ai-agents.webp)
![btop, fastfetch, and llama.cpp serving logs](./_img/2026-10-06_btop-monitoring-system-info.webp)
## Editors / IDE
Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 526 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

+15 -2
View File
@@ -11,8 +11,8 @@ This directory contains all host-specific configurations for my NixOS and macOS
Named after characters from "Oshi no Ko":
| Host | Platform | Hardware | Purpose | Status |
| ------------ | --------------- | --------------------- | --------------------- | ----------- |
| `ai` | NixOS | i5-13600KF + RTX 4090 | Gaming & Daily Use | ✅ Active |
| ------------ | --------------- | --------------------------------------- | --------------------- | ----------- |
| `ai` | NixOS | Ultra 7 270K Plus + RTX 4090, 128G DDR5 | Gaming & Daily Use | ✅ Active |
| `aquamarine` | NixOS (libvirt) | Virtual | Monitoring & Services | ⚪ Not Used |
| `kana` | NixOS (libvirt) | Virtual | Run AI Agents | ✅ Active |
| `ruby` | NixOS (libvirt) | Virtual | Run AI Agents | ✅ Active |
@@ -21,6 +21,19 @@ Named after characters from "Oshi no Ko":
`aquamarine` is retired; its services now run directly on `youko`
(`hosts/12kingdoms-youko/homelab-services/`).
On 2026-04-27 `ai` was rebuilt on a new platform. The MSI board and i5-13600KF it was added with in
2023-05 (the host was originally named `msi-rtx4090`) gave way to the Colorful CVN Z890 ARK FROZEN +
Intel Core Ultra 7 270K Plus. The traces in the history are PR #257 (the NIC moved from `enp5s0` to
`enp130s0`) and PR #258 (Niri output names renamed, `hardware-intel.nix` added with the Arrow Lake
NPU, kernel moved to `linuxPackages_latest`). The 2×48G DDR5 kit was already in place at that point;
the repo has no record of when it went in.
On 2026-10-06 `ai` grew from 2×48G (96G) to 2×48G + 2×16G (128G) across all four DIMM slots, at
DDR5-4800 with XMP off — the only stable setting with four DIMMs on this board. The 16G pair must be
installed first; with the 48G pair in first the board does not POST. The bring-up order, the BIOS
settings, the stress-test recipe, and how to recover a board that will not POST are in
[`idols-ai/MIXED-MEMORY.md`](./idols-ai/MIXED-MEMORY.md).
#### `darwin` - macOS Systems
Named after characters from "Frieren: Beyond Journey's End":
+19 -13
View File
@@ -22,18 +22,22 @@ Notes from adding a 2×16G kit to the existing 2×48G kit on this desktop.
| JUHOR | 2×48G | DDR5-5600 (PC5-44800) | CL46-45-45-90 | 1.25 V | 2R | `JHE5600U4648JG` |
| GLOWY | 2×16G | DDR5-6400 (PC5-51200) | CL32-38-38-90 | 1.35 V | 1R | `VGM5UH64C32AG-DTACW` |
- When they went in: the 2×16G GLOWY kit was added 2026-10-06; the 2×48G JUHOR kit was already in
place when the platform was rebuilt 2026-04-27 (before that the host was an MSI LGA1700 board with
an i5-13600KF — see the `hosts/README.md` inventory notes).
- Channel A/B, DIMM0 = 48G (2R), DIMM1 = 16G (1R) → 64G per channel, 128G total.
- With XMP off both kits run at JEDEC DDR5-4800; the board exposes one XMP profile per kit
(`XMP 模块一` / `XMP 模块二`).
(`XMP 模块一` / `XMP 模块二`, XMP profile 1 / profile 2).
## Bring-up order (install the 16G pair first)
The install order matters — starting from all four DIMMs often fails to train:
The order is mandatory. Starting from the 2×48G, or from all four DIMMs, does not POST: no BIOS
entry and nothing to change in setup — pull the 48G pair and start from step 1.
1. Insert **only the 2×16G**, in the board's primary slots (the first-populate pair the manual
marks; the working layout has them in `ChannelA-DIMM1` / `ChannelB-DIMM1`).
2. Boot to BIOS; confirm `内存模块资源 = 默认模块` (XMP off) — the DRAM voltage comes back at 1.25
V.
2. Boot to BIOS; confirm `内存模块资源 = 默认模块` (memory module source = default module, i.e. XMP
off) — the DRAM voltage comes back at 1.25 V.
3. Power off, then insert the **2×48G** in the remaining slots.
4. Boot; the board retrains once (1–3 min, possibly a few reboots), then works.
@@ -43,19 +47,21 @@ Resulting layout: `ChannelA/B-DIMM0` = 48G (2R), `ChannelA/B-DIMM1` = 16G (1R).
- Verified: `stressapptest` 8G / 32G / 100G all PASS, 0 hardware incidents.
Current BIOS settings (`超频OC → 内存设置`):
Current BIOS settings (`超频OC → 内存设置`, the Overclocking → Memory settings page). The BIOS was
used in Chinese; the English in the table translates those labels and is not the firmware's own
English wording:
| Field | Value |
| --------------------------------------- | --------------------- |
| `内存模块资源` (module source) | `默认模块` (XMP off) |
| `Gear选择` (gear) | `Gear2` |
| `内存频率(MHz)` | `4800` |
| `CPU VDD2电压` | `1.104 V` (Auto) |
| `VCCSA电压` | `1.288 V` (Auto) |
| --------------------------------------- | ------------------------------------ |
| `内存模块资源` (memory module source) | `默认模块` (default module, XMP off) |
| `Gear选择` (Gear mode) | `Gear2` |
| `内存频率(MHz)` (DRAM frequency) | `4800` |
| `CPU VDD2电压` (CPU VDD2 voltage) | `1.104 V` (Auto) |
| `VCCSA电压` (VCCSA voltage) | `1.288 V` (Auto) |
| `Vdd2Mv` | `1.250 V` (Auto) |
| `Memory Voltage VDD` | **`1.250 V`** (fixed) |
| `内存电压VDDQ` | **`1.250 V`** (fixed) |
| `内存电压VPP` | `1.800 V` (Auto) |
| `内存电压VDDQ` (DRAM VDDQ voltage) | **`1.250 V`** (fixed) |
| `内存电压VPP` (DRAM VPP voltage) | `1.800 V` (Auto) |
| `Primary Timing` `tCL` / `tRCD` / `tRP` | `40` / `40` |
| `Primary Timing` `tRAS` | `77` |
+4 -2
View File
@@ -7,7 +7,8 @@
}:
#############################################################
#
# Ai - my main computer, with NixOS + I5-13600KF + RTX 4090 GPU, for gaming & daily use.
# Ai - my main computer, with NixOS + Core Ultra 7 270K Plus + RTX 4090 GPU,
# 128G DDR5-4800 (mixed 4-DIMM, see MIXED-MEMORY.md), for gaming & daily use.
#
#############################################################
let
@@ -50,7 +51,8 @@ in
# - zstd: CPU is not the bottleneck here (llama.cpp peaks ~30% util); its ~2.5x ratio
# keeps ~5G more anon bytes in the capped pool than lz4, and ~5us decompress is noise
# vs the ~100us SSD fault it avoids.
# - 10% pool (~9G): the module default 25% (~23G) would compete with the weight cache.
# - 10% pool (~13G on 128G): the module default 25% (~32G) would compete with the weight
# cache.
boot.zswap = {
enable = true;
compressor = "zstd";