Qualcommax NSS Build

That paths I gave with wildcards is meant for you to use tab completion or replace with your own.

You need to untar the sysupgrade.bin file and then use unsquashfs to extract the base filesystem root.

tar xf bin/targets/qualcommax/ipq807x/openwrt-qualcommax-ipq807x-arcadyan_aw1000-squashfs-sysupgrade.bin
unsquashfs -d sysupgrade sysupgrade-arcadyan_aw1000/root
cd sysupgrade

Currently my build fails with binutils 2.43.1

/usr/bin/ld: skipping incompatible /home/debian/openwrt-ipq-QNAP/staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
/usr/bin/ld: skipping incompatible /home/debian/openwrt-ipq-QNAP/staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/lib/libgcc_s.so.1 when searching for libgcc_s.so.1
ccache /home/debian/openwrt-ipq-QNAP/staging_dir/host/bin/gcc -DHAVE_CONFIG_H -I.  -I. -I. -I../bfd -I./../bfd -I./../include -DLOCALEDIR="\"/home/debian/openwrt-ipq-QNAP/staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/share/locale\"" -Dbin_dummy_emulation=bin_vanilla_emulation  -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144  -I/home/debian/openwrt-ipq-QNAP/staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include -pthread -O2 -I/home/debian/openwrt-ipq-QNAP/staging_dir/host/include      -MT readelf.o -MD -MP -MF .deps/readelf.Tpo  -c -o readelf.o ./readelf.c
In file included from ../../../../staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include/sys/types.h:70,
                 from ./sysdep.h:26,
                 from ./readelf.c:43:
../../../../staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include/endian.h: In function '__bswap32':
../../../../staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include/endian.h:26:32: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   26 |         return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
      |                          ~~~~~~^~~~~~~
../../../../staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include/endian.h:26:48: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   26 |         return __x>>24 | __x>>8&0xff00 | __x<<8&0xff0000 | __x<<24;
      |                                          ~~~~~~^~~~~~~~~
../../../../staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include/endian.h: In function '__bswap64':
../../../../staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/include/endian.h:31:30: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   31 |         return __bswap32(__x)+0ULL<<32 | __bswap32(__x>>32);
      |                ~~~~~~~~~~~~~~^~~~~
./readelf.c: In function 'fseek64':
./readelf.c:379:3: error: unknown type name 'off64_t'; did you mean 'off_t'?
  379 |   off64_t o = offset;
      |   ^~~~~~~
      |   off_t
./readelf.c:385:10: warning: implicit declaration of function 'fseeko64'; did you mean 'fseek64'? [-Wimplicit-function-declaration]
  385 |   return fseeko64 (stream, o, whence);
      |          ^~~~~~~~
      |          fseek64
make[8]: *** [Makefile:1937: readelf.o] Error 1
make[8]: Leaving directory '/home/debian/openwrt-ipq-QNAP/build_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/binutils-2.43.1/binutils'
make[7]: *** [Makefile:1443: all-recursive] Error 1
make[7]: Leaving directory '/home/debian/openwrt-ipq-QNAP/build_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/binutils-2.43.1/binutils'
make[6]: *** [Makefile:886: all] Error 2
make[6]: Leaving directory '/home/debian/openwrt-ipq-QNAP/build_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/binutils-2.43.1/binutils'
make[5]: *** [Makefile:4099: all-binutils] Error 2
make[5]: Leaving directory '/home/debian/openwrt-ipq-QNAP/build_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/binutils-2.43.1'
make[4]: *** [Makefile:1028: all] Error 2
make[4]: Leaving directory '/home/debian/openwrt-ipq-QNAP/build_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/binutils-2.43.1'
make[3]: *** [Makefile:120: /home/debian/openwrt-ipq-QNAP/build_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/binutils-2.43.1/.built] Error 2
make[3]: Leaving directory '/home/debian/openwrt-ipq-QNAP/toolchain/binutils'
time: toolchain/binutils/compile#2.74#1.07#3.80
    ERROR: toolchain/binutils failed to build.
make[2]: *** [toolchain/Makefile:93: toolchain/binutils/compile] Error 1
make[2]: Leaving directory '/home/debian/openwrt-ipq-QNAP'
make[1]: *** [toolchain/Makefile:89: /home/debian/openwrt-ipq-QNAP/staging_dir/toolchain-aarch64_cortex-a53_gcc-14.2.0_musl/stamp/.toolchain_compile] Error 2
make[1]: Leaving directory '/home/debian/openwrt-ipq-QNAP'
make: *** [/home/debian/openwrt-ipq-QNAP/include/toplevel.mk:248: world] Error 2

have you did the make dirclean?

No. Just make target/linux/clean package/cleanup and then make.

Works here

1 Like

i had to do a distclean

Will try it because dirclean doesn't succeed either.

After distclean still fails with

make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/flock'
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/flock'
time: tools/flock/compile#0.05#0.05#0.09
make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/libdeflate'
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/libdeflate'
time: tools/libdeflate/compile#0.06#0.05#0.10
make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/zstd'
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/zstd'
time: tools/zstd/compile#0.05#0.07#0.11
make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/sed'
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/sed'
time: tools/sed/compile#0.09#0.09#0.16
make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/patch'
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/patch'
time: tools/patch/compile#0.06#0.06#0.11
make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/tar'
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/tar'
time: tools/tar/compile#0.07#0.05#0.11
make[3]: Entering directory '/home/debian/openwrt-ipq-Asus/tools/ninja'
cd /home/debian/openwrt-ipq-Asus/build_dir/host/ninja-1.11.1 && CXX="/home/debian/openwrt-ipq-Asus/staging_dir/host/bin/g++" CXXFLAGS="-O2 -I/home/debian/openwrt-ipq-Asus/staging_dir/host/include  -I/home/debian/openwrt-ipq-Asus/staging_dir/host/include " LDFLAGS="-L/home/debian/openwrt-ipq-Asus/staging_dir/host/lib " /home/debian/openwrt-ipq-Asus/staging_dir/host/bin/python3 configure.py --bootstrap --verbose
bash: line 1: /home/debian/openwrt-ipq-Asus/staging_dir/host/bin/python3: No such file or directory
make[3]: *** [Makefile:40: /home/debian/openwrt-ipq-Asus/build_dir/host/ninja-1.11.1/.built] Error 127
make[3]: Leaving directory '/home/debian/openwrt-ipq-Asus/tools/ninja'
time: tools/ninja/compile#0.05#0.05#0.08
    ERROR: tools/ninja failed to build.
make[2]: *** [tools/Makefile:231: tools/ninja/compile] Error 1
make[2]: Leaving directory '/home/debian/openwrt-ipq-Asus'
make[1]: *** [tools/Makefile:227: /home/debian/openwrt-ipq-Asus/staging_dir/host/stamp/.tools_compile_nyyynyynnnyyyynynyyyyyyynyyynynyynnynnyyyyyyyyyyyyyyyyyynynnyyyyynyyy] Error 2
make[1]: Leaving directory '/home/debian/openwrt-ipq-Asus'
make: *** [/home/debian/openwrt-ipq-Asus/include/toplevel.mk:248: world] Error 2

@rmandrad
What binutils version do you use?
Will try with binutils 2.42.
It compiled with 2.42 and then with 2.43.1.

general tips for build errors:
a) if running inside container, set export FORCE_UNSAFE_CONFIGURE=1 if running as root.
b) use make V=s -j1 (with nproc=1) for troubleshooting, so when it fails you know exact error. in general, you may have to re-run same original make command few times for issues to go away

this is really helpful. Because of unsquashfs I am able to play and identify my issue without actually testing it to the modem. The reason I am not seeing package I have added on menuconfig is that I pressed space instead of Y tagging it as "M" instead of "*". All good now ! Thanks alot @qosmio

1 Like

Glad to hear!

You can also make use of ./scripts/diffconfig.sh to output all the config changes you've made that are NOT the default configuration. I use that as the basis for creating config seed files.

Another thing I would HIGHLY recommend doing is making use of build environments so you can easily track config changes to .config and any custom files in the files directory. It also allows you to have multiple environments so you can build for multiple devices without having to manually backup and restore.

Example

❯ ./scripts/env new mx4300-1
Do you want to clone the current environment? (y/N): y                    
Switched to a new branch 'mx4300-1'

Then run menuconfig and make some changes, and check to see what you've changed.

❯ ./scripts/env diff
diff --git a/.config b/.config
index b37629a..f60da33 100644
--- a/.config
+++ b/.config
@@ -346,6 +346,7 @@ CONFIG_IPV6=y
# CONFIG_NO_STRIP is not set
# CONFIG_USE_STRIP is not set
CONFIG_USE_SSTRIP=y
+# CONFIG_STRIP_KERNEL_EXPORTS is not set
# CONFIG_USE_MKLIBS is not set

If everything looks good, save your changes.

❯ ./scripts/env save

Or revert

❯ ./scripts/env revert

It's pretty much just a wrapper script that moves your config and custom files into a folder called env and version controls it with git. So you can cd to that directory and run any git commands if needed.

6 Likes

Are your 10G ports working after the latest commits?
I get this error

kern.info kernel: [    4.252631] dp1: ppe offload disabled: 0 for macid 1
kern.info kernel: [    4.256143] dp1: Switch attached to macid 1 status: 0
kern.info kernel: [    4.459752] Qualcomm QCA8075 90000.mdio-1:10: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:10, irq=POLL)
kern.info kernel: [    4.460753] dp2: ppe offload disabled: 0 for macid 2
kern.info kernel: [    4.468644] dp2: Switch attached to macid 2 status: 0
kern.info kernel: [    4.549282] Qualcomm QCA8075 90000.mdio-1:11: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:11, irq=POLL)
kern.info kernel: [    4.550245] dp3: ppe offload disabled: 0 for macid 3
kern.info kernel: [    4.558178] dp3: Switch attached to macid 3 status: 0
kern.info kernel: [    4.639278] Qualcomm QCA8075 90000.mdio-1:12: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:12, irq=POLL)
kern.info kernel: [    4.640235] dp4: ppe offload disabled: 0 for macid 4
kern.info kernel: [    4.648171] dp4: Switch attached to macid 4 status: 0
kern.info kernel: [    4.729284] Qualcomm QCA8075 90000.mdio-1:13: attached PHY driver (mii_bus:phy_addr=90000.mdio-1:13, irq=POLL)
kern.info kernel: [    4.730216] dp5: ppe offload disabled: 0 for macid 5
kern.info kernel: [    4.738178] dp5: Switch attached to macid 5 status: 0
kern.err kernel: [    4.761047] nss-dp 3a001800.dp5 10g-1 (uninitialized): failed to connect to phy device
kern.warn kernel: [    4.761103] nss-dp: probe of 3a001800.dp5 failed with error -14
kern.info kernel: [    4.767948] dp6-syn: ppe offload disabled: 0 for macid 6
kern.info kernel: [    4.773686] dp6-syn: Switch attached to macid 6 status: 0
kern.err kernel: [    4.796279] nss-dp 3a007000.dp6-syn 10g-2 (uninitialized): failed to connect to phy device
kern.warn kernel: [    4.796319] nss-dp: probe of 3a007000.dp6-syn failed with error -14
1 Like

yes they are fine ... note that i haven't changed the firmware load of the aquantia from the default... ignore this

actually ... just applied the latest and have the same problem

[    5.053345] nss-dp 3a001800.dp5 10g-1 (uninitialized): failed to connect to phy device
[    5.053418] nss-dp: probe of 3a001800.dp5 failed with error -14

in spite of

[    2.456244] ssdk_dt_parse_interrupt[941]:INFO:intr-gpio does not exist
[    2.513514] aquantia_phy_api_ops_init[1485]:INFO:qca probe aquantia phy driver succeeded!

1 Like

maybe the culprit is https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=cb2a11f49c989d46bd366e52deac529e33118ce4

2 Likes

I can confirm this commit also break 10gb aqr113c port on nbg7815.

1 Like

yes can confirm - revert of that commit brought back 10g

1 Like

Let's ping @daniel then.
Would you take care of this.
I reverted that commit too and 10G ports work again.

Now that's a handy tool for the toolbox. Great info ! ty

2 Likes

hello anybody able to connect qmi or quectel cellular protocol with nss 11.4 ? I am unable to connect with any of protocol. Thinking it was a sim issue, I have loaded my previous non nss build and able to connect without issue. I can see on this build its connecting to wwan0_1 instead of wwan0 device

You can post your questions in this thread:

I'm currently running nss 11.4 with quectel cellular proto without any issues.
Based on the latest commits from qosmio

1 Like

What protocol are you using to connect? Any changes needed or it work as is.

Im using quectel cellular and / or QMI

Do I need to change anything for me to connect?