LEDE/OpenWRT on a PC Engines APU2(c4)

APU2c4

The PC Engines APU2 is a fanless quad-core AMD x64 SoC with 3 decent ethernet ports, an mSATA slot and 2 mini-pcie slots, one attached to a SIM card holder for GSM modems.

I bought it to keep up with the symmetric 50 mbit line I upgraded to and have resources left over for IPsec VPNs, IPv6 tunnels, cjdns tunnels, DN42 BGP VPNs and BIRD6 for my own IPv6 PI space.

Standard LEDE install

The LEDE devs decided not to have separate targets for the APUx series of boards but went with standard x86 target support and added the patches so they can be installed via opkg. This is great as you just dd LEDE version >=17.01.1 with luci on to the SSD/HDD/SD/USB, run opkg update and then install these packages for the rest of the hardware. Lots of interesting chatter on github here.

PACKAGES:=beep flashrom libsensors lm-sensors usbutils wpad-mini \ kmod-ath9k kmod-ath10k kmod-gpio-button-hotplug kmod-gpio-nct5104d \ kmod-hwmon-core kmod-hwmon-k10temp kmod-leds-apu2 kmod-leds-gpio kmod-pcspkr \ kmod-sound-core kmod-sp5100_tco kmod-usb-core kmod-usb-ohci kmod-usb-serial \ kmod-usb2 kmod-usb3 \ -kmod-e1000e -kmod-e1000 -kmod-r8169

To bring up a WLE600vx card, you may need the ath10k-firmware-qca988x package.

Custom LEDE build

The joy of LEDE is that we can create a custom build, and thank go out to the sweet work done by https://github.com/riptidewave93

So git clone https://github.com/riptidewave93/LEDE-APU2.git and celebrate the (enabled) AMD Jaguar CPU optimizations with the -march=btver2 -mtune=btver2 GCC options. This can apparently (boost performance around 50% on some applications). His script makes creating builds as easy as:
build.sh modify

Performance under Linux is significantly better (even without GCC optimizations) than FreeBSD, the links below put the CPU’s AES-NI under load.

Continue reading “LEDE/OpenWRT on a PC Engines APU2(c4)”