Firmware for IgniteNet Sunspot SS-W2-AC2600

PS: Admin please delete if this isn't the appropriate forum.

Hello gurus,

I have several APs ( Sunspot Wave2 AC2600) that I need to flash to either remove a custom firmware and get vanilla OpenWrt installed or revert the APs to the manufacturer's firmware. None of the two is easy as I have been searching unsuccessfully for 3 days now.

This is what I see in /etc/openwrt_release:

DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='19.07-SNAPSHOT'
DISTRIB_REVISION='r11333-cc0b70467d'
DISTRIB_TARGET='ipq806x/generic'
DISTRIB_ARCH='arm_cortex-a15_neon-vfpv4'
DISTRIB_DESCRIPTION='OpenWrt 19.07-SNAPSHOT r11333-cc0b70467d'
DISTRIB_TAINTS='no-all busybox'

The hardware details are:

root@SupaBRCK:~# cat /tmp/sysinfo/board_name
ignitenet,ss-w2-ac2600

It would appear like the firmware was specifically developed for the company going by the name SupaBRCK because any factory reset still leaves the default configs different from the OpenWrt I am familiar with. I haven't been able to identify which target this board belongs to from https://downloads.openwrt.org/releases/23.05.0-rc4/targets/ipq806x/generic/

I would highly appreciate any guidance on how to go about the process or to be pointed to the appropriate forum where I can get information on achieving the above objective.

Thanks in advance.

From the sounds of it, your device may not be supported by openwrt. And you can’t just add t use some generic image because each device requires a unique low level hardware map during the firmware compilation phase.

What is the output of

ubus call system board

Thank you very much for taking the time to look into my problem.

Here is the output:

root@SupaBRCK:~# ubus call system board
{
        "kernel": "4.14.229",
        "hostname": "SupaBRCK",
        "system": "ARMv7 Processor rev 0 (v7l)",
        "model": "Ignitenet SS-W2-AC2600",
        "board_name": "ignitenet,ss-w2-ac2600",
        "release": {
                "distribution": "OpenWrt",
                "version": "19.07-SNAPSHOT",
                "revision": "r11333-cc0b70467d",
                "target": "ipq806x/generic",
                "description": "OpenWrt 19.07-SNAPSHOT r11333-cc0b70467d"
        }
}
root@SupaBRCK:~

Yeah, this isn't supported by OpenWrt.

If you're so inclined, you could do some development work to enable this device to work on official OpenWrt -- here's some info about how to do it:

So the OpenWrt it is running is a fork by the manufacturer which they did not open source??
I'd have loved to enable the device to work on official OpenWrt, but I do not have the competence.

This is a common problem. You can contact them and ask for a copy of the source code... they're technically obligated to give you anything that would be covered under GPLv2, but they probably won't actually deliver. It is always possible that they have bits of code that are closed source, and some of that may either not be covered by the GPLv2 license or may be from other parties and cannot be released without their conscent. It's complicated, to say the least.

They did give me some information about this.

SunSpot Wave2 AC2600 is supported by TIP OpenWiFi which uses pure OpenWRT as a base. So, you can refer to the BSP (board support package, like BDF, patches, etc.) inside the OpenWiFi repository, and apply the BSP onto the OpenWRT to build AC2600's firmware.

The TIP OpenWiFi repository is here: https://github.com/Telecominfraproject/wlan-ap
The model profile is here: https://github.com/Telecominfraproject/wlan-ap/blob/main/profiles/edgecore_ssw2ac2600.yml

I am yet to make heads or tails of this but to be honest, I don't like the idea of setting up my own build farm to build custom firmware. It complicates my life :slight_smile:

You are the one with the hardware, you want it - it's up to you to clean up the patches (if necessary (it will need fixing between kernel versions, for DTS changes and particularly for DSA), retain the copyright notices and make sure that they're properly signed-of and licensed!) and propose them to OpenWrt in the form of a tested(!) pull request against the main branch or patch series to the mailing list - no one else will.

EDIT: to be clear, no one can do the above, unless they have the opened device on their desk, serial console attached and being able to test and fix the necessary changes.

1 Like

I can donate a device since I have hundreds. I can get the organization I am working on this for to send a device to anyone the OpenWrt selects. Please let me know how I can do this.

i think it's not so hard to add support for this device, alot well supported devices with this target. i think @Annick can help you for the first step, recover the DTS from your firmware.

1 Like

Shouldn’t be that hard

Thanks @theMan for chipping in.
Up to this point I must say I am just floating.

What is the implication of the commit you've referred to? How can I move forward?

I am trying my hand at building an image by following https://github.com/Telecominfraproject/wlan-ap.
I am getting stuck though, because for some reason, my Python version isn't right, or there is a detection problem. I hope someone can lend me a third eye as I seem to be hitting my /etc (end of thinking capacity) on this one.
Here is the complete output from my attempt: https://pastebin.ubuntu.com/p/tQjgDRCjPj/

Thanks in advance.

Answering myself:
I found a thread that led me to create symlinks for python and python3 inside cd /opt/wlan-ap/openwrt/staging_dir/host/bin/.
This helped with errors of some missing dependencies. However, I am still stuck somehow.

root@debian12:/opt/wlan-ap/openwrt# ./scripts/gen_config.py edgecore_ssw2ac2600
Checking host dependecy llvm/clang-12
Using the following profiles:
 - Build image for the EdgeCore SSW2AC2600
 - Add the ucentral dependencies
 - Add the webui dependencies
 - Add qosify package
 - Add the wifi ath10k support
Cleaning tree
Updating feed 'packages' from 'https://git.openwrt.org/feed/packages.git;openwrt-21.02' ...
Cloning into './feeds/packages'...
remote: Enumerating objects: 6374, done.
remote: Counting objects: 100% (6374/6374), done.
remote: Compressing objects: 100% (5321/5321), done.
remote: Total 6374 (delta 226), reused 3798 (delta 145), pack-reused 0
Receiving objects: 100% (6374/6374), 4.30 MiB | 1.35 MiB/s, done.
Resolving deltas: 100% (226/226), done.
Create index file './feeds/packages.index'
Collecting package info: done
Collecting target info: done
Updating feed 'routing' from 'https://git.openwrt.org/feed/routing.git;openwrt-21.02' ...
Cloning into './feeds/routing'...
remote: Enumerating objects: 408, done.
remote: Counting objects: 100% (408/408), done.
remote: Compressing objects: 100% (337/337), done.
remote: Total 408 (delta 25), reused 257 (delta 14), pack-reused 0
Receiving objects: 100% (408/408), 295.01 KiB | 557.00 KiB/s, done.
Resolving deltas: 100% (25/25), done.
Create index file './feeds/routing.index'
Collecting package info: done
Collecting target info: done
Updating feed 'telephony' from 'https://git.openwrt.org/feed/telephony.git;openwrt-21.02' ...
Cloning into './feeds/telephony'...
remote: Enumerating objects: 271, done.
remote: Counting objects: 100% (271/271), done.
remote: Compressing objects: 100% (259/259), done.
remote: Total 271 (delta 8), reused 79 (delta 1), pack-reused 0
Receiving objects: 100% (271/271), 177.19 KiB | 360.00 KiB/s, done.
Resolving deltas: 100% (8/8), done.
Create index file './feeds/telephony.index'
Collecting package info: done
Collecting target info: done
Updating feed 'ucentral' from '../../feeds/ucentral' ...
Create index file './feeds/ucentral.index'
Collecting package info: done
Collecting target info: done
Updating feed 'tip' from '../../feeds/tip' ...
Create index file './feeds/tip.index'
Collecting package info: done
Collecting target info: done
Updating feed 'luci' from 'https://github.com/openwrt/luci.git^69231a7d62a3b809fc5972071e691fb02730a10e' ...
Cloning into './feeds/luci'...
remote: Enumerating objects: 413325, done.
remote: Counting objects: 100% (1212/1212), done.
remote: Compressing objects: 100% (262/262), done.

Lots of information then after a while I end up with:

Configuration written to .config
Running make defconfig
Collecting package info: done
Collecting target info: done
WARNING: Makefile 'package/feeds/luci/luci-app-firewall/Makefile' has a dependency on 'uci-firewall', which does not exist
WARNING: Makefile 'package/feeds/ucentral/unetd/Makefile' has a dependency on 'kmod-wireguard-backport', which does not exist
WARNING: Makefile 'package/system/uvol/Makefile' has a dependency on 'lvm2', which does not exist
tmp/.config-package.in:18675:error: recursive dependency detected!
tmp/.config-package.in:18675:   symbol PACKAGE_kmod-cfg80211 is selected by PACKAGE_kmod-mac80211
tmp/.config-package.in:18961:   symbol PACKAGE_kmod-mac80211 is selected by PACKAGE_ucode-mod-nl80211
tmp/.config-package.in:23320:   symbol PACKAGE_ucode-mod-nl80211 depends on PACKAGE_ucode
tmp/.config-package.in:23283:   symbol PACKAGE_ucode is selected by PACKAGE_wpa-supplicant
tmp/.config-package.in:67383:   symbol PACKAGE_wpa-supplicant depends on PACKAGE_wpad-mesh-openssl
tmp/.config-package.in:68099:   symbol PACKAGE_wpad-mesh-openssl depends on PACKAGE_kmod-cfg80211
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

#
# configuration written to .config
#
#########################
#########################
#########################

Dependecy llvm/clang-12: Building llvm/clang, this will take 1hr+, please install clang/llvm-12+ on your system

#########################
#########################
#########################

root@debian12:/opt/wlan-ap/openwrt#

From that point I am stuck.

EDIT: I did get a response from John Crispin after I emailed him.
His advice was that I just run make, which I did. The process died very early. Then I figured out (thanks to Google!) that these commands should NOT be run as root. Lesson learnt.
The make -j 4 V=s has been churning in my VM.
I got to a point when it prompted for some input, but I could not know what option to give, so I just pressed ENTER and the process proceeded with running.
Does anyone know what I should have done on this prompt?

I figured out that these processes should NOT be done as 'root'. Lesson learnt.
So `make -j4 V=s` is running for some time now.
I got to a point where it wanted me to input something, which I really did not understand:
<CUT>
INSTALL /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158/user_headers/include
make[5]: Leaving directory '/home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158'
grep '=[ym]' /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158/.config.set | LC_ALL=C sort | mkhash md5 > /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158/.vermagic
touch /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158/.configured
rm -f /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158/vmlinux /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158/System.map
make -C /home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158 HOSTCFLAGS="-O2 -I/home/wash/Routerfirmware/wlan-ap/openwrt/staging_dir/host/include  -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="arm-openwrt-linux-muslgnueabi-" ARCH="arm" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="" KBUILD_BUILD_HOST="" KBUILD_BUILD_TIMESTAMP="Mon Oct  9 06:50:27 2023" KBUILD_BUILD_VERSION="0" HOST_LOADLIBES="-L/home/wash/Routerfirmware/wlan-ap/openwrt/staging_dir/host/lib" KBUILD_HOSTLDLIBS="-L/home/wash/Routerfirmware/wlan-ap/openwrt/staging_dir/host/lib" CONFIG_SHELL="bash" V=''  cmd_syscalls=  KERNELRELEASE=5.4.158 CC="arm-openwrt-linux-muslgnueabi-gcc" zImage Image dtbs modules
make[5]: Entering directory '/home/wash/Routerfirmware/wlan-ap/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/linux-5.4.158'
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  LEX     scripts/kconfig/lexer.lex.c
  YACC    scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --syncconfig Kconfig
net/sched/Kconfig:45: warning: menuconfig statement without prompt
.config:4194:warning: symbol value 'm' invalid for NF_NAT_REDIRECT
*
* Restart config...
*
*
* Miscellaneous filesystems
*
Miscellaneous filesystems (MISC_FILESYSTEMS) [Y/n/?] y
  ORANGEFS (Powered by PVFS) support (ORANGEFS_FS) [N/m/y/?] n
  ADFS file system support (ADFS_FS) [N/m/y/?] n
  Amiga FFS file system support (AFFS_FS) [N/m/y/?] n
  eCrypt filesystem layer support (ECRYPT_FS) [N/m/y/?] n
  Apple Macintosh file system support (HFS_FS) [N/m/y/?] n
  Apple Extended HFS file system support (HFSPLUS_FS) [N/m/y/?] n
  BeOS file system (BeFS) support (read only) (BEFS_FS) [N/m/y/?] n
  BFS file system support (BFS_FS) [N/m/y/?] n
  EFS file system support (read only) (EFS_FS) [N/m/y/?] n
  Journalling Flash File System v2 (JFFS2) support (JFFS2_FS) [Y/n/m/?] y
    JFFS2 debugging verbosity (0 = quiet, 2 = noisy) (JFFS2_FS_DEBUG) [0] 0
    JFFS2 write-buffering support (JFFS2_FS_WRITEBUFFER) [Y/n/?] y
      Verify JFFS2 write-buffer reads (JFFS2_FS_WBUF_VERIFY) [N/y/?] n
    JFFS2 summary support (JFFS2_SUMMARY) [Y/n/?] y
    JFFS2 XATTR support (JFFS2_FS_XATTR) [Y/n/?] y
      JFFS2 POSIX Access Control Lists (JFFS2_FS_POSIX_ACL) [N/y/?] n
      JFFS2 Security Labels (JFFS2_FS_SECURITY) [N/y/?] n
    Advanced compression options for JFFS2 (JFFS2_COMPRESSION_OPTIONS) [Y/n/?] y
      JFFS2 ZLIB compression support (JFFS2_ZLIB) [N/y/?] n
      JFFS2 LZO compression support (JFFS2_LZO) [N/y/?] n
      JFFS2 LZMA compression support (JFFS2_LZMA) [Y/n/?] y
      JFFS2 RTIME compression support (JFFS2_RTIME) [Y/n/?] y
      JFFS2 RUBIN compression support (JFFS2_RUBIN) [N/y/?] n
      JFFS2 default compression mode
        1. no compression (JFFS2_CMODE_NONE)
      > 2. priority (JFFS2_CMODE_PRIORITY)
        3. size (JFFS2_CMODE_SIZE)
        4. Favour LZO (JFFS2_CMODE_FAVOURLZO)
      choice[1-4?]: 2
  UBIFS file system support (UBIFS_FS) [Y/n/m/?] y
    Advanced compression options (UBIFS_FS_ADVANCED_COMPR) [N/y/?] (NEW)
</CUT>

How do I reach @Annick ??

for contact me
lok your messages

you're not really building OpenWrt anymore, but the vendor's fork of OpenWrt. If they have a forum, you might get better help there.

Or you could ask John Crispin if he is able to make a PR to add this router to Openwrt which would make things easier going forward.

1 Like

Is there a procedure for de-bricking these types of devices that I can follow should I brick one?
I think I want to dare flash one that I am using for testing.

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=59f0a0fd839e239987ca14dcefe19717aaa71cd0

This is a similar AP, and it may work or not work, but chances the instructions are probably similar.

I messaged you privately.

i have nothing found in my Orange mailbox , only in forum messages