Mikrotik hAP AC tftp kernel image booting (fixed) - SFP (fixed) - PoE in (fixed) - PoE out (fixed) - Slow switch (not fixed)

PoE in works. A Mikrotik passive PoE switch needs to be used.
I could plug in the AP AC and it worked.

Great news !!!

The only remaining feature is PoE out on ethernet port 5.
Do you think it is supported and is there a way to support it?

It should be supported by default, it is on my rb951ui, rb2011s, hap ac lites.

1 Like

Well ... PoE in is supported by default, but PoE out is not supported.
This is for chaining PoE devices (only two devices can be chained).

PoE in is port 1
PoE out is port 5

I tested with two devices and I am sure that this does not work.

Did you switch it on? There's a named gpio enabliing PoE out on port 5. See https://git.openwrt.org/?p=openwrt/openwrt.git;a=commitdiff;h=c2140e32ce32b9cc60f7d408e20bdf45dce6a634

1 Like

Thanks !!! PoE out works like a charm.

To configure PoE out:
/etc/config/system

config gpio_switch 'poe_passthrough'
        option name 'PoE Passthrough'
        option gpio_pin '3'
        option value '1'

Then to start PoE out

echo "1" > /sys/class/gpio/port5-poe/value

Thank you all. This valides the Mikrotik hAP AC complete support.
In reply to a previous question, the switch also works great.

I will add all this information to the hAP ac wiki page shortly.

Kind regards,

1 Like

I want to contribute to the wiki, but cannot find a way to add a page for the hAP ac.

So here are some information and photos:

Bootlog:


BusyBox v1.35.0 (2022-07-31 15:12:47 UTC) built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 22.03.0-rc6, r19590-042d558536
 -----------------------------------------------------
[    0.000000] Linux version 5.10.134 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r19590-042d558536) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 Sun Jul 31 15:12:47 2022
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019750 (MIPS 74Kc)
[    0.000000] MIPS: machine is MikroTik RouterBOARD 962UiGS-5HacT2HnT (hAP ac)
[    0.000000] SoC: Qualcomm Atheros QCA9558 ver 1 rev 0
[    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] On node 0 totalpages: 32768
[    0.000000]   Normal zone: 288 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32768 pages, LIFO batch:7
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480
[    0.000000] Kernel command line: console=ttyS0,115200n8 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 120444K/131072K available (6432K kernel code, 599K rwdata, 804K rodata, 1244K init, 214K bss, 10628K 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] CPU clock: 720.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5309056796 ns
[    0.000007] sched_clock: 32 bits at 360MHz, resolution 2ns, wraps every 5965232126ns
[    0.008742] Calibrating delay loop... 358.80 BogoMIPS (lpj=1794048)
[    0.075740] pid_max: default: 32768 minimum: 301
[    0.081029] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.089175] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.099602] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.110681] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.121674] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.129341] pinctrl core: initialized pinctrl subsystem
[    0.138883] NET: Registered protocol family 16
[    0.144387] thermal_sys: Registered thermal governor 'step_wise'
[    0.150163] gpio-2 (PoE out compat): hogged as input
[    0.204630] clocksource: Switched to clocksource MIPS
[    0.211290] NET: Registered protocol family 2
[    0.216386] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.225168] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.234530] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.243111] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.250985] TCP: Hash tables configured (established 1024 bind 1024)
[    0.258186] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.265518] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.273521] NET: Registered protocol family 1
[    0.278432] PCI: CLS 0 bytes, default 32
[    0.288149] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    0.299002] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.305540] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.318023] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.328822] pinctrl-single 1804002c.pinmux: 544 pins, size 68
[    0.335875] gpio-export gpio-export: 3 gpio(s) exported
[    0.342573] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.351648] printk: console [ttyS0] disabled
[    0.356520] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 2500000) is a 16550A
[    0.366156] printk: console [ttyS0] enabled
[    0.375059] printk: bootconsole [early0] disabled
[    0.402383] spi-nor spi0.0: w25q128jv (16384 Kbytes)
[    0.407510] 2 fixed-partitions partitions found on MTD device spi0.0
[    0.413952] Creating 2 MTD partitions on "spi0.0":
[    0.418830] 0x000000000000-0x000000020000 : "RouterBoot"
[    0.428956] 5 routerbootpart partitions found on MTD device RouterBoot
[    0.435620] Creating 5 MTD partitions on "RouterBoot":
[    0.440834] 0x000000000000-0x00000000e000 : "bootloader1"
[    0.447260] 0x00000000e000-0x00000000f000 : "hard_config"
[    0.454903] 0x00000000f000-0x000000010000 : "bios"
[    0.460610] 0x000000010000-0x00000001f000 : "bootloader2"
[    0.468273] 0x00000001f000-0x000000020000 : "soft_config"
[    0.474590] 0x000000020000-0x000001000000 : "firmware"
[    0.482568] 2 minor-fw partitions found on MTD device firmware
[    0.488536] Creating 2 MTD partitions on "firmware":
[    0.493572] 0x000000000000-0x000000290000 : "kernel"
[    0.500097] 0x000000290000-0x000000fe0000 : "rootfs"
[    0.505917] mtd: device 8 (rootfs) set to be root filesystem
[    0.512437] 1 squashfs-split partitions found on MTD device rootfs
[    0.518773] 0x000000690000-0x000000fe0000 : "rootfs_data"
[    0.530696] ag71xx 19000000.eth: invalid MAC address, using random address
[    0.879703] switch0: Atheros AR8337 rev. 2 switch registered on mdio.0
[    1.533854] ag71xx 19000000.eth: connected to PHY at mdio.0:00 [uid=004dd036, driver=Atheros AR8216/AR8236/AR8316]
[    1.544962] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii
[    1.551546] ag71xx 1a000000.eth: invalid MAC address, using random address
[    1.899201] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[    1.908836] eth1: Atheros AG71xx at 0xba000000, irq 5, mode: sgmii
[    1.922815] MikroTik RouterBOARD hardware configuration sysfs driver v0.07
[    1.931945] MikroTik RouterBOARD software configuration sysfs driver v0.05
[    1.939751] NET: Registered protocol family 10
[    1.946189] Segment Routing with IPv6
[    1.950009] NET: Registered protocol family 17
[    1.954582] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.968126] 8021q: 802.1Q VLAN Support v1.8
[    1.975635] PCI host bridge /ahb/pcie-controller@18250000 ranges:
[    1.981845]  MEM 0x0000000012000000..0x0000000013ffffff
[    1.987192]   IO 0x0000000000000001..0x0000000000000001
[    1.992654] PCI host bridge to bus 0000:00
[    1.996847] pci_bus 0000:00: root bus resource [mem 0x12000000-0x13ffffff]
[    2.003823] pci_bus 0000:00: root bus resource [io  0x0001]
[    2.009487] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    2.016384] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    2.024461] pci 0000:00:00.0: [168c:003c] type 00 class 0x028000
[    2.030604] pci 0000:00:00.0: reg 0x10: [mem 0x12000000-0x121fffff 64bit]
[    2.037570] pci 0000:00:00.0: reg 0x30: [mem 0x00000000-0x0000ffff pref]
[    2.044435] pci 0000:00:00.0: supports D1
[    2.048516] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    2.055349] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    2.062080] pci 0000:00:00.0: BAR 0: assigned [mem 0x12000000-0x121fffff 64bit]
[    2.069528] pci 0000:00:00.0: BAR 6: assigned [mem 0x12200000-0x1220ffff pref]
[    2.088212] VFS: Mounted root (squashfs filesystem) readonly on device 31:8.
[    2.099614] Freeing unused kernel memory: 1244K
[    2.104211] This architecture does not have kernel memory protection.
[    2.110782] Run /sbin/init as init process
[    2.114940]   with arguments:
[    2.114944]     /sbin/init
[    2.114948]   with environment:
[    2.114952]     HOME=/
[    2.114956]     TERM=linux
[    2.759458] init: Console is alive
[    2.763317] init: - watchdog -
[    4.151947] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.276878] usbcore: registered new interface driver usbfs
[    4.282498] usbcore: registered new interface driver hub
[    4.288005] usbcore: registered new device driver usb
[    4.299798] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.308890] ehci-fsl: Freescale EHCI Host controller driver
[    4.316040] ehci-platform: EHCI generic platform driver
[    4.321702] ehci-platform 1b000000.usb: EHCI Host Controller
[    4.327521] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1
[    4.335580] ehci-platform 1b000000.usb: irq 14, io mem 0x1b000000
[    4.364662] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00
[    4.371683] hub 1-0:1.0: USB hub found
[    4.376231] hub 1-0:1.0: 1 port detected
[    4.383329] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.401106] init: - preinit -
[    6.009976] random: jshn: uninitialized urandom read (4 bytes read)
[    6.093782] random: jshn: uninitialized urandom read (4 bytes read)
[    6.270098] random: jshn: uninitialized urandom read (4 bytes read)
[    7.537923] Atheros AR8216/AR8236/AR8316 mdio.0:00: Port 2 is up
[    7.545832] eth0: link up (1000Mbps/Full duplex)
[    7.562038] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    7.577425] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready
[    7.622056] random: procd: uninitialized urandom read (4 bytes read)
[   11.944789] jffs2: notice: (465) jffs2_build_xattr_subsystem: complete building xattr subsystem, 13 of xdatum (0 unchecked, 5 orphan) and 14 of xref (5 dead, 0 orphan) found.
[   11.962246] mount_root: switching to jffs2 overlay
[   11.970990] overlayfs: upper fs does not support tmpfile.
[   11.982839] urandom-seed: Seeding with /etc/urandom.seed
[   12.107517] eth0: link down
[   12.129318] procd: - early -
[   12.132536] procd: - watchdog -
[   12.858257] procd: - watchdog -
[   12.862785] procd: - ubus -
[   12.970744] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.979699] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.987020] random: ubusd: uninitialized urandom read (4 bytes read)
[   13.000682] procd: - init -
[   14.329843] random: jshn: uninitialized urandom read (4 bytes read)
[   14.381239] random: ubusd: uninitialized urandom read (4 bytes read)
[   14.404858] random: ubus: uninitialized urandom read (4 bytes read)
[   14.420945] kmodloader: loading kernel modules from /etc/modules.d/*
[   14.840693] urngd: v1.0.2 started.
[   14.928418] i2c /dev entries driver
[   14.937968] i2c-gpio i2c: using lines 18 (SDA) and 19 (SCL)
[   14.963221] Loading modules backported from Linux version v5.15.58-0-g7d8048d4e064
[   14.970952] Backport generated by backports.git v5.15.58-1-0-g42a95ce7
[   15.039034] sfp sfp: Host maximum power 1.0W
[   15.083834] random: crng init done
[   15.087347] random: 22 urandom warning(s) missed due to ratelimiting
[   15.389206] PPP generic driver version 2.4.2
[   15.397745] NET: Registered protocol family 24
[   15.429896] ath10k 5.15 driver, optimized for CT firmware, probing pci device: 0x3c.
[   15.441803] ath10k_pci 0000:00:00.0: pci irq legacy oper_irq_mode 1 irq_mode 0 reset_mode 0
[   18.411535] ath10k_pci 0000:00:00.0: qca988x hw2.0 target 0x4100016c chip_id 0x043202ff sub 0000:0000
[   18.420949] ath10k_pci 0000:00:00.0: kconfig debug 0 debugfs 1 tracing 0 dfs 1 testmode 0
[   18.432927] ath10k_pci 0000:00:00.0: firmware ver 10.1-ct-8x-__fW-022-ecad3248 api 2 features wmi-10.x,has-wmi-mgmt-tx,mfp,txstatus-noack,wmi-10.x-CT,ratemask-CT,txrate-CT,get-temp-CT,tx-rc-CT,cust-stats-CT,retry-gt2-CT,txrate2-CT,beacon-cb-CT,wmi-block-ack-CT crc32 3e4cf97f
[   18.546502] ath10k_pci 0000:00:00.0: Loading BDF type 0
[   19.216504] ath10k_pci 0000:00:00.0: board_file api 1 bmi_id N/A crc32 bebc7c08
[   20.174661] ath10k_pci 0000:00:00.0: 10.1 wmi init: vdevs: 16  peers: 127  tid: 256
[   20.191243] ath10k_pci 0000:00:00.0: wmi print 'P 128 V 8 T 410'
[   20.197578] ath10k_pci 0000:00:00.0: wmi print 'msdu-desc: 1424  sw-crypt: 0 ct-sta: 0'
[   20.205723] ath10k_pci 0000:00:00.0: wmi print 'alloc rem: 24984 iram: 38672'
[   20.255344] ath10k_pci 0000:00:00.0: htt-ver 2.1 wmi-op 2 htt-op 2 cal file max-sta 128 raw 0 hwcrypto 1
[   20.268210] ath10k_pci 0000:00:00.0: NOTE:  Firmware DBGLOG output disabled in debug_mask: 0x10000000
[   20.407982] ath: EEPROM regdomain: 0x0
[   20.407992] ath: EEPROM indicates default country code should be used
[   20.407996] ath: doing EEPROM country->regdmn map search
[   20.408010] ath: country maps to regdmn code: 0x3a
[   20.408016] ath: Country alpha2 being used: US
[   20.408020] ath: Regpair used: 0x3a
[   20.474279] ath9k 18100000.wmac: Direct firmware load for ath9k-eeprom-ahb-18100000.wmac.bin failed with error -2
[   20.484746] ath9k 18100000.wmac: Falling back to sysfs fallback for: ath9k-eeprom-ahb-18100000.wmac.bin
[   21.384059] ath: EEPROM regdomain: 0x0
[   21.384071] ath: EEPROM indicates default country code should be used
[   21.384075] ath: doing EEPROM country->regdmn map search
[   21.384089] ath: country maps to regdmn code: 0x3a
[   21.384095] ath: Country alpha2 being used: US
[   21.384100] ath: Regpair used: 0x3a
[   21.400328] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[   21.402107] ieee80211 phy1: Atheros AR9550 Rev:0 mem=0xb8100000, irq=12
[   21.445064] kmodloader: done loading kernel modules from /etc/modules.d/*
[   37.638826] eth0: link up (1000Mbps/Full duplex)
[   37.643538] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   37.658610] device eth0 entered promiscuous mode
[   37.663821] br-lan: port 1(eth0.1) entered blocking state
[   37.669367] br-lan: port 1(eth0.1) entered disabled state
[   37.675210] device eth0.1 entered promiscuous mode
[   37.701318] br-lan: port 1(eth0.1) entered blocking state
[   37.706849] br-lan: port 1(eth0.1) entered forwarding state
[   38.665035] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

These are my photos, use them with the usual copyleft open source of OpenWRT community.

I don't know how to open the box of the hAP ac. If you would like photos from the PCB, pease explain or upload your own photos. Also, I don't know how to obtain serial console and think it is impossible.

Dear all,

I am testing ethernet speed between the hAP ac and a host connected with RJ45 using iperf3.
The MTU is 1500. Firewalld is disabled (this is a dump mode). Anyhow speed is very slow:
hAP is running on PoE. Wireless is disabled.

On hAP AC : iperf3 -s
On Ethernet host : iperf -c IPaddress hAP AC

Downstream (hPA ac sending): 289 Mbits/sec
Upstream :(hAP ac receiving): 429 Mbit/s

The figures are the same if I use a host other then hAP.

This is clearly a huge limitation.
Any idea if this is fixable or a limitation in hardware?
Is this an MTU fragmentation problem ?

cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'xxxxxxxxxxxxxxxxxx'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'
	list ports 'eth0.2'
	list ports 'eth1'

config device
	option name 'eth0.1'
	option macaddr 'xxxxxxxxxxxxxxxxxxxxxx'

config interface 'lan'
	option device 'br-lan'
	option proto 'dhcp'

config device
	option name 'eth0.2'
	option macaddr 'xxxxxxxxxxxxxxx'

config interface 'wan'
	option device 'eth0.2'
	option proto 'dhcp'
	option auto '0'

config interface 'wan6'
	option device 'eth0.2'
	option proto 'dhcpv6'
	option auto '0'
	option reqaddress 'try'
	option reqprefix 'auto'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '2 3 4 5 0t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '1 0t'

config device
	option name 'eth1'

config device
	option name 'eth0'

config device
	option name 'eth1'
1 Like

Keep in mind CPU is almost 10 years old at this point. Back when I deployed mine, 50mbps internet was all we had and 200+mbps routing throughput was more than enough. If you're expecting gigabit routing with this device you're expecting too much.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.