MEW-DOS v1.1

Running OpenWRT on a Mikrotik RB911G-5HPacD written by neko

Preface

Recently, I’ve acquired a bunch of Mikrotik Routerboard CPEs for educational purposes. I’ve been training students in integrating WiFi into offices on rather ancient 802.11b/g/n equipment for a while now - and decided it would be worthwhile to upgrade to a standard that at least allowed me to directly compare the performance of 5GHz and 2.4GHz WiFi within the exercises.

I decided to look into cheap and affordable yet powerful WiFi boards and stumbled over the rather cheap Routerboard 911 series by Mikrotik. I ordered 2 of the 802.11ac-compatible boards for evaluation - and missed a rather important point: Being CPE equipment, they shipped with a WISP-license for Mikrotik’s RouterOS - which meant no Access point functionality (or rather, only P2P WiFi functionality).

Workarounds

While it isn’t specifically required for the exercises to be able to hook up multiple devices to the same WiFi network, it would still be beneficial to my students for measuring performance under load on the same network as well as load on the same channel in a different network to compare the results.

The obvious solution for the issue was to upgrade my RouterOS license to one that allowed Access points. However, the upgrade would’ve pushed the total costs of my units beyond 100€, which I wanted to avoid.

Instead, I looked around and found that OpenWRT lists compatibility with the Routerboard 911 devices. The Techdata entry for the device can be found here. I downloaded the initramfs and booted it via TFTP (see here) and after the image was transmitted to the device - nothing. Stuck while booting.

I couldn’t determine the cause of the booting issues, however. These routerboards don’t ship with a serial console interface to diagnose the issues sadly. Since the images provided by OpenWRT are for the 19.xx-branch anyway, I decided to investigate making the newest version run.

Hardware compatibility

Looking into the main CPU on board of the device - a Qualcomm Atheros QCA9557 - is fully supported to run OpenWRT of the newest version. Further, the WiFi chip on these 802.11ac boards is a Qualcomm Atheros QCA9892 which is confirmed working with the newest release of OpenWRt. So it’s only a matter of compiling the correct packages.

To do so, I grabbed the newest stable version of OpenWRT and followed the rather well-made instructions over at the OpenWRT Wiki (here)

Once the menuconfig is working, it’s a simple matter of choosing the right packages for the board:

  • As target, choose the ath79 platform
  • The subtarget is simply mikrotik
  • Target profile 921gs-5hpacd-15s (mantbox 15) - this one is running the same combination of CPU/WiFi chipset
  • Target images: ramdisk as well as squashfs

After that, I chose whatever other packages I wanted (for example LuCI so you can administer the device from web) and compiled according to the instructions on the page.

Installing the system

The compile process took a good 3 hours on my ancient HP ProBook 6470b. After that, I netbooted the ramdisk image (initramfs) via the TFTP method linked above from the wiki. It’s a neat and risk-free way to try out the firmware without bricking your device.

My board took ~5 minutes before the web interface appeared over ethernet on the default address 192.168.1.1.

Once I was logged in, it was time to determine if the result was worth the effort. WiFi worked flawlessly, Ethernet obviously did its job and running an AP was working as well. Fantastic. Finalising my setup, I flashed the squashfs via system upgrade from the web interface and rebooted to find the system working flawlessly.

Final words

I’ve since been using the devices for experiments involving measuring WiFi performance in different situations by students using tools like iperf. I’ve been rather happy with the results.

As for why the original 19.07 image didn’t boot - I’m not entirely certain. However, reading through some posts on the internet there seems to be an issue with devices that only have a single ethernet port. I cannot confirm this, though.