- Clarify iDRAC8 Express vs Enterprise with explicit feature table - Remove incorrect claims (virtual console, virtual media) that require Enterprise - Note physical monitor + keyboard required through Phase 5 (no remote KVM on Express) - Confirm IPMI over LAN and racadm are available on Express (fan control and stagger spinup scripts both work) - Update "what you need" list to correctly state monitor is required until Phase 6 https://claude.ai/code/session_01TxTSnxDjgEVuNztdsWQjMD
564 lines
17 KiB
Markdown
564 lines
17 KiB
Markdown
# Phases 1–3: Firmware, iDRAC, and BIOS
|
||
### Dell R730xd — Button-by-button walkthrough
|
||
|
||
---
|
||
|
||
## Before You Touch Anything — Read This First
|
||
|
||
### What is iDRAC and do I need to pay for it?
|
||
|
||
iDRAC stands for **Integrated Dell Remote Access Controller**. Ignore the name.
|
||
Here is what it actually is:
|
||
|
||
There is a **second tiny computer built into your server's motherboard**. It has
|
||
its own processor, its own RAM, its own network port, and it runs 24 hours a day
|
||
as long as the server has power — even when the server is "off". Dell calls this
|
||
second computer iDRAC.
|
||
|
||
This server has **iDRAC8 Express**, which is the version built into the board
|
||
at no cost. There is a paid upgrade called iDRAC8 Enterprise but you do not
|
||
need it. Here is exactly what Express gives you and what it does not:
|
||
|
||
**Express includes (everything this guide uses):**
|
||
- iDRAC web UI — hardware health dashboard, temperatures, fan speeds, event logs
|
||
- Power the server on and off remotely from the web UI
|
||
- IPMI over LAN — lets `ipmitool` send fan control commands from Proxmox
|
||
- racadm — command-line control used by the stagger spin-up script
|
||
- SSH directly into iDRAC for management
|
||
|
||
**Express does NOT include:**
|
||
- Virtual Console — you cannot see the server's screen in a browser window.
|
||
A **physical monitor and keyboard are required** for all setup steps until
|
||
Proxmox is installed and SSH is working. After that you will never need the
|
||
monitor again.
|
||
- Virtual Media — you cannot mount an ISO file over the network. A **physical
|
||
USB drive** is required for the Proxmox installer.
|
||
|
||
Nothing in this guide requires Enterprise. The fan control script and stagger
|
||
spin-up both use IPMI over LAN and racadm, which are both available on Express.
|
||
|
||
**Do you need to pay for anything?** No. iDRAC Express is already there and
|
||
covers everything we need. The only other "subscription" people sometimes ask
|
||
about is the **Proxmox subscription** (about €100/year for enterprise update
|
||
servers and commercial support). You do not need that either — we configure the
|
||
free community repositories in Phase 6. The two are completely unrelated.
|
||
|
||
**Summary: pay nothing, skip nothing. Keep a monitor plugged in through Phase 6.**
|
||
|
||
---
|
||
|
||
### What you need on the table before starting
|
||
|
||
- The server plugged into power and a network switch/router
|
||
- A **separate network cable** for the iDRAC port (the small RJ45 on the back
|
||
labeled "iDRAC" — it is separate from the four main NIC ports)
|
||
- A **monitor and USB keyboard** plugged into the server — required through
|
||
Phase 5 (the Proxmox installer). iDRAC Express does not include a remote
|
||
KVM, so you cannot see the server's screen from another computer. After
|
||
Proxmox is installed and SSH is working (end of Phase 6) the monitor
|
||
can be unplugged permanently.
|
||
- A USB drive (8 GB or larger) — needed later for the Proxmox installer
|
||
- Another computer or phone to read this guide
|
||
|
||
---
|
||
|
||
## Phase 1 — Firmware Updates
|
||
|
||
**Why first?** Old firmware has bugs. BIOS from 2016 may not correctly expose
|
||
the VT-d settings that GPU passthrough requires. The H730 firmware has had fixes
|
||
for JBOD/non-RAID mode. Updating now prevents chasing ghosts later.
|
||
|
||
**Time required:** 30–90 minutes. The server will reboot several times on its own.
|
||
|
||
---
|
||
|
||
### Step 1.1 — Power on and watch the screen
|
||
|
||
Press the power button on the front of the server.
|
||
|
||
The screen will show a **Dell splash screen** with the PowerEdge logo. At the
|
||
bottom of the screen you will see a line of options, something like:
|
||
|
||
```
|
||
F2 = System Setup F10 = Lifecycle Controller F11 = Boot Manager F12 = PXE Boot
|
||
```
|
||
|
||
These options are only available for about **5–8 seconds** before the server
|
||
continues booting. If you miss the window the server will try to boot an OS
|
||
(and fail if nothing is installed yet). Just power it off and back on and try again.
|
||
|
||
---
|
||
|
||
### Step 1.2 — Enter Lifecycle Controller
|
||
|
||
Press **F10** when you see the splash screen.
|
||
|
||
The screen will go blank for 10–30 seconds, then show the **Lifecycle Controller**
|
||
loading screen. This is a mini operating system built into the server's firmware.
|
||
It has nothing to do with your server's main OS. Wait for it to finish loading —
|
||
it can take up to 90 seconds the first time.
|
||
|
||
When it finishes you will see the **Lifecycle Controller Home** screen with a menu
|
||
on the left side:
|
||
|
||
```
|
||
Home
|
||
Firmware Update
|
||
OS Deployment
|
||
RAID Configuration
|
||
Hardware Configuration
|
||
Settings
|
||
```
|
||
|
||
If it asks you to complete initial setup (language, network), do that first —
|
||
use Tab and arrow keys to navigate, Enter to confirm.
|
||
|
||
---
|
||
|
||
### Step 1.3 — Go to Firmware Update
|
||
|
||
Click or arrow-key to **Firmware Update** on the left menu, then press Enter.
|
||
|
||
You will see:
|
||
|
||
```
|
||
Launch Firmware Update
|
||
```
|
||
|
||
Press Enter on that.
|
||
|
||
---
|
||
|
||
### Step 1.4 — Choose your update method
|
||
|
||
You will be asked how you want to get the firmware. You have two options:
|
||
|
||
#### Option A — Server has internet access (easiest)
|
||
|
||
If your network cable is plugged in and the server can reach the internet:
|
||
|
||
1. Select **HTTPS** (it will say something like "downloads.dell.com")
|
||
2. Press **Next**
|
||
3. Lifecycle Controller will connect to Dell's servers and **automatically scan
|
||
your server** to find what firmware versions are installed vs. what is available
|
||
4. This takes 2–5 minutes — the screen will show a progress bar
|
||
5. Skip to Step 1.5
|
||
|
||
#### Option B — No internet on the server
|
||
|
||
You need to download the firmware files on another computer first.
|
||
|
||
1. On your other computer, open a browser and go to:
|
||
**https://www.dell.com/support/home**
|
||
|
||
2. You need your server's **Service Tag** — it is a 7-character code. Find it:
|
||
- On the **front of the server**: there is a small pull-out plastic tab (like a
|
||
credit card slot) on the left side of the front panel. Pull it out — the
|
||
Service Tag is printed on it.
|
||
- Or: on a sticker on the **top** of the server chassis.
|
||
- Or: it was displayed briefly during POST on the splash screen.
|
||
|
||
3. On the Dell support page, click **"View products"** or type the Service Tag
|
||
into the search bar at the top. Select your server from the results.
|
||
|
||
4. Click **"Drivers & Downloads"**
|
||
|
||
5. You will see a filter panel. Under **"Category"**, select each of these one
|
||
at a time and download the latest version:
|
||
- **iDRAC** — look for "iDRAC8 firmware" — file will end in `.exe` or `.d9`
|
||
- **BIOS** — look for "BIOS" — file ends in `.exe`
|
||
- **RAID** — look for "PERC H730" — file ends in `.exe`
|
||
|
||
6. Copy all downloaded files onto a **FAT32-formatted USB drive**
|
||
|
||
7. Plug the USB drive into the server
|
||
|
||
8. In Lifecycle Controller: select **Local Drive (USB)** and press Next
|
||
|
||
9. Navigate to the USB drive and select the firmware files
|
||
|
||
---
|
||
|
||
### Step 1.5 — Review and apply updates
|
||
|
||
Lifecycle Controller shows a table of all components with columns like:
|
||
|
||
```
|
||
Component Current Version Available Version Select
|
||
--------- --------------- ----------------- ------
|
||
iDRAC8 2.40.40.40 2.85.85.85 [ ]
|
||
BIOS 1.2.10 2.14.0 [ ]
|
||
PERC H730 Mini 25.4.0.0018 25.5.9.0001 [ ]
|
||
```
|
||
|
||
1. Check the box next to **every component** that shows a newer Available Version
|
||
(you can usually click "Select All")
|
||
2. Click **Install and Reboot** (or **Apply**)
|
||
3. A warning will say the server will reboot — click **Yes**
|
||
|
||
The server will now:
|
||
- Apply each firmware update
|
||
- Reboot automatically between some updates
|
||
- Return to the Lifecycle Controller when finished
|
||
|
||
**Do not power off the server during this process.** Just wait. It can take
|
||
30–60 minutes if there are many updates. The screen will show progress.
|
||
|
||
---
|
||
|
||
### Step 1.6 — Confirm completion
|
||
|
||
When all updates are done, Lifecycle Controller returns to its home screen.
|
||
You may see a success summary screen first — click **OK** or **Finish**.
|
||
|
||
To verify everything worked:
|
||
1. In Lifecycle Controller, go to **Firmware Update** → **Launch Firmware Update**
|
||
again
|
||
2. Run the check one more time
|
||
3. The Available Version column should now match Current Version for everything
|
||
you updated (or show no newer version)
|
||
|
||
Press **Exit** (or **Finish**) to leave Lifecycle Controller. The server will
|
||
reboot normally.
|
||
|
||
---
|
||
|
||
## Phase 2 — iDRAC Setup
|
||
|
||
You need to do two things with iDRAC:
|
||
1. Give it a **static IP address** so it is always reachable at the same address
|
||
2. Enable **IPMI over LAN** so the fan control script can send commands to it
|
||
|
||
There are two ways to do this — through the server's BIOS-like setup (F2),
|
||
or through the iDRAC web UI once you find its current IP. We will use F2 first
|
||
to set a static IP, then use the web UI for the rest.
|
||
|
||
---
|
||
|
||
### Step 2.1 — Enter System Setup (F2)
|
||
|
||
Power on (or reboot) the server.
|
||
|
||
When the Dell splash screen appears, press **F2**.
|
||
|
||
The screen will go blank briefly, then show the **System Setup Main Menu**:
|
||
|
||
```
|
||
System Setup Main Menu
|
||
|
||
System BIOS
|
||
iDRAC Settings
|
||
Device Settings
|
||
Service Tag Settings
|
||
```
|
||
|
||
Use the **arrow keys** to highlight **iDRAC Settings** and press **Enter**.
|
||
|
||
---
|
||
|
||
### Step 2.2 — Set a static IP for iDRAC
|
||
|
||
Inside iDRAC Settings you will see another menu:
|
||
|
||
```
|
||
iDRAC Settings
|
||
|
||
Network
|
||
User Configuration
|
||
Smart Card
|
||
Update and Rollback
|
||
...
|
||
```
|
||
|
||
Arrow down to **Network** and press **Enter**.
|
||
|
||
The Network screen has several sections. You are looking for the **IPv4 Settings**
|
||
section. Use Tab or arrow keys to navigate to these fields:
|
||
|
||
| Field | What to set |
|
||
|-------|-------------|
|
||
| Enable NIC | **Enabled** |
|
||
| NIC Selection | **Dedicated** (this uses the dedicated iDRAC port on the back) |
|
||
| Enable IPv4 | **Enabled** |
|
||
| Enable DHCP | **Disabled** ← change this |
|
||
| Static IP Address | e.g. `192.168.1.5` (pick an IP outside your router's DHCP range) |
|
||
| Static Gateway | your router's IP, e.g. `192.168.1.1` |
|
||
| Static Subnet Mask | `255.255.255.0` |
|
||
| DNS Server 1 | your router's IP, e.g. `192.168.1.1` |
|
||
|
||
> **What IP to use?** Log into your router and find its DHCP range — for example
|
||
> if DHCP hands out `192.168.1.100` to `192.168.1.200`, pick something outside
|
||
> that range like `192.168.1.5`. Write this IP down — you will use it often.
|
||
|
||
When done, press **Back** or navigate to the bottom and click **Apply**, then **OK**.
|
||
|
||
---
|
||
|
||
### Step 2.3 — Enable IPMI over LAN
|
||
|
||
Still inside iDRAC Settings → Network.
|
||
|
||
Scroll down past the IPv4 section until you see **IPMI Settings**.
|
||
|
||
Find:
|
||
|
||
```
|
||
Enable IPMI over LAN: [ Disabled ]
|
||
```
|
||
|
||
Change this to **Enabled**.
|
||
|
||
This is the setting that allows `ipmitool` commands (used by the fan control
|
||
script) to reach iDRAC over the network.
|
||
|
||
Click **Apply** at the bottom, then **OK** when asked to confirm.
|
||
|
||
---
|
||
|
||
### Step 2.4 — Change the default password
|
||
|
||
Go back to the iDRAC Settings main menu (press **Back**).
|
||
|
||
Arrow down to **User Configuration** and press **Enter**.
|
||
|
||
You will see a list of user slots. **User 1** is the built-in `root` account.
|
||
Select it (press Enter).
|
||
|
||
> **Why change it?** The factory default password is `calvin`. This is printed
|
||
> in Dell's public documentation and is widely known. Any device on your network
|
||
> could log into your iDRAC if you leave it as-is.
|
||
|
||
Change:
|
||
- **User Name:** leave as `root`
|
||
- **Change Password:** set to **Enabled**
|
||
- **Password:** enter a strong password
|
||
- **Confirm Password:** enter it again
|
||
|
||
Click **Apply**, then **OK**.
|
||
|
||
Press **Finish** to exit iDRAC Settings and return to the System Setup Main Menu.
|
||
|
||
**Do not reboot yet** — you still have BIOS settings to configure in Phase 3.
|
||
|
||
---
|
||
|
||
### Step 2.5 — Verify iDRAC from your browser (do after Phase 3)
|
||
|
||
After you finish Phase 3 and let the server reboot, test iDRAC from your other
|
||
computer:
|
||
|
||
1. Make sure the **dedicated iDRAC network port** (small RJ45 labeled "iDRAC" on
|
||
the server's back panel) is plugged into your switch or router
|
||
2. Open a browser on your other computer
|
||
3. Go to: `https://192.168.1.5` (whatever static IP you set in Step 2.2)
|
||
4. You will see a **certificate warning** — this is normal, iDRAC uses a
|
||
self-signed certificate. Click **Advanced** → **Proceed anyway** (wording
|
||
varies by browser)
|
||
5. The iDRAC8 login page appears — a dark Dell-branded page
|
||
6. Log in: Username `root`, Password (the one you set in Step 2.4)
|
||
|
||
You should see the iDRAC dashboard showing system health, temperatures, and fans.
|
||
This is your remote window into the server — you can now manage it from your desk.
|
||
|
||
---
|
||
|
||
## Phase 3 — BIOS Settings
|
||
|
||
These settings enable the CPU features that allow devices (GPUs, USB controllers)
|
||
to be handed directly to virtual machines. **Every setting below is required.**
|
||
Skipping VT-d is the single most common reason GPU passthrough silently fails.
|
||
|
||
You are still in System Setup from Phase 2 (or press F2 again on reboot).
|
||
|
||
---
|
||
|
||
### Step 3.1 — System BIOS → Processor Settings
|
||
|
||
From the System Setup Main Menu, arrow to **System BIOS** and press Enter.
|
||
|
||
You will see the System BIOS Settings menu:
|
||
|
||
```
|
||
System BIOS Settings
|
||
|
||
System Information
|
||
Memory Settings
|
||
Processor Settings ← go here
|
||
SATA Settings
|
||
Boot Settings
|
||
Integrated Devices
|
||
Serial Communication
|
||
System Profile Settings
|
||
Power Management
|
||
Security
|
||
Miscellaneous Settings
|
||
```
|
||
|
||
Arrow to **Processor Settings** and press **Enter**.
|
||
|
||
Find and set these two options:
|
||
|
||
---
|
||
|
||
**Virtualization Technology**
|
||
|
||
This enables the CPU to run virtual machines efficiently. Without it Proxmox
|
||
still works but performance is worse.
|
||
|
||
```
|
||
Virtualization Technology: [ Disabled ]
|
||
↓ change to
|
||
Virtualization Technology: [ Enabled ]
|
||
```
|
||
|
||
Use the arrow keys or spacebar to toggle the value.
|
||
|
||
---
|
||
|
||
**VT for Direct I/O** (also shown as "Virtualization Technology for Directed I/O")
|
||
|
||
This is the critical one. It enables **IOMMU** — the hardware feature that lets
|
||
the CPU safely hand a real PCIe device (like your GPU) directly to a virtual
|
||
machine. Without this, passthrough is impossible.
|
||
|
||
```
|
||
VT for Direct I/O: [ Disabled ]
|
||
↓ change to
|
||
VT for Direct I/O: [ Enabled ]
|
||
```
|
||
|
||
Click **Back** to return to System BIOS Settings.
|
||
|
||
---
|
||
|
||
### Step 3.2 — System BIOS → Integrated Devices
|
||
|
||
From the System BIOS Settings menu, arrow to **Integrated Devices** and press Enter.
|
||
|
||
Find:
|
||
|
||
**SR-IOV Global Enable**
|
||
|
||
SR-IOV is a PCIe feature that allows a single physical device to appear as
|
||
multiple devices. Even though the Quadro P2200 does not use SR-IOV, enabling
|
||
this globally avoids a class of IOMMU grouping problems.
|
||
|
||
```
|
||
SR-IOV Global Enable: [ Disabled ]
|
||
↓ change to
|
||
SR-IOV Global Enable: [ Enabled ]
|
||
```
|
||
|
||
Click **Back**.
|
||
|
||
---
|
||
|
||
### Step 3.3 — System BIOS → Boot Settings
|
||
|
||
From System BIOS Settings, arrow to **Boot Settings** and press Enter.
|
||
|
||
You will see:
|
||
|
||
```
|
||
Boot Settings
|
||
|
||
Boot Mode: [ BIOS ] ← must change this
|
||
Boot Sequence
|
||
...
|
||
```
|
||
|
||
**Boot Mode** — change from BIOS to UEFI:
|
||
|
||
```
|
||
Boot Mode: [ BIOS ]
|
||
↓ change to
|
||
Boot Mode: [ UEFI ]
|
||
```
|
||
|
||
> **Why UEFI?** Proxmox uses a tool called `proxmox-boot-tool` to manage the
|
||
> kernel boot parameters (including the IOMMU settings the GPU passthrough script
|
||
> writes). This tool only works with UEFI boot. If the server is in Legacy/BIOS
|
||
> mode the passthrough script will fail and you will have to reinstall.
|
||
|
||
A warning may appear saying the boot sequence will be cleared — click **Yes** or
|
||
**OK**. That is fine since we haven't installed anything yet.
|
||
|
||
Click **Back**.
|
||
|
||
---
|
||
|
||
### Step 3.4 — System BIOS → Power Management
|
||
|
||
From System BIOS Settings, arrow to **Power Management** and press Enter.
|
||
|
||
Find:
|
||
|
||
**Hard Disk Drive Sequencing** — this is the built-in stagger that fires at
|
||
power-on before the OS loads. It staggers when each drive spins up so they do
|
||
not all surge at the same time and overload the PSU.
|
||
|
||
```
|
||
Hard Disk Drive Sequencing: [ Disabled ]
|
||
↓ change to
|
||
Hard Disk Drive Sequencing: [ Enabled ]
|
||
```
|
||
|
||
Also check:
|
||
|
||
**C States** — these are CPU power-saving sleep states. They can add latency
|
||
to VM workloads. Optional but worth setting for a server:
|
||
|
||
```
|
||
C States: [ Enabled ]
|
||
↓ change to
|
||
C States: [ Disabled ]
|
||
```
|
||
|
||
Click **Back**.
|
||
|
||
---
|
||
|
||
### Step 3.5 — Apply and exit
|
||
|
||
From System BIOS Settings, click **Finish** (at the bottom of the menu, you may
|
||
need to scroll).
|
||
|
||
A dialog will appear:
|
||
|
||
```
|
||
Confirm changes and exit?
|
||
[ Yes ] [ No ]
|
||
```
|
||
|
||
Click **Yes**.
|
||
|
||
The server will reboot.
|
||
|
||
---
|
||
|
||
### Step 3.6 — Confirm the settings took
|
||
|
||
After the reboot, press **F2** again to re-enter System Setup and spot-check:
|
||
|
||
- **Processor Settings:** VT and VT for Direct I/O should both show **Enabled**
|
||
- **Boot Settings:** Boot Mode should show **UEFI**
|
||
|
||
If either shows Disabled, set it again and apply. Some BIOS versions have a bug
|
||
where the first Apply does not persist — applying a second time fixes it.
|
||
|
||
---
|
||
|
||
### Phase 3 complete — what you have now
|
||
|
||
| Setting | Why it matters |
|
||
|---------|---------------|
|
||
| VT-x (Virtualization Technology) | Lets the CPU run VMs at near-native speed |
|
||
| VT-d (Direct I/O) | Enables IOMMU — the foundation of all device passthrough |
|
||
| SR-IOV | Prevents IOMMU group problems with PCIe devices |
|
||
| UEFI boot mode | Required for Proxmox's boot management and EFI GPU passthrough |
|
||
| HDD sequencing | Staggers drive spin-up at power-on to protect the PSU |
|
||
|
||
**Next:** Phase 4 — Configure the H730 RAID controller to mirror the two
|
||
2.5" OS drives, then leave the 3.5" drives alone for Proxmox to manage.
|
||
That walkthrough is in `docs/walkthrough-phases-4-6.md` (coming next).
|