This is entirely fair. Ive been using this unbound+adblock setup for years now, but figuring out how to initially set this all up was a major time-consuming pain in the ass that took more than a few tries to get right.
I use what is baked into the firmware, though I'll be honest I havent really thoroughly gone through and tested all the various sources....I basically took the defaults, added in all the extra (non-foreign) sources that specifically were for phishing, tracking, spam, malware, ads, or telemetry (not the large general/compilation ones), then disabled one or two that ended up causing problems at some point.
Right now, LUCI tells me Im using
Blocked Domains: 615,473
Active Sources: adaway, adguard, adguard_tracking, android_tracking, anti_ad, anudeep, bitcoin, disconnect, easylist, easyprivacy, firetv_tracking, notracking, openphish, phishing_army, smarttv_tracking, spam404, wally3k, whocares, winspy, yoyo
Ive never used it, but the wiki indicates there is a "PBR with netifd" option that "requires no extra software installation". This sounds like it might be a PBR+unbound solution, though mwan3+unbound sounds like it might suit your needs better.
The update has been pushed (for the unbound variant at least....the dnsmasq variant will have to wait till tomorrow).
I also figured out how to add the git repo into the feeds, though its not included in this update (i'll add it to the next one).
So, as far as mwan3 goes, it should be possible to install it, but due to some quirks with how opkg works (and its seeming lack of support for prioritizing one repo over another one), the process is sort of ass backwards (since you need the kmods from my repo but an iptables package that I didnt build from the openwrt repos). The following script should (i think) install mwan3 successfully
# add github repo to feeds
cat<<'EOF' >> /etc/opkg/customfeeds.conf
src/gz custom-firmware_core https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/targets/qualcommax/ipq807x/packages
src/gz custom-firmware_base https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/base
src/gz custom-firmware_luci https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/luci
src/gz custom-firmware_nss_packages https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/nss_packages
src/gz custom-firmware_packages https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/packages
src/gz custom-firmware_routing https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/routing
src/gz custom-firmware_sqm_scripts_nss https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/sqm_scripts_nss
src/gz custom-firmware_telephony https://github.com/jkool702/openwrt-custom-builds/raw/main-NSS/WRX36/bin/packages/aarch64_cortex-a53/telephony
EOF
# temporairly remove "official" openwrt_core repo (this is the repo with the kmods)
echo '#'"$(cat /etc/opkg/distfeeds.conf)" > /etc/opkg/distfeeds.conf
# update opkg lists
opkg update
# download iptables-mod-conntrack-extra package (that I didnt build) with wget,
# then install it and its required kmods (that I did build) using kmod packages from the github repo
cd /tmp
wget https://downloads.openwrt.org/snapshots/targets/qualcommax/ipq807x/packages/iptables-mod-conntrack-extra_1.8.8-r2_aarch64_cortex-a53.ipk
opkg install --noaction /tmp/iptables-mod-conntrack-extra_1.8.8-r2_aarch64_cortex-a53.ipk
# install mwan3
opkg install mwan3
# re-enable openwrt_core repo
sed -i s/'#'// /etc/opkg/distfeeds.conf
Hmmmm. That isnt supposed to happen.
A few builds ago I switched from directly including the files in /etc/config/<...>
to setting them up using uci
commands in /etc/uci-defaults
. The intent was to
- better adapt to the "base" config being updated (since you can just modify the specific config items you need to instead of replacing the entire file with all the config in it), and
- You could see that the standard built-in config is since that will be in
/rom/etc/config/<...>
, which is useful for troubleshooting.
To avoid overwriting configs from your previous firmware during sysupgrade
, I added a check where my configs wont get applied if both a) the config file exists under /etc/config
and b) it differs from the version in /rom/etc/config
(meaning it was already changed after the firmware was flashed). This part seems to not be working like how it is supposed to....Ill have to look into this.