From 3d99aab94ad562f78c35952989f5fb4001e35525 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 12 Jun 2024 20:13:27 +0200 Subject: [PATCH 01/22] Force 2022-blake3-aes-256-gcm for XRay using Shadowsocks protocol --- .../luasrc/controller/openmptcprouter.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index bcef29a9d..195aa9e14 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -1003,8 +1003,8 @@ function wizard_add() ucic:set("xray","omrout","s_vless_reality_user_security","chacha20-poly1305") ucic:set("xray","omrout","s_trojan_user_security","chacha20-poly1305") ucic:set("xray","omrout","s_socks_user_security","chacha20-poly1305") - ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-chacha20-poly1305") - --ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-aes-256-gcm") + --ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-chacha20-poly1305") + ucic:set("xray","omrout","s_shadowsocks_method","2022-blake3-aes-256-gcm") --ucic:set("shadowsocks-rust","sss0","method","2022-blake3-chacha20-poly1305") --ucic:set("shadowsocks-rust","sss1","method","2022-blake3-chacha20-poly1305") ucic:set("shadowsocks-rust","sss0","method","2022-blake3-aes-256-gcm") From 424fa0bbf69f397b697abcc1757bd02044af5bd7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 12 Jun 2024 20:14:05 +0200 Subject: [PATCH 02/22] Use ipv4 by default in omr-tracker if family is not set --- omr-tracker/files/etc/init.d/omr-tracker | 2 ++ 1 file changed, 2 insertions(+) diff --git a/omr-tracker/files/etc/init.d/omr-tracker b/omr-tracker/files/etc/init.d/omr-tracker index b21153efd..ee8f27291 100755 --- a/omr-tracker/files/etc/init.d/omr-tracker +++ b/omr-tracker/files/etc/init.d/omr-tracker @@ -111,6 +111,7 @@ _launch_tracker() { [ -z "${reliability}" ] && reliability=1 [ -z "${tries_up}" ] && tries_up=${tries} [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "1" ] && ipv6="0" + [ -z "${family}" ] && family='ipv4' #[ -z "${failure_interval}" ] && failure_interval=5 procd_open_instance @@ -289,6 +290,7 @@ _launch_shadowsocks_tracker() { # shellcheck disable=SC2086 procd_set_param command /bin/omr-tracker-ss "$1" procd_append_param env "OMR_TRACKER_HOSTS=$hosts" + procd_append_param env "OMR_TRACKER_HOSTS6=$hosts6" procd_append_param env "OMR_TRACKER_TIMEOUT=$timeout" procd_append_param env "OMR_TRACKER_TRIES=$tries" procd_append_param env "OMR_TRACKER_INTERVAL=$interval" From 5b25a1573bf853c89d2e975da6cae8d23cbeb4bc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 12 Jun 2024 20:14:45 +0200 Subject: [PATCH 03/22] Use wpad-mesh-openssl and fix typo --- openmptcprouter-full/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index e856a13be..3dd6873b7 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -76,7 +76,7 @@ MY_DEPENDS := \ !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-option !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-wwan !(TARGET_mvebu||TARGET_ipq40xx):usb-modeswitch !TARGET_mvebu:uqmi \ !TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \ !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-huawei-cdc-ncm !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-rndis !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-cdc-ether !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-ipheth !(TARGET_mvebu||TARGET_ipq40xx):usbmuxd !(TARGET_mvebu||TARGET_ipq40xx):libusbmuxd \ - !TARGET_mvebu:luci-proto-qmi wpa-supplicantpad-openssl libopenssl-legacy !(TARGET_ipq40xx||TARGET_x86_64):kmod-mt7601u TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ + !TARGET_mvebu:luci-proto-qmi wpad-mesh-openssl libopenssl-legacy !(TARGET_ipq40xx||TARGET_x86_64):kmod-mt7601u TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ !TARGET_mvebu:luci-app-mlvpn !TARGET_mvebu:mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim !TARGET_x86_64:kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \ hwinfo (TARGET_x86||TARGET_x86_64):dmidecode kmod-bonding luci-proto-bonding luci-app-sysupgrade \ From 27381b06ff9e8feb331cc6f8d847a4c11a9953e0 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 12 Jun 2024 20:15:18 +0200 Subject: [PATCH 04/22] Don't update IP via openmptcprouter-vps when not needed --- openmptcprouter/files/etc/init.d/openmptcprouter-vps | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 01535efd5..f12c6f98e 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -2221,12 +2221,13 @@ _config_service() { [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && ([ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] || [ "$(uci -q get openmptcprouter.${servername}.current)" = "1" ]) && { _set_config_from_vps _get_gre_tunnel - } - - ([ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] || [ "$(uci -q get openmptcprouter.${servername}.current)" = "1" ]) && { _get_vps_config } +# ([ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] || [ "$(uci -q get openmptcprouter.${servername}.current)" = "1" ]) && { +# _get_vps_config +# } + if [ "$(uci -q get openmptcprouter.settings.firstboot)" != "0" ]; then [ -n "$(cat /proc/cpuinfo | grep aes)" ] && { vps_aes="$(echo "$vps_config" | jsonfilter -q -e '@.vps.aes')" From d440406c83d47d4c57df8ac7e0abcc0e017d6143 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 12 Jun 2024 20:15:54 +0200 Subject: [PATCH 05/22] Default aes-256-gcm for OpenVPN --- openmptcprouter/files/etc/uci-defaults/2020-omr-vpn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn index 69c3632a7..95d6c3c06 100755 --- a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn +++ b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn @@ -35,7 +35,7 @@ if [ "$(uci -q get openvpn.omr.proto)" != "tcp-client" ]; then set openvpn.omr=openvpn set openvpn.omr.dev=tun0 set openvpn.omr.port=65301 - set openvpn.omr.cipher=AES-256-CBC + set openvpn.omr.cipher=AES-256-GCM set openvpn.omr.proto=tcp-client set openvpn.omr.auth_nocache=1 set openvpn.omr.client=1 From 6d43d72453b2f69eddc8dca6b0f729670088dfb9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 12 Jun 2024 20:16:20 +0200 Subject: [PATCH 06/22] Fix rust for 5.4 --- rust/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/rust/Makefile b/rust/Makefile index 229ab3e2c..3d85fc2fb 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -100,9 +100,7 @@ endef define Host/Install ( \ cd $(HOST_BUILD_DIR)/build/dist ; \ - for targz in *.tar.gz; do \ - $(STAGING_DIR_HOST)/bin/libdeflate-gzip -dc "$$$$targz" | tar -xf - ; \ - done ; \ + find -iname "*.tar.gz" -exec tar -xzf {} \; ; \ find . -mindepth 2 -maxdepth 2 -type f -name install.sh \ -execdir bash '{}' --prefix=$(STAGING_DIR)/host --disable-ldconfig \; ; \ ) From 7cb39585d9ebc0a86b4eabad094a15f20236a646 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 13 Jun 2024 09:35:46 +0200 Subject: [PATCH 07/22] Update Shadowsocks-Rust --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index a781f7ed5..6dd3ed242 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.19.3 -PKG_HASH:=d2ba10b56ae54378df40215705be6a5eee1ca96f30f4c59bc4fa001c1d6f676f +PKG_VERSION:=1.19.4 +PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz From a0990c183318795868f5d455144f1ea9444ce6ac Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 13 Jun 2024 14:31:38 +0200 Subject: [PATCH 08/22] Use ModemManager functions in post-tracking script --- .../omr/post-tracking.d/001-post-tracking | 101 ++++++++++-------- 1 file changed, 54 insertions(+), 47 deletions(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking index b2af0d597..5b0e06bad 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking @@ -755,58 +755,65 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn #if [ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] && [ "$interface_up" = "false" ] && [ "$interface_available" = "false" ] && [ "$interface_pending" = "false" ] && [ "$interface_autostart" = "true" ]; then if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ]; then modemfind="0" - for modem in $(timeout 3 mmcli -L | awk -F/ '{ print $6}' | awk '{print $1}'); do - modeminfo="$(timeout 2 mmcli -m $modem -K)" - device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)" - if [ -n "$(echo $modeminfo | grep $device)" ]; then - modemfind="1" - mm_state="$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.state / {print $3}' | tr -d '\n')" - if [ "$mm_state" = "failed" ]; then - if [ -n "$(echo $modeminfo | grep 'modem.generic.state-failed-reason' | grep 'unknown-capabilities')" ]; then - _log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..." - /usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null + device="$(uci -q get network.$OMR_TRACKER_INTERFACE.device)" + . /usr/share/ModemManager/modemmanager.common + [ -n "$device" ] && MODEM_STATUS="$(mmcli -m $device -K)" + modem=$device + if [ -n "$MODEM_STATUS" ]; then + modemfind="1" + mm_state=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.state") + if [ "$mm_state" = "failed" ]; then + mm_state_failed=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.state-failed-reason") + if [ "$mm_state_failed" = "unknown-capabilities" ]; then + _log "Interface $OMR_TRACKER_INTERFACE in failed state in ModemManager, reset modem..." + /usr/bin/mmcli -m ${modem} -r 2>&1 >/dev/null + sleep 30 + fi + elif [ "$mm_state" = "connected" ] || [ "$mm_state" = "enabled" ]; then + uci -q del network.$OMR_TRACKER_INTERFACE.pin_retry + _log "No answer from $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE), restart interface" + _log "Set $OMR_TRACKER_INTERFACE down" + ifdown $OMR_TRACKER_INTERFACE + sleep 5 + _log "Set $OMR_TRACKER_INTERFACE up" + ifup $OMR_TRACKER_INTERFACE + sleep 30 + elif [ "$mm_state" = "disabled" ]; then + # [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then + _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up" + ifup $OMR_TRACKER_INTERFACE + sleep 30 + elif [ "$mm_state" = "registered" ]; then + _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) registered, set it up" + ifup $OMR_TRACKER_INTERFACE + sleep 30 + elif [ "$mm_state" = "locked" ]; then + mm_unlock_required=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.unlock-required") + mm_generic_sim=$(modemmanager_get_field "${MODEM_STATUS}" "modem.generic.sim") + if [ "$mm_unlock_required" = "sim-pin" ]; then + # Sometimes PIN is not correctly sent to modem + if ([ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" -lt "$(uci -q get openmptcprouter.settings.max_pin_retry || echo '2')" ]) && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then + _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN" + #if [ -n "$(echo $modeminfo | grep 'mbim')" ]; then + # mbimcli -d /dev/$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.primary-port / {print $3}') -p --enter-pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null + # ifup $OMR_TRACKER_INTERFACE + #else + mmcli -i $mm_generic_sim --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null + #fi sleep 30 - fi - elif [ "$mm_state" = "connected" ] || [ "$mm_state" = "enabled" ]; then - # [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then - uci -q del network.$OMR_TRACKER_INTERFACE.pin_retry - _log "No answer from $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE), restart interface" - _log "Set $OMR_TRACKER_INTERFACE down" - ifdown $OMR_TRACKER_INTERFACE - sleep 5 - _log "Set $OMR_TRACKER_INTERFACE up" - ifup $OMR_TRACKER_INTERFACE - sleep 30 - elif [ "$mm_state" = "disabled" ]; then - # [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then - _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up" - ifup $OMR_TRACKER_INTERFACE - sleep 30 - elif [ "$mm_state" = "registered" ]; then - _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) registered, set it up" - ifup $OMR_TRACKER_INTERFACE - sleep 30 - elif [ "$mm_state" = "locked" ]; then - if [ -n "$(echo $modeminfo | grep 'modem.generic.unlock-required ' | grep 'sim-pin')" ]; then - # Sometimes PIN is not correctly sent to modem - if ([ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" -lt "$(uci -q get openmptcprouter.settings.max_pin_retry || echo '2')" ]) && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then - _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PIN" - mmcli -i $(timeout 2 mmcli -m $modem -K | awk '/modem.generic.sim / {print $3}') --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null - sleep 30 - if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then - uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=1 - else - uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=$(($(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry) + 1)) - fi + if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then + uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=1 + else + uci -q set network.$OMR_TRACKER_INTERFACE.pin_retry=$(($(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry) + 1)) fi - elif [ -n "$(echo $modeminfo | grep 'modem.generic.unlock-required ' | grep 'sim-puk')" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode)" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then - _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PUK" - mmcli -i $(timeout 2 mmcli -m $modem -K | awk '/modem.generic.sim / {print $3}') --puk=$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode) --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null - sleep 30 fi + elif [ "$mm_unlock_required" = "sim-puk" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode)" ] && [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode)" ]; then + _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) locked, set PUK" + mmcli -i $mm_generic_sim --puk=$(uci -q get network.$OMR_TRACKER_INTERFACE.pukcode) --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null + sleep 30 fi fi - done + fi if [ "$modemfind" = "0" ]; then #_log "Can't find $OMR_TRACKER_INTERFACE in ModemManager, rescan modem..." #/usr/bin/mmcli -S 2>&1 >/dev/null From 1dc85e8cffa0ee909673f19c008ea9764229b194 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 13 Jun 2024 14:31:58 +0200 Subject: [PATCH 09/22] Change status update calculation --- mptcp/files/usr/share/omr/post-tracking.d/020-status | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/020-status b/mptcp/files/usr/share/omr/post-tracking.d/020-status index a73ac1069..5c86b0cb9 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/020-status +++ b/mptcp/files/usr/share/omr/post-tracking.d/020-status @@ -11,7 +11,7 @@ interface_up=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e [ "$interface_up" != "true" ] && exit 0 # Save wan settings for status page -if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]); then +if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 10)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]); then [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Get status and settings for $OMR_TRACKER_INTERFACE..." local ipaddr="" local ip6addr="" From 99067813a3b3d7718e44d4f716580fcd12022a02 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 13 Jun 2024 19:59:53 +0200 Subject: [PATCH 10/22] Add ModemManager status to ubus using feckert pull request to OpenWRT --- modemmanager/Makefile | 5 + .../files/usr/libexec/rpcd/modemmanager | 216 ++++++++++++++++++ 2 files changed, 221 insertions(+) create mode 100644 modemmanager/files/usr/libexec/rpcd/modemmanager diff --git a/modemmanager/Makefile b/modemmanager/Makefile index 638a51adf..a99efcbf3 100644 --- a/modemmanager/Makefile +++ b/modemmanager/Makefile @@ -43,6 +43,7 @@ define Package/modemmanager +glib2 \ +dbus \ +ppp \ + +lua-cjson \ +MODEMMANAGER_WITH_MBIM:libmbim \ +MODEMMANAGER_WITH_QMI:libqmi \ +MODEMMANAGER_WITH_QRTR:libqrtr-glib @@ -95,6 +96,10 @@ define Package/modemmanager/install $(INSTALL_BIN) ./files/usr/sbin/ModemManager-wrapper $(1)/usr/sbin $(INSTALL_BIN) ./files/usr/sbin/ModemManager-monitor $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/libexec/rpcd + $(INSTALL_BIN) ./files/usr/libexec/rpcd/modemmanager \ + $(1)/usr/libexec/rpcd/ + $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mmcli $(1)/usr/bin diff --git a/modemmanager/files/usr/libexec/rpcd/modemmanager b/modemmanager/files/usr/libexec/rpcd/modemmanager new file mode 100644 index 000000000..0f0d24a48 --- /dev/null +++ b/modemmanager/files/usr/libexec/rpcd/modemmanager @@ -0,0 +1,216 @@ +#!/usr/bin/env lua + +local json = require "cjson" + +local status = {} +local bearers = {} +local sim = {} +local signal = {} +local location = {} + +local info = {} + +function mm_get_modem_bearer(index) + + local command = string.format("/usr/bin/mmcli --bearer=%s --output-json 2>/dev/null", index) + + local handle = io.popen(command) + local output = handle:read("*a") + handle:close() + + local ok, status = pcall(function() + return json.decode(string.format(output)) + end) + + if not ok then + return + end + + table.insert(bearers, status["bearer"]) +end + +function mm_get_modem_sim(index) + + local command = string.format("/usr/bin/mmcli --sim=%s --output-json 2>/dev/null", index) + + local handle = io.popen(command) + local output = handle:read("*a") + handle:close() + + local ok, status = pcall(function() + return json.decode(string.format(output)) + end) + + if not ok then + return + end + + sim = status["sim"] +end + +function mm_get_modem_signal(modem) + + local command = string.format("/usr/bin/mmcli --modem=%s --signal-get --output-json 2>/dev/null", modem) + + local handle = io.popen(command) + local output = handle:read("*a") + handle:close() + + local ok, status = pcall(function() + return json.decode(string.format(output)) + end) + + if ok == false then + return + end + + signal = status["modem"]["signal"] +end + +function mm_get_modem_location(modem) + + local command = string.format("/usr/bin/mmcli --modem=%s --location-get --output-json 2>/dev/null", modem) + + local handle = io.popen(command) + local output = handle:read("*a") + handle:close() + + local ok, status = pcall(function() + return json.decode(string.format(output)) + end) + + if ok == false then + return + end + + location = status["modem"]["location"] +end + +function mm_get_modem_status(modem) + + local command = string.format("/usr/bin/mmcli --modem=%s --output-json 2>/dev/null", modem) + + local handle = io.popen(command) + local output = handle:read("*a") + handle:close() + + local ok, mstatus = pcall(function() + return json.decode(string.format(output)) + end) + + if ok == false then + return + end + + if mstatus["modem"]["generic"]["bearers"] ~= nil then + bearers = {} + for k, v in ipairs(mstatus["modem"]["generic"]["bearers"]) do + mm_get_modem_bearer(v) + end + if (next(bearers) ~= nil) then + mstatus["modem"]["generic"]["bearers"] = bearers + end + end + + if mstatus["modem"]["generic"]["sim"] ~= "--" then + sim = {} + mm_get_modem_sim(mstatus["modem"]["generic"]["sim"]) + if (next(sim) ~= nil) then + mstatus["modem"]["generic"]["sim"] = sim + end + else + mstatus["modem"]["generic"]["sim"] = {} + end + + signal = {} + mm_get_modem_signal(modem) + if (next(signal) ~= nil) then + mstatus["modem"]["signal"] = signal + else + mstatus["modem"]["signal"] = {} + end + + location = {} + mm_get_modem_location(modem) + if (next(location) ~= nil) then + mstatus["modem"]["location"] = location + else + mstatus["modem"]["location"] = {} + end + + mstatus["modem"]["device"] = mstatus["modem"]["generic"]["device"] + + table.insert(status["modem"], mstatus["modem"]) +end + +function aquire_data_modemmanager() + + local command = string.format("/usr/bin/mmcli --list-modems --output-json 2>/dev/null") + + local handle = io.popen(command) + local output = handle:read("*a") + handle:close() + + local ok, modems = pcall(function() + return json.decode(output) + end) + + if not ok then + return + end + + entry_cache = {} + status = {} + status["modem"] = {} + for k, v in ipairs(modems["modem-list"]) do + mm_get_modem_status(modems["modem-list"][k]) + end +end + +function aquire_data_info() + aquire_data_modemmanager() + + -- check if modemmanger is available and is using a modem + if status['modem'] == nil then + return + end + + info['modem'] = {} + + for k, v in ipairs(status['modem']) do + local element = {} + + element['imei'] = status['modem'][k]['3gpp']['imei'] + element['signal'] = status['modem'][k]['generic']['signal-quality']['value'] + element['technology'] = status['modem'][k]['generic']['access-technologies'][1] + if status['modem'][k]['3gpp']['operator-name'] ~= '--' then + element['operator'] = status['modem'][k]['3gpp']['operator-name'] + end + if status['modem'][k]['generic']['sim']['properties'] ~= nil then + element['iccid'] = status['modem'][k]['generic']['sim']['properties']['iccid'] + element['imsi'] = status['modem'][k]['generic']['sim']['properties']['imsi'] + end + element['device'] = status['modem'][k]['device'] + + table.insert(info['modem'], element) + end +end + +function main(cmd, call) + if cmd == "list" then + print(json.encode({ + dump = {}, + info = {} + })) + elseif cmd == "call" then + if call == "dump" then + aquire_data_modemmanager() + print(json.encode(status)) + elseif call == "info" then + aquire_data_info() + print(json.encode(info)) + end + end +end + +main(arg[1], arg[2]) From 91f4fc159bc0803cefd542cbdb1c566d87d09fa9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 13 Jun 2024 20:00:40 +0200 Subject: [PATCH 11/22] Do not disable modem in ModemManager on reconnect using feckert pull request to OpenWRT --- modemmanager/files/lib/netifd/proto/modemmanager.sh | 13 +++++++++++-- .../lib/ModemManager/connection.d/10-report-down | 2 ++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modemmanager/files/lib/netifd/proto/modemmanager.sh b/modemmanager/files/lib/netifd/proto/modemmanager.sh index 67545513d..89a5a09f3 100644 --- a/modemmanager/files/lib/netifd/proto/modemmanager.sh +++ b/modemmanager/files/lib/netifd/proto/modemmanager.sh @@ -710,8 +710,17 @@ proto_modemmanager_teardown() { mmcli --modem="${device}" --simple-disconnect || proto_notify_error "${interface}" DISCONNECT_FAILED - # disable - mmcli --modem="${device}" --disable + # reading variable from var state which was set in + # '/usr/lib/ModemManager/connection.d/10-report-down' + # because of a reconnect event. + # The modem therefore does not need to be disabled. + local disable="$(uci_get_state network "$interface" disable_modem "1")" + if [ "${disable}" -eq 0 ]; then + echo "Skipping modem disable" + uci_revert_state network "${interface}" disable_modem + else + mmcli --modem="${device}" --disable + fi # low power, only if requested [ "${lowpower:-0}" -lt 1 ] || diff --git a/modemmanager/files/usr/lib/ModemManager/connection.d/10-report-down b/modemmanager/files/usr/lib/ModemManager/connection.d/10-report-down index b8feb2677..a5728b6c6 100644 --- a/modemmanager/files/usr/lib/ModemManager/connection.d/10-report-down +++ b/modemmanager/files/usr/lib/ModemManager/connection.d/10-report-down @@ -32,6 +32,8 @@ IFUP=$(ifstatus "${CFG}" | jsonfilter -e "@.up") [ "${IFUP}" = "true" ] && { mm_log "info" "Reconnecting '${CFG}' on '${STATE}' event" + + uci_toggle_state network "${CFG}" disable_modem "0" ubus call network.interface down "{ 'interface': '${CFG}'}" ubus call network.interface up "{ 'interface': '${CFG}'}" } From c22c5698500dbc8a5f4e8ea70daa35ca199e5e09 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 13 Jun 2024 20:01:09 +0200 Subject: [PATCH 12/22] Enable modem if in disable state via post-tracking script --- mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking | 1 + 1 file changed, 1 insertion(+) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking index 5b0e06bad..a84de9187 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking @@ -781,6 +781,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn elif [ "$mm_state" = "disabled" ]; then # [ -n "$(echo $modeminfo | grep 'modem.3gpp.registration-state ' | grep home)" ]; then _log "Interface $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) disabled, set it up" + /usr/bin/mmcli -m ${modem} -e 2>&1 >/dev/null ifup $OMR_TRACKER_INTERFACE sleep 30 elif [ "$mm_state" = "registered" ]; then From 8755d07092285aecd921ff6b3455f5d17de29a7f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 14 Jun 2024 19:45:12 +0200 Subject: [PATCH 13/22] Revert to previous Shadowsocks-Rust release --- shadowsocks-rust/Makefile | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 6dd3ed242..e995b731b 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -7,9 +7,13 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.19.4 -PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 +#PKG_NAME:=shadowsocks-rust +#PKG_VERSION:=1.19.4 +#PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 +#PKG_VERSION:=1.19.3 +#PKG_HASH:=d2ba10b56ae54378df40215705be6a5eee1ca96f30f4c59bc4fa001c1d6f676f +PKG_VERSION:=1.18.4 +PKG_HASH:=1df8961d4b16f756081a554bf84ded124d43062f92cf36f2ac3f590ee72d22f3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz From 9e0178669e6ab211a8909ff63f897a6f85421ef0 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 14 Jun 2024 19:45:32 +0200 Subject: [PATCH 14/22] Start ModemManager earlier --- modemmanager/files/etc/init.d/modemmanager | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modemmanager/files/etc/init.d/modemmanager b/modemmanager/files/etc/init.d/modemmanager index aa739951d..462fe2c40 100644 --- a/modemmanager/files/etc/init.d/modemmanager +++ b/modemmanager/files/etc/init.d/modemmanager @@ -2,7 +2,7 @@ # Copyright (C) 2016 Aleksander Morgado USE_PROCD=1 -START=11 +START=05 LOG_LEVEL="INFO" From 9a7ff72633118e6951619064ceaa376bb506a616 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 14 Jun 2024 19:45:57 +0200 Subject: [PATCH 15/22] Use async to set PIN for ModemManager in post tracking script --- mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking index a84de9187..62843de9a 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/001-post-tracking @@ -799,7 +799,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || ([ "$OMR_TRACKER_INTERFACE" != "omrvpn # mbimcli -d /dev/$(timeout 2 mmcli -m $modem -K | awk '/modem.generic.primary-port / {print $3}') -p --enter-pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null # ifup $OMR_TRACKER_INTERFACE #else - mmcli -i $mm_generic_sim --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null + mmcli -a -i $mm_generic_sim --pin=$(uci -q get network.$OMR_TRACKER_INTERFACE.pincode) 2>&1 >/dev/null #fi sleep 30 if [ -z "$(uci -q get network.$OMR_TRACKER_INTERFACE.pin_retry)" ]; then From 74d58b691a58dd30d4e07af798a3776617059dbb Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 14 Jun 2024 19:46:23 +0200 Subject: [PATCH 16/22] Fix omr-tracker shadowsocks --- omr-tracker/files/bin/omr-tracker-ss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-tracker/files/bin/omr-tracker-ss b/omr-tracker/files/bin/omr-tracker-ss index 8d2bf02dd..d145ced7c 100755 --- a/omr-tracker/files/bin/omr-tracker-ss +++ b/omr-tracker/files/bin/omr-tracker-ss @@ -193,9 +193,9 @@ while true; do fi fi sleep $wait_test + OMR_TRACKER_STATUS="ERROR" fi } - OMR_TRACKER_STATUS="ERROR" fi _post_tracking OMR_TRACKER_PREV_STATUS="$OMR_TRACKER_STATUS" From 28f44d23c8acafd8bab77bcbad10d5ecbd4ed66f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 14 Jun 2024 21:00:12 +0200 Subject: [PATCH 17/22] Fix shadowsocks-rust package --- shadowsocks-rust/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index e995b731b..489c400f6 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -#PKG_NAME:=shadowsocks-rust +PKG_NAME:=shadowsocks-rust #PKG_VERSION:=1.19.4 #PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 #PKG_VERSION:=1.19.3 From 9c45295811e98a1b3c04014557c76f8858e73ee6 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 17 Jun 2024 20:27:47 +0200 Subject: [PATCH 18/22] Force bpf to not be installed with kernel 5.4 --- mptcp-bpf-burst/Makefile | 2 +- mptcp-bpf-first/Makefile | 2 +- mptcp-bpf-red/Makefile | 2 +- mptcp-bpf-rr/Makefile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mptcp-bpf-burst/Makefile b/mptcp-bpf-burst/Makefile index 44e5a05db..4fea04052 100644 --- a/mptcp-bpf-burst/Makefile +++ b/mptcp-bpf-burst/Makefile @@ -28,7 +28,7 @@ define Package/mptcp-bpf-burst SECTION:=net CATEGORY:=Network TITLE:=MPTCP BPF Burst Scheduler - DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) + DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4 endef define Build/Prepare diff --git a/mptcp-bpf-first/Makefile b/mptcp-bpf-first/Makefile index c226be7c4..b8c131aa0 100644 --- a/mptcp-bpf-first/Makefile +++ b/mptcp-bpf-first/Makefile @@ -28,7 +28,7 @@ define Package/mptcp-bpf-first SECTION:=net CATEGORY:=Network TITLE:=MPTCP BPF First Scheduler - DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) + DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4 endef TARGET_CFLAGS += \ diff --git a/mptcp-bpf-red/Makefile b/mptcp-bpf-red/Makefile index d23912659..e91f7d5ce 100644 --- a/mptcp-bpf-red/Makefile +++ b/mptcp-bpf-red/Makefile @@ -28,7 +28,7 @@ define Package/mptcp-bpf-red SECTION:=net CATEGORY:=Network TITLE:=MPTCP BPF Redundant Scheduler - DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) + DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4 endef define Build/Prepare diff --git a/mptcp-bpf-rr/Makefile b/mptcp-bpf-rr/Makefile index 1f626d22a..40f03e8ba 100644 --- a/mptcp-bpf-rr/Makefile +++ b/mptcp-bpf-rr/Makefile @@ -28,7 +28,7 @@ define Package/mptcp-bpf-rr SECTION:=net CATEGORY:=Network TITLE:=MPTCP BPF RoundRobin Scheduler - DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) + DEPENDS:=+libbpf +kmod-sched-core +kmod-sched-flower +kmod-sched-bpf $(BPF_DEPENDS) @!LINUX_5_4 endef define Build/Prepare From f9296de108d56ada6e09cb0273c453b6150ad9a8 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 17 Jun 2024 20:28:25 +0200 Subject: [PATCH 19/22] Add nft not available on 5.4 --- shadowsocks-libev/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index 25c3de5ab..c52a13e7e 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -122,7 +122,8 @@ define Package/shadowsocks-libev-ss-rules-nft +ucode-mod-fs \ +shadowsocks-libev-ss-redir \ +shadowsocks-libev-config \ - +kmod-nft-tproxy + +kmod-nft-tproxy \ + @!LINUX_5_4 endef From 629bfce0c5273fec097eda170eb5a687fab6a3e0 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 17 Jun 2024 20:28:35 +0200 Subject: [PATCH 20/22] Add nft not available on 5.4 --- omr-bypass/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-bypass/Makefile b/omr-bypass/Makefile index 59de108fb..8da60aad0 100644 --- a/omr-bypass/Makefile +++ b/omr-bypass/Makefile @@ -23,7 +23,7 @@ endef define Package/$(PKG_NAME)-nft SECTION:=net CATEGORY:=Network -DEPENDS:=+curl +dnsmasq-full +sqlite3-cli +firewall4 +DEPENDS:=+curl +dnsmasq-full +sqlite3-cli +firewall4 @!LINUX_5_4 TITLE:=OMR-ByPass NFT endef From 29317082ba821c3eac123c4fabdcd1d90572970a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 17 Jun 2024 20:28:57 +0200 Subject: [PATCH 21/22] Update Shadowsocks-Rust --- shadowsocks-rust/Makefile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 489c400f6..6a528fb25 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -8,12 +8,20 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=shadowsocks-rust +#PKG_VERSION:=1.20.0 +#PKG_HASH:=c818124252528886dd2a26c0f4730a34cdeb5764c3812cae0d98e9fc9c1d8ce9 #PKG_VERSION:=1.19.4 #PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 -#PKG_VERSION:=1.19.3 -#PKG_HASH:=d2ba10b56ae54378df40215705be6a5eee1ca96f30f4c59bc4fa001c1d6f676f -PKG_VERSION:=1.18.4 -PKG_HASH:=1df8961d4b16f756081a554bf84ded124d43062f92cf36f2ac3f590ee72d22f3 + +PKG_VERSION:=1.19.3 +PKG_HASH:=d2ba10b56ae54378df40215705be6a5eee1ca96f30f4c59bc4fa001c1d6f676f + +#PKG_VERSION:=1.19.1 +#PKG_HASH:=ac1d396fddec990477588b89dd27dc55cb9e10320ae7a2d8bae20fb3bfeed320 +#PKG_VERSION:=1.19.0 +#PKG_HASH:=080d2042eede744d2182ebb47929b504cd42ef8e0eefacdc5ece402f99328ea8 +#PKG_VERSION:=1.18.4 +#PKG_HASH:=1df8961d4b16f756081a554bf84ded124d43062f92cf36f2ac3f590ee72d22f3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz @@ -79,7 +87,8 @@ define Package/shadowsocks-rust-config-nft +resolveip \ +ucode \ +ucode-mod-fs \ - +kmod-nft-tproxy + +kmod-nft-tproxy \ + @!LINUX_5_4 endef From 6d8e55fe5f7eeaf60e46c33775e30e5edeb74319 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 17 Jun 2024 20:29:15 +0200 Subject: [PATCH 22/22] Fix for 5.4 compilation --- openmptcprouter-full/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 3dd6873b7..b4890c52b 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -72,13 +72,12 @@ MY_DEPENDS := \ luci-app-snmpd \ iputils-tracepath netcat simple-obfs \ (TARGET_x86||TARGET_x86_64):kmod-e1000 (TARGET_x86||TARGET_x86_64):kmod-e1000e (TARGET_x86||TARGET_x86_64):kmod-igb (TARGET_x86||TARGET_x86_64):kmod-ne2k-pci (TARGET_x86||TARGET_x86_64):kmod-bnx2 \ - TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \ !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-option !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-serial-wwan !(TARGET_mvebu||TARGET_ipq40xx):usb-modeswitch !TARGET_mvebu:uqmi \ !TARGET_mvebu:umbim !TARGET_mvebu:kmod-mii !TARGET_mvebu:kmod-usb-net !TARGET_mvebu:kmod-usb-wdm !TARGET_mvebu:kmod-usb-net-qmi-wwan !TARGET_mvebu:kmod-usb-net-cdc-mbim !TARGET_mvebu:umbim \ !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-huawei-cdc-ncm !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-rndis !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-cdc-ether !(TARGET_mvebu||TARGET_ipq40xx):kmod-usb-net-ipheth !(TARGET_mvebu||TARGET_ipq40xx):usbmuxd !(TARGET_mvebu||TARGET_ipq40xx):libusbmuxd \ - !TARGET_mvebu:luci-proto-qmi wpad-mesh-openssl libopenssl-legacy !(TARGET_ipq40xx||TARGET_x86_64):kmod-mt7601u TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ + !TARGET_mvebu:luci-proto-qmi !LINUX_5_4:wpad-mesh-openssl !LINUX_5_4:libopenssl-legacy LINUX_5_4:wpad-basic TARGET_r4s:kmod-r8168 (TARGET_x86||TARGET_x86_64):kmod-usb-net-rtl8152 \ !TARGET_mvebu:luci-app-mlvpn !TARGET_mvebu:mlvpn 464xlat kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \ - luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim !TARGET_x86_64:kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \ + luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim luci-app-ttyd luci-mod-dashboard kmod-usb2 libustream-openssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf (TARGET_x86||TARGET_x86_64):kmod-igbvf \ hwinfo (TARGET_x86||TARGET_x86_64):dmidecode kmod-bonding luci-proto-bonding luci-app-sysupgrade \ luci-theme-openwrt-2020 luci-proto-wireguard luci-app-wireguard kmod-crypto-lib-blake2s \ !(LINUX_5_4):mptcpd (TARGET_x86||TARGET_x86_64):kmod-igc !TARGET_mvebu:kmod-mmc-spi kmod-macsec usbutils v2ray-core LINUX_5_4:v2ray-config !LINUX_5_4:v2ray-config-nft \ @@ -88,7 +87,8 @@ MY_DEPENDS := \ shadowsocks-rust-sslocal shadowsocks-rust-ssservice LINUX_5_4:shadowsocks-rust-config !LINUX_5_4:shadowsocks-rust-config-nft luci-app-shadowsocks-rust \ luci-proto-external omr-schedule jq luci-app-ddns \ LINUX_6_6:mptcp-bpf-burst LINUX_6_6:mptcp-bpf-first LINUX_6_6:mptcp-bpf-red LINUX_6_6:mptcp-bpf-rr LINUX_6_6:bpftool-full \ - mbim-utils (TARGET_x86||TARGET_x86_64):kmod-r8169 + mbim-utils (TARGET_x86||TARGET_x86_64):kmod-r8169 !(TARGET_ipq40xx||TARGET_x86_64):kmod-mt7601u !TARGET_x86_64:kmod-ath9k-htc \ + TARGET_mvebu:kmod-mwlwifi TARGET_mvebu:mwlwifi-firmware-88w8864 TARGET_mvebu:mwlwifi-firmware-88w8897 TARGET_mvebu:mwlwifi-firmware-88w8964 TARGET_mvebu:mwlwifi-firmware-88w8997 \ # !TARGET_ipq40xx:kmod-rt2800-usb (TARGET_x86||TARGET_x86_64):kmod-iwlwifi (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl1000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl100 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl105 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl135 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl2030 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3160 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl3168 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5000 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl5150 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2a (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6000g2b (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl6050 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7260 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265 (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl7265d (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8260c (TARGET_x86||TARGET_x86_64):iwlwifi-firmware-iwl8265 \ # !TARGET_ipq40xx:kmod-rtl8xxxu !TARGET_ipq40xx:kmod-rtl8192cu !TARGET_ipq40xx:kmod-net-rtl8192su !LINUX_6_1:kmod-rtl8812au-ct (TARGET_x86||TARGET_x86_64):kmod-r8169 (TARGET_x86||TARGET_x86_64):kmod-8139too (TARGET_x86||TARGET_x86_64):kmod-r8125 !TARGET_ipq40xx:kmod-rtl8187 kmod-rtl8xxxu (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware