Aerohive AP121 / HiveAP 121
The Aerohive AP121 or HiveAP 121 (the former designation used in company marketing, the latter printed on the device label) is a dual-band 2×2 MIMO 802.11a/n (5GHz) and 802.11b/g/n (2.4GHz) “enterprise grade” access point with a single Gigabit Ethernet port, powered via 802.3af PoE or a standard 12V 1.1A power adapter. It was produced by Aerohive Networks (which is now part of Extreme Networks) until 2017 when it was superseded by the Aerohive AP122.
It originally received OpenWrt support in the ar71xx target in 2017 and is now supported in the ath79 target that replaced the ar71xx target with OpenWrt 21.02.
Do not confuse this device with the unrelated and completely different, yet similarly named ALFA Network AP121 which is maintained in the ath79/generic
subtarget and a bit confusingly only carries ap121
in OpenWrt filenames. Files for the Aerohive AP121 can be found in the ath79/nand
subtarget and contain the string hiveap-121
.
Supported Versions
Experimental Versions
None at this time.
Hardware Highlights
Installation
The firmware update facility in the AP121's stock firmware web interface will reject OpenWrt files. Installation has to be done through the device's bootloader console accessed via RS232 serial connection, supplemented by a TFTP server connected via ethernet.
Incompatible bootloader versions
For yet unknown reasons some versions of the bootloader fail to boot OpenWrt, even after a correctly executed flash process. In particular, bootloader version v1.0.0.25 has been reported to fail.
The following bootloader versions have been confirmed by forum users to be able to flash and boot OpenWrt correctly:
- v1.0.0.33
- v1.0.0.43 (supplied with HiveOS 6.2r1)
- v1.0.0.4f (supplied with HiveOS 6.5r4)
- v1.0.0.50 (supplied with HiveOS 6.5r3)
- v1.0.0.52 (supplied with HiveOS 6.5r8b)
Upgrading the bootloader should be done by upgrading HiveOS, the manufacturer's firmware that includes the bootloader. HiveOS can be upgraded using the manufacturer's “HiveManager” software or from the (old) bootloader using a manufacturer-provided firmware image file. The latter process also works if the stock firmware is damaged or has been overwritten by OpenWrt. Firmware images are not freely available for download and must be requested from the manufacturer.
Prerequisites
- A PC with ethernet connection configured to IP 192.168.1.10, serving the OpenWrt factory binary via TFTP.
- For serial access, RS232 serial terminating in an RJ45 connector. The “console” port on the device expects a “physical console cable” (also known and sold as “Cisco console cable”), or if you are fabricating your own cable, RXD on RJ45 pin 3, TXD on RJ45 pin 6, and GND on RJ45 pin 4.
A 3.3 or 5V TTL connection, as for example provided by an USB to TTL adapter, will not work for this serial connection. Besides the communication logic being different, RS232 operates on up to +/- 25V and may actually cause damage to your TTL level equipment.
Installation Process via TFTP
Connect your PC's ethernet port to the RJ45 port labeled “eth0”, and the serial connection to the RJ45 port labeled “console”.
Open the serial connection (9600, 8N1) and power on the AP121.
When you see Hit the space bar to stop the autoboot process
... hit the space bar to stop the autoboot process. Enter the password to access the uboot console, which is either AhNf?d@ta06
or administrator
.
Now is a good time to confirm your bootloader version. Issue the command
version
If the reply states a bootloader version lower than v1.0.0.33: stop now. Your bootloader is probably not compatible and will fail to boot OpenWrt - see incompatible bootloader versions.
The next step is to transfer the OpenWrt binary to the AP121's memory (in this example OpenWrt 19.07.4, adjust the filename as necessary):
tftpboot 0x81000000 openwrt-19.07.4-ar71xx-nand-hiveap-121-squashfs-factory.bin
Now, erase both stock kernels and rootfs partitions (they will be replaced with a single kernel and a larger UBI partition) and flash OpenWrt:
nand erase 0x800000 0x7400000 nand write 0x81000000 0x800000 0x${filesize}
Finally, reboot the AP121 into OpenWrt:
reset
OpenWrt's first boot will take about 90 seconds, you can watch the boot process on the serial console.
Minor "dual firmware" inconvenience
Aerohive designed the AP121 to hold two concurrent firmware versions: a “primary” with the kernel at flash address 0x800000
and a “secondary” with the kernel at 0xd00000
. Other than through Aerohive's own “HiveManager” central management software there doesn't seem to be a way to set which kernel address should be used (Aerohive's uboot modifications ignore the bootcmd
variable, the boot process looks to be hardcoded.) However, this may only result in a slight inconvenience.
If after flashing OpenWrt and rebooting the AP121 you are presented with the error message
Loading kernel from device 0: ath-nand (offset 0xd00000) ... ** Bad Magic Number (something or other) ** Resetting...
your AP121 has indeed been previously set to boot the secondary kernel from 0xd00000
and, since with OpenWrt there is no kernel at this address anymore, will now fail to do so. Don't panic and let it try to boot a few times more, it will sort itself out. The bootloader will try and fail to boot the “broken” kernel from 0xd00000
three times, after that it will permanently switch to booting the kernel from 0x800000
.
Flash Layout
This is an infodump for now, to be formatted later.
The AP121 contains two flash chips, 1 MB of NOR memory (which is only used for the bootloader) and 128 MB of NAND memory.
OEM flash layout
device nor0 <ath-nor0>, # parts = 5 #: name size offset mask_flags 0: u-boot 0x00080000 0x00000000 0 1: u-boot-env 0x00010000 0x00080000 0 2: hw-info 0x00010000 0x00090000 0 3: boot-info 0x00010000 0x000a0000 0 4: boot-sinfo 0x00010000 0x000b0000 0 device nand0 <ath-nand0>, # parts = 8 #: name size offset mask_flags 0: u-boot-1 0x00400000 0x00000000 0 1: u-boot-env-1 0x00400000 0x00400000 0 2: kernel 0x00500000 0x00800000 0 3: kernel-1 0x00500000 0x00d00000 0 4: rootfs 0x01900000 0x01200000 0 5: rootfs-1 0x01900000 0x02b00000 0 6: jffs2 0x03800000 0x04400000 0 7: wifi-info 0x00400000 0x07c00000 0
OpenWrt flash layout
dev: size erasesize name mtd0: 00080000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00010000 00010000 "hw-info" mtd3: 00010000 00010000 "boot-info" mtd4: 00010000 00010000 "boot-sinfo" mtd5: 00400000 00020000 "u-boot-1" mtd6: 00400000 00020000 "u-boot-env-1" mtd7: 00500000 00020000 "kernel" mtd8: 06f00000 00020000 "ubi" mtd9: 00400000 00020000 "wifi-info"
Upgrading OpenWrt
Debricking
Failsafe mode
Basic configuration
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Specific Configuration
Network interfaces
The default network configuration is:
Interface Name | Description | Default configuration |
---|---|---|
br-lan | LAN & WiFi | 192.168.1.1/24 |
eth0 | LAN port | |
wlan0 | WiFi 2.4GHz | Disabled |
wlan1 | WiFi 5GHz | Disabled |
Buttons
→ hardware.button on howto use and configure the hardware button(s).
The Aerohive AP121 has the following buttons:
BUTTON | Event |
---|---|
Reset | reset |
Hardware
Info
Photos
Front:
Insert photo of front of the casing
Back:
Insert photo of back of the casing
Backside label:
Insert photo of backside label
Opening the case
The case opens easily after removing four #1 torx screws, one in each corner of the bottom plate, two of them hidden under the rubber feet. Note that opening the case is not necessary in order to gain access to the serial port, the serial connection is externally available via the “console” RJ45 port.
Main PCB:
Insert photo of PCB
Serial
→ port.serial general information about the serial port, serial port cable, etc.
Serial access requires an RS232 serial port/adapter terminating in an RJ45 port (known as “Cisco console cable” or “Cisco rollover cable”), plugged into the external RJ45 connector marked “Console.”
Serial connection parameters for Aerohive AP121 | 9600, 8N1 |
---|
JTAG
→ port.jtag general information about the JTAG port, JTAG cable, etc.
How to connect to the JTAG Port of this specific device:
Insert photo of PCB with markings for JTAG port
Bootloader (uboot)
The bootloader on the AP121 is a heavily modified uboot and self-identifies as
Aerohive Boot Loader v1.0.0.50, Build time Thu Aug 25 08:26:50 2016
uboot console access requires a password, which is either AhNf?d@ta06
or administrator
The default uboot environment is as follows:
bootargs=console=ttyS0,9600 root=01:00 init=/sbin/init bootcmd=nboot 0x81000000 0 0x00800000 bootdelay=4 baudrate=9600 ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee ipaddr=192.168.1.1 serverip=192.168.1.10 mtdids=nor0=ath-nor0,nand0=ath-nand0 mtdparts=mtdparts=ath-nor0:512k(u-boot),64k(u-boot-env),64k(hw-info),64k(boot-info),64k(boot-sinfo);ath-nand0:4096k(u-boot-1),4096k(u-boot-env-1),5m(kernel),5m(kernel-1),25m(rootfs),25m(rootfs-1),56m(jffs2),4096k(wifi-info) netretry=once stdin=serial stdout=serial stderr=serial ethact=eth0
Note: While bootcmd
it is defined and would actually work when executed, Aerohive's uboot completely ignores the existence or content of bootcmd
, the boot process appears to be hard-coded.
Some devices show additional entries:
partition=nor0,0 mtddevnum=0 mtddevname=u-boot
Available commands in “Aerohive Boot Loader v1.0.0.50”
autoscr - run script from memory base - print or set address offset bdinfo - print Board Info structure bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol chpart - change active partition cmp - memory compare coninfo - print console devices and information cp - memory copy crc32 - checksum calculation dhcp - invoke DHCP client to obtain IP/boot params diag_mem - memory diagnose dump_hw_info - dump hardware info echo - echo args to console erase - erase FLASH memory ethreg - S26 PHY Reg rd/wr utility exit - exit script flinfo - print FLASH memory information format_flash_fs - format flash file system format_uboot_env - format uboot environment. fsinfo - print information about filesystems fsload - load binary file from a filesystem image go - start application at address 'addr' help - print online help icrc32 - checksum calculation iloop - infinite loop on address range {image1|image2 [load-addr] [<image-name>]} | {force} image_netboot - boot image via network using TFTP protocol imd - i2c memory display iminfo - print header information for application image imls - list all images found in flash imm - i2c memory modify (auto-incrementing) imw - memory write (fill) inm - memory modify (constant address) iprobe - probe to discover valid I2C chip addresses itest - return true/false on integer compare ls - list files in a directory (default /) md - memory display mm - memory modify (auto-incrementing) mtdparts- define flash/nand partitions mtest - ALT RAM test mw - memory write (fill) nand - NAND sub-system nboot - boot from NAND device nfs - boot image via network using NFS protocol nm - memory modify (constant address) ping - send ICMP ECHO_REQUEST to network host pll cpu-pll dither ddr-pll dither - Set to change CPU & DDR speed pll erase pll get print_bootinfo - print boot info of device print_bootparam - print boot parameters of device printenv- print environment variables protect - enable or disable FLASH write protection rarpboot- boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU reset_dummy - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage set_bootparam - set boot parameters of device setenv - set environment variables sleep - delay execution for some time srifpll cpu-pll ddr-pll - To change CPU & DDR speed through srif srifpll erase srifpll get test - minimal test like /bin/sh tftpboot- boot image via network using TFTP protocol version - print monitor version
Hardware mods
None so far.
Bootlogs
OEM bootlog
checking for the az feature of 8035... Disabling 802.3az feature... Restart auto-negotiation
current reprogram_nand is 4e4f5250
chip #0: First 0xa last 0xa sector size 0x10000 10 Hit the space bar to stop the autoboot process: 0 Hit any key to interrupt boot from flash: 0
Loading kernel from device 0: ath-nand (offset 0x800000) ... done Loading rootfs from device 0: ath-nand (offset 0x1200000) ... done Mounting local file systems... Aerohive Wireless Extension 1.0.0 ... INIT! Aerohive Forwarding Engine module ... INIT! Image L7 repository version 4, checking existing L7 repository... ... Existing L7 repository version 4 Nothing to be done or verified with L7 repository version 4
System ready.
Welcome to Aerohive Product
AH-eb3c80 login:
OpenWrt bootlog
checking for the az feature of 8035... Disabling 802.3az feature... Restart auto-negotiation
current reprogram_nand is 4e4f5250
chip #0: First 0xa last 0xa sector size 0x10000 10 Hit the space bar to stop the autoboot process: 0 Hit any key to interrupt boot from flash: 0
Loading kernel from device 0: ath-nand (offset 0x800000) ... done Loading rootfs from device 0: ath-nand (offset 0x1200000) ... done [ 0.000000] Linux version 4.14.195 (builder@buildhost) (gcc version 7.5.0 (OpenWrt GCC 7.5.0 r11208-ce6496d796)) #0 Sun Sep 6 16:19:39 2020 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU0 revision is: 0001974c (MIPS 74Kc) [ 0.000000] SoC: Atheros AR9344 rev 2 [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 08000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x0000000000000000-0x0000000007ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000000000000-0x0000000007ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff] [ 0.000000] random: get_random_bytes called from 0x8053c740 with crng_init=0 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: board=HiveAP-121 mtdparts=spi0.0:512k(u-boot)ro,64k(u-boot-env),64k(hw-info)ro,64k(boot-info)ro,64k(boot-sinfo)ro;ar934x-nfc:4096k(u-boot-1),4096k(u-boot-env-1),5m(kernel),111m(ubi),4096k(wifi-info)ro console=ttyS0,9600 rootfstype=squashfs noinitrd [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Writing ErrCtl register=00000000 [ 0.000000] Readback ErrCtl register=00000000 [ 0.000000] Memory: 124100K/131072K available (4258K kernel code, 182K rwdata, 528K rodata, 208K init, 213K bss, 6972K reserved, 0K cma-reserved) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS: 51 [ 0.000000] Clocks: CPU:560.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:40.000MHz [ 0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6825930166 ns [ 0.000010] sched_clock: 32 bits at 280MHz, resolution 3ns, wraps every 7669584382ns [ 0.092727] Calibrating delay loop... 278.93 BogoMIPS (lpj=1394688) [ 0.237627] pid_max: default: 32768 minimum: 301 [ 0.293079] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.372226] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.458875] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.576505] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.650618] NET: Registered protocol family 16 [ 0.705157] MIPS: machine is Aerohive HiveAP-121 [ 1.005206] registering PCI controller with io_map_base unset [ 1.087854] i2c-gpio i2c-gpio.0: using pins 13 (SDA) and 12 (SCL) [ 1.161054] PCI host bridge to bus 0000:00 [ 1.210068] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff] [ 1.292302] pci_bus 0000:00: root bus resource [io 0x0000] [ 1.358966] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0] [ 1.440189] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff] [ 1.534991] pci 0000:00:00.0: invalid calibration data [ 1.596857] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1001ffff 64bit] [ 1.684326] pci 0000:00:00.0: BAR 6: assigned [mem 0x10020000-0x1002ffff pref] [ 1.774584] clocksource: Switched to clocksource MIPS [ 1.836094] NET: Registered protocol family 2 [ 1.889196] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 1.972519] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 2.048508] TCP: Hash tables configured (established 1024 bind 1024) [ 2.124681] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 2.194437] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 2.269654] NET: Registered protocol family 1 [ 2.324962] Crashlog allocated RAM at address 0x3f00000 [ 2.388833] workingset: timestamp_bits=30 max_order=15 bucket_order=0 [ 2.471098] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 2.540858] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) © 2001-2006 Red Hat, Inc. [ 2.668989] io scheduler noop registered [ 2.715889] io scheduler deadline registered (default) [ 2.777770] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled [ 2.855993] console [ttyS0] disabled [ 2.918790] serial8250.0: ttyS0 at MMIO 0x18020000 (irq = 11, base_baud = 2500000) is a 16550A [ 3.021831] console [ttyS0] enabled [ 3.021831] console [ttyS0] enabled [ 3.105114] bootconsole [early0] disabled [ 3.105114] bootconsole [early0] disabled [ 3.207685] m25p80 spi0.0: found mx25l8005, expected m25p80 [ 3.275123] m25p80 spi0.0: mx25l8005 (1024 Kbytes) [ 3.332528] 5 cmdlinepart partitions found on MTD device spi0.0 [ 3.403288] Creating 5 MTD partitions on “spi0.0”: [ 3.460597] 0x000000000000-0x000000080000 : “u-boot” [ 3.521408] 0x000000080000-0x000000090000 : “u-boot-env” [ 3.587137] 0x000000090000-0x0000000a0000 : “hw-info” [ 3.648994] 0x0000000a0000-0x0000000b0000 : “boot-info” [ 3.713599] 0x0000000b0000-0x0000000c0000 : “boot-sinfo” [ 3.780347] nand: device found, Manufacturer ID: 0xad, Chip ID: 0xf1 [ 3.856341] nand: Hynix NAND 128MiB 3,3V 8-bit [ 3.909455] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64 [ 4.000226] Scanning device for bad blocks [ 4.052590] random: fast init done [ 4.164646] Bad eraseblock 885 at 0x000006ea0000 [ 4.231581] 5 cmdlinepart partitions found on MTD device ar934x-nfc [ 4.306531] Creating 5 MTD partitions on “ar934x-nfc”: [ 4.367999] 0x000000000000-0x000000400000 : “u-boot-1” [ 4.430877] 0x000000400000-0x000000800000 : “u-boot-env-1” [ 4.498653] 0x000000800000-0x000000d00000 : “kernel” [ 4.559421] 0x000000d00000-0x000007c00000 : “ubi” [ 4.618480] 0x000007c00000-0x000008000000 : “wifi-info” [ 4.683067] libphy: Fixed MDIO Bus: probed [ 4.738980] libphy: ag71xx_mdio: probed [ 5.514808] ag71xx ag71xx.0: connected to PHY at ag71xx-mdio.0:00 [uid=004dd072, driver=Atheros 8035 ethernet] [ 5.635135] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii [ 5.710972] NET: Registered protocol family 10 [ 5.768860] Segment Routing with IPv6 [ 5.812810] NET: Registered protocol family 17 [ 5.865965] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. [ 6.021543] 8021q: 802.1Q VLAN Support v1.8 [ 6.075517] UBI: auto-attach mtd8 [ 6.115133] ubi0: attaching mtd8 [ 7.554000] ubi0: scanning is finished [ 7.616431] ubi0: attached mtd8 (name “ubi”, size 111 MiB) [ 7.682093] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes [ 7.764319] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048 [ 7.845540] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096 [ 7.928843] ubi0: good PEBs: 887, bad PEBs: 1, corrupted PEBs: 0 [ 8.000708] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128 [ 8.087135] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 99906463 [ 8.194356] ubi0: available PEBs: 0, total reserved PEBs: 887, PEBs reserved for bad PEB handling: 19 [ 8.304752] ubi0: background thread “ubi_bgt0d” started, PID 337 [ 8.378150] block ubiblock0_0: created from ubi0:0(rootfs) [ 8.443791] ubiblock: device ubiblock0_0 (rootfs) set to be root filesystem [ 8.527061] hctosys: unable to open rtc device (rtc0) [ 8.594988] VFS: Mounted root (squashfs filesystem) readonly on device 254:0. [ 8.680427] random: crng init done [ 8.722160] Freeing unused kernel memory: 208K [ 8.775325] This architecture does not have kernel memory protection. [ 9.488706] init: Console is alive [ 9.529707] init: - watchdog - [ 10.626347] kmodloader: loading kernel modules from /etc/modules-boot.d/* [ 10.774841] usbcore: registered new interface driver usbfs [ 10.840544] usbcore: registered new interface driver hub [ 10.904204] usbcore: registered new device driver usb [ 10.970047] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 11.056891] tpm tpm0: starting up the TPM manually [ 11.595085] tpm tpm0: [Hardware Error]: Adjusting reported timeouts: A 10000→10000us B 10000→10000us C 0→750000us D 0→750000us [ 11.772425] ehci-platform: EHCI generic platform driver [ 11.835027] ehci-platform ehci-platform: EHCI Host Controller [ 11.903791] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1 [ 12.000572] ehci-platform ehci-platform: irq 3, io mem 0x1b000000 [ 12.094630] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00 [ 12.170428] hub 1-0:1.0: USB hub found [ 12.215708] hub 1-0:1.0: 1 port detected [ 12.263893] kmodloader: done loading kernel modules from /etc/modules-boot.d/* [ 12.360803] init: - preinit - [ 13.101392] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready Press the [f] key and hit [enter] to enter failsafe mode Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level [ 16.316133] eth0: link up (1000Mbps/Full duplex) [ 16.465584] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 16.550502] UBIFS (ubi0:1): background thread “ubifs_bgt0_1” started, PID 414 [ 16.759290] UBIFS (ubi0:1): recovery needed [ 17.023961] UBIFS (ubi0:1): recovery completed [ 17.077267] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name “rootfs_data” [ 17.170926] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes [ 17.289585] UBIFS (ubi0:1): FS size: 105644032 bytes (100 MiB, 832 LEBs), journal size 5332992 bytes (5 MiB, 42 LEBs) [ 17.416561] UBIFS (ubi0:1): reserved for root: 4952683 bytes (4836 KiB) [ 17.495710] UBIFS (ubi0:1): media format: w4/r0 (latest is w5/r0), UUID B51CAC22-414A-4987-B288-3197DD94160D, small LPT model [ 17.638452] mount_root: switching to ubifs overlay [ 17.734887] urandom-seed: Seeding with /etc/urandom.seed [ 17.991748] eth0: link down [ 18.038193] procd: - early - [ 18.072816] procd: - watchdog - [ 18.770801] procd: - watchdog - [ 18.808710] procd: - ubus - [ 18.990900] procd: - init - Please press Enter to activate this console. [ 19.821807] kmodloader: loading kernel modules from /etc/modules.d/* [ 20.091078] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 20.232736] urngd: v1.0.2 started. [ 20.274810] i2c /dev entries driver [ 20.321650] Loading modules backported from Linux version v4.19.137-0-gc076c79e03c6 [ 20.413270] Backport generated by backports.git v4.19.137-1-0-g60c3a249 [ 20.677224] ip_tables: (C) 2000-2006 Netfilter Core Team [ 20.813997] nf_conntrack version 0.5.0 (2048 buckets, 8192 max) [ 21.085464] xt_time: kernel timezone is -0000 [ 21.300438] PPP generic driver version 2.4.2 [ 21.415644] NET: Registered protocol family 24 [ 21.608143] ieee80211 phy0: Atheros AR9340 Rev:2 mem=0xb8100000, irq=47 [ 21.687572] pci 0000:00:00.0: using irq 40 for pin 1 [ 21.746957] PCI: Enabling device 0000:00:00.0 (0000 → 0002) [ 21.835427] ieee80211 phy1: Atheros AR9300 Rev:3 mem=0xb0000000, irq=40 [ 22.655038] kmodloader: done loading kernel modules from /etc/modules.d/* [ 35.217518] br-lan: port 1(eth0) entered blocking state [ 35.280069] br-lan: port 1(eth0) entered disabled state [ 35.342842] device eth0 entered promiscuous mode [ 35.489278] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready [ 37.276133] eth0: link up (1000Mbps/Full duplex) [ 37.388518] br-lan: port 1(eth0) entered blocking state [ 37.451061] br-lan: port 1(eth0) entered forwarding state [ 37.650908] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
Notes
- In addition to loading the kernel, the hardcoded boot process in Aerohive's modified uboot slowly (and, with regards to OpenWrt, needlessly) loads a rootfs into memory, which delays the boot process by about 30 seconds. As a result, a regular startup into OpenWrt takes slightly more than 60 seconds.