I was expecting this to be a walk in the park but alas it wasn’t as simple as I’d hoped.
I originally intended to install pfSense to a mPCIe-based SSD as the motherboard has got a slot, but sadly this motherboard only supports wifi/cellular cards in this port so presumably the motherboard only has the USB pins on the slot connected and not the PCIe/mSATA pins. Save yourself the effort here and go for a SATA hard drive or SSD instead, it wasn’t worth troubleshooting or fighting with it for me.
- ASRock Q1900-ITX (for what it’s worth, I believe the Q1900DC-ITX is identical apart from having a built in DC PSU instead of the usual ATX).
- Integral Value 2x 2GB DDR3-1600 RAM
- Broadcom 10/100/1000 NIC (unknown model, I’ll try and add details later).
- OCZ Agility 3 60GB SSD
- 80W DC-DC PicoPSU with 12V 5A power brick
I tried to install pfSense 2.2.6 to this motherboard originally using default settings, with BIOS version 1.6.0 from ASRock. This failed with AHCI Timeout errors when trying to format my SSD.
After finding this post for a very similar motherboard made by Gigabyte, I started playing around more in BIOS.
I then went through the BIOS and disabled any devices that won’t be required for this installation, such as serial/parallel ports, HDMI audio, PXE boot, onboard audio, WAN radio (wifi/cellular card if you’re not using them). I also made some other minor changes such as setting the default graphics card to onboard instead of the default PCIe. SATA controllers are set to AHCI mode, Secure Boot and Fast Boot is disabled, S.M.A.R.T is enabled. Everything under ACPI Configuration is disabled apart from HPET, disabled everything under CSM (Compatibility Support Module).
After making these changes, it installed fine. Interestingly, I did try reverting back to the default BIOS values to try and work out which setting was causing the problem, I believe it is related to Intel C-States but I cannot be sure without getting another clean hard drive to test it on. It seems, that once the BSD boot loader has already been written to the drive, subsequent reinstallations go through fine without any errors at all.
If you’re using an SSD, it’s worthwhile enabling TRIM to prolong the life of it, I used this guide which worked perfectly.
After all of this, I’ve successfully got pfSense 2.2.6 full install up and running on the ASRock Q1900-ITX motherboard.