Alternative firmware for ZBT-APG621

Hi there, which openwrt firmware can i load on a zbt621 device?

the information i get from breed is
Atheros AR9344 rev 3
64MB DDR2
Winbond W25Q64 @ 22MHz (8MB)
Atheros AR8228/AR8229 rev 1
CPU: 560MHz, DDR: 450MHz, AHB: 225MHz, Ref: 40MHz
2017-12-26 [git-812ef5f]
1.1 (r1163)

thanks
chris

1 Like

sorry, its a APG621 model, from makers ZBT

None, the device is not supported.

Judging from the system specification you quote, it should be possible to support this device, but someone (probably you, at this point) will still have to actually do the porting work. Embedded devices are not generic, they each need their own firmware, specially tailored to their specific hardware quirks, partition maps, firmware formats, GPIO assignments, etc. pp.

tx for the reply,

so if i have to do it, can you give me pointers on where to start? what do i need?

The wiki would say https://openwrt.org/docs/guide-developer/add.new.device but that is only scratching the surface, in the end you can only check the git history of the ath79 target and check the additions of similar devices (cf-e120a-v3, dir-825-c1, dir-835-a1, raccoon, cap324, cr5000, tl-wdr3600, tl-wdr4300, wd mynet, wb2000, …) and check how much and where your device differs from them, how to write a patch covering it. This will involve serial console access, finding out how to tftpboot an initramfs image, a robust way to recover from bad flashing, dissection the OEM firmware format to come up with a factory image, checking how the OEM firmware sets up the device - looking at the OEM firmware GPL tarball, etc. pp. There is no 3-step guide for this, you need to understand the device and 'just' get it working.

sweet - thanks

hi there - for those interested

you can load the "Atheros DB120 reference board" firmware works fine (so far) on this device

Have you confirmed that you didn’t overwrite device-specific data, such as the ART partition? That all functions of the device are operating properly?

1 Like

hi jeff, so here is probably a noob question, but lets go anyway.

if the firmware loads, and i can connect to the wisp, and everything LOOKS normal, except that it comes up with a couple of extra interfaces that i can remove after the flashing, what else can be an issue?

It's a long list, but here are a couple that are effectively unrecoverable:

  • You've overwritten flash that contains device-specific information or boot code
  • A GPIO, clock, or voltage regulator is set improperly, causing hardware damage

Embedded devices aren't like x86 devices where all the configuration parameters are "burned in" to things like the BIOS or discoverable by the kernel, such as scanning industry-standard busses. Further, flash is partitioned by the kernel, not "on disk" like a GPT or MBR.

Even "reference designs" are no guarantee of success. They are just that, the chip manufacture's "starting point" for a commercial design. OEMs / ODMs will take that and design a circuit board based on the schematics, often changing components and their connections to meet cost or layout needs. Then the firmware that they choose to install and how the flash is interpreted is pretty much at their own whim. Some reference designs and their associated DTS or mach files (define the hardware to the kernel) are non-functional as they are.

These is why porting to a new device isn't a "just flash this and see what happens" kind of thing, as slh pointed out above. It either requires a huge amount of luck (which I'm hoping you've had), or careful examination of how the shipped firmware works, backup of all of the flash, and careful steps to make sure that nothing is destroyed along the way.

2 Likes

Hello! I've got a couple of ZBT APG621 to test with.

Unfortunately, they have Breed instead of U-Boot.

I managed to flash the DB120 image from the Breed serial console (although it will probably work also within their OEM updater). For reference, i used this image.

It does worrk because the partition layout is exatcly the same and because the original firmware itself is based on OpenWrt. So the ART partition remain intact, as well as the bootloader and there are no critical issues.

The problems I have experienced are:

  1. Although both ethernet ports are working (and are PoE) it seems that only one at a time is working. In both cases they show up as eth0 and if something is already connected, the other one does not show in dmesg.
    May it be related to this error in dmesg?
[    1.626698] ag71xx ag71xx.0: no PHY found with phy_mask=00000001
  1. Of course LED and buttons need to be worked on.

I'm willing to work toward porting a working firmware in the OpenWrt tree.

If anyone is willing to help or wish to explore further, from here the original firmware can be downloaded (and will be succesfully extracted by binwalk)

https://ac-link.com/upgrade/APG621A/latest.txt.en
https://ac-link.com/upgrade/APG621B/latest.txt.en
https://ac-link.com/upgrade/APG621/latest.txt.en

I believe that the only difference between them is with which preconfiguration they are shipped.

(I have also an APG721, which is even cheaper but only 2.4ghz)

I believe it may be an issue of the same kind of this one
https://forum.archive.openwrt.org/viewtopic.php?id=22776

But i see that in the file mach-db120.c there's no PHY address defined. Can anyone point me at more documentation about it?