Generally speaking, Fortinet hardware is not very friendly to alternative firmware, but I just found an exception I would like to share with the community. It's called FortiGate 80D, or FG-80D for short.
The device runs on an Intel Atom N2600 processor (dual-core, quad-thread, 1.60 GHz) with 2 GB RAM. Stock storage consists of an ultra-compact 1 GB USB stick and a 16 GB SATA SSD. Networking hardware is, somewhat disappointingly, Realtek 81xx. Power supply required is 19 V / 2.1 A with a 5.5-mm barrel connector. (Look Ma, it's not Molex!) My device didn't have a power supply with it, so I used an ASUS ADP-65DW adapter, which has a higher-than-required amperage.
Installing OpenWrt on this device requires slight disassembly. You need to undo two Philips-head screws on the bottom of the device and two more on the sides, one per side. After that, the top / back cover slides off and exposes the system board:
Note the USB connector in the top right corner of the photo; this is where the stock boot drive lives (the photo was taken with the drive removed). The black rectangle to the left of the SSD is the fan shroud (the device is actively cooled).
Incidentally, if you need to replace the USB drive, you have about 18 mm of clearance from the top of the socket to the top cover of the device. The stock USB drive is much shorter than that:
Once you have access to the device's internals, you need to decide which storage device you will use for OpenWrt. If you choose to use the USB stick, you can leave the SSD on the system if your use case requires it (by default, the device boots from USB); if you choose to go with the SSD instead, you will need to remove the USB drive from the device.
Installation itself was entirely uneventful; you expand the OpenWrt x64 image (I used ext4 non-UEFI) onto the storage device of your choice on another machine, then return the storage device to the router and boot. I tried both options and was able to boot OpenWrt from both the USB stick and the SSD.
There seems to be no way to access BIOS on this device, but I didn't feel the need.
The device's default console connection speed is 9600 bps, but it gets overridden by OpenWrt's default, 115200. So if you connect at 115200, you see a few out-of-order characters (garbled 9600 bps output from POST), and then OpenWrt kicks in and readable output begins.
Performance testing proved somewhat disappointing. An iperf3
test conducted LAN-to-WAN gave about 600 Mbps with strangely high retry counts (hundreds per second, occasionally dropping to zero). Based on the processor specifications, I expected better... Incidentally, testing the device with OPNsense produced a similar picture (600 Mbps with high retry counts).
All an all, it was an interesting adventure in networking archeology with limited practical usefulness...