XCP-ng: New Network Card Not Visible

Quite recently I upgraded my XCP-ng box and added an Intel X520-DA2 network interface card (NIC). The latter comes with dual SFP+ ports and is widely available on the used market for very little money.

So I installed the NIC, turned on the machine and saw: nothing.

One possible solution is to perform an emergency network reset. At least that was the approach that was mostly returned from Google. It works, but you ruin your complete network setup.

Luckily the correct way is much easier. If you have a look at the XCP-ng network documentation, there is even a dedicated section to adding a physical NIC. You simply have to run the command xe pif-scan host-uuid=<HOST UUID> .

To get the host UUID, you can run xe host-list. Or if you have only one machine in your home lab, just use the completion functionality by pressing <TAB> 3 times like this:  xe pif-scan<TAB><TAB><TAB>.

BIOS Update for Supermicro X9SRi-F Board

Basically as a reminder for myself here are the steps to update the BIOS on a Supermicro X9SRiF board. The reason in my case was that I needed bitfurcation and that was not available in the v3.2 BIOS installed before.

  • Download ZIP file with new BIOS (v3.3 is the latest as of this writing and will likely stay, given how old the board is). The release notes are available here.
  • Use Rufus to create a USB stick that boots FreeDOS.
  • Extract the contents of the BIOS update ZIP file onto the USB stick.
  • Boot your X9SRi-F board off of the USB stick by pressing F11 to enter the boot menu at startup.
  • Run the update program with the command ami x9sri8.529
  • Wait patiently until the command prompt comes back.
  • Turn the machine off, wait at least 10 seconds, and turn it on again.
  • It will switch itself off once, during the first startup, so don’t get nervous.

Seagate Exos disks in TrueNAS Core: Disable parking of heads

My NAS (TrueNAS Core) is running with Seagate Exos X16 drives. Those were considerably cheaper than any other drive at the time of purchase (September 2020) here in Germany. From what I gathered  since then, this is often still the case, also in other countries.

But there is one aspect about these drives that needs attention. Being marketed for data center use, they have a very small timeout for parking their heads. So, if an Exos drive is idle for only a very short time, it will move its heads into a parking position. That is a reasonable setting for data centers, where drives are hardly ever idle. But for a small business or home use it is less than ideal.

Fortunately, this setting can be changed and TrueNAS Core, or rather the underlying FreeBSD, has the right program for this already installed. Below you find the command that I am using. You will need to adjust the device, but otherwise you can just run it.

camcontrol epc /dev/??? -c state -d -p Idle_b -s

In terms of the ATA level, this disables the Idle_b power condition and saves it to the drive to survive a reboot. For more details, please check out the extensive man page of the camcontrol command.

In addition I recommend that you configure your system to issue this command on every startup. Under normal conditions that is not necessary. But what if you need to replace a disk drive? If you have a case with hot-swappable drive bays, this will of course not help. In that case I would think about a cron job.