From 16ad3abe2a32b9517321d668fe619db888f009c5 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 24 Apr 2026 21:40:07 +0000 Subject: [PATCH] Add Phase 10 walkthrough: fan control and stagger spin-up services Covers installing fan-control.sh + systemd service (replacing iDRAC's 100% fan response to non-Dell GPUs), configuring iDRAC BIOS hard disk drive sequencing via racadm, and the Linux-layer stagger-spinup service as a safety net. Phases 11 and 12 stubbed as placeholders. https://claude.ai/code/session_01U7bSqj83VPbMZ9L8LTYa41 --- docs/walkthrough-phases-10-12.md | 466 +++++++++++++++++++++++++++++++ 1 file changed, 466 insertions(+) create mode 100644 docs/walkthrough-phases-10-12.md diff --git a/docs/walkthrough-phases-10-12.md b/docs/walkthrough-phases-10-12.md new file mode 100644 index 0000000..c146723 --- /dev/null +++ b/docs/walkthrough-phases-10-12.md @@ -0,0 +1,466 @@ +# Phases 10–12: Fan Control, VM Creation, Frigate Deploy +### Dell R730xd — Button-by-button walkthrough + +--- + +## Phase 10 — Fan Control + Stagger Spin-Up Services + +**What this phase does:** Fixes two hardware quirks that bite R730xd owners +running non-Dell gear: + +1. **Fan control.** iDRAC detects the two Quadro P2200s as "non-Dell PCIe + cards" and immediately pins every fan at 100% indefinitely to be safe. + The server sounds like a jet engine and never stops. We disable iDRAC's + automatic control and replace it with a daemon that sets fan speed based + on the inlet temperature sensor. +2. **Staggered drive spin-up.** Twelve 3.5" HDDs spinning up simultaneously + at boot spike about 240 W of inrush current for 2–3 seconds — enough to + trip a 750 W PSU under load. We configure two layers of protection: the + iDRAC BIOS setting that fires at POST (before the OS loads), and a Linux + systemd service that handles any drives the BIOS setting missed. + +**Prerequisites from earlier phases:** +- IPMI over LAN enabled in iDRAC (Phase 2) — required for `ipmitool` +- `ipmitool` and `hdparm` installed on the host (Phase 6.3) +- Repo cloned to `/opt/local_proxmox` (Phase 6.4) + +--- + +### Step 10.1 — Test fan control manually before enabling the service + +Before installing anything as a systemd service, verify that the script can +actually talk to iDRAC over IPMI. This catches misconfigured IPMI-over-LAN +credentials before you wonder why the service silently failed. + +SSH into Proxmox: + +```bash +ssh root@192.168.1.10 +``` + +Check the current inlet temperature: + +```bash +bash /opt/local_proxmox/scripts/fan-control.sh --temp +``` + +Expected output: + +``` +Inlet temp: 24°C +``` + +The number will vary with your room temperature — anywhere between 18–35°C +is typical for an idle server. + +> **If you see `Inlet temp: 35°C` exactly every time** — that is the script's +> hard-coded fallback for when the sensor read fails. IPMI is not responding. +> Check Phase 2: iDRAC **Network → IPMI Settings → Enable IPMI Over LAN** +> must be checked, and the channel privilege level must be **Administrator**. + +Now test a manual fan speed override. This is safe — the script has a 15% +minimum floor hard-coded, so you cannot accidentally stop the fans: + +```bash +bash /opt/local_proxmox/scripts/fan-control.sh --set 20 +``` + +Expected output: + +``` +: iDRAC automatic fan control DISABLED +: Fans set to 20% +``` + +**Within 10–30 seconds you should hear the fans audibly slow down.** The +R730xd is loud at 100% — the difference is immediate and obvious. + +Confirm the fans actually dropped: + +```bash +ipmitool sdr type Fan +``` + +Expected output: + +``` +Fan1A | 30h | ok | 7.1 | 2400 RPM +Fan1B | 31h | ok | 7.1 | 2160 RPM +Fan2A | 32h | ok | 7.1 | 2400 RPM +Fan2B | 33h | ok | 7.1 | 2160 RPM +Fan3A | 34h | ok | 7.1 | 2400 RPM +Fan3B | 35h | ok | 7.1 | 2160 RPM +... +``` + +At 20% you should see roughly 2000–3000 RPM. At iDRAC's panic 100% you +would see 12000–15000 RPM. If the numbers look like the former you are in +good shape. + +Now hand control back to iDRAC before proceeding — we want the real service +to be what re-disables automatic control, not this test: + +```bash +bash /opt/local_proxmox/scripts/fan-control.sh --auto +``` + +Expected output: + +``` +: iDRAC automatic fan control RE-ENABLED +``` + +**The fans will immediately ramp back to 100% within a few seconds** — that +is iDRAC reacting to the Quadro again. This confirms the script was in fact +holding them down. Get the service installed quickly so the noise stops. + +--- + +### Step 10.2 — Install the fan control script and service + +Copy the script to the system directory and make it executable: + +```bash +cp /opt/local_proxmox/scripts/fan-control.sh /usr/local/sbin/fan-control.sh +chmod +x /usr/local/sbin/fan-control.sh +``` + +Copy the systemd unit into place: + +```bash +cp /opt/local_proxmox/scripts/fan-control.service /etc/systemd/system/ +``` + +Tell systemd about the new unit, then enable and start it in one command: + +```bash +systemctl daemon-reload +systemctl enable --now fan-control.service +``` + +`enable --now` both enables the unit for future boots and starts it right +now, so the fans should begin quieting within 30 seconds. + +Verify the service is running: + +```bash +systemctl status fan-control.service +``` + +Expected output (abbreviated): + +``` +● fan-control.service - Dell R730xd fan speed control (third-party GPU) + Loaded: loaded (/etc/systemd/system/fan-control.service; enabled; preset: enabled) + Active: active (running) since