As part of building out my homelab, I recently picked up a Dell PowerEdge R710 2U server off eBay.
After doing a local pickup (the ability to do so was a part of what made me pull the trigger on this option), I got the machine home and plugged in. Thankfully, I’ve got a bunch of old Dell U2410f monitors that have DP, HDMI, DVI, and … VGA! inputs. Just needed to look around and remember where I stashed the old VGA cables.
I had hoped to be able to just remote desktop in with the iDRAC and set up things that way, but I think it might be a little outdated.
So, I guess first operational order of business is to upgrade all the firmware so I can actually access this machine from the network.
Before I get to that, though, I’m just going to try and catalogue the state of the machine as I got it.
Initial Inventory
Before diving into making this machine my own, let’s see what it’s got on it right now.
Hardware Inventory
- 2x Xeon X5650 @ 2.67Ghz (Westmere EP; 32nm; 6 cores; TDP 95W)
- 128GB ECC DDR3 RAM @ 800MHz.
- 2x 300GB 10K RPM SAS drives (in front hotswap bays).
- dual swappable PSUs
- 4x GbE NIC ports (one card).
- iDRAC6 management card.
- VGA video output (and only VGA).
- 2x front USB ports.
- 2x read USB ports.
- 2x serial ports, one on the back, and one on the front.
- internal SD card reader with a 1GB card in it.
Versions from the Lifecycle Controller:
Component | Version |
---|---|
Broadcom NetXtreme II | v5.2.7 |
Power Supply | v00.01.32 |
Dell Server BIOS 11G | v2.1.9 |
Dell Lifecycle Controller | v1.4.0.481 |
iDRAC6 | v1.50 |
Dell 32 Bit Diagnostics | v5142A0 |
Dell OS Drivers Pack, v.6.2.0.9, A00 | v6.2.0.9 |
PERC 6/i Integrated | v6.2.0-0013 |
Self Diagnostic and Memory Tests
Ran through a full self-diagnostic suite of tests, and nothing came up except for it wasn’t able to test the DVD-ROM drive since I had no media in. It also skipped testing the USB controller my (working) keyboard was attached to.
Lingering Bits
SD Card had ESXi 5.1.0 installed. After booting up, it identified itself as
Host: ajesx065.corp.ad.ctc.
Cluster: “AJ Non-Prod 4 - CTC 6509VE 3,4”
Firmware Upgrades
In order to use the remote console with the iDRAC card, I need it to understand more recent TLS algorithms. Not too surprising I guess, since this is a v6 card, and Dell is up to iDRAC 9 now.
There is a Dell System Build and Update Utility that was easy enough to download. It ostensibly will update the firmware on all the bits and bobs inside the chassis. That includes BIOS, iDRAC, PERC RAID card, NIC, etc.
It comes as an ISO with instructions to burn it to a disc and boot from that. I instead used Rufus to convert it into a bootable USB image and wrote it out to a 16 GB memory stick.
First problem – trying to boot it spammed the console with a ton of “unknown interrupt or fault” errors and then it rebooted. This happened twice. So, I decided to re-flash the USB stick, just in case. This time around I selected 4096 sector size just to be safe (default was 8192). No joy. FWIW, I doubt there is any benefit to actually burning a CD, since it clearly boots fine and starts execution. It just is seeing something it does not expect and bailing. Hard.
So, next attempt: just do the main BIOS to start out with. That I can do from FreeDOS with a provided DOS executable. So far so good! This flashed successfully and brought me from 2.1.9 to 6.6.0. Ancient to latest in one jump. Nice.
Going to try the magic flash-it-all with the new BIOS installed to see if that set up the expected interrupts. Same failure.
Trying the extra big SUU package now, which is not bootable, but should be able to get run from the System Lifecycle Controller (a UEFI module that is included on the machine) that is already on the machine. (I’m doing a lot of work to avoid installing Windows just to run update bundles. ha). Initial thoughts: SUCCESS! The Lifecycle Controller recognizes the update packges on the USB stick.
It has identified appropriate bits to do the following:
- iDRAC 1.50 -> 2.90
- PERC 6/i 6.2.0-0013 -> 6.3.3-002
- Lifecycle Controller 1.4.0.481 -> 1.7.5.4
- (and BIOS, which I did manually, 6.6.0 -> 6.4.0 is getting skipped).
Upon further inspection, FAILURE! It failed to apply because “ The updates you are trying to apply are not Dell-authorized updates”. WTF I hate enterprise systems. Is the machine looking for a service contract or something? Because the actual bits came directly from the Dell website. Maybe the old old version doesn’t have the right keyring to validate a binary signature from the future? Going to try an older Lifecycle Controller update to version 1.6.0.73_A00 and see if maybe I can at least get there in a few steps. Nope. Doesn’t recognize it as an update.
The last straw
Okay, TFTP time. Why didn’t I try this earlier? Is it because I hate TFTP with a passion? Yes.
I’m using the (free) SolarWinds TFTP server for Windows to serve the bits. I needed to (temporarily) disable Windows Firewall on my private network connections, because it refused to connect, and honestly, I couldn’t figure out how to add a rule to allow it.
With the TFTP server running, I used the SSH interface to the iDRAC card to tell it to fetch-and-flash the update.
/admin1-> racadm fwupdate -g -u -a 10.10.100.79 -d iDRACS6_1.85 Firmware update in progress [30 percent complete] Firmware update in progress [70 percent complete] Firmware update in progress [90 percent complete] Firmware update completed successfully. The RAC is in the process of resetting. Your connection will be lost. Please wait up to a minute before starting a new session.
Upgrading via iDRAC SSH racadm command
Finally! Some success! I followed the recommendation of some post on the Dell forums and upgraded in a number of steps. I went from 1.85 -> 1.97 -> 1.99 -> 2.80 -> 2.92. I noticed that at 1.97 (or 1.99, I forget) that Chrome started connecting to the card successfully.
Linux Installation
Grabbed the normal ISO for Ubuntu Server 22.04.1 LTS and used Rufus again to flash it onto a USB stick. I’m going to install this onto the internal SD card drive. I’ve swapped the included 1GB card (that had ESXi 5.1 installed) and replaced it with a 64GB microSD card. I’m actually a little impressed that ESXi fits into a 1GB drive. I guess the “i” stands for “imbedded” 😂 Regardless, a normal Linux install needs a bit more.
The two SAS drives are in hardware RAID-1 mode. I’m going to ultimately wipe that, expose the disks in JBOD mode, and get a RAID-Z array going. Though, that’ll be after two things:
- I explore the data the eBay seller didn’t wipe out a bit more.
- I get another drive or two. There are eight slots on the front, and currently only two are populated.
Ubuntu is installed! Mostly.
Wait, “mostly” you say? Yeaaah. Apparently a /boot
partition of 128MB is not
nearly enough anymore. What, with initrd
stuff taking up 127MB of that. And
that’s just a single kernel version. Re-did things with 2GB allocated to /boot
and everything was peachy keen.
Wrap Up
Okay, all wrapped up for now. The thing is running. I can access both the iDRACs web interface and SSH interface. Linux is installed. Ready to be specialized.
Next up will be getting Kubernetes running on it and adding it to my cluster.
Appendix
Some racadm outputs and commands
Rebooting the server via SSH:
/admin1-> racadm serveraction powercycle
reboot server
Grabbing some system information as seen by the iDRAC:
/admin1-> racadm getsysinfo RAC Information: RAC Date/Time = 11/25/2022 18:49:30 Firmware Version = 1.50 Firmware Build = 24 Last Firmware Update = 08/06/2010 18:01:08 Hardware Version = 0.01 MAC Address = a4:ba:db:3d:ea:51 Common settings: Register DNS RAC Name = 0 DNS RAC Name = idrac-76MWJM1 Current DNS Domain = Domain Name from DHCP = 0 IPv4 settings: Enabled = 1 Current IP Address = 10.10.100.184 Current IP Gateway = 10.10.100.1 Current IP Netmask = 255.255.255.0 DHCP Enabled = 1 Current DNS Server 1 = 0.0.0.0 Current DNS Server 2 = 0.0.0.0 DNS Servers from DHCP = 0 IPv6 settings: Enabled = 0 Current IP Address 1 = :: Current IP Gateway = :: Autoconfig = 1 Link Local IP Address = :: Current IP Address 2 = :: Current IP Address 3 = :: Current IP Address 4 = :: Current IP Address 5 = :: Current IP Address 6 = :: Current IP Address 7 = :: Current IP Address 8 = :: Current IP Address 9 = :: Current IP Address 10 = :: Current IP Address 11 = :: Current IP Address 12 = :: Current IP Address 13 = :: Current IP Address 14 = :: Current IP Address 15 = :: DNS Servers from DHCPv6 = 0 Current DNS Server 1 = :: Current DNS Server 2 = :: System Information: System Model = PowerEdge R710 System Revision = I System BIOS Version = 2.1.9 Service Tag = 76MWJM1 Host Name = ajesx065.corp.ad.ctc OS Name = VMware ESXi 5.1.0 build-1065491 Power Status = ON Embedded NIC MAC Addresses: NIC1 Ethernet = a4:ba:db:3d:ea:49 iSCSI = a4:ba:db:3d:ea:4a NIC2 Ethernet = a4:ba:db:3d:ea:4b iSCSI = a4:ba:db:3d:ea:4c NIC3 Ethernet = a4:ba:db:3d:ea:4d iSCSI = a4:ba:db:3d:ea:4e NIC4 Ethernet = a4:ba:db:3d:ea:4f iSCSI = a4:ba:db:3d:ea:50 Watchdog Information: Recovery Action = None Present countdown value = 15 seconds Initial countdown value = 15 seconds
System Info (original)
/admin1-> racadm tlsEncryptionStrength get TLS encryption strength is TLSv1.0 or higher.