Qualcommax NSS Build

My machines are very old and slow. Interested.

I will push the PR once verified that all works, but until then, if you want, simply add this file to the branch you want, modifying the packages you want installed (this is a sample for my device, so I'm sure you need to change some of them):

When pushing the branch to Github, it will build the firmware, it will take a little more than 2 hours usually, but it depends.

1 Like

Thanks. Need to get familiar to these actions. My mahcine builds a single image 5 ... 8 hours. The whole env takes for ever...

Take into account that I'm trying to figure why the NSS build fails, so the sample pointed is not 100% valid. You can generate your .config by yourself too and upload it with your branck.

It seems my build fails for some code into the patch: 0605-v5.15-qca-add-mcs-support.patch

/home/runner/work/openwrt/openwrt/build_dir/target-mips_24kc_musl/linux-ath79_generic/qca-mcs-2022-03-16-dd8a438/mc_osdep.h:27:16: error: implicit declaration of function 'br_pass_frame_up'; did you mean 'os_br_pass_frame_up'? [-Werror=implicit-function-declaration]
   27 |         return br_pass_frame_up(skb);
      |                ^~~~~~~~~~~~~~~~
      |                os_br_pass_frame_up
cc1: all warnings being treated as errors

Some idea of what this is failing? Maybe I need to include something more or change some build parameter?

you are not using ipq807x it seems ...

wild guess check if CONFIG_PACKAGE_bridge is configured ...

Yes, that is what I thought seeing the error, but in theory I'm building IPQ807x. I don't know what have happened.

I will check it, thanks!

I've found that @rodriguezst has got the same idea than me. I see that in his github repo he is building from the Github Action like me. With all the NSS packages he has an error too, but he has achieved a build with only some of the NSS packages enabled. I will try to continue from there.

1 Like

checked your logs and had
image

Interesting, you are right, is building the wrong target, but I don't know why. If you look at the beginning of the step, you can see the "creation" of the .config file:

  echo "CONFIG_TARGET_ipq807x_generic=y\n" > .config
  echo "CONFIG_TARGET_ipq807x_generic_DEVICE_xiaomi_ax3600=y\n" >> .config
  echo "CONFIG_TARGET_ALL_PROFILES=y\n" >> .config
  echo "CONFIG_TARGET_PER_DEVICE_ROOTFS=y\n" >> .config
  echo "CONFIG_TARGET_ROOTFS_INITRAMFS=y\n" >> .config
  echo "CONFIG_ALL_NONSHARED=y\n" >> .config
...

I don't know how this ends building the ath79 "carambola2"...

Yes, I was trying to build all the kmods without success. I am getting some errors with some netlink symbols not found:

make[5]: Entering directory '/home/runner/work/openwrt/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/linux-5.15.93'
4062
  SYNC    include/config/auto.conf.cmd
4063
*
4064
* Restart config...
4065
*
4066
*
4067
* Core Netfilter Configuration
4068
*
4069
Netfilter ingress support (NETFILTER_INGRESS) [Y/n/?] y
4070
Netfilter NFNETLINK interface (NETFILTER_NETLINK) [M/y/?] m
4071
Netfilter base hook dump support (NETFILTER_NETLINK_HOOK) [N/m/?] n
4072
Netfilter NFACCT over NFNETLINK interface (NETFILTER_NETLINK_ACCT) [N/m/y/?] n
4073
Netfilter NFQUEUE over NFNETLINK interface (NETFILTER_NETLINK_QUEUE) [N/m/y/?] n
4074
Netfilter LOG over NFNETLINK interface (NETFILTER_NETLINK_LOG) [N/m/y/?] n
4075
Netfilter OSF over NFNETLINK interface (NETFILTER_NETLINK_OSF) [N/m/y/?] n
4076
Netfilter connection tracking support (NF_CONNTRACK) [M/n/y/?] m
4077
Syslog packet logging (NF_LOG_SYSLOG) [M/y/?] m
4078
Connection mark tracking support (NF_CONNTRACK_MARK) [Y/n/?] y
4079
Connection tracking zones (NF_CONNTRACK_ZONES) [Y/n/?] y
4080
Supply CT list in procfs (OBSOLETE) (NF_CONNTRACK_PROCFS) [Y/n/?] y
4081
Connection tracking events (NF_CONNTRACK_EVENTS) [Y/n/?] y
4082
Connection tracking timeout (NF_CONNTRACK_TIMEOUT) [N/y/?] n
4083
make[7]: *** [scripts/kconfig/Makefile:77: syncconfig] Error 1
4084
make[6]: *** [Makefile:621: syncconfig] Error 2
4085
Makefile:718: include/config/auto.conf.cmd: No such file or directory
4086
make[5]: *** [Makefile:741: include/config/auto.conf.cmd] Error 2
4087
Connection tracking extension for dscp remark target (NF_CONNTRACK_DSCPREMARK_EXT) [N/y/?] (NEW) make[5]: Leaving directory '/home/runner/work/openwrt/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/linux-5.15.93'
4088
make[4]: Leaving directory '/home/runner/work/openwrt/openwrt/target/linux/ipq807x'
4089
make[3]: Leaving directory '/home/runner/work/openwrt/openwrt/target/linux'
4090
make[4]: *** [Makefile:22: /home/runner/work/openwrt/openwrt/build_dir/target-aarch64_cortex-a53_musl/linux-ipq807x_generic/linux-5.15.93/.modules] Error 2
4091
make[3]: *** [Makefile:11: compile] Error 2

If I only choose the kmods I need most (VLAN, PPPoE and GRE) there are no build errors:

I tried with your minimal modules version, as you say it build, but something was not right. The clients have problems to connect to internet. Some web pages didn't load. Not too sure about the reason.

Has your build added qca-nss-dp?

It seems that yes:

CONFIG_DEFAULT_kmod-qca-nss-dp=y

Same here. If you find the right combination for the Github Action let me know. I will keep trying too.

Have a look at this fork from @AgustinLorenzo

He has changed some of the makefiles from the NSS feed to fix some compilation issues

3 Likes

I see he is building based on a full .config file and not "echoing" the basic elements. But it has the same errors than me, the bluetooth one building all the IPQ807x devices.

He is trying to fix the issues, so it has more knowledge in C than me :wink: I will keep an eye on it. Thanks!

1 Like

Hi boys,

I have made some changes to fix the compilation errors in the NSS, I am reviewing the error that it gives when compiling with kmod-bluetooth.

In the event that it gives me the same compilation error again, I will only leave support for Xiaomi AX3600 and eliminate the rest.

Regards, Agustin

1 Like

Hi for those using mwan3 - I am compiling ECM with the following ECM flags

ECM_MAKE_OPTS:=ECM_IPV6_ENABLE=y
ECM_MAKE_OPTS+=ECM_FRONT_END_NSS_ENABLE=y \
                ECM_FRONT_END_SFE_ENABLE=n \
                ECM_NON_PORTED_SUPPORT_ENABLE=y \
                ECM_INTERFACE_BOND_ENABLE=n \
                ECM_INTERFACE_IPSEC_ENABLE=n \
                ECM_INTERFACE_PPTP_ENABLE=n \
                ECM_INTERFACE_PPPOE_ENABLE=y \
                ECM_INTERFACE_L2TPV2_ENABLE=n \
                ECM_INTERFACE_GRE_TAP_ENABLE=n \
                ECM_INTERFACE_GRE_TUN_ENABLE=n \
                ECM_INTERFACE_SIT_ENABLE=n \
                ECM_INTERFACE_TUNIPIP6_ENABLE=n \
                ECM_INTERFACE_RAWIP_ENABLE=y \
                ECM_INTERFACE_VLAN_ENABLE=y \
                ECM_INTERFACE_VXLAN_ENABLE=y \
                ECM_INTERFACE_MACVLAN_ENABLE=y \
                ECM_CLASSIFIER_MARK_ENABLE=y \
                ECM_CLASSIFIER_DSCP_ENABLE=n \
                ECM_CLASSIFIER_PCC_ENABLE=n \
                ECM_CLASSIFIER_MSCS_ENABLE=y \
                ECM_CLASSIFIER_NL_ENABLE=n \
                ECM_BAND_STEERING_ENABLE=n \
                ECM_OPENWRT_SUPPORT=y

note the ECM_INTERFACE_MACVLAN_ENABLE=y as the mwan3 interfaces are using veth/macvlan devices

2 Likes

OK I've built with all modules. You can sysupgrade from Official and vice versa with your settings.
NSS Builds

5 Likes

Does this work on a stock partition layout? Thanks.