asuswrt-merlin.ng icon indicating copy to clipboard operation
asuswrt-merlin.ng copied to clipboard

🌟 Support for TUF-AX3000 V2 🌟

Open gnuton opened this issue 1 year ago β€’ 37 comments

*This thread is about supporting TUF-AX3000 V2. If you see this issue here is because I have decided to support this model.

So, feel free to ask questions here about this topic. I will keep the status updated.

Status:

  • [x] received GPL
  • [x] received development unit
  • [x] Merged GPL to feature-branch
  • [x] Initial testing & Bugfixing phase
  • [x] Public pre-alphas
  • [ ] Alpha released
  • [ ] collecting testing reports & Bugfixing phase
  • [ ] Beta released
  • [ ] collecting testing reports & Bugfixing phase
  • [ ] Stable released

gnuton avatar Jan 22 '24 00:01 gnuton

Looking for pre-alpha testers. Pre-alpha builds may soft-brick your routers. So please be sure you know how to unbrick before applying as alpha tester. If interested ping me.

gnuton avatar Jan 22 '24 00:01 gnuton

@gnuton I would like to test the TUF-AX3000 V2 firmware. Please let me know where to get the firmware.. Thank you!

Rovasteen avatar Jan 23 '24 22:01 Rovasteen

I will publish it here as soon as I do have a pre alpha

gnuton avatar Jan 23 '24 22:01 gnuton

I'm willing to also test the pre alpha once you have it ready!

l0r3n75 avatar Jan 25 '24 05:01 l0r3n75

I am gonna release the pre-alpha 1 volotunteer required.. ping me via discord. NOTE: Pre-alpha can scft brick the device.. so please contact me only if you know how to recover.

gnuton avatar Jan 31 '24 17:01 gnuton

Can try it out for you i know how to recover, didn't got as far as you are now.

Willemv2 avatar Jan 31 '24 17:01 Willemv2

pre alpha images:

[IMAGES REMOVED]

Note - you must be logged for downlaoding these images. These are pre-alpha and they can soft brick your router. please do not flash them unless you know how to recover.

gnuton avatar Jan 31 '24 19:01 gnuton

Neither build worked for me. Flashed the default UI firmware and would not boot up even after setting the IP address manually. Flashed the 2nd build with TUF UI from recovery mode. Also did not work. So will go back into recovery mode and flash a stock image to start over again.

Rovasteen avatar Jan 31 '24 20:01 Rovasteen

@Rovasteen thanks for testing.

It seems like it's soldering time... (picture from the internet... serial port seems to be on the right side) image

gnuton avatar Feb 01 '24 00:02 gnuton

OK. I can get the recovery console up. Why can't I flash from there?

Rovasteen avatar Feb 01 '24 01:02 Rovasteen

I can easily get the router into recovery mode. The Asus firmware restoration tool stops at around 79% uploading. Flashing from the recovery console directly also does not seem to flash an image. Seems almost like there is an image size limit on the recovery console. I have never seem a Broadcom router that you could not recover from the recovery console until this one. Ideas?

Rovasteen avatar Feb 01 '24 04:02 Rovasteen

I can easily get the router into recovery mode. The Asus firmware restoration tool stops at around 79% uploading. Flashing from the recovery console directly also does not seem to flash an image. Seems almost like there is an image size limit on the recovery console. I have never seem a Broadcom router that you could not recover from the recovery console until this one. Ideas?

Did u try a lower version of the stock firmware ?

Willemv2 avatar Feb 01 '24 06:02 Willemv2

I tried multiple FW versions including Asus initial image. I can get into recovery mode easily but none of the images flash. @gnuton what do you suggest as the router is NOT hard bricked yet I cannot load an image either.

Rovasteen avatar Feb 01 '24 18:02 Rovasteen

I soft bricked mine too. I have to check what to do. As suggested you should try to flash an old version of the stock firmware. Are you trying it through ftp or the Asus recovery tool? Just wondering if you are using the right procedure.

gnuton avatar Feb 01 '24 20:02 gnuton

I soft bricked mine too. I have to check what to do. As suggested you should try to flash an old version of the stock firmware. Are you trying it through ftp or the Asus recovery tool? Just wondering if you are using the right procedure.

Indeed first try the older firmware and try ftp side to see if it works or not before i brick mine tooπŸ˜…

Willemv2 avatar Feb 01 '24 20:02 Willemv2

I held down power button and the reset button to get into recovery mode. I set the ethernet port to a fixed IP address as DHCP is not working of course on the router in this state. Tried flashing from Asus firmware recovery tool and also tried flashing directly from the recovery console using a browser. The firmware recovery tool gets to around 81% uploading the image before it fails.

Have not tried FTP. I just tried the old TFTP tool and it did not flash. What is the FTP procedure?

Rovasteen avatar Feb 01 '24 20:02 Rovasteen

I can ping the router all day long and I get back responses:

C:\Windows\System32>ping -t 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data: Reply from 192.168.1.1: bytes=32 time<1ms TTL=128 Reply from 192.168.1.1: bytes=32 time<1ms TTL=128 Reply from 192.168.1.1: bytes=32 time<1ms TTL=128 Reply from 192.168.1.1: bytes=32 time<1ms TTL=128 Reply from 192.168.1.1: bytes=32 time<1ms TTL=128 Reply from 192.168.1.1: bytes=32 time<1ms TTL=128

TFTP by command has not worked yet

C:\Windows\System32> tftp -i 192.168.1.1 put C:\TUF-AX3000_V2.pkgtb Connect request failed

Rovasteen avatar Feb 01 '24 21:02 Rovasteen

This is the way I do use tftp on linux. If the mode is automatically set to binary than it should be fine. I still need to test it on my TUF-AX3000 V2 and recoverit.. btw..

 # tftp
tftp> connect 192.168.1.1
tftp> mode binary
tftp> put THE_IMAGE

then wait until ou get that all data has been sent and wait a few minutes

If you attach a JTAG cable you should see some logs like these

enter tftp mode:
Reading ::
TFTP Server.
..tftp retry wait 0
Failed.: Timeout occured
Reading ::
TFTP Server.
..tftp retry wait 0
Failed.: Timeout occured
Reading ::
TFTP Server.
..tftp retry wait 0
Failed.: Timeout occured
Reading ::

gnuton avatar Feb 01 '24 21:02 gnuton

Tested and the good news I get same stuff as you @Rovasteen ! tftp> connect 192.168.1.1 tftp> mode binary tftp> put TUF-AX3000_V2_3.0.0.4_388_23785-g6bb7c92_nand_squashfs.pkgtb Transfer timed out.

gnuton avatar Feb 01 '24 23:02 gnuton

@Rovasteen It looks like HND devices are harder to recovery than older and you need to try many many times. Sometimes yu have to find the right eth/wan port to get it working too. Typically, pinging to a device at CFE would return a TTL of 100 hops instead of 64 hops.

I have done just few tries, but I would next get a serial adapter for debuging and recover. Among the sevreal options the serial CP2102, seems to be the best.

gnuton avatar Feb 02 '24 06:02 gnuton

@gnuton could you contact Asus and get their recommendations as some of the new devices accept to boot from the serial port as an example. Maybe this device has some means of recovery that Asus can turn us onto.

Rovasteen avatar Feb 02 '24 12:02 Rovasteen

I can report my router is recovered. Here is what I did,, which I do not know if it is repeatable.

  1. Connect Ethernet to Port 1 of the router, Set a fixed IP address at your computer as DHCP does not function in recovery mode.
  2. Hold down WPS button for 15 seconds and turn on power to do a hard reset.
  3. After hard reset, hold down reset button for 15 seconds and power on to put router in recovery mode.
  4. Use browser and access the recovery console at 192.168.1.1 or whatever IP address you are using at your computer. Upload image from the recovery console. This may take a while.

I used the OEM image TUF-AX3000_V2_3.0.0.4_388_23785-g6bb7c92_nand_squashfs.pkgtb

Rovasteen avatar Feb 02 '24 15:02 Rovasteen

I don't know if this router has 2 partitions or not. It seems like holding down the WPS button during power on may have been what solved this.

Rovasteen avatar Feb 02 '24 18:02 Rovasteen

@Rovasteen yep I managed to recover mine too using the same method. I just pointed out the browser to the router IP and voila'. image

gnuton avatar Feb 02 '24 21:02 gnuton

Build issues found:

  1. sdparm
024-01-31T18:21:03.2144953Z make -C sdparm-1.02
2024-01-31T18:21:03.2225565Z make[5]: Entering directory '/project/asuswrt-merlin.ng/release/src/router/sdparm-1.02'
2024-01-31T18:21:03.2226580Z cd . && /bin/sh /project/asuswrt-merlin.ng/release/src/router/sdparm-1.02/missing --run aclocal-1.10 
2024-01-31T18:21:03.2294851Z /project/asuswrt-merlin.ng/release/src/router/sdparm-1.02/missing: line 52: aclocal-1.10: command not found
2024-01-31T18:21:03.2309572Z WARNING: `aclocal-1.10' is missing on your system.  You should only need it if
2024-01-31T18:21:03.2310824Z          you modified `acinclude.m4' or `configure.ac'.  You might want
2024-01-31T18:21:03.2311925Z          to install the `Automake' and `Perl' packages.  Grab them from
2024-01-31T18:21:03.2312729Z          any GNU archive site.
2024-01-31T18:21:03.2367578Z  cd . && /bin/sh /project/asuswrt-merlin.ng/release/src/router/sdparm-1.02/missing --run automake-1.10 --gnu 
2024-01-31T18:21:03.2411228Z /project/asuswrt-merlin.ng/release/src/router/sdparm-1.02/missing: line 52: automake-1.10: command not found
2024-01-31T18:21:03.2424682Z WARNING: `automake-1.10' is missing on your system.  You should only need it if
2024-01-31T18:21:03.2425547Z          you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
2024-01-31T18:21:03.2426201Z          You might want to install the `Automake' and `Perl' packages.
2024-01-31T18:21:03.2426723Z          Grab them from any GNU archive site.
2024-01-31T18:21:03.2543636Z cd . && /bin/sh /project/asuswrt-merlin.ng/release/src/router/sdparm-1.02/missing --run autoconf
2024-01-31T18:21:03.3558579Z aclocal.m4:14: error: this file was generated for autoconf 2.61.
2024-01-31T18:21:03.3559621Z You have another version of autoconf.  If you want to use that,
2024-01-31T18:21:03.3560205Z you should regenerate the build system entirely.
2024-01-31T18:21:03.3560626Z aclocal.m4:14: the top level
2024-01-31T18:21:03.3564239Z autom4te: /usr/bin/m4 failed with exit status: 63
2024-01-31T18:21:03.3588974Z WARNING: `autoconf' is probably too old.  You should only need it if
2024-01-31T18:21:03.3590407Z          you modified `configure.ac'.  You might want to install the
2024-01-31T18:21:03.3591216Z          `Autoconf' and `GNU m4' packages.  Grab them from any GNU
2024-01-31T18:21:03.3591724Z          archive site.
```

2. sgdisk
```
2024-01-31T18:55:49.8876467Z /bin/sh: sgdisk: command not found
```
- FIXED

3. 
```
May  5 07:05:02 kernel: emf: Unknown symbol osl_malloc (err -2)
May  5 07:05:02 kernel: emf: Unknown symbol osl_pktdup_cpy (err -2)
May  5 07:05:02 kernel: emf: Unknown symbol osl_mfree (err -2)
May  5 07:05:02 kernel: emf: Unknown symbol linux_pktfree (err -2)
May  5 07:05:02 kernel: emf: Unknown symbol osl_pktdup (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_wmf_scbfind (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol osl_malloc (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_mfdb_ipv6_membership_add (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol osl_detach (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_rtport_del (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_igmp_snooper_register (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol osl_attach (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_mfdb_ipv6_membership_del (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_wmf_get_igsc (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_rtport_add (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_igmp_snooper_unregister (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_mfdb_membership_del (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol osl_mfree (err -2)
May  5 07:05:02 kernel: igs: Unknown symbol emfc_mfdb_membership_add (err -2)
```
Investigation
This may be an issue coming from upstream see https://www.linksysinfo.org/index.php?threads/tuf-ax3000-v2-installation.78070/page-2
```
###
it looks like emfc_mfdb_ipv6_membership_add is defined in the emf.o object file and is referenced in the igs.o object file.

$ nm -an asuswrt/release/src-rt-5.04axhnd.675x/router-sysdep/hnd_extra/prebuilt/igs.o | grep emfc_mfdb_ipv6_membership_add
         U emfc_mfdb_ipv6_membership_add   

$ nm -an asuswrt/release/src-rt-5.04axhnd.675x/router-sysdep/hnd_extra/prebuilt/emf.o | grep emfc_mfdb_ipv6_membership_add
00000000 r ___ksymtab+emfc_mfdb_ipv6_membership_add
00000000 r __ksymtab_emfc_mfdb_ipv6_membership_add
0000004c r __kstrtab_emfc_mfdb_ipv6_membership_add
00002324 T emfc_mfdb_ipv6_membership_add

```

4. The boot gets stuck in this loop
```
May  5 07:05:39 rc_service: watchdog 2531:notify_rc start_cfgsync
May  5 07:06:10 rc_service: watchdog 2531:notify_rc start_amas_lanctrl
May  5 07:06:10 rc_service: watchdog 2531:notify_rc start_cfgsync
May  5 07:06:13 Mastiff: exit.
May  5 07:06:41 rc_service: watchdog 2531:notify_rc start_amas_lanctrl
May  5 07:06:41 rc_service: watchdog 2531:notify_rc start_cfgsync
May  5 07:07:12 rc_service: watchdog 2531:notify_rc start_amas_lanctrl
May  5 07:07:12 rc_service: watchdog 2531:notify_rc start_cfgsync
May  5 07:07:43 rc_service: watchdog 2531:notify_rc start_amas_lanctrl
May  5 07:07:43 rc_service: watchdog 2531:notify_rc start_cfgsync
May  5 07:08:14 rc_service: watchdog 2531:notify_rc start_amas_lanctrl
May  5 07:08:14 rc_service: watchdog 2531:notify_rc start_cfgsync
May  5 07:08:45 rc_service: watchdog 2531:notify_rc start_amas_lanctrl
May  5 07:08:45 rc_service: watchdog 2531:notify_rc start_cfgsync
```


5. maybe not an issue
```
ay  5 07:05:10 lldpd[2597]: could not open either /etc/os-release or /usr/lib/os-release
May  5 07:05:10 lldpd[2597]: lsb_release information not available
May  5 07:05:10 lldpd[2601]: created chroot directory /var/run/lldpd
May  5 07:05:10 lldpd[2601]: /etc/localtime copied to chroot
May  5 07:05:10 lldpd[2601]: protocol LLDP enabled
May  5 07:05:10 lldpd[2601]: protocol CDPv1 disabled
May  5 07:05:10 lldpd[2601]: protocol CDPv2 disabled
May  5 07:05:10 lldpd[2601]: protocol SONMP disabled
May  5 07:05:10 lldpd[2601]: protocol EDP disabled
May  5 07:05:10 lldpd[2601]: protocol FDP disabled
May  5 07:05:10 lldpd[2601]: libevent 2.0.21-stable initialized with epoll method
May  5 07:05:10 lldpcli[2598]: lldpd should resume operations
```

gnuton avatar Feb 03 '24 09:02 gnuton

Awesome progress @gnuton ! Looking forward to the first bootable build. Hopefully, Asus is also providing latest Broadcom drivers (at least I can hope for that). Take care and thank you for supporting this router!

Rovasteen avatar Feb 03 '24 14:02 Rovasteen

@gnuton you've done a really professional job setting up your github. Everything is extremely well organized and well labeled. It's been interesting looking at Actions to see how the test builds are coming along. Many thanks to you!

Rovasteen avatar Feb 09 '24 12:02 Rovasteen

Thanks. Honestly I am not happy about it. The setup on circle I was better. There are still issues with permissions and some bugs in some actions which are really annoying. In any case the setup works. But it's not final.

gnuton avatar Feb 09 '24 15:02 gnuton

@gnuton does the build generated successfully on 02/06 load? Ok to try that one?

Rovasteen avatar Feb 12 '24 11:02 Rovasteen

@gnuton you may know already but M_ars has a project here: https://bitbucket.org/M_ars/freshtomato-ax/commits/ to port the TUF-AX3000 v2 to Tomato. The project has been able to compile builds and introduce some updates but has not ported a build to the Tomato interface. Anyway, maybe there are some learnings to be gleaned from another router aficionado.

Rovasteen avatar Feb 20 '24 00:02 Rovasteen