Hello,
Just wanted to lay out some details on getting OpenWRT to function on the FortiWiFi 30E for anyone who was interested! I've currently got this running at home with a 500 down 50 up internet connection and its consistently hitting those speeds.
Warning:
Very new to OpenWRT, so I could be missing items below and maybe someone more experienced than I am will be able to state that or even add the device target into the official repo.
(In fact given the minimal changes, if someone who is more familiar with git and the openwrt contribution process could add this item it would be appreciated haha!)
FortiWiFi 30E
The FortiWiFi 30E is quite literally the FortiGate 30E with some additional components for its wireless side. Otherwise its quite similar to the FortiWiFi 50E with toned down specs and no option for mSATA storage, as the first revision of the 50E has the same wireless card. Since there is already builds for these, its pretty easy to get OpenWRT going on the FortiWiFi 30E
Personally I wouldn't go out seeking a FortiWiFi 30E for this purpose. Most likely that you'll be overcharged by some guy who 'knows what they've got' and is selling 'enterprise grade hardware'.
Seriously just purchase one of the well supported OpenWRT models instead, you'll have a much better time. This is just useful in case you already had one or are able to get it for cheap or free. Breathing life into a landfill destined firewall/wifi combo
Unfortunately, there won't really be any more FortiGates or FortiWiFi's compatible, as the 50E's and 30E's were part of the last generation to not use any custom ASICs. With Fortinets new ASICs, it'll now be quite quite difficult to support them.,
Making the image:
Cloning the repository and selcting the version
git clone https://github.com/openwrt/openwrt.git
cd openwrt
git pull
git checkout tag/<release> # Currently 'v24.10.2'
./scripts/feeds update -a
./scripts/feeds install -a
Adding the new Target
Edit the bellow files and add the following lines
Underneath the line 'fortinet,fg-30e|' in target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network:
fort**inet,fwf-30e|\
Underneath the line 'fortinet,fwf-30e|' in target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh:
fortinet,fwf-30e|\
Underneath the entry for the FortiGate 30E in target/linux/mvebu/image/cortexa9.mk:
define Device/fortinet_fwf-30e
$(Device/fortinet)
DEVICE_MODEL := FortiWiFi 30E
DEVICE_DTS := armada-385-fortinet-fwf-30e
KERNEL_INITRAMFS := kernel-bin | append-dtb | fortigate-header | \
gzip-filename FWF30E
DEVICE_PACKAGES += kmod-ath9k wpad-basic-mbedtls
endef
TARGET_DEVICES += fortinet_fwf-30e
Create a file called armada-385-fortinet-fwf-30e.dts in target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/:
#include "armada-385-fortinet-fg-3xe.dtsi"
/ {
model = "Fortinet FortiWiFi 30E";
compatible = "fortinet,fwf-30e", "marvell,armada385", "marvell,armada380";
};
&pciec {
status = "okay";
};
&pcie2 {
status = "okay";
};
Delete the .targetinfo and info/.targetinfo-mvebu files in the /tmp/ folder if they already exist and run a defconfig:
rm ./tmp/.targetinfo
rm ./tmp/info/.targetinfo-mvebu
make defconfig
Run 'make menuconfig' as per usual, selecting your desired packages (plenty of available .config samples to make sure you're getting the standard packages OpenWRT comes with):
Ensure that kmod-ath9k, wpad-basic-mbedtls and iwinfo are selected. Also make sure that in target images, you've selected the ramdisk option and squashfs option.
Be cautious selecting images, as the FortiWiFi 30E only has 128MB flash storage. Which is a lot for some routers but still easy to hit if you're downloading everything you want. (I think this is also further limited as Fortinet are known to have alternating Active Backup firmware partitions)
Installing on the FortiWiFi 30E
You'll need a TFTP server. TFTPD64 is a useful and easy option for windows users, otherwise linux users can just use the standard tftpd package available on most linux distros.
Once your TFTP server is setup, place your initramfs-kernel and squashfs images in the folder it is serving. (If on Windows, make sure to set the TFTP folder to something like a new folder in your downloads folder with the image). Rename initramfs-kernel image to 'image.out'.
Connect to the console port with a serial to USB cable at 9600 baud, power on the device and press any key
You'll see the following:
[C]: Configure TFTP parameters.
[R]: Review TFTP parameters.
[T]: Initiate TFTP firmware transfer.
[F]: Format boot device.
[I]: System information.
[B]: Boot with backup firmware and set as default.
[Q]: Quit menu and continue to boot.
[H]: Display this list of options.
Enter C,R,T,F,I,B,Q,or H:
Select R, this will display the settings the 30E expects by default. Configure the ethernet interface on your desktop or laptop to have the IP address matching the TFTP server address and matching the same subnet mask as the 30E.
Select T, the FortiWiFi 30E will now read the image.out file. !!!Hit R when you see!!!
Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?
as you need to install the squashfs image not the initframfs-kernel image!!!
When you see the usual OpenWRT press enter image, you can now connect your laptop/desktop to a LAN port after setting your desktop/laptop ethernet interface back to DHCP. You should get a 192.168.1.X address, then using SCP, place the squashfs image onto the 30E. Then run the following command:
sysupgrade <imagename>
The 30E should now boot into OpenWRT and you should be good to go! Connect it to your ISP and internal LAN as per normal and follow OpenWRT guides for configuration and setup.
Grabbing a USB and following OpenWRTs extroot guide will help you get more space if you need it.