diff --git a/boards/common/morse_diffconfig b/boards/common/morse_diffconfig index c0666ab66db..9d6c3f75890 100644 --- a/boards/common/morse_diffconfig +++ b/boards/common/morse_diffconfig @@ -7,6 +7,6 @@ CONFIG_VERSIONOPT=y CONFIG_VERSION_MANUFACTURER="MorseMicro" CONFIG_VERSION_MANUFACTURER_URL="https://www.morsemicro.com/" CONFIG_VERSION_CODE_FILENAMES=y -CONFIG_VERSION_CODE="Morse-2.8.5" +CONFIG_VERSION_CODE="openmanet-1.4.1" # Disable ext4 image creation. CONFIG_TARGET_ROOTFS_EXT4FS=n diff --git a/boards/common/openmanet_diffconfig b/boards/common/openmanet_diffconfig index bdebbd1b33f..20d6485a3b4 100644 --- a/boards/common/openmanet_diffconfig +++ b/boards/common/openmanet_diffconfig @@ -128,4 +128,28 @@ CONFIG_PACKAGE_alfred=y CONFIG_PACKAGE_adsbtocot=y CONFIG_PACKAGE_dump1090=y # (optional tools; dump1090 only needs librtlsdr, but these are handy) -CONFIG_PACKAGE_rtl-sdr=y \ No newline at end of file +CONFIG_PACKAGE_rtl-sdr=y + +# mDNS / Avahi +CONFIG_PACKAGE_avahi-daemon-service-http=y +CONFIG_PACKAGE_avahi-daemon-service-ssh=y +CONFIG_PACKAGE_avahi-utils=y + +# WIFI +CONFIG_PACKAGE_iwlwifi-firmware-ax210=y +CONFIG_PACKAGE_iwlwifi-firmware-ax200=y + +CONFIG_PACKAGE_kmod-owl-loader=y +CONFIG_PACKAGE_ath11k-firmware-wcn6855=y +CONFIG_PACKAGE_kmod-ath11k=y +CONFIG_PACKAGE_kmod-ath11k-pci=y +CONFIG_PACKAGE_ath10k-firmware-qca6174=y +CONFIG_PACKAGE_kmod-ath10k=y + +CONFIG_PACKAGE_kmod-mt7915-firmware=y +CONFIG_PACKAGE_kmod-mt7916-firmware=y +CONFIG_PACKAGE_kmod-mt7915e=y +CONFIG_PACKAGE_kmod-mt7921-firmware=y +CONFIG_PACKAGE_kmod-mt7921e=y +CONFIG_PACKAGE_kmod-mt7921s=y +CONFIG_PACKAGE_kmod-mt7921u=y diff --git a/boards/common_extras/utils_diffconfig b/boards/common_extras/utils_diffconfig index 6db2aa7e40f..49b97bc1a64 100644 --- a/boards/common_extras/utils_diffconfig +++ b/boards/common_extras/utils_diffconfig @@ -24,17 +24,6 @@ CONFIG_PACKAGE_nano-full=y # LuCI packages CONFIG_PACKAGE_luci-app-morseupgrade=y -# Intel Wifi -CONFIG_PACKAGE_iwlwifi-firmware-ax210=y -CONFIG_PACKAGE_iwlwifi-firmware-ax200=y -CONFIG_PACKAGE_kmod-iwlwifi=y - -# Qualcomm Atheros Wifi -CONFIG_PACKAGE_kmod-owl-loader=y -CONFIG_PACKAGE_ath11k-firmware-wcn6855=y -CONFIG_PACKAGE_kmod-ath11k=y -CONFIG_PACKAGE_kmod-ath11k-pci=y - -CONFIG_PACKAGE_ath10k-firmware-qca6174=y -CONFIG_PACKAGE_kmod-ath10k=y +# Wifi +CONFIG_PACKAGE_wifi-openmanet=y diff --git a/feeds.conf.default b/feeds.conf.default index bccc9030dc0..01ec16c9d46 100644 --- a/feeds.conf.default +++ b/feeds.conf.default @@ -1,3 +1,4 @@ +src-git openmanet https://github.com/OpenMANET/packages^c5f00c47a479ac6c4234955de640a8666f7a7cfb src-git packages https://github.com/openwrt/packages.git^b5ed85f6e94aa08de1433272dc007550f4a28201 src-git routing https://github.com/openwrt/routing.git^e351d1e623e9ef2ab78f28cb1ce8d271d28c902d src-git telephony https://github.com/openwrt/telephony.git^98c8a5aa4624312ed758e2e2b6d4039050a1649d diff --git a/files/lib/firmware/morse/bcf_mf04151.bin b/files/lib/firmware/morse/bcf_mf04151.bin new file mode 100644 index 00000000000..aff6fc48136 Binary files /dev/null and b/files/lib/firmware/morse/bcf_mf04151.bin differ diff --git a/package/adsbtocot/Makefile b/package/adsbtocot/Makefile deleted file mode 100644 index 1883ce52284..00000000000 --- a/package/adsbtocot/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=adsbtocot -PKG_VERSION:=1 -PKG_RELEASE:=2 -PKG_MAINTAINER:=info@openmanet.net -PKG_LICENSE:=MIT -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) -HOST_BUILD_DEPENDS:=python3/host -PKGARCH:=all - -include $(INCLUDE_DIR)/package.mk - -define Package/adsbtocot - SECTION:=utils - CATEGORY:=Utilities - TITLE:=ADS-B to Cursor-on-Target (ADSBCOT) for OpenWrt (dump1090 local) - DEPENDS:=+python3 +dump1090 -endef - -define Package/adsbtocot/description -Installs ADSBCOT from PyPI and provides a procd service to forward ADS-B tracks -from dump1090 to CoT/TAK (multicast or unicast). -endef - -# Persist user edits -define Package/adsbtocot/conffiles -/etc/adsbcot/adsbcot.ini -endef - -define Build/Prepare - mkdir -p $(PKG_BUILD_DIR) -endef - -# Vendor ADSBCOT as pure Python: -# - drop 'with_pymodes' to avoid numpy/ELF -# - disable aiohttp/yarl/multidict/frozenlist C-extensions -# - forbid wheels so pip builds pure-Python installs -define Build/Compile - AIOHTTP_NO_EXTENSIONS=1 \ - YARL_NO_EXTENSIONS=1 \ - MULTIDICT_NO_EXTENSIONS=1 \ - FROZENLIST_NO_EXTENSIONS=1 \ - PIP_NO_BINARY=:all: \ - $(STAGING_DIR_HOSTPKG)/bin/pip3 install 'adsbcot' \ - --prefix=/usr --root='$(PKG_INSTALL_DIR)' --no-cache-dir --no-compile - - # Safety: ensure no native .so crept in - find '$(PKG_INSTALL_DIR)/usr' -type f \( -name '*.so' -o -name '*.so.*' \) -print -delete || true -endef - -define Package/adsbtocot/install - # Config + init - $(INSTALL_DIR) $(1)/etc/adsbcot $(1)/etc/init.d - $(INSTALL_CONF) ./files/adsbcot.ini $(1)/etc/adsbcot/adsbcot.ini - $(INSTALL_BIN) ./files/adsbcot.init $(1)/etc/init.d/adsbcot - - # Python site-packages and console scripts - $(INSTALL_DIR) $(1)/usr - cp -a $(PKG_INSTALL_DIR)/usr/* $(1)/usr/ - - # Ensure no ELF in final image - find '$(1)/usr' -type f \( -name '*.so' -o -name '*.so.*' \) -print -delete || true - - # Normalize console-script shebangs to the target Python - [ -f "$(1)/usr/bin/adsbcot" ] && $(SED) '1s|^#!.*|#!/usr/bin/python3|' "$(1)/usr/bin/adsbcot" && chmod 0755 "$(1)/usr/bin/adsbcot" - for f in pytak aircot; do \ - if [ -f "$(1)/usr/bin/$$f" ]; then \ - $(SED) '1s|^#!.*|#!/usr/bin/python3|' "$(1)/usr/bin/$$f"; \ - chmod 0755 "$(1)/usr/bin/$$f"; \ - fi; \ - done - - # Trim caches to save space - find "$(1)/usr/lib/python3"* -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true - find "$(1)/usr/lib/python3"* -type f -name '*.pyc' -delete 2>/dev/null || true - - # First-boot defaults (gain, ports, etc.) - $(INSTALL_DIR) $(1)/etc/uci-defaults - $(INSTALL_BIN) ./files/99-adsb-defaults $(1)/etc/uci-defaults/99-adsb-defaults -endef - -$(eval $(call BuildPackage,adsbtocot)) \ No newline at end of file diff --git a/package/adsbtocot/files/99-adsb-defaults b/package/adsbtocot/files/99-adsb-defaults deleted file mode 100755 index ab28969e590..00000000000 --- a/package/adsbtocot/files/99-adsb-defaults +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# /etc/uci-defaults/99-adsb-defaults -# Apply once on first boot -[ -f /etc/adsbcot/.defaults_applied ] && exit 0 - -# Ensure dump1090 JSON path exists -mkdir -p /var/run/dump1090 - -uci -q batch <<'EOF' -set dump1090.main=dump1090 -set dump1090.main.enabled='1' -set dump1090.main.disabled='0' - -# SDR + decoding -set dump1090.main.device_index='0' -set dump1090.main.gain='49.6' -set dump1090.main.no_fix='0' -set dump1090.main.fix='1' - -# JSON output only -set dump1090.main.write_json='/var/run/dump1090' -set dump1090.main.write_json_every='1' -delete dump1090.main.html_dir - -# *** Disable all dump1090 network sockets *** -set dump1090.main.net='0' -set dump1090.main.net_only='0' -delete dump1090.main.net_bind_address -delete dump1090.main.net_ri_port -delete dump1090.main.net_ro_port -delete dump1090.main.net_sbs_port -delete dump1090.main.net_bi_port -delete dump1090.main.net_bo_port -delete dump1090.main.net_heartbeat -delete dump1090.main.net_buffer -delete dump1090.main.net_verbatim -delete dump1090.main.forward_mlat - -commit dump1090 -EOF - -/etc/init.d/adsbcot stop -/etc/init.d/adsbcot disable -/etc/init.d/dump1090 stop -/etc/init.d/dump1090 disable - -touch /etc/adsbcot/.defaults_applied -exit 0 \ No newline at end of file diff --git a/package/adsbtocot/files/adsbcot.ini b/package/adsbtocot/files/adsbcot.ini deleted file mode 100644 index e010d9dd66c..00000000000 --- a/package/adsbtocot/files/adsbcot.ini +++ /dev/null @@ -1,9 +0,0 @@ -[pytak] -# Multicast CoT out to your ATAK mesh -COT_URL = udp+wo://239.2.3.1:6969 -COT_STALE = 120 -COT_HEADER = TAK-ADSB - -[adsbcot] -FEED_URL = file:///var/run/dump1090/aircraft.json -IDENT = OPENMANET-ADSB01 \ No newline at end of file diff --git a/package/adsbtocot/files/adsbcot.init b/package/adsbtocot/files/adsbcot.init deleted file mode 100644 index 75d03a4203c..00000000000 --- a/package/adsbtocot/files/adsbcot.init +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh /etc/rc.common -START=95 -USE_PROCD=1 - -PROG="/usr/bin/adsbcot" -CONF="/etc/adsbcot/adsbcot.ini" -IFACE_DEV="br-ahwlan" - -# optional: restart when the config file changes -service_triggers() { - procd_add_reload_trigger adsbcot - procd_add_jail_mount "$CONF" - procd_add_config_trigger "config.change" adsbcot /etc/init.d/adsbcot reload -} - -get_iface_ipv4() { - # Extract first IPv4 on the bridge device (strip cidr) - ip -4 addr show dev "$IFACE_DEV" 2>/dev/null \ - | awk '/inet /{print $2; exit}' \ - | cut -d/ -f1 -} - -start_service() { - local ip - ip="$(get_iface_ipv4)" - - if [ -z "$ip" ]; then - logger -t adsbcot "No IPv4 found on $IFACE_DEV; not setting PYTAK_MULTICAST_LOCAL_ADDR" - fi - - procd_open_instance - procd_set_param command "$PROG" -c "$CONF" - # Export env var if we have it - [ -n "$ip" ] && procd_set_param env PYTAK_MULTICAST_LOCAL_ADDR="$ip" - - # Restart on crash: 5s min, 10s max, 5 tries - procd_set_param respawn 5 10 5 - - # Log to logread - procd_set_param stdout 1 - procd_set_param stderr 1 - - # Re-run if the config file changes - procd_set_param file "$CONF" - - procd_close_instance -} diff --git a/package/alfred-openmanet/Config.in b/package/alfred-openmanet/Config.in deleted file mode 100644 index 810b746cd84..00000000000 --- a/package/alfred-openmanet/Config.in +++ /dev/null @@ -1,22 +0,0 @@ -config ALFRED_NEEDS_lua - bool - -config ALFRED_NEEDS_libgps - bool - -config PACKAGE_ALFRED_VIS - bool "enable vis server for alfred" - depends on PACKAGE_alfred - default y - -config PACKAGE_ALFRED_BATHOSTS - bool "enable autogeneration of /etc/bat-hosts" - depends on PACKAGE_alfred - select ALFRED_NEEDS_lua - default y - -config PACKAGE_ALFRED_GPSD - bool "enable gpsd service for alfred" - depends on PACKAGE_alfred - select ALFRED_NEEDS_libgps - default y \ No newline at end of file diff --git a/package/alfred-openmanet/Makefile b/package/alfred-openmanet/Makefile deleted file mode 100644 index 2282f59935a..00000000000 --- a/package/alfred-openmanet/Makefile +++ /dev/null @@ -1,84 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -include $(TOPDIR)/rules.mk - -PKG_NAME:=alfred -PKG_VERSION:=2023.1 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION) -PKG_HASH:=438048248f373757d3a8bde7cbc6db6685f4d0105d130da2f5a54f29090c6974 - -PKG_MAINTAINER:=Simon Wunderlich -PKG_LICENSE:=GPL-2.0-only MIT -PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT - -PKG_BUILD_PARALLEL:=1 -PKG_BUILD_FLAGS:=gc-sections lto - -PKG_CONFIG_DEPENDS += \ - CONFIG_ALFRED_NEEDS_lua \ - CONFIG_ALFRED_NEEDS_libgps \ - CONFIG_PACKAGE_ALFRED_VIS \ - CONFIG_PACKAGE_ALFRED_BATHOSTS \ - CONFIG_PACKAGE_ALFRED_GPSD - -include $(INCLUDE_DIR)/package.mk - -define Package/alfred - SECTION:=net - CATEGORY:=Network - TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon - URL:=https://www.open-mesh.org/ - DEPENDS:= +libc @IPV6 +libnl-tiny +librt \ - +ALFRED_NEEDS_lua:lua \ - +ALFRED_NEEDS_libgps:libgps -endef - -define Package/alfred/description - alfred is a user space daemon for distributing arbitrary local information - over the mesh/network in a decentralized fashion. This data can be anything - which appears to be useful - originally designed to replace the batman-adv - visualization (vis), you may distribute hostnames, phone books, administration - information, DNS information, the local weather forecast ... - - alfred runs as daemon in the background of the system. A user may insert - information by using the alfred binary on the command line, or use special - programs to communicate with alfred (done via unix sockets). alfred then takes - care of distributing the local information to other alfred servers on other - nodes. This is done via IPv6 link-local multicast, and does not require any - configuration. A user can request data from alfred, and will receive the - information available from all alfred servers in the network. -endef - -define Package/alfred/conffiles -/etc/config/alfred -endef - -define Package/alfred/config - source "$(SOURCE)/Config.in" -endef - -MAKE_FLAGS += \ - CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \ - CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \ - CONFIG_ALFRED_CAPABILITIES=n \ - LIBNL_NAME="libnl-tiny" \ - LIBNL_GENL_NAME="libnl-tiny" \ - REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)" - -define Package/alfred/install - $(INSTALL_DIR) $(1)/usr/sbin - cp -fpR $(PKG_BUILD_DIR)/alfred $(1)/usr/sbin/ - [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/vis/batadv-vis $(1)/usr/sbin/ ; true - [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/gpsd/alfred-gpsd $(1)/usr/sbin/ ; true - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred - $(INSTALL_DIR) $(1)/etc/alfred - [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true -endef - -$(eval $(call BuildPackage,alfred)) \ No newline at end of file diff --git a/package/alfred-openmanet/files/alfred.config b/package/alfred-openmanet/files/alfred.config deleted file mode 100644 index 4c9e2cb5dd5..00000000000 --- a/package/alfred-openmanet/files/alfred.config +++ /dev/null @@ -1,6 +0,0 @@ -config 'alfred' 'alfred' - list interface 'br-ahwlan' - option mode 'master' - option batmanif 'bat0' - option start_vis '0' - option run_facters '1' diff --git a/package/alfred-openmanet/files/alfred.init b/package/alfred-openmanet/files/alfred.init deleted file mode 100644 index 6652a43ec6e..00000000000 --- a/package/alfred-openmanet/files/alfred.init +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh /etc/rc.common - -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# - -START=99 -USE_PROCD=1 -alfred_args="" -vis_args="" -facters_dir="/etc/alfred" -enable=0 -vis_enable=0 - -append_interface() -{ - append "interfaces" "$1" "," -} - -alfred_start() { - local args="" - local section="$1" - local disabled interface mode - local interfaces - - # check if section is disabled - config_get_bool disabled "$section" disabled 0 - [ $disabled = 0 ] || return 1 - - args="-f" - - config_list_foreach "$section" "interface" append_interface - if [ -z "$interfaces" ]; then - config_get interface "$section" interface - append_interface "$interface" - fi - append args "-i $interfaces" - - config_get mode "$section" mode - [ "$mode" = "master" ] && append args "-m" - - config_get batmanif "$section" batmanif - append args "-b $batmanif" - - append alfred_args "$args" - enable=1 - - config_get_bool start_vis "$section" start_vis 0 - if [ "$start_vis" = 1 ] && [ -x /usr/sbin/batadv-vis ]; then - vis_enable=1 - append vis_args "-i $batmanif -s" - fi - - config_get_bool run_facters "$section" run_facters 0 - - return 0 -} - -start_service() { - config_load "alfred" - config_foreach alfred_start alfred - - [ "$enable" = "0" ] && return 0 - - procd_open_instance "alfred" - procd_set_param command /usr/sbin/alfred - procd_append_param command ${alfred_args} - procd_close_instance - - [ "$vis_enable" = "1" ] && { - procd_open_instance "batadv-vis" - procd_set_param command /usr/sbin/batadv-vis - procd_append_param command ${vis_args} - procd_close_instance - } - - [ "$run_facters" = "1" ] && { - ( for file in $facters_dir/* ; do [ -x $file ] && $file ; done ) - if ! ( grep -q "for file in $facters_dir/\* ; do " /etc/crontabs/root 2>/dev/null ) ; then - echo "*/5 * * * * ( for file in $facters_dir/* ; do [ -x \$file ] && \$file ; done )" >> /etc/crontabs/root - /etc/init.d/cron enable - /etc/init.d/cron restart - fi - } -} - -service_triggers() { - procd_add_reload_trigger "alfred" -} - -stop_service() { - [ -e /etc/crontabs/root ] && { - sed "\|for file in $facters_dir/\* ; do |d" -i /etc/crontabs/root - /etc/init.d/cron restart - } -} \ No newline at end of file diff --git a/package/alfred-openmanet/files/bat-hosts.lua b/package/alfred-openmanet/files/bat-hosts.lua deleted file mode 100644 index bcfe72be66d..00000000000 --- a/package/alfred-openmanet/files/bat-hosts.lua +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/lua - -local type_id = 64 -- bat-hosts - -function get_hostname() - local hostfile = io.open("/proc/sys/kernel/hostname", "r") - local ret_string = hostfile:read() - hostfile:close() - return ret_string -end - -function get_interfaces_names() - local ret = {} - - for name in io.popen("ls -1 /sys/class/net/"):lines() do - table.insert(ret, name) - end - - return ret -end - -function get_interface_address(name) - local addressfile = io.open("/sys/class/net/"..name.."/address", "r") - local ret_string = addressfile:read() - addressfile:close() - return ret_string -end - - -local function generate_bat_hosts() --- get hostname and interface macs/names --- then return a table containing valid bat-hosts lines - local n, i - local ifaces, ret = {}, {} - - local hostname = get_hostname() - - for n, i in ipairs(get_interfaces_names()) do - local address = get_interface_address(i) - if not ifaces[address] then ifaces[address] = i end - end - - for mac, iname in pairs(ifaces) do - -- Don't add invalid MAC addresses - -- Don't add morse0 MAC addresses (12:00:00:00:00:00) - if mac:match("^%x%x:%x%x:%x%x:%x%x:%x%x:%x%x$") and not mac:match("00:00:00:00:00:00") and not mac:match("12:00:00:00:00:00") then - table.insert(ret, mac.." "..hostname.."_"..iname.."\n") - end - end - - return ret -end - -local function publish_bat_hosts() --- pass a raw chunk of data to alfred - local fd = io.popen("alfred -s " .. type_id, "w") - if fd then - local ret = generate_bat_hosts() - if ret then - fd:write(table.concat(ret)) - end - fd:close() - end -end - -local function write_bat_hosts(rows) - local content = { "### /tmp/bat-hosts generated by alfred-bat-hosts\n", - "### /!\\ This file is overwritten every 5 minutes /!\\\n", - "### (To keep manual changes, replace /etc/bat-hosts symlink with a static file)\n" } - - -- merge the chunks from all nodes, de-escaping newlines - for _, row in ipairs(rows) do - local node, value = unpack(row) - table.insert(content, "# Node ".. node .. "\n") - table.insert(content, value:gsub("\x0a", "\n") .. "\n") - end - - -- write parsed content down to disk - local fd = io.open("/tmp/bat-hosts", "w") - if fd then - fd:write(table.concat(content)) - fd:close() - end - - -- try to make a symlink in /etc pointing to /tmp, - -- if it exists, ln will do nothing. - os.execute("ln -ns /tmp/bat-hosts /etc/bat-hosts 2>/dev/null") -end - -local function receive_bat_hosts() --- read raw chunks from alfred, convert them to a nested table and call write_bat_hosts --- "alfred -r" can fail in slave nodes (returns empty stdout), so: --- check output is not null before writing /tmp/bat-hosts, and retry 3 times before giving up. - for n = 1, 3 do - local fd = io.popen("alfred -r " .. type_id) - --[[ this command returns something like - { "54:e6:fc:b9:cb:37", "00:11:22:33:44:55 ham_wlan0\x0a00:22:33:22:33:22 ham_eth0\x0a" }, - { "90:f6:52:bb:ec:57", "00:22:33:22:33:23 spam\x0a" }, - ]]-- - - if fd then - local output = fd:read("*a") - fd:close() - if output and output ~= "" then - assert(loadstring("rows = {" .. output .. "}"))() - write_bat_hosts(rows) - break - end - end - end -end - -publish_bat_hosts() -receive_bat_hosts() \ No newline at end of file diff --git a/package/base-files/files/etc/init.d/mesh-routing b/package/base-files/files/etc/init.d/mesh-routing deleted file mode 100644 index 8840966f04f..00000000000 --- a/package/base-files/files/etc/init.d/mesh-routing +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=96 -STOP=10 - -USE_PROCD=1 - -start_service() { - # Enable cross-mesh client routing through batman-adv - logger "mesh-routing: Setting up cross-mesh client routes" - - # Wait for network services to be ready - sleep 45 - - # Add routes for cross-mesh connectivity - ( - # Wait for bat0 interface to be fully operational - local retry=0 - while [ $retry -lt 30 ]; do - if ip link show bat0 >/dev/null 2>&1 && ip addr show bat0; then - logger "mesh-routing: bat0 interface is ready" - break - fi - retry=$((retry + 1)) - logger "mesh-routing: Waiting for bat0 interface (attempt $retry/30)" - sleep 2 - done - - # Enable IP forwarding for cross-mesh client communication - echo 1 > /proc/sys/net/ipv4/ip_forward - logger "mesh-routing: IP forwarding enabled" - - # Add routing rules for 10.41.0.0/16 mesh client subnet - if ! ip route show | grep -q "10.41.0.0/16"; then - ip route add 10.41.0.0/16 dev bat0 metric 100 2>/dev/null || true - logger "mesh-routing: Added route for mesh client subnet" - fi - - # Enable multicast forwarding for batman-adv - echo 1 > /proc/sys/net/ipv4/conf/bat0/mc_forwarding 2>/dev/null || true - echo 1 > /proc/sys/net/ipv4/conf/br-ahwlan/mc_forwarding 2>/dev/null || true - - # Setup ARP proxying for cross-mesh client discovery - echo 1 > /proc/sys/net/ipv4/conf/bat0/proxy_arp 2>/dev/null || true - echo 1 > /proc/sys/net/ipv4/conf/br-ahwlan/proxy_arp 2>/dev/null || true - - logger "mesh-routing: Cross-mesh client routing configured" - ) & -} - -stop() { - logger "mesh-routing: Stopping mesh routing service" -} \ No newline at end of file diff --git a/package/network/services/umdns/files/umdns.config b/package/network/services/umdns/files/umdns.config index d4936bb0922..79ac1faa21e 100644 --- a/package/network/services/umdns/files/umdns.config +++ b/package/network/services/umdns/files/umdns.config @@ -1,3 +1,3 @@ config umdns option jail 1 - list network lan + list network ahwlan diff --git a/target/linux/bcm27xx/base-files/etc/config/gpsd b/target/linux/bcm27xx/base-files/etc/config/gpsd deleted file mode 100644 index 05966ab739c..00000000000 --- a/target/linux/bcm27xx/base-files/etc/config/gpsd +++ /dev/null @@ -1,5 +0,0 @@ -config gpsd 'core' - option enabled '1' - option device '/dev/ttyS0' - option port '2947' - option listen_globally '0' diff --git a/target/linux/bcm27xx/bcm2711/config-5.15 b/target/linux/bcm27xx/bcm2711/config-5.15 index 9b20f77f9bd..4b61f646c00 100644 --- a/target/linux/bcm27xx/bcm2711/config-5.15 +++ b/target/linux/bcm27xx/bcm2711/config-5.15 @@ -482,3 +482,5 @@ CONFIG_SPI_BITBANG=y CONFIG_SPI_DYNAMIC=y CONFIG_SPI_GPIO=y CONFIG_SPI_MASTER=y + +CONFIG_MAC80211_MESH=y