Gluon auf Aerohive HiveAP-330 installieren

Der HiveAP-330 ist ein nur noch gebraucht erhältlicher professioneller Access Point, auf dem man OpenWRT und, für Freifunk, auch Gluon installieren kann.

Leider lässt sich Gluon nicht bequem über eine Weboberfläche des Access Points flashen:
Es muss zuerst per U-Boot und TFTP OpenWRT gestartet, anschließend der Bootloader gepatcht und dann Gluon per sysupgrade installiert werden – und das Ganze per serieller Konsole. Hier das ganze Schritt für Schritt:

(Auch wenn es im Folgenden so aussieht als sei die Gluon-Installation extrem zeitaufwändig: Ist sie nicht. Ich habe etwa 15 Access Points an einem Abend auf Gluon umgestellt und musste zuvor noch das Adapterkabel basteln. Am Längsten dauert der Flashvorgang. Hier bietet sich ein gutes Buch an, um die Wartezeit zu überbrücken.)

1. Voraussetzungen:

  • DHCP-Server im Netzwerk
  • TFTP-Server im Netzwerk
  • RJ45-zu-DB9-Adapterkabel mit Cisco-Belegung (siehe z.B. https://wiki.mikrotik.com/images/3/3a/Rj45-pinout.gif.png)
  • Linux-Rechner mit serieller Schnittstelle und installiertem Programm minicom (kann der selbe Rechner sein auf dem der TFTP-Server läuft)

2. Vorbereitung

Die folgenden beiden Dateien von OpenWRT herunterladen und auf dem TFTP-Server ablegen:

Außerdem benötigst du auf dem Linux-Rechner das sysupgrade-Image (max. Gluon v2021.x) deiner Freifunk-Community für HiveAP-330 (z.B. für Freifunk Ingolstadt von hier: https://firmware.freifunk-ingolstadt.de/images/gen2/stable_l2tp/sysupgrade/)

3. Rescue-Mode starten

  1. RJ45-zu-DB9-Adapterkabel am HiveAP-330 in den „Console“-Port stecken und mit dem Linux-Rechner verbinden.
  2. Verbinde den HiveAP-330 mit einem Netzwerkkabel im „eth0“-Port mit deinem LAN.
  3. Auf dem Linux-Rechner minicom mit 9600 Baud starten: „minicom -D /dev/ttyS0 -b 9600“
  4. HiveAP-330 mit der Stromversorgung verbinden
  5. Nach ein wenigen Sekunden erscheint in minicom „Hit any key to stop autoboot“: Schnell eine Taste drücken.
  6. Die Passwortabfrage mit dem Passwort „administrator“ beantworten.

4. OpenWRT booten

In Minicom folgendes eingeben (im Beispiel ist 192.168.3.83 der TFTP-Server, also entsprechend anpassen):

dhcp;
tftpboot 0x1000000 192.168.3.83:openwrt-19.07.3-mpc85xx-p1020-hiveap-330-initramfs-kernel.bin
tftpboot 0x6000000 192.168.3.83:openwrt-19.07.3-mpc85xx-p1020-hiveap-330-squashfs-fdt.bin
bootm 0x1000000 - 0x6000000;

OpenWRT sollte jetzt starten. Während des Bootvorgangs erscheint die Frage, ob der Failsafe-Mode gestartet werden soll. Das soll er, also „f“ und Enter drücken.

5. Bootloader anpassen

Aktuelle Gluon- und OpenWRT-Version benötigen einen angepassten Bootloader. Dazu muss OpenWRT zwei Pakete aus dem Internet nachladen. Damit das funktioniert braucht der Hive-AP330 eine zu deinem Netzwerk passende IP-Adresse – in meinem LAN ist die 192.168.3.220 frei. Also in Minicom tippen:

ifconfig eth0 192.168.3.220

Zum Anpassen des Bootloaders diesen Block in Minicom copy-pasten:

cat <<- "EOF" > /tmp/uboot-fix.sh; sh /tmp/uboot-fix.sh 
. /lib/functions.sh 
. /lib/functions/system.sh 
opkg update && opkg install uboot-envtools kmod-mtd-rw || exit 2 
insmod mtd-rw i_want_a_brick=y || exit 3 
echo "/dev/mtd$(find_mtd_index u-boot-env) 0x0 0x20000 0x10000" > "/etc/fw_env.config" 
fw_setenv owrt_boot 'setenv bootargs console=ttyS0,9600;bootm 0xEC040000 - 0xEC000000' 
cp "/dev/mtd$(find_mtd_index 'u-boot')" /tmp/uboot 
cp /tmp/uboot /tmp/uboot_patched 
strings -td < /tmp/uboot | grep '^ *[0-9]* *\(run owrt_boot\|setenv bootargs\).*cp\.l' | 
awk '{print $1}' | 
while read offset; do 
echo -n "run owrt_boot;            " | dd of=/tmp/uboot_patched bs=1 seek=${offset} conv=notrunc 
done 
mtd write /tmp/uboot_patched u-boot 
uci set system.@system[0].compat_version=2.0; uci commit; 
EOF

6. Gluon installieren

Dann vom Linux-Rechner aus per scp das Gluon-Sysupgrade-Image auf den Hive-AP330 kopieren:

scp -O gluon-ffin-v2020.1.3-8+33-aerohive-hiveap-330-sysupgrade.bin root@192.168.3.220:/tmp

Sobald das erledigt ist kann Gluon installiert werden. In Minicom tippen:

sysupgrade -n -F /tmp/gluon-ffin-v2020.1.3-8+33-aerohive-hiveap-330-sysupgrade.bin

Die Installation dauert ziemlich lang, knapp 10 Minuten. Währenddessen blinkt der Access Point rot.

Danach startet der Access Point neu. Und scheitert kläglich („Wrong Ramdisk Image Format“, „Ramdisk image is corrupt or invalid“, usw.)
Jetzt einfach den Access Point für mindestens(!) 5 Sekunden vom Strom trennen, Strom wieder anstecken, und schon startet Gluon. Das Ab- und wieder Anstecken ist nur bei der Erstinstallation nötig.

In Gluon ist dann eth0 der WAN-Port. und eth1 der Port für den Config-Mode. Zum Einrichten des Freifunk-Access Points das Netzwerkkabel also in eth1 einstecken.