I bought it used and by the look of the two cal data files which were different. My guess previous owner was "playing" with the router and corrupted calibration data and did not do a good job of restoring it.
@egorenar This has bene happening for a few months now, but for whatever reason, AirPlay no longer works. I don't know if the patches you made would affect this but I simply cannot get any device on our network to AirPlay anymore.
Also every now and then, when I compile from your fork, it is failing. I nuke the local repo and attempt to recompile but it fails when I change the device type to the R9000.
I only want this to work for all other R9000 users and if there is anything we can do to get it officially supported, I will try and do! Thank you so much for all the work you have done and the two years of support you have given for this device! I cannot express how thankful I am to have gottten so much time out of my R9000 and the applications I am able to run, thanks to you!
No idea what you mean by AirPlay, but it is probably an application protocol.
My patches do not deal with it.
I suggest looking into packages that provide/use it.
Has anyone here been able to get an SFP optical module to the SFP cage on this device?
Note - there are no issues when using a DAC cable.
I have struggled with Skylane Optics SFP module for a while. I am using eth0 as WAN, when the SFP module is connected, the RX counter remains stuck at 0 bytes, but the TX counter increments. No DHCP/IP assignment when this occurs. In Sys logs, eth0 appears to have a link
[ 31.299710] al_eth_drv: al_eth_lm_link_detection: New SFP mode detected AL_ETH_LM_MODE_DISCONNECTED -> AL_ETH_LM_MODE_1G
[ 31.311961] al_eth 0000:00:00.0 eth0: al_eth_up
[ 31.316552] al_eth_drv: configured MAC to SGMII mode:
[ 31.321610] al_eth_drv: eth [al_eth_0]: set auto negotiation to enable
[ 31.328883] al_eth 0000:00:00.0 eth0: using MSI-X per Queue interrupt mode
[ 31.352024] al_eth_drv: al_eth_lm_link_establish: link up with static parameters
[ 31.359421] al_eth 0000:00:00.0 eth0: al_eth_link_status_task link up
[ 31.365908] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
The SFP module works on stock R9000 fw. With OpenWrt installed, the only way to get the SFP module to work and obtain an IP is to hookup a DAC cable to a Netgear switch with 2 10G SFP+ ports. The DAC cable from R9000 goes to one of the SFP ports on the switch and the SFP module connected to other SFP port on the switch.
@egorenar any suggestions would be greatly appreciated.
Haven't tried an optical module in the R9000 yet, but have used a 10Gtek 10G Base-T using a Cat 6 cable without any issues. I do have an FS.com GPON SFP which I could try, but I don't think it's the same type of module you're using there. The R9000 is now just an AP for me and backup router to my DEC2750 which houses both the 10Gtek copper and GPON optical SFP's.
Hi,
I'm a newbie here.
Thanks @dentillozie for your img release, thx a lot to egorenar for all his amazing work and also to @NotANewNick and AnthonyWBarone for his scripts
@dentillozie: I used your config file as a base for mine.
So, if it can help some newbies like me , I've made my first binary image for r9000 based on latest sources from branch netgear-r9000 (24 april 2023), I used this script that I could find in this forum , and I've slightly modified it:
I've used Ubuntu 22.04 to run this build script:
#!/bin/sh
# build_openwrt_r9000.sh
#1) first install dev env on ubuntu --> https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem#debianubuntu
#2) run this script below
# init time counter
SECONDS=0
now=`date +"%Y-%m-%d-%H_%M_%S"`
echo "${now}"
# choose where to build openWrt
myconfig="${HOME}/config_alpine_r9000_xav"
buildRoot="${HOME}/openwrt_build"
mkdir -p "${buildRoot}"
cd "${buildRoot}"
# download openwrt build system for R9000
git clone https://github.com/egorenar/openwrt.git
cd "${buildRoot}/openwrt"
git fetch
git switch netgear-r9000
# update / install packages from feeds
echo "$(cat feeds.conf.default | sed -E s/'^#src-git targets '/'src-git targets '/)" > feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a
./scripts/feeds install -a
# set GNU packages to download source from faster mirrors
echo "$(cat scripts/download.pl | sed -zE s/'(elsif \(\$mirror \=\~ \/\^\\\@GNU\\\/\(\.\+\)\$\/\) \{[^p]+push \@mirrors\, )[^\}]+\}'/'\1"https:\/\/gnu.mirror.constant.com\/$1"\n\t}'/)" > scripts/download.pl
# restore config and backup previous one
if test -f "$myconfig"; then
cp "${myconfig}" .config
echo "${myconfig} copied to .config"
cp "${myconfig}" config-backup-${now}
fi
# configure build
make defconfig
make menuconfig
#save config
./scripts/diffconfig.sh > "${myconfig}"
# reinit time counter (if no error before, we restart time count from here)
SECONDS=0
# download and check source code for packages
# note: eBPF programs like qosify and bridger will fail to download here
make -k -j$(nproc) download
make -k -j$(nproc) check
# build toolchain
make -j$(nproc) -k V=sc prepare_kernel_conf
# re-run download and check to get any missing ones
# eBPF programs like qosify and bridger will successfully download now
make -k -j$(nproc) download
make -k -j$(nproc) check
# build kernel
make -j$(nproc) -k V=sc prepare
# build packages and final firmware image
make -j$(nproc) -k V=sc
make -f Makefile.aperl inst_perl MAP_TARGET=perl
make -f Makefile.aperl map_clean
#display time elapsed to build
if (($SECONDS>3600)) ; then
hours=$((SECONDS/3600))
minutes=$(((SECONDS%3600)/60))
seconds=$(((SECONDS%3600)%60))
echo "build completed in $hours hour(s), $minutes minute(s) and $seconds second(s)"
elif (($SECONDS>60)) ; then
minutes=$(((SECONDS%3600)/60))
seconds=$(((SECONDS%3600)%60))
echo "build completed in $minutes minute(s) and $seconds second(s)"
else
echo "build completed in $SECONDS seconds"
fi
read -p "Press any key to quit..."
#end of script
I've uploaded my work to share this script, my build config file, and the IMG files; here:
https://we.tl/t-4yInsCQdDn (wetransfer link),
7zip password is:
openwrt
7zip content:
Thank you everyone for your support!
Following my previous post
I couldn't run the 60Ghz wifi (Wilocity) , I don't know why (but I don't use the 60 Ghz anyway)
I would like to set up a link aggregation trunk, but I don't know if it's possible, I've searched in this forum but I couldn't figure out if it's possible or not with R9000
(I have a Synology NAS supporting 802.3AD with 2 ETH ports)
(I've added bondlink package in config)
My NAS is plugged here:
-
Should I add a VLAN to separate the 2 ETH ports where my NAS is plugged in?
-
if I add interface: link aggregation, should I set the local IP address of the NAS here ?
-slave interface should be the new interface associated to a new vlan where NAS is?
BTW, I've noticed than on Rear ports 1 & 2, there is "Aggregate":
--> Is there a physical restriction that force to ports 1 & 2 only for link aggregation? (or, openwrt can bypass this physical restriction, if any?)
Update 28 april:
something is weird:
I'm sure that when I unplugged my PC ethernet port from R9000, and PC was connected to WiFi, I could see the plug disappear on switch 0 (and re appear when I plug it back)
maybe due to some changes I've made in Switch config with Luci, It's now on switch 1 that I can see the PC ETH port unplugged (Port is LAN 5), where as LAN 6 and LAN 1 are plugged to my nas
on this screenshot, but: On the R9000 rear ports, my Nas is plugged on physical ports 1 and 2, and my PC on port 3... There is a mismatch, I don't understand why neither (and I don't understand why there is a need for 2 switches with both Lan ports (what does mean to have 2 switches with the same ports on this router ?..) -->after searching in the posts; @egorenar already answered this: Netgear X10 (R9000) - #52 by egorenar
Hi @egorenar , I read a lot of posts in this forum to try to understand OpenWrt on R9000
As far I understand, I need to patch alpine-netgear.dtsi to get link aggregation trunk to work again.
Then if I don't want to get stuck, I need to patch also target/linux/alpine/base-files/etc/board.d/02_network and then use factory fw flash. (as I don't know how to use the other option that is to connect with serial mode to patch after upgrade)
Could you please tell me what values should I patch in 02_network file?
I can figure out I have to update
ucidef_add ...
but I don't want to make a mistake.
I would like to use physical LAN ports 1 and 2 for LACP (for my 2 eth LACP ports NAS) and other LAN ports for "normal" use (for my computer, ...)
[@TempestJunior did you finally implement this solution proposed by @egorenar for Link aggregation ?]
That'll be a bit of a headache, why not just use eth0 (SFP+) port instead?
-
you mean use SFP+ port for 10GB connection and not use LACP?
or, you mean use ETH0 port in different manner ? my current ETH0 is unmanaged
-
Maybe because I didn't install kmod-sfp? (I've put all compiled packages on my nas webserver as a custom repository) (btw I would like to add all packages in my custom repo, not only those that I used for compiling firmware, maybe I should set "M" to all packages when I run make defconfig /menuconfig, so they can all appear in my package folder ?)
- Anyway, I tried to setup SFP also with official stock netgear firmware and it didn't work neither, I guess my sfp adapter is not compatible, (I use the one from my previous Internet provider), as it was not recognized, and my french isp , SFR, maybe has a custom setup, which I don't know how to implement (I have a dedicated ONT box before the router, and in the official ISP router, there is a mention to a fiber password (that I can see in the origin router interface), but I don't know how to handle it in Openwrt...
note: Link aggregation I want to implement between openwrt R9000 and my NAS is more for testing purposes (for fun )
- Anyway , maybe I could put PORT 1 (LAN2) and PORT 2 (LAN1) from Master Switch0 in dedicated VLAN and then use this VLAN in a link aggregration network device? (Do you know if it can work and how to implement that?) so I would not need to modify kernel code then ..?
[isn't it already the case? I assume that current config is this one (I could not see a new graph after this commit mentioned here: Netgear X10 (R9000) - #612 by egorenar
It looks like LAN1 and LAN2 are the only LAN ports on MASTER Switch 0, so why would not LACP work directly on it?
Thanks for your help
eth0 is the SFP port, with kmod sfp installed, you have to assign eth0 to the lan bridge in Devices menu.
It's very easy to create 802.1q VLANs on the SFP ports, achievable on the GUI.
Possible to assign the ports on the master switch to VLANs but I've had no success with VLANs on the slave switch - you'll find more information on this thread.
You'll need to edit /etc/config/network in order to get VLANs working on the master switch, the example snippet shown below adds the first and second switch ports to VLAN 100 and 150 respectively.
The switch menu does not appear to work the last time I checked.
config switch_vlan
option device 'switch0'
option vlan '100'
option ports '0t 2 3t'
option vid '100'
config switch_vlan
option device 'switch0'
option vlan '150'
option ports '0t 1 3t'
option vid '150'
Thx!
but the nas fails to connect 802.3ad
but in the kernel log:
[ 6869.190791] bonding: bond-LACP is being created...
[ 6869.203029] br-lan: port 4(eth1.100) entered disabled state
[ 6870.212723] bond-LACP: (slave eth1.100): Error: Device is in use and cannot be enslaved
[ 6870.220836] bond-LACP: **option slaves: unable to set because the bond device is up**
[ 6870.230564] br-lan: port 4(eth1.100) entered blocking state
[ 6870.236146] br-lan: port 4(eth1.100) entered forwarding state
[ 6870.244707] br-lan: port 5(eth1.150) entered disabled state
[ 6871.253954] bond-LACP: (slave eth1.150): **Error: Device is in use and cannot be enslaved**
[ 6871.261993] bond-LACP: option slaves: unable to set because the bond device is up
[ 6871.271142] br-lan: port 5(eth1.150) entered blocking state
[ 6871.276713] br-lan: port 5(eth1.150) entered forwarding state
[ 6871.292624] 8021q: adding VLAN 0 to HW filter on device bond-LACP
[ 6877.548496] ath10k_pci 0001:03:00.0: mac flush vdev 0 drop 0 queues 0x1 ar->paused: 0x0 arvif->paused: 0x0
[ 6985.927074] ath10k_pci 0001:03:00.0: mac flush vdev 0 drop 0 queues 0x1 ar->paused: 0x0 arvif->paused: 0x0
I've set LAN for the LACP interface firewall zone
Should I set ETH1.100 and ETH1.150 as slaves? I4ve tried with both or just 1.150 but I get the same error in the log
Or any idea about his failure?
UPDATE: I forgot to tell you:
I've added the 2 created VLANs in br-lan, I don't know if i should or not..
new try with LACP interface mask set with : 255.255.255.0 instead of 255.255.255.254 (I thought I needed only 2 adresses as my NAS as only 2 ETH ports)
Here is the System Log:
Fri Apr 28 18:43:19 2023 daemon.notice netifd: Interface 'LACP' is setting up now
Fri Apr 28 18:43:19 2023 kern.info kernel: [ 8550.622268] bonding: bond-LACP is being created...
Fri Apr 28 18:43:19 2023 daemon.notice netifd: VLAN 'eth1.100' link is down
Fri Apr 28 18:43:19 2023 kern.info kernel: [ 8550.636173] br-lan: port 2(eth1.100) entered disabled state
Fri Apr 28 18:43:20 2023 daemon.notice netifd: LACP (26141): sh: write error: Resource busy
Fri Apr 28 18:43:20 2023 kern.err kernel: [ 8551.645322] bond-LACP: (slave eth1.100): Error: Device is in use and cannot be enslaved
Fri Apr 28 18:43:20 2023 kern.err kernel: [ 8551.653405] bond-LACP: option slaves: unable to set because the bond device is up
Fri Apr 28 18:43:20 2023 kern.info kernel: [ 8551.662688] br-lan: port 2(eth1.100) entered blocking state
Fri Apr 28 18:43:20 2023 kern.info kernel: [ 8551.668260] br-lan: port 2(eth1.100) entered forwarding state
Fri Apr 28 18:43:20 2023 daemon.notice netifd: VLAN 'eth1.100' link is up
Fri Apr 28 18:43:20 2023 daemon.notice netifd: VLAN 'eth1.150' link is down
Fri Apr 28 18:43:20 2023 kern.info kernel: [ 8551.677435] br-lan: port 3(eth1.150) entered disabled state
Fri Apr 28 18:43:21 2023 daemon.err netdata[4416]: Cannot refresh interface bond-LACP carrier state by reading '/sys/class/net/bond-LACP/carrier'. Stop updating it.
Fri Apr 28 18:43:21 2023 daemon.info netdata[4416]: RRDSET: chart name 'net.bond_LACP' on host 'r9000' already exists.
Fri Apr 28 18:43:21 2023 daemon.info netdata[4416]: RRDSET: chart name 'net_operstate.bond_LACP' on host 'r9000' already exists.
Fri Apr 28 18:43:21 2023 daemon.info netdata[4416]: RRDSET: chart name 'net_mtu.bond_LACP' on host 'r9000' already exists.
Fri Apr 28 18:43:21 2023 kern.err kernel: [ 8552.686074] bond-LACP: (slave eth1.150): Error: Device is in use and cannot be enslaved
Fri Apr 28 18:43:21 2023 kern.err kernel: [ 8552.694141] bond-LACP: option slaves: unable to set because the bond device is up
Fri Apr 28 18:43:21 2023 daemon.notice netifd: LACP (26141): sh: write error: Resource busy
Fri Apr 28 18:43:21 2023 kern.info kernel: [ 8552.703349] br-lan: port 3(eth1.150) entered blocking state
Fri Apr 28 18:43:21 2023 kern.info kernel: [ 8552.708920] br-lan: port 3(eth1.150) entered forwarding state
Fri Apr 28 18:43:21 2023 daemon.notice netifd: VLAN 'eth1.150' link is up
Fri Apr 28 18:43:21 2023 kern.info kernel: [ 8552.725097] 8021q: adding VLAN 0 to HW filter on device bond-LACP
Fri Apr 28 18:43:21 2023 daemon.notice netifd: Interface 'LACP' is now up
Fri Apr 28 18:43:21 2023 daemon.info logread[11370]: Failed to send log data to 192.168.1.16:514 via udp
Fri Apr 28 18:43:21 2023 user.notice firewall: Reloading firewall due to ifup of LACP (bond-LACP)
@TempestJunior I've noticed something,
After I've added your example config
option ports '0t 2 3t'
option ports '0t 1 3t'
It should be port 1 and 2, but log shows port 2 and port 3 ?? I don't understand that point ...
Everybody who wants advanced VLAN tagging on slave switch, might be interested in this: Netgear X10 (R9000) - #522 by egorenar
thx @egorenar
About this, https://forum.openwrt.org/t/netgear-x10-r9000/3913/524?u=xavave
and answer from @TempestJunior:
When I make the suggested changes to:
target/linux/alpine/files/arch/arm/boot/dts/alpine-netgear.dtsi
, all LAN ports (on switch0 and switch1) stop getting DHCP/IP assignment.
I had to go via TFTP to flash a build that does not contain the change.
Could you please provide info about this option you proposed?
patch your target/linux/alpine/base-files/etc/board.d/02_network and then use factory fw flash.
what should I put in this patch, to replace existing 02_network ?
Hi again,
I struggling to compile a new version. I saw you have updated your repo with custom feeds. I could build a fw a few days ago, but it's been hours I try to compile a new one. Every time I have some package failures before the end.
here is an example of errors I get after 60 minutes compiling.
Then I update the config to remove the faulty package and I rebuild again for 60 more minutes!
I'm sure there is a faster way to compile until the end, right?
export CROSS="arm-openwrt-linux-muslgnueabi-" NO_RENAME=1 ; NM="arm-openwrt-linux-muslgnueabi-nm" STRIP="/home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/sstrip -z" STRIP_KMOD="/home/xavier/OPENWRT/openwrt_build/openwrt/scripts/strip-kmod.sh" PATCHELF="/home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/patchelf" /home/xavier/OPENWRT/openwrt_build/openwrt/scripts/rstrip.sh /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova
rstrip.sh: /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova/lib/modules/5.15.109/xt_coova.ko: relocatable
(cd /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova/CONTROL; ( echo "$CONTROL"; printf "Description: "; echo "$DESCRIPTION" | sed -e 's,^[[:space:]]*, ,g'; ) > control; chmod 644 control; ( echo "#!/bin/sh"; echo "[ \"\${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0"; echo "[ -s "\${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_postinst \$0 \$@"; ) > postinst; ( echo "#!/bin/sh"; echo "[ -s "\${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_prerm \$0 \$@"; ) > prerm; chmod 0755 postinst prerm; )
install -d -m0755 /home/xavier/OPENWRT/openwrt_build/openwrt/bin/targets/alpine/generic/packages
/home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/fakeroot /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/bash /home/xavier/OPENWRT/openwrt_build/openwrt/scripts/ipkg-build -m "" /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova /home/xavier/OPENWRT/openwrt_build/openwrt/bin/targets/alpine/generic/packages
Packaged contents of /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova into /home/xavier/OPENWRT/openwrt_build/openwrt/bin/targets/alpine/generic/packages/kmod-ipt-coova_5.15.109+1.6-9.1_arm_cortex-a15_neon-vfpv4.ipk
rm -rf /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova.installed /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova
mkdir -p /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova
mkdir -p /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova/etc/modules.d; ( echo "xt_coova"; ) > /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova/etc/modules.d/ipt-coova;
touch /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova.installed
mkdir -p /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-alpine/stamp
SHELL= flock /home/xavier/OPENWRT/openwrt_build/openwrt/tmp/.root-copy.flock -c 'cp -fpR /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova/. /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-alpine/'
touch /home/xavier/OPENWRT/openwrt_build/openwrt/staexport CROSS="arm-openwrt-linux-muslgnueabi-" NO_RENAME=1 ; NM="arm-openwrt-linux-muslgnueabi-nm" STRIP="/home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/sstrip -z" STRIP_KMOD="/home/xavier/OPENWRT/openwrt_build/openwrt/scripts/strip-kmod.sh" PATCHELF="/home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/patchelf" /home/xavier/OPENWRT/openwrt_build/openwrt/scripts/rstrip.sh /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova
rstrip.sh: /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova/lib/modules/5.15.109/xt_coova.ko: relocatable
(cd /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova/CONTROL; ( echo "$CONTROL"; printf "Description: "; echo "$DESCRIPTION" | sed -e 's,^[[:space:]]*, ,g'; ) > control; chmod 644 control; ( echo "#!/bin/sh"; echo "[ \"\${IPKG_NO_SCRIPT}\" = \"1\" ] && exit 0"; echo "[ -s "\${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_postinst \$0 \$@"; ) > postinst; ( echo "#!/bin/sh"; echo "[ -s "\${IPKG_INSTROOT}/lib/functions.sh" ] || exit 0"; echo ". \${IPKG_INSTROOT}/lib/functions.sh"; echo "default_prerm \$0 \$@"; ) > prerm; chmod 0755 postinst prerm; )
install -d -m0755 /home/xavier/OPENWRT/openwrt_build/openwrt/bin/targets/alpine/generic/packages
/home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/fakeroot /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/host/bin/bash /home/xavier/OPENWRT/openwrt_build/openwrt/scripts/ipkg-build -m "" /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova /home/xavier/OPENWRT/openwrt_build/openwrt/bin/targets/alpine/generic/packages
Packaged contents of /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/ipkg-arm_cortex-a15_neon-vfpv4/kmod-ipt-coova into /home/xavier/OPENWRT/openwrt_build/openwrt/bin/targets/alpine/generic/packages/kmod-ipt-coova_5.15.109+1.6-9.1_arm_cortex-a15_neon-vfpv4.ipk
rm -rf /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova.installed /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova
mkdir -p /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova
mkdir -p /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova/etc/modules.d; ( echo "xt_coova"; ) > /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova/etc/modules.d/ipt-coova;
touch /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova.installed
mkdir -p /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-alpine/stamp
SHELL= flock /home/xavier/OPENWRT/openwrt_build/openwrt/tmp/.root-copy.flock -c 'cp -fpR /home/xavier/OPENWRT/openwrt_build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/coova-chilli-1.6/.pkgdir/kmod-ipt-coova/. /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-alpine/'
touch /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-alpine/stamp/.kmod-ipt-coova_installed
make[3]: Leaving directory '/home/xavier/OPENWRT/openwrt_build/openwrt/feeds/packages/net/coova-chilli'
time: package/feeds/packages/coova-chilli/compile#78.46#7.89#96.13
make[2]: Target 'package/compile' not remade because of errors.
make[2]: Leaving directory '/home/xavier/OPENWRT/openwrt_build/openwrt'
make[1]: *** [package/Makefile:110: /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Target 'world' not remade because of errors.
make[1]: Leaving directory '/home/xavier/OPENWRT/openwrt_build/openwrt'
make: *** [/home/xavier/OPENWRT/openwrt_build/openwrt/include/toplevel.mk:231 : world] Erreur 2
ging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/root-alpine/stamp/.kmod-ipt-coova_installed
make[3]: Leaving directory '/home/xavier/OPENWRT/openwrt_build/openwrt/feeds/packages/net/coova-chilli'
time: package/feeds/packages/coova-chilli/compile#78.46#7.89#96.13
make[2]: Target 'package/compile' not remade because of errors.
make[2]: Leaving directory '/home/xavier/OPENWRT/openwrt_build/openwrt'
make[1]: *** [package/Makefile:110: /home/xavier/OPENWRT/openwrt_build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Target 'world' not remade because of errors.
make[1]: Leaving directory '/home/xavier/OPENWRT/openwrt_build/openwrt'
make: *** [/home/xavier/OPENWRT/openwrt_build/openwrt/include/toplevel.mk:231 : world] Erreur 2
build_openwrt_r9000_2.sh: ligne 20: 6/7 packages built total elapsed:64 minutes and 58 seconds.
I replayed my script many times, but no luck
everytime a new package fails, one after another
1) I'm not sure about packages I can put in config, is there a way to check if the packages are valid?
2) Maybe someone else could share compiled new images built from latest commit from this morning?
BTW here is my updated script I use to compile/build:
#!/bin/bash
#0) this script has to run with bash
#1) install dev env on ubuntu --> https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem#debianubuntu
#1b)
#sudo apt-get install npm
# npm ttab is just to display build status in separate tabs
#1c)
#sudo npm install ttab
totalsteps=7
currentstep=1
now=`date +"%Y-%m-%d-%H_%M_%S"`
echo "${now}"
initseconds=$SECONDS
# opens a new console tab with text
# $1 current seconds
# $2 text to display
# $3 step counter
notifyDuration () {
totalduration=$(($SECONDS-$1))
strTotElapsed="total elapsed:$(($totalduration / 60)) minutes and $(($totalduration % 60)) seconds."
strElapsed= "${3}/${totalsteps} ${2} ${strTotElapsed}"
echo "$strElapsed"
echo -e "\a"
ttab "echo '\"${strElapsed}\"'"
}
duration=$SECONDS
notifyDuration $duration "starting" 0
# choose where to build openWrt
HFOLDER="${HOME}/OPENWRT"
# choose your config file name
myconfig="${HOME}/config_alpine_r9000_xav"
echo "myconfig=${myconfig}"
buildRoot="${HFOLDER}/openwrt_build"
mkdir -p "${buildRoot}"
cd ${buildRoot}
echo "path: buildRoot=${buildRoot}"
# download openwrt build system for R9000
git clone https://github.com/egorenar/openwrt.git
OWRTROOT="${buildRoot}/openwrt"
cd ${OWRTROOT}
echo "path:OWRTROOT=${OWRTROOT}"
# clean compiled binaries and tmp/
make clean
rm -rf tmp/
#echo "cleaned tmp"
git fetch
git switch netgear-r9000
# update / install packages from feeds
echo "$(cat feeds.conf.default | sed -E s/'^#src-git targets '/'src-git targets '/)" > feeds.conf
./scripts/feeds update packages
#./scripts/feeds install -a -p packages
./scripts/feeds install -a
# set GNU packages to download source from faster mirrors
# echo "$(cat ./scripts/download.pl | sed -zE s/'(elsif \(\$mirror \=\~ \/\^\\\@GNU\\\/\(\.\+\)\$\/\) \{[^p]+push \@mirrors\, )[^\}]+\}'/'\1"https:\/\/gnu.mirror.constant.com\/$1"\n\t}'/)" > ./scripts/download.pl
# save current config
NOWFILE="${myconfig}-backup-${now}"
echo "saved config filename=$NOWFILE"
if [ -f "${OWRTROOT}/.config" ]; then
cp "${OWRTROOT}/.config" "${NOWFILE}"
echo "${OWRTROOT}/.config backed up to ${NOWFILE}"
fi
# restore previous config
if [ -f "${myconfig}" ]; then
cp "${myconfig}" "${OWRTROOT}/.config"
echo "$OWRTROOT/.config replaced with ${myconfig}"
fi
notifyDuration $duration "after config" $currentstep
currentstep=$(($currentstep+1))
# configure build
make defconfig
make menuconfig
#save config
./scripts/diffconfig.sh > "${myconfig}"
echo "nb proc=$(nproc)"
# download and check source code for packages
# note: eBPF programs like qosify and bridger will fail to download here
make -k -j$(nproc) download
make -k -j$(nproc) check
notifyDuration $duration "packages sources download check first pass" $currentstep
currentstep=$(($currentstep+1))
# build toolchain
make -j$(nproc) -k V=s prepare_kernel_conf
notifyDuration $duration "toolchain built" $currentstep
currentstep=$(($currentstep+1))
# re-run download and check to get any missing ones
# eBPF programs like qosify and bridger will successfully download now
make -k -j$(nproc) download ; echo -e '\a'
make -k -j$(nproc) check ; echo -e '\a' ; echo -e '\a'
notifyDuration $duration "packages sources built" $currentstep
currentstep=$(($currentstep+1))
# build kernel
make -j$(nproc) -k V=s prepare ; echo -e '\a' ; echo -e '\a'
notifyDuration $duration "kernel built" $currentstep
currentstep=$(($currentstep+1))
# build packages and final firmware image
IGNORE_ERRORS=1 make -j$(nproc) -k V=s ; echo -e '\a' ; echo -e '\a'
notifyDuration $duration "packages built" $currentstep
currentstep=$(($currentstep+1))
make -f Makefile.aperl inst_perl MAP_TARGET=perl ; echo -e '\a'
make -f Makefile.aperl map_clean ; echo -e '\a'
notifyDuration $duration "final firmware image built" $currentstep
currentstep=$(($currentstep+1))
Hi guys,
After a few days of issues when trying to build, I could rebuild a new custom firmware yesterday
If you want to install sysupgrade, it I suggest to install the sysupgrade with unticking keep configuration, and then reload your saved config after upgrade.
I've put the files on my private NAS if you want to test:
zip --> https://xav.avxt.fr:5001/sharing/m0ZXhTCz8
list --> https://openwrt.avxt.fr/openwrt-alpine-generic-netgear-r9000-custom-build-20230511/
and also the custom packages (for imagebuilder/opkg), (more than 800 packages compiled)
zip -->https://xav.avxt.fr:5001/sharing/JeECJybTL
list --> https://openwrt.avxt.fr/snapshots/targets/alpine/generic/packages/
There is also in this folder my config file and the bash scripts I have used for building
Here is the installed packages config:
Summary
CONFIG_TARGET_alpine=y
CONFIG_TARGET_alpine_generic=y
CONFIG_TARGET_alpine_generic_DEVICE_netgear_r9000=y
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_BATMAN_ADV_BATMAN_V=y
CONFIG_BATMAN_ADV_BLA=y
CONFIG_BATMAN_ADV_DAT=y
CONFIG_BATMAN_ADV_MCAST=y
CONFIG_BROKEN=y
CONFIG_BTRFS_PROGS_ZSTD=y
CONFIG_BUILD_LOG=y
CONFIG_BUILD_PATENTED=y
CONFIG_BUSYBOX_CONFIG_DUMPKMAP=y
CONFIG_BUSYBOX_CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_BUSYBOX_CONFIG_FTPD=y
CONFIG_BUSYBOX_CONFIG_HOSTNAME=y
CONFIG_BUSYBOX_CONFIG_INOTIFYD=y
CONFIG_BUSYBOX_CONFIG_LOADKMAP=y
CONFIG_BUSYBOX_CONFIG_LOGIN_SESSION_AS_CHILD=y
CONFIG_BUSYBOX_CONFIG_WHOAMI=y
CONFIG_CCACHE=y
CONFIG_COLLECT_KERNEL_DEBUG=y
CONFIG_DROPBEAR_ECC=y
CONFIG_DROPBEAR_ECC_FULL=y
CONFIG_DROPBEAR_ZLIB=y
CONFIG_IB=y
CONFIG_IB_STANDALONE=y
CONFIG_IMAGEOPT=y
CONFIG_INCLUDE_CONFIG=y
CONFIG_INCLUDE_STATIC_LIBC=y
CONFIG_INCLUDE_STATIC_LIBPTHREAD=y
CONFIG_INCLUDE_STATIC_LIBSTDC=y
CONFIG_INCLUDE_STATIC_LINK_SPEC=y
CONFIG_KERNEL_ARM_PMU=y
CONFIG_KERNEL_BTRFS_FS_POSIX_ACL=y
CONFIG_KERNEL_CIFS_ACL=y
CONFIG_KERNEL_DEBUG_LL=y
CONFIG_KERNEL_DEBUG_LL_UART_NONE=y
CONFIG_KERNEL_DYNAMIC_DEBUG=y
CONFIG_KERNEL_DYNAMIC_FTRACE=y
CONFIG_KERNEL_EARLY_PRINTK=y
CONFIG_KERNEL_ENABLE_DEFAULT_TRACERS=y
CONFIG_KERNEL_EXT4_FS_POSIX_ACL=y
CONFIG_KERNEL_FS_POSIX_ACL=y
CONFIG_KERNEL_FTRACE=y
CONFIG_KERNEL_FTRACE_SYSCALLS=y
CONFIG_KERNEL_FUNCTION_GRAPH_TRACER=y
CONFIG_KERNEL_FUNCTION_PROFILER=y
CONFIG_KERNEL_FUNCTION_TRACER=y
CONFIG_KERNEL_HFSPLUS_FS_POSIX_ACL=y
CONFIG_KERNEL_HFS_FS_POSIX_ACL=y
CONFIG_KERNEL_IRQSOFF_TRACER=y
CONFIG_KERNEL_JFS_POSIX_ACL=y
CONFIG_KERNEL_KPROBES=y
CONFIG_KERNEL_KPROBE_EVENTS=y
CONFIG_KERNEL_NFS_ACL_SUPPORT=y
CONFIG_KERNEL_PERF_EVENTS=y
CONFIG_KERNEL_PREEMPT_TRACER=y
CONFIG_KERNEL_REISER_FS_POSIX_ACL=y
CONFIG_KERNEL_XFS_POSIX_ACL=y
CONFIG_KEXEC_LZMA=y
CONFIG_KEXEC_ZLIB=y
CONFIG_KSMBD_SMB_INSECURE_SERVER=y
CONFIG_LIGHTTPD_CRYPTOLIB_NETTLE=y
CONFIG_LIGHTTPD_PCRE2=y
CONFIG_LIGHTTPD_SSL=y
CONFIG_LIGHTTPD_SSL_SELECT=m
CONFIG_MAKE_TOOLCHAIN=y
CONFIG_NGINX_DAV=y
CONFIG_NGINX_FLV=y
CONFIG_NGINX_HTTP_ACCESS=y
CONFIG_NGINX_HTTP_AUTH_BASIC=y
CONFIG_NGINX_HTTP_AUTH_REQUEST=y
CONFIG_NGINX_HTTP_AUTOINDEX=y
CONFIG_NGINX_HTTP_BROWSER=y
CONFIG_NGINX_HTTP_CACHE=y
CONFIG_NGINX_HTTP_CHARSET=y
CONFIG_NGINX_HTTP_EMPTY_GIF=y
CONFIG_NGINX_HTTP_FASTCGI=y
CONFIG_NGINX_HTTP_GEO=y
CONFIG_NGINX_HTTP_GZIP=y
CONFIG_NGINX_HTTP_GZIP_STATIC=y
CONFIG_NGINX_HTTP_LIMIT_CONN=y
CONFIG_NGINX_HTTP_LIMIT_REQ=y
CONFIG_NGINX_HTTP_MAP=y
CONFIG_NGINX_HTTP_MEMCACHED=y
CONFIG_NGINX_HTTP_PROXY=y
CONFIG_NGINX_HTTP_REAL_IP=y
CONFIG_NGINX_HTTP_REFERER=y
CONFIG_NGINX_HTTP_REWRITE=y
CONFIG_NGINX_HTTP_SCGI=y
CONFIG_NGINX_HTTP_SECURE_LINK=y
CONFIG_NGINX_HTTP_SPLIT_CLIENTS=y
CONFIG_NGINX_HTTP_SSI=y
CONFIG_NGINX_HTTP_SUB=y
CONFIG_NGINX_HTTP_UPSTREAM_HASH=y
CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH=y
CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE=y
CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN=y
CONFIG_NGINX_HTTP_USERID=y
CONFIG_NGINX_HTTP_UWSGI=y
CONFIG_NGINX_HTTP_V2=y
CONFIG_NGINX_PCRE=y
CONFIG_NGINX_STUB_STATUS=y
# CONFIG_OPENSSL_ENGINE is not set
CONFIG_OPENSSL_NO_DEPRECATED=y
# CONFIG_OPENSSL_WITH_ASM is not set
# CONFIG_OPENSSL_WITH_DEPRECATED is not set
# CONFIG_OPENSSL_WITH_IDEA is not set
# CONFIG_OPENSSL_WITH_MDC2 is not set
# CONFIG_OPENSSL_WITH_SEED is not set
# CONFIG_OPENSSL_WITH_WHIRLPOOL is not set
CONFIG_OPENVPN_openssl_ENABLE_DEF_AUTH=y
CONFIG_OPENVPN_openssl_ENABLE_FRAGMENT=y
CONFIG_OPENVPN_openssl_ENABLE_LZ4=y
CONFIG_OPENVPN_openssl_ENABLE_LZO=y
CONFIG_OPENVPN_openssl_ENABLE_MULTIHOME=y
CONFIG_OPENVPN_openssl_ENABLE_PF=y
CONFIG_OPENVPN_openssl_ENABLE_PORT_SHARE=y
CONFIG_OPENVPN_openssl_ENABLE_SMALL=y
CONFIG_OPENVPN_wolfssl=y
CONFIG_OPENVPN_wolfssl_ENABLE_DEF_AUTH=y
CONFIG_OPENVPN_wolfssl_ENABLE_FRAGMENT=y
CONFIG_OPENVPN_wolfssl_ENABLE_LZ4=y
CONFIG_OPENVPN_wolfssl_ENABLE_MULTIHOME=y
CONFIG_OPENVPN_wolfssl_ENABLE_PF=y
CONFIG_OPENVPN_wolfssl_ENABLE_PORT_SHARE=y
CONFIG_OPENVPN_wolfssl_ENABLE_SMALL=y
CONFIG_PACKAGE_NTFS-3G_HAS_PROBE=y
CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE=y
CONFIG_PACKAGE_TAR_BZIP2=y
CONFIG_PACKAGE_TAR_GZIP=y
CONFIG_PACKAGE_TAR_POSIX_ACL=y
CONFIG_PACKAGE_TAR_XATTR=y
CONFIG_PACKAGE_TAR_XZ=y
CONFIG_PACKAGE_TAR_ZSTD=y
CONFIG_PACKAGE_acl=m
CONFIG_PACKAGE_acme-common=y
CONFIG_PACKAGE_adblock=y
CONFIG_PACKAGE_airmon-ng=m
CONFIG_PACKAGE_ar=m
CONFIG_PACKAGE_arp-scan=m
CONFIG_PACKAGE_atop=m
CONFIG_PACKAGE_attendedsysupgrade-common=m
CONFIG_PACKAGE_attr=y
CONFIG_PACKAGE_autoconf=m
CONFIG_PACKAGE_automake=m
CONFIG_PACKAGE_avahi-dbus-daemon=y
# CONFIG_PACKAGE_badblocks is not set
CONFIG_PACKAGE_banip=y
CONFIG_PACKAGE_bash=y
CONFIG_PACKAGE_batctl-default=m
CONFIG_PACKAGE_bc=y
CONFIG_PACKAGE_bcp38=m
CONFIG_PACKAGE_binutils=m
CONFIG_PACKAGE_blkid=m
CONFIG_PACKAGE_block-mount=m
CONFIG_PACKAGE_btrfs-progs=m
CONFIG_PACKAGE_bzip2=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_cfdisk=m
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_chat=m
CONFIG_PACKAGE_cjdns=m
CONFIG_PACKAGE_cni=m
CONFIG_PACKAGE_cni-plugins=m
CONFIG_PACKAGE_comgt=m
CONFIG_PACKAGE_confuse=y
CONFIG_PACKAGE_conmon=m
CONFIG_PACKAGE_containerd=m
CONFIG_PACKAGE_coreutils=y
CONFIG_PACKAGE_coreutils-chroot=y
CONFIG_PACKAGE_coreutils-dd=y
CONFIG_PACKAGE_coreutils-head=y
CONFIG_PACKAGE_coreutils-kill=y
CONFIG_PACKAGE_coreutils-nice=y
CONFIG_PACKAGE_coreutils-printf=y
CONFIG_PACKAGE_coreutils-sha1sum=y
CONFIG_PACKAGE_coreutils-sha224sum=y
CONFIG_PACKAGE_coreutils-sha256sum=y
CONFIG_PACKAGE_coreutils-sha384sum=y
CONFIG_PACKAGE_coreutils-sha512sum=y
CONFIG_PACKAGE_coreutils-sleep=y
CONFIG_PACKAGE_coreutils-sort=y
CONFIG_PACKAGE_coreutils-stat=y
CONFIG_PACKAGE_coreutils-stty=y
CONFIG_PACKAGE_coreutils-tail=y
CONFIG_PACKAGE_coreutils-tee=y
CONFIG_PACKAGE_coreutils-tr=y
CONFIG_PACKAGE_coreutils-uname=y
CONFIG_PACKAGE_coreutils-uptime=y
CONFIG_PACKAGE_coreutils-wc=y
CONFIG_PACKAGE_crconf=m
CONFIG_PACKAGE_dbus=y
CONFIG_PACKAGE_dcwapd=m
CONFIG_PACKAGE_ddns-scripts=y
CONFIG_PACKAGE_ddns-scripts-services=y
CONFIG_PACKAGE_debootstrap=m
CONFIG_PACKAGE_dkjson=m
CONFIG_PACKAGE_dmesg=m
CONFIG_PACKAGE_docker=m
CONFIG_PACKAGE_docker-compose=m
CONFIG_PACKAGE_dockerd=m
CONFIG_PACKAGE_dosfstools=m
CONFIG_PACKAGE_etherwake=y
CONFIG_PACKAGE_ethtool-full=y
CONFIG_PACKAGE_fdisk=m
CONFIG_PACKAGE_findutils-find=y
CONFIG_PACKAGE_findutils-locate=m
CONFIG_PACKAGE_fuse-utils=y
CONFIG_PACKAGE_fuse3-utils=m
CONFIG_PACKAGE_gawk=m
CONFIG_PACKAGE_gcc=m
CONFIG_PACKAGE_git=y
CONFIG_PACKAGE_git-gitweb=m
CONFIG_PACKAGE_git-lfs=y
CONFIG_PACKAGE_glib2=m
CONFIG_PACKAGE_gocryptfs=y
CONFIG_PACKAGE_grep=y
CONFIG_PACKAGE_horst=m
CONFIG_PACKAGE_hostapd=m
CONFIG_PACKAGE_hostapd-mbedtls=m
CONFIG_PACKAGE_hostapd-mini=m
CONFIG_PACKAGE_hostapd-utils=m
CONFIG_PACKAGE_hostapd-wolfssl=m
CONFIG_PACKAGE_htop=m
CONFIG_PACKAGE_i2c-tools=m
CONFIG_PACKAGE_icu=m
CONFIG_PACKAGE_icu-full-data=m
CONFIG_PACKAGE_ip-full=m
CONFIG_PACKAGE_ip6tables-nft=m
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-account=y
CONFIG_PACKAGE_iptables-mod-chaos=y
CONFIG_PACKAGE_iptables-mod-checksum=y
CONFIG_PACKAGE_iptables-mod-cluster=y
CONFIG_PACKAGE_iptables-mod-clusterip=y
CONFIG_PACKAGE_iptables-mod-condition=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-delude=y
CONFIG_PACKAGE_iptables-mod-dhcpmac=y
CONFIG_PACKAGE_iptables-mod-dnetmap=y
CONFIG_PACKAGE_iptables-mod-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-fuzzy=y
CONFIG_PACKAGE_iptables-mod-geoip=y
CONFIG_PACKAGE_iptables-mod-hashlimit=y
CONFIG_PACKAGE_iptables-mod-iface=y
CONFIG_PACKAGE_iptables-mod-ipmark=y
CONFIG_PACKAGE_iptables-mod-ipopt=m
CONFIG_PACKAGE_iptables-mod-ipp2p=y
CONFIG_PACKAGE_iptables-mod-iprange=y
CONFIG_PACKAGE_iptables-mod-ipsec=y
CONFIG_PACKAGE_iptables-mod-ipv4options=y
CONFIG_PACKAGE_iptables-mod-led=y
CONFIG_PACKAGE_iptables-mod-length2=y
CONFIG_PACKAGE_iptables-mod-logmark=y
CONFIG_PACKAGE_iptables-mod-lscan=y
CONFIG_PACKAGE_iptables-mod-lua=y
CONFIG_PACKAGE_iptables-mod-nat-extra=y
CONFIG_PACKAGE_iptables-mod-nflog=y
CONFIG_PACKAGE_iptables-mod-nfqueue=y
CONFIG_PACKAGE_iptables-mod-physdev=y
CONFIG_PACKAGE_iptables-mod-proto=y
CONFIG_PACKAGE_iptables-mod-psd=y
CONFIG_PACKAGE_iptables-mod-quota2=y
CONFIG_PACKAGE_iptables-mod-rpfilter=y
CONFIG_PACKAGE_iptables-mod-rtpengine=y
CONFIG_PACKAGE_iptables-mod-sysrq=y
CONFIG_PACKAGE_iptables-mod-tarpit=y
CONFIG_PACKAGE_iptables-mod-tee=y
CONFIG_PACKAGE_iptables-mod-tproxy=y
CONFIG_PACKAGE_iptables-mod-trace=y
CONFIG_PACKAGE_iptables-mod-u32=y
CONFIG_PACKAGE_iptables-nft=y
CONFIG_PACKAGE_iptaccount=y
CONFIG_PACKAGE_irqbalance=m
CONFIG_PACKAGE_kexec=y
CONFIG_PACKAGE_kexec-tools=m
CONFIG_PACKAGE_kmod-asn1-decoder=y
CONFIG_PACKAGE_kmod-asn1-encoder=y
CONFIG_PACKAGE_kmod-atm=m
CONFIG_PACKAGE_kmod-atmtcp=m
CONFIG_PACKAGE_kmod-batman-adv=m
CONFIG_PACKAGE_kmod-bonding=y
CONFIG_PACKAGE_kmod-br-netfilter=y
CONFIG_PACKAGE_kmod-crypto-arc4=y
CONFIG_PACKAGE_kmod-crypto-authenc=y
CONFIG_PACKAGE_kmod-crypto-cbc=y
CONFIG_PACKAGE_kmod-crypto-chacha20poly1305=m
CONFIG_PACKAGE_kmod-crypto-cts=y
CONFIG_PACKAGE_kmod-crypto-des=y
CONFIG_PACKAGE_kmod-crypto-ecb=y
CONFIG_PACKAGE_kmod-crypto-hw-alpine=y
CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y
CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y
CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y
CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y
CONFIG_PACKAGE_kmod-crypto-md4=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-crypto-sha1=y
CONFIG_PACKAGE_kmod-crypto-sha256=y
CONFIG_PACKAGE_kmod-crypto-test=y
CONFIG_PACKAGE_kmod-crypto-user=y
CONFIG_PACKAGE_kmod-cryptodev=y
CONFIG_PACKAGE_kmod-dax=y
CONFIG_PACKAGE_kmod-dm=y
CONFIG_PACKAGE_kmod-fixed-phy=m
CONFIG_PACKAGE_kmod-fs-exportfs=y
CONFIG_PACKAGE_kmod-fs-ksmbd=y
CONFIG_PACKAGE_kmod-fuse=y
CONFIG_PACKAGE_kmod-gre=m
CONFIG_PACKAGE_kmod-i2c-core=y
CONFIG_PACKAGE_kmod-ifb=y
CONFIG_PACKAGE_kmod-ikconfig=m
CONFIG_PACKAGE_kmod-input-core=y
CONFIG_PACKAGE_kmod-ip6tables=y
CONFIG_PACKAGE_kmod-ipoa=m
CONFIG_PACKAGE_kmod-ipt-account=y
CONFIG_PACKAGE_kmod-ipt-chaos=y
CONFIG_PACKAGE_kmod-ipt-checksum=y
CONFIG_PACKAGE_kmod-ipt-cluster=y
CONFIG_PACKAGE_kmod-ipt-clusterip=y
CONFIG_PACKAGE_kmod-ipt-compat-xtables=y
CONFIG_PACKAGE_kmod-ipt-condition=y
CONFIG_PACKAGE_kmod-ipt-conntrack=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-core=y
CONFIG_PACKAGE_kmod-ipt-debug=y
CONFIG_PACKAGE_kmod-ipt-delude=y
CONFIG_PACKAGE_kmod-ipt-dhcpmac=y
CONFIG_PACKAGE_kmod-ipt-dnetmap=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-filter=y
CONFIG_PACKAGE_kmod-ipt-fuzzy=y
CONFIG_PACKAGE_kmod-ipt-geoip=y
CONFIG_PACKAGE_kmod-ipt-hashlimit=y
CONFIG_PACKAGE_kmod-ipt-iface=y
CONFIG_PACKAGE_kmod-ipt-ipmark=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-ipp2p=y
CONFIG_PACKAGE_kmod-ipt-iprange=y
CONFIG_PACKAGE_kmod-ipt-ipsec=y
CONFIG_PACKAGE_kmod-ipt-ipset=y
CONFIG_PACKAGE_kmod-ipt-ipv4options=y
CONFIG_PACKAGE_kmod-ipt-led=y
CONFIG_PACKAGE_kmod-ipt-length2=y
CONFIG_PACKAGE_kmod-ipt-logmark=y
CONFIG_PACKAGE_kmod-ipt-lscan=y
CONFIG_PACKAGE_kmod-ipt-lua=y
CONFIG_PACKAGE_kmod-ipt-nat=y
CONFIG_PACKAGE_kmod-ipt-nat-extra=y
CONFIG_PACKAGE_kmod-ipt-nat6=m
CONFIG_PACKAGE_kmod-ipt-nflog=y
CONFIG_PACKAGE_kmod-ipt-nfqueue=y
CONFIG_PACKAGE_kmod-ipt-physdev=y
CONFIG_PACKAGE_kmod-ipt-proto=y
CONFIG_PACKAGE_kmod-ipt-psd=y
CONFIG_PACKAGE_kmod-ipt-quota2=y
CONFIG_PACKAGE_kmod-ipt-raw=y
CONFIG_PACKAGE_kmod-ipt-raw6=y
CONFIG_PACKAGE_kmod-ipt-rpfilter=y
CONFIG_PACKAGE_kmod-ipt-sysrq=y
CONFIG_PACKAGE_kmod-ipt-tarpit=y
CONFIG_PACKAGE_kmod-ipt-tee=y
CONFIG_PACKAGE_kmod-ipt-tproxy=y
CONFIG_PACKAGE_kmod-ipt-u32=y
CONFIG_PACKAGE_kmod-iptunnel=m
CONFIG_PACKAGE_kmod-keys-encrypted=y
CONFIG_PACKAGE_kmod-keys-trusted=y
CONFIG_PACKAGE_kmod-l2tp=m
CONFIG_PACKAGE_kmod-ledtrig-activity=y
CONFIG_PACKAGE_kmod-ledtrig-gpio=y
CONFIG_PACKAGE_kmod-ledtrig-oneshot=y
CONFIG_PACKAGE_kmod-ledtrig-transient=y
CONFIG_PACKAGE_kmod-lib-textsearch=y
CONFIG_PACKAGE_kmod-libphy=y
CONFIG_PACKAGE_kmod-macremapper=m
CONFIG_PACKAGE_kmod-mdio-gpio=y
CONFIG_PACKAGE_kmod-mdio-netlink=y
CONFIG_PACKAGE_kmod-mppe=m
CONFIG_PACKAGE_kmod-netlink-diag=y
CONFIG_PACKAGE_kmod-nf-conncount=y
CONFIG_PACKAGE_kmod-nf-conntrack-netlink=y
CONFIG_PACKAGE_kmod-nf-ipt=y
CONFIG_PACKAGE_kmod-nf-ipt6=y
CONFIG_PACKAGE_kmod-nf-ipvs=m
CONFIG_PACKAGE_kmod-nf-nat6=m
CONFIG_PACKAGE_kmod-nf-nathelper-extra=y
CONFIG_PACKAGE_kmod-nf-tproxy=y
CONFIG_PACKAGE_kmod-nfnetlink-log=y
CONFIG_PACKAGE_kmod-nfnetlink-queue=y
CONFIG_PACKAGE_kmod-nft-bridge=y
CONFIG_PACKAGE_kmod-nft-compat=y
CONFIG_PACKAGE_kmod-nft-netdev=y
CONFIG_PACKAGE_kmod-of-mdio=m
CONFIG_PACKAGE_kmod-oid-registry=y
CONFIG_PACKAGE_kmod-phylink=y
CONFIG_PACKAGE_kmod-pppoa=m
CONFIG_PACKAGE_kmod-pppol2tp=m
CONFIG_PACKAGE_kmod-pptp=m
CONFIG_PACKAGE_kmod-random-core=y
CONFIG_PACKAGE_kmod-sched-cake=m
CONFIG_PACKAGE_kmod-sched-connmark=y
CONFIG_PACKAGE_kmod-sched-core=y
CONFIG_PACKAGE_kmod-sctp=y
CONFIG_PACKAGE_kmod-sfp=y
CONFIG_PACKAGE_kmod-sound-core=y
CONFIG_PACKAGE_kmod-tpm=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-udptunnel4=y
CONFIG_PACKAGE_kmod-udptunnel6=y
CONFIG_PACKAGE_kmod-veth=m
CONFIG_PACKAGE_kmod-wireguard=y
CONFIG_PACKAGE_krb5-libs=y
CONFIG_PACKAGE_less=m
CONFIG_PACKAGE_libacl=y
CONFIG_PACKAGE_libapr=m
CONFIG_PACKAGE_libaprutil=m
CONFIG_PACKAGE_libatasmart=m
CONFIG_PACKAGE_libattr=y
CONFIG_PACKAGE_libavahi-dbus-support=y
CONFIG_PACKAGE_libbfd=m
CONFIG_PACKAGE_libbpf=m
CONFIG_PACKAGE_libbz2=y
CONFIG_PACKAGE_libcap=y
CONFIG_PACKAGE_libcap-ng=m
CONFIG_PACKAGE_libcares=y
CONFIG_PACKAGE_libcbor=m
CONFIG_PACKAGE_libctf=m
CONFIG_PACKAGE_libdaemon=y
CONFIG_PACKAGE_libdb47=y
CONFIG_PACKAGE_libdbi=m
CONFIG_PACKAGE_libdbus=y
CONFIG_PACKAGE_libdcwproto=m
CONFIG_PACKAGE_libdcwsocket=m
CONFIG_PACKAGE_libdevmapper=m
CONFIG_PACKAGE_libdw=m
CONFIG_PACKAGE_libelf=m
CONFIG_PACKAGE_libevdev=y
CONFIG_PACKAGE_libevent2=y
CONFIG_PACKAGE_libevent2-core=y
CONFIG_PACKAGE_libevent2-pthreads=y
CONFIG_PACKAGE_libexpat=y
CONFIG_PACKAGE_libfdisk=m
CONFIG_PACKAGE_libffi=y
CONFIG_PACKAGE_libffmpeg-audio-dec=m
CONFIG_PACKAGE_libfido2=m
CONFIG_PACKAGE_libfreetype=m
CONFIG_PACKAGE_libfuse=y
CONFIG_PACKAGE_libfuse3=m
CONFIG_PACKAGE_libgcrypt=m
CONFIG_PACKAGE_libgd-full=m
CONFIG_PACKAGE_libgdbm=y
CONFIG_PACKAGE_libgmp=m
CONFIG_PACKAGE_libgpg-error=y
CONFIG_PACKAGE_libi2c=m
CONFIG_PACKAGE_libid3tag=y
CONFIG_PACKAGE_libintl-full=y
CONFIG_PACKAGE_libip4tc=m
CONFIG_PACKAGE_libip6tc=m
CONFIG_PACKAGE_libiperf3=m
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libiptext=y
CONFIG_PACKAGE_libiptext-nft=y
CONFIG_PACKAGE_libiptext6=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_libjpeg-turbo=y
CONFIG_PACKAGE_libkcapi=y
CONFIG_PACKAGE_libkmod=y
CONFIG_PACKAGE_libltdl=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblua5.3=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_liblucihttp-ucode=y
CONFIG_PACKAGE_liblzma=y
CONFIG_PACKAGE_liblzo=m
CONFIG_PACKAGE_libmagic=m
CONFIG_PACKAGE_libmbedtls=m
CONFIG_PACKAGE_libmicrohttpd-no-ssl=y
CONFIG_PACKAGE_libminiupnpc=y
CONFIG_PACKAGE_libmount=m
CONFIG_PACKAGE_libnatpmp=y
CONFIG_PACKAGE_libnetfilter-conntrack=y
CONFIG_PACKAGE_libnetsnmp=y
CONFIG_PACKAGE_libnettle=m
CONFIG_PACKAGE_libnfnetlink=y
CONFIG_PACKAGE_libnghttp2=y
CONFIG_PACKAGE_libnl-core=m
CONFIG_PACKAGE_libopcodes=m
CONFIG_PACKAGE_libopenldap=m
CONFIG_PACKAGE_libopenssl-conf=y
CONFIG_PACKAGE_liboping=m
CONFIG_PACKAGE_libpam=m
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libpci=y
CONFIG_PACKAGE_libpcre=y
CONFIG_PACKAGE_libpcre2=y
CONFIG_PACKAGE_libpng=m
CONFIG_PACKAGE_libpq=m
CONFIG_PACKAGE_libpython3=y
CONFIG_PACKAGE_libqrencode=y
CONFIG_PACKAGE_libreadline=y
CONFIG_PACKAGE_librrd1=m
CONFIG_PACKAGE_libsasl2=m
CONFIG_PACKAGE_libsctp=m
CONFIG_PACKAGE_libseccomp=m
CONFIG_PACKAGE_libsensors=y
CONFIG_PACKAGE_libsmartcols=m
CONFIG_PACKAGE_libsqlite3=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libsysfs=y
CONFIG_PACKAGE_libtiff=y
CONFIG_PACKAGE_libtirpc=y
CONFIG_PACKAGE_libtraceevent=y
CONFIG_PACKAGE_libtraceevent-extra=m
CONFIG_PACKAGE_libtracefs=m
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libuci-lua=y
CONFIG_PACKAGE_libudev-zero=y
CONFIG_PACKAGE_libunbound=m
CONFIG_PACKAGE_libunbound_ipset=y
CONFIG_PACKAGE_libunbound_libevent=y
CONFIG_PACKAGE_libunbound_libpthread=y
CONFIG_PACKAGE_libunbound_nghttp2=y
CONFIG_PACKAGE_libunrar=m
CONFIG_PACKAGE_libusb-1.0=y
CONFIG_PACKAGE_libustream-mbedtls=m
CONFIG_PACKAGE_libutp=y
CONFIG_PACKAGE_libuv=y
CONFIG_PACKAGE_libwebp=y
CONFIG_PACKAGE_libwolfssl=m
CONFIG_PACKAGE_libwolfssl-benchmark=m
CONFIG_PACKAGE_libxml2=y
CONFIG_PACKAGE_libxslt=y
CONFIG_PACKAGE_libxtables=y
CONFIG_PACKAGE_libyaml=m
CONFIG_PACKAGE_libzstd=y
CONFIG_PACKAGE_lighttpd=m
CONFIG_PACKAGE_lighttpd-mod-openssl=m
CONFIG_PACKAGE_linux-atm=m
CONFIG_PACKAGE_lm-sensors=y
CONFIG_PACKAGE_lm-sensors-detect=m
CONFIG_PACKAGE_logger=m
CONFIG_PACKAGE_losetup=m
CONFIG_PACKAGE_lsblk=m
CONFIG_PACKAGE_lsof=m
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_lua-bencode=m
CONFIG_PACKAGE_lua-sha2=m
CONFIG_PACKAGE_luasocket=m
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-acl=m
CONFIG_PACKAGE_luci-app-adblock=m
CONFIG_PACKAGE_luci-app-advanced-reboot=m
CONFIG_PACKAGE_luci-app-attendedsysupgrade=m
CONFIG_PACKAGE_luci-app-banip=m
CONFIG_PACKAGE_luci-app-bcp38=m
CONFIG_PACKAGE_luci-app-cjdns=m
CONFIG_PACKAGE_luci-app-commands=y
CONFIG_PACKAGE_luci-app-dcwapd=m
CONFIG_PACKAGE_luci-app-ddns=m
CONFIG_PACKAGE_luci-app-diag-core=m
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-ledtrig-rssi=m
CONFIG_PACKAGE_luci-app-ledtrig-switch=m
CONFIG_PACKAGE_luci-app-ledtrig-usbport=m
CONFIG_PACKAGE_luci-app-nextdns=m
CONFIG_PACKAGE_luci-app-nft-qos=m
CONFIG_PACKAGE_luci-app-ntpc=m
CONFIG_PACKAGE_luci-app-openvpn=m
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-app-privoxy=m
CONFIG_PACKAGE_luci-app-qos=m
CONFIG_PACKAGE_luci-app-simple-adblock=m
CONFIG_PACKAGE_luci-app-sqm=m
CONFIG_PACKAGE_luci-app-tinyproxy=m
CONFIG_PACKAGE_luci-app-uhttpd=m
CONFIG_PACKAGE_luci-app-upnp=m
CONFIG_PACKAGE_luci-app-vnstat2=m
CONFIG_PACKAGE_luci-app-watchcat=m
CONFIG_PACKAGE_luci-app-wol=m
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-compat=y
CONFIG_PACKAGE_luci-lib-base=y
CONFIG_PACKAGE_luci-lib-httpprotoutils=m
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-ipkg=m
CONFIG_PACKAGE_luci-lib-json=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-light=y
CONFIG_PACKAGE_luci-lua-runtime=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-battstatus=m
CONFIG_PACKAGE_luci-mod-dashboard=y
CONFIG_PACKAGE_luci-mod-dsl=m
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-rpc=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-3g=m
CONFIG_PACKAGE_luci-proto-batman-adv=m
CONFIG_PACKAGE_luci-proto-bonding=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-proto-wireguard=m
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_m4=m
CONFIG_PACKAGE_miniupnpd-nftables=m
CONFIG_PACKAGE_more=m
CONFIG_PACKAGE_moreutils=m
CONFIG_PACKAGE_mrmctl=m
CONFIG_PACKAGE_mtd=m
CONFIG_PACKAGE_musl-fts=m
CONFIG_PACKAGE_nand-utils=m
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_ncat-full=m
CONFIG_PACKAGE_ncat-ssl=m
CONFIG_PACKAGE_netperf=m
CONFIG_PACKAGE_nextdns=m
CONFIG_PACKAGE_nft-qos=m
CONFIG_PACKAGE_nginx-ssl=m
CONFIG_PACKAGE_nginx-ssl-util=m
CONFIG_PACKAGE_nginx-util=y
CONFIG_PACKAGE_nmap-ssl=m
CONFIG_PACKAGE_nsenter=m
CONFIG_PACKAGE_ntfs-3g=m
CONFIG_PACKAGE_ntfs-3g-utils=m
CONFIG_PACKAGE_ntp-utils=m
CONFIG_PACKAGE_ntpclient=m
CONFIG_PACKAGE_ntpd=m
CONFIG_PACKAGE_ntpdate=m
CONFIG_PACKAGE_objdump=m
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_openvpn-openssl=m
CONFIG_PACKAGE_openvpn-wolfssl=m
CONFIG_PACKAGE_partx-utils=m
CONFIG_PACKAGE_perl=y
CONFIG_PACKAGE_perl-cgi=y
CONFIG_PACKAGE_perl-html-parser=y
CONFIG_PACKAGE_perl-html-tagset=y
CONFIG_PACKAGE_perl-net-cidr-lite=y
CONFIG_PACKAGE_perl-text-csv_xs=y
CONFIG_PACKAGE_perlbase-attributes=m
CONFIG_PACKAGE_perlbase-autoloader=y
CONFIG_PACKAGE_perlbase-base=y
CONFIG_PACKAGE_perlbase-bytes=y
CONFIG_PACKAGE_perlbase-class=y
CONFIG_PACKAGE_perlbase-config=y
CONFIG_PACKAGE_perlbase-cwd=y
CONFIG_PACKAGE_perlbase-data=y
CONFIG_PACKAGE_perlbase-digest=y
CONFIG_PACKAGE_perlbase-dynaloader=y
CONFIG_PACKAGE_perlbase-encode=y
CONFIG_PACKAGE_perlbase-env=y
CONFIG_PACKAGE_perlbase-errno=y
CONFIG_PACKAGE_perlbase-essential=y
CONFIG_PACKAGE_perlbase-fcntl=y
CONFIG_PACKAGE_perlbase-file=y
CONFIG_PACKAGE_perlbase-filehandle=y
CONFIG_PACKAGE_perlbase-filetest=y
CONFIG_PACKAGE_perlbase-findbin=y
CONFIG_PACKAGE_perlbase-getopt=y
CONFIG_PACKAGE_perlbase-i18n=y
CONFIG_PACKAGE_perlbase-if=y
CONFIG_PACKAGE_perlbase-integer=y
CONFIG_PACKAGE_perlbase-io=y
CONFIG_PACKAGE_perlbase-ipc=y
CONFIG_PACKAGE_perlbase-list=y
CONFIG_PACKAGE_perlbase-locale=y
CONFIG_PACKAGE_perlbase-mime=y
CONFIG_PACKAGE_perlbase-net=m
CONFIG_PACKAGE_perlbase-params=y
CONFIG_PACKAGE_perlbase-posix=y
CONFIG_PACKAGE_perlbase-re=y
CONFIG_PACKAGE_perlbase-scalar=y
CONFIG_PACKAGE_perlbase-selectsaver=y
CONFIG_PACKAGE_perlbase-selfloader=y
CONFIG_PACKAGE_perlbase-socket=y
CONFIG_PACKAGE_perlbase-storable=y
CONFIG_PACKAGE_perlbase-symbol=y
CONFIG_PACKAGE_perlbase-sys=y
CONFIG_PACKAGE_perlbase-text=y
CONFIG_PACKAGE_perlbase-thread=m
CONFIG_PACKAGE_perlbase-threads=m
CONFIG_PACKAGE_perlbase-tie=y
CONFIG_PACKAGE_perlbase-time=y
CONFIG_PACKAGE_perlbase-unicore=y
CONFIG_PACKAGE_perlbase-utf8=y
CONFIG_PACKAGE_perlbase-xsloader=y
CONFIG_PACKAGE_php8=m
CONFIG_PACKAGE_pkg-config=m
CONFIG_PACKAGE_ppp-mod-pppoa=m
CONFIG_PACKAGE_ppp-mod-pppol2tp=m
CONFIG_PACKAGE_ppp-mod-pptp=m
CONFIG_PACKAGE_pppoe-discovery=m
CONFIG_PACKAGE_privoxy=m
CONFIG_PACKAGE_prlimit=m
CONFIG_PACKAGE_procd=m
CONFIG_PACKAGE_procd-ujail=m
CONFIG_PACKAGE_procps-ng=m
CONFIG_PACKAGE_procps-ng-free=m
CONFIG_PACKAGE_procps-ng-kill=m
CONFIG_PACKAGE_procps-ng-pgrep=m
CONFIG_PACKAGE_procps-ng-pkill=m
CONFIG_PACKAGE_procps-ng-pmap=m
CONFIG_PACKAGE_procps-ng-ps=m
CONFIG_PACKAGE_procps-ng-pwdx=m
CONFIG_PACKAGE_procps-ng-skill=m
CONFIG_PACKAGE_procps-ng-slabtop=m
CONFIG_PACKAGE_procps-ng-snice=m
CONFIG_PACKAGE_procps-ng-sysctl=m
CONFIG_PACKAGE_procps-ng-tload=m
CONFIG_PACKAGE_procps-ng-top=m
CONFIG_PACKAGE_procps-ng-uptime=m
CONFIG_PACKAGE_procps-ng-vmstat=m
CONFIG_PACKAGE_procps-ng-w=m
CONFIG_PACKAGE_procps-ng-watch=m
CONFIG_PACKAGE_progress=m
CONFIG_PACKAGE_proto-bonding=y
CONFIG_PACKAGE_psmisc=m
CONFIG_PACKAGE_pv=m
CONFIG_PACKAGE_python3=m
CONFIG_PACKAGE_python3-asyncio=y
CONFIG_PACKAGE_python3-attrs=m
CONFIG_PACKAGE_python3-base=y
CONFIG_PACKAGE_python3-bcrypt=m
CONFIG_PACKAGE_python3-cached-property=m
CONFIG_PACKAGE_python3-certifi=m
CONFIG_PACKAGE_python3-cffi=m
CONFIG_PACKAGE_python3-cgi=y
CONFIG_PACKAGE_python3-cgitb=y
CONFIG_PACKAGE_python3-chardet=m
CONFIG_PACKAGE_python3-click=m
CONFIG_PACKAGE_python3-codecs=y
CONFIG_PACKAGE_python3-cryptography=m
CONFIG_PACKAGE_python3-ctypes=y
CONFIG_PACKAGE_python3-dbm=y
CONFIG_PACKAGE_python3-decimal=y
CONFIG_PACKAGE_python3-distutils=y
CONFIG_PACKAGE_python3-email=y
CONFIG_PACKAGE_python3-light=y
CONFIG_PACKAGE_python3-logging=y
CONFIG_PACKAGE_python3-lzma=y
CONFIG_PACKAGE_python3-multiprocessing=y
CONFIG_PACKAGE_python3-ncurses=y
CONFIG_PACKAGE_python3-openssl=y
CONFIG_PACKAGE_python3-ply=m
CONFIG_PACKAGE_python3-pycparser=m
CONFIG_PACKAGE_python3-pydoc=y
CONFIG_PACKAGE_python3-readline=y
CONFIG_PACKAGE_python3-six=m
CONFIG_PACKAGE_python3-sqlite3=y
CONFIG_PACKAGE_python3-unittest=y
CONFIG_PACKAGE_python3-urllib=y
CONFIG_PACKAGE_python3-urllib3=m
CONFIG_PACKAGE_python3-uuid=y
CONFIG_PACKAGE_python3-xml=y
CONFIG_PACKAGE_qos-scripts=m
CONFIG_PACKAGE_resolveip=m
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_rpcd-mod-rpcsys=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_rpcd-mod-ucode=y
CONFIG_PACKAGE_rrdtool1=m
CONFIG_PACKAGE_rssileds=y
CONFIG_PACKAGE_runc=m
CONFIG_PACKAGE_screen=m
CONFIG_PACKAGE_sed=m
CONFIG_PACKAGE_shadow-chsh=m
CONFIG_PACKAGE_shadow-common=m
CONFIG_PACKAGE_shadow-groupadd=m
CONFIG_PACKAGE_shadow-groupdel=m
CONFIG_PACKAGE_shadow-groups=m
CONFIG_PACKAGE_shadow-newgrp=m
CONFIG_PACKAGE_shadow-useradd=m
CONFIG_PACKAGE_shadow-userdel=m
CONFIG_PACKAGE_shadow-usermod=m
CONFIG_PACKAGE_shadow-utils=m
CONFIG_PACKAGE_simple-adblock=m
CONFIG_PACKAGE_socat=y
CONFIG_PACKAGE_spawn-fcgi=y
CONFIG_PACKAGE_speedtest-netperf=m
CONFIG_PACKAGE_sqm-scripts=m
CONFIG_PACKAGE_ss=m
CONFIG_PACKAGE_sscep=m
CONFIG_PACKAGE_sshfs=m
CONFIG_PACKAGE_strace=m
CONFIG_PACKAGE_sudo=m
CONFIG_PACKAGE_swap-utils=m
CONFIG_PACKAGE_syncthing=m
CONFIG_PACKAGE_sysfsutils=y
CONFIG_PACKAGE_tar=y
CONFIG_PACKAGE_tc-mod-iptables=m
CONFIG_PACKAGE_tc-tiny=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_tini=m
CONFIG_PACKAGE_tinyproxy=m
CONFIG_PACKAGE_tmux=m
CONFIG_PACKAGE_trace-cmd=m
CONFIG_PACKAGE_trace-cmd-extra=m
CONFIG_PACKAGE_tracertools=m
CONFIG_PACKAGE_tree=m
CONFIG_PACKAGE_ucode-mod-html=y
CONFIG_PACKAGE_ucode-mod-lua=y
CONFIG_PACKAGE_ucode-mod-math=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
CONFIG_PACKAGE_unbound-daemon=m
CONFIG_PACKAGE_unrar=m
CONFIG_PACKAGE_unzip=m
CONFIG_PACKAGE_urandom-seed=m
CONFIG_PACKAGE_urngd=m
CONFIG_PACKAGE_usbutils=m
CONFIG_PACKAGE_uuidgen=m
CONFIG_PACKAGE_vim-full=m
CONFIG_PACKAGE_vnstat2=m
CONFIG_PACKAGE_vnstati2=m
CONFIG_PACKAGE_wakeonlan=m
CONFIG_PACKAGE_watchcat=m
CONFIG_PACKAGE_which=y
CONFIG_PACKAGE_wifischedule=y
CONFIG_PACKAGE_wipe=m
CONFIG_PACKAGE_wireguard-tools=m
CONFIG_PACKAGE_wireless-tools=m
CONFIG_PACKAGE_wpa-supplicant=m
CONFIG_PACKAGE_wpa-supplicant-basic=m
CONFIG_PACKAGE_wpa-supplicant-mbedtls=m
CONFIG_PACKAGE_wpa-supplicant-mesh-mbedtls=m
CONFIG_PACKAGE_wpa-supplicant-mesh-openssl=m
CONFIG_PACKAGE_wpa-supplicant-mesh-wolfssl=m
CONFIG_PACKAGE_wpa-supplicant-mini=m
CONFIG_PACKAGE_wpa-supplicant-openssl=m
CONFIG_PACKAGE_wpa-supplicant-p2p=m
CONFIG_PACKAGE_wpa-supplicant-wolfssl=m
CONFIG_PACKAGE_wpad=m
CONFIG_PACKAGE_wpad-basic=m
CONFIG_PACKAGE_wpad-basic-mbedtls=m
CONFIG_PACKAGE_wpad-basic-openssl=m
CONFIG_PACKAGE_wpad-basic-wolfssl=m
CONFIG_PACKAGE_wpad-mbedtls=m
CONFIG_PACKAGE_wpad-mesh-mbedtls=m
CONFIG_PACKAGE_wpad-mesh-openssl=m
CONFIG_PACKAGE_wpad-mesh-wolfssl=m
CONFIG_PACKAGE_wpad-mini=m
CONFIG_PACKAGE_wpad-wolfssl=m
CONFIG_PACKAGE_wsdd2=y
CONFIG_PACKAGE_wwan=m
CONFIG_PACKAGE_xmlrpc-c=m
CONFIG_PACKAGE_xmlrpc-c-common=m
CONFIG_PACKAGE_xmlrpc-c-internal=m
CONFIG_PACKAGE_xmlrpc-c-server=m
CONFIG_PACKAGE_xtables-nft=y
CONFIG_PACKAGE_xxd=m
CONFIG_PACKAGE_xz=y
CONFIG_PACKAGE_xz-utils=y
CONFIG_PACKAGE_xzdiff=y
CONFIG_PACKAGE_xzgrep=y
CONFIG_PACKAGE_xzless=y
CONFIG_PACKAGE_yt-dlp=y
CONFIG_PACKAGE_zlib=y
CONFIG_PACKAGE_zoneinfo-core=m
CONFIG_PACKAGE_zoneinfo-simple=m
CONFIG_PACKAGE_zsh=m
CONFIG_PERL_NOCOMMENT=y
CONFIG_PERL_THREADS=y
CONFIG_PRIVOXY_enable-external-filters=y
CONFIG_PRIVOXY_enable-graceful-termination=y
CONFIG_PRIVOXY_enable-ie-images=y
CONFIG_PRIVOXY_enable-no-gifs=y
CONFIG_SOCAT_SSL=y
CONFIG_SQLITE3_COLUMN_METADATA=y
CONFIG_SQLITE3_DYNAMIC_EXTENSIONS=y
CONFIG_SQLITE3_FTS3=y
CONFIG_SQLITE3_FTS4=y
CONFIG_SQLITE3_FTS5=y
CONFIG_SQLITE3_RTREE=y
CONFIG_SRC_TREE_OVERRIDE=y
CONFIG_STRACE_LIBDW=y
# CONFIG_STRACE_NONE is not set
CONFIG_USE_FS_ACL_ATTR=y
CONFIG_USE_GC_SECTIONS=y
CONFIG_WOLFSSL_HAS_DEVCRYPTO=y
CONFIG_WOLFSSL_HAS_DEVCRYPTO_AES=y
CONFIG_WPA_WOLFSSL=y
CONFIG_ZLIB_OPTIMIZE_SPEED=y
CONFIG_ZSTD_OPTIMIZE_O3=y
CONFIG_PACKAGE_getrandom=y
# CONFIG_PACKAGE_kmod-crypto-kpp is not set
# CONFIG_PACKAGE_shadow-chage is not set
# CONFIG_PACKAGE_shadow-chfn is not set
# CONFIG_PACKAGE_shadow-chgpasswd is not set
# CONFIG_PACKAGE_shadow-chpasswd is not set
# CONFIG_PACKAGE_shadow-expiry is not set
# CONFIG_PACKAGE_shadow-faillog is not set
# CONFIG_PACKAGE_shadow-gpasswd is not set
# CONFIG_PACKAGE_shadow-groupmems is not set
# CONFIG_PACKAGE_shadow-groupmod is not set
# CONFIG_PACKAGE_shadow-grpck is not set
# CONFIG_PACKAGE_shadow-grpconv is not set
# CONFIG_PACKAGE_shadow-grpunconv is not set
# CONFIG_PACKAGE_shadow-lastlog is not set
# CONFIG_PACKAGE_shadow-login is not set
# CONFIG_PACKAGE_shadow-logoutd is not set
# CONFIG_PACKAGE_shadow-newgidmap is not set
# CONFIG_PACKAGE_shadow-newuidmap is not set
# CONFIG_PACKAGE_shadow-newusers is not set
# CONFIG_PACKAGE_shadow-nologin is not set
# CONFIG_PACKAGE_shadow-passwd is not set
# CONFIG_PACKAGE_shadow-pwck is not set
# CONFIG_PACKAGE_shadow-pwconv is not set
# CONFIG_PACKAGE_shadow-pwunconv is not set
# CONFIG_PACKAGE_shadow-su is not set
# CONFIG_PACKAGE_shadow-vipw is not set
# CONFIG_PCRE2_JIT_ENABLED is not set
# CONFIG_PCRE_JIT_ENABLED is not set
# CONFIG_shadow-all is not set
if someone has a NAS, it's convenient to place packages in a locally shared folder like this:
you can test with my nas:
https://openwrt.avxt.fr/snapshots/targets/alpine/generic/packages/
Question: Do you think this 100% can be an issue?
note: if you get some issues and need to recover your bricked R9000, I have used this awesome tool, (already mentioned by @egorenar here: Netgear X10 (R9000) - #199 by egorenar)
very easy to use: https://github.com/jclehner/nmrpflash
I had some issues with package kmod-ahci-platform when trying to build image with imagebuilder, I had to remove it from the packages list from [imagebuilder folder]/target/linux/alpine/Makefile , and also package "badblocks"
Following your doc to a tee... after menuconfig I select the target that has that R9000 X10, option and then go into luci and select everything
make[3]: Entering directory '/home/hrousey/openwrt_build/build/openwrt/feeds/luci/modules/luci-mod-dashboard'
make[3]: Entering directory '/home/hrousey/openwrt_build/build/openwrt/feeds/luci/modules/luci-mod-dsl'
make[3]: Entering directory '/home/hrousey/openwrt_build/build/openwrt/feeds/luci/modules/luci-mod-rpc'
make[3]: Entering directory '/home/hrousey/openwrt_build/build/openwrt/feeds/packages/lang/luajit'
make -j1 -C /home/hrousey/openwrt_build/build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/LuaJIT-2.1.0-beta3 HOST_CC="gcc -O2 -I/home/hrousey/openwrt_build/build/openwrt/staging_dir/host/include -I/home/hrousey/openwrt_build/build/openwrt/staging_dir/hostpkg/include -I/home/hrousey/openwrt_build/build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/host/include -m32" CROSS="arm-openwrt-linux-muslgnueabi-" DPREFIX=/home/hrousey/openwrt_build/build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/LuaJIT-2.1.0-beta3/ipkg-install/usr PREFIX=/usr TARGET_SYS=Linux TARGET_CFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -mfloat-abi=hard -fmacro-prefix-map=/home/hrousey/openwrt_build/build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/LuaJIT-2.1.0-beta3=LuaJIT-2.1.0-beta3 -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" BUILDMODE=dynamic
make[4]: Entering directory '/home/hrousey/openwrt_build/build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/LuaJIT-2.1.0-beta3'
make[5]: Entering directory '/home/hrousey/openwrt_build/build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/LuaJIT-2.1.0-beta3/src'
make[5]: *** [Makefile:692: host/minilua.o] Error 1
make[4]: *** [Makefile:113: default] Error 2
make[3]: *** [Makefile:92: /home/hrousey/openwrt_build/build/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/LuaJIT-2.1.0-beta3/.built] Error 2
make[2]: *** [package/Makefile:120: package/feeds/packages/luajit/compile] Error 1
make[1]: *** [package/Makefile:114: /home/hrousey/openwrt_build/build/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make: *** [/home/hrousey/openwrt_build/build/openwrt/include/toplevel.mk:232: world] Error 2
Hope this helps
##Final
git clone https://github.com/egorenar/openwrt.git R9000
cd R9000
git switch netgear-r9000
echo "src-git alpinefancontrol https://github.com/hurrian/openwrt-alpine-fan-control.git" >> feeds.conf.default
./scripts/feeds update -a
./scripts/feeds install -a
echo "CONFIG_TARGET_alpine=y" >> .config
echo "CONFIG_TARGET_BOARD=alpine" >> .config
make menuconfig
#Select as needed
LUCI -> Collections -> luci
LUCI -> Applications -> mwan3,openvpn,alpine-fan-control
LUCI -> Themes
Utilities -> Shells -> bash
Utilities -> alpine-fan-control
Kernel modules -> Network Devices -> kmod-sfp/kmod-be2net
Kernel modules -> Network Devices -> kmod-macvlan
Kernel modules -> Network Support -> kmod-nat46
Kernel modules -> Network Support -> kmod-tun
Kernel modules -> Netfilter Extensions -> kmod-ipt-ipset
Kernel modules -> Netfilter Extensions -> kmod-ipt-nat
Kernel modules -> Netfilter Extensions -> kmod-nft-core
Kernel modules -> Netfilter Extensions -> kmod-nft-fib
Kernel modules -> Netfilter Extensions -> kmod-nft-nat
Kernel modules -> Netfilter Extensions -> kmod-nft-nat6
Kernel modules -> Netfilter Extensions -> kmod-nft-offload
#Kernel modules -> USB Support -> kmod-usb-net-aqc111
#Kernel modules -> USB Support -> kmod-usb-net-rtl8152
Network -> VPN -> openvpn-openssl
Network -> Routing And Redirection -> mwan3
#Network -> Routing And Redirection ->vpn-policy-routing
Network ->Firewall->iptables-mod-conntrack-extra
Network ->Firewall->iptables-mod-ipopt
Network ->Firewall->nftables-json
make V=sc -j$(($(nproc)+1))
ls -arl bin/targets/alpine/generic/
Thanks for the script. Running it now.. Is the toolchain not needed