diff --git a/main/postmarketos-usb-moded/APKBUILD b/main/postmarketos-usb-moded/APKBUILD index 44f2822d6..30407dc7d 100644 --- a/main/postmarketos-usb-moded/APKBUILD +++ b/main/postmarketos-usb-moded/APKBUILD @@ -126,8 +126,8 @@ fe4d085730d448e51bbce9e99c3cc7b4662e5fadd6108e5f2e74040f0d4e901132aa7f3367acad18 0981a7cfc53d887997b5342a9add41784ffdfe011cac8510aa78620776ab9a7bf24d4e62d30eb6d2852d52a3ea060c1de074fcea9f4fe017d888b06871e911d0 rootfs-etc-init.d-usb-moded-developer-mode.initd 1662006de519b7b45c2d817be974b43d732d166f71c6782e7d136770aadddcc2ea820fcece21bf95e68f578c9ae7ba88867981fff726feab61cdc36efdf5ec6e rootfs-etc-init.d-usb-moded-tethering-mode.initd b8a4d9c8d1e2cde8d6b31bbb3e61d37c05cf2aa1e04cb25c24308839d045205e0604b103d2d60f9834782dcc64ab346cfe8f97797d4d0c86f54e4cfceb6af679 rootfs-etc-init.d-usb-moded-mtp-mode.initd -e021a58fcabef47c3806bea14c86def6ba6787be2f725b1b5f9a24a5b0eb5ba8bee2887337b17c9db9a7df84d2b07b8f14da5092f2afeedaf57689b8e5e82ef0 rootfs-usr-bin-usb-moded-developer-mode -dbc653b07f220a0fa4533be4ceac65651b19e32c88d66cafd0bcd4ee2cded2627c410917052eb113612cdea1c9e489bbaf290dade0f9b8c897363cb8fe34631f rootfs-usr-bin-usb-moded-tethering-mode -0174ce39326b09d982cfcc7a91893e23e1fb0505a65c0bc3d049c144739435589faf973b3102f7da2e32b6bc6ddfc308f52bfddefd398a0e13156f4875a6a5ff rootfs-usr-bin-usb-moded-mtp-mode +f5d45b6c6a4954cab82289fe76fdce2d0480a534d2752b139cc497556f805d32d780cc28a24e4f5c90b1413091c8663b3cb51037b96e57f02be4bee5fab0a45f rootfs-usr-bin-usb-moded-developer-mode +af509646af99bc0fcd36d098330acf070f2eaa9780986c483194c2428fcb6390a2a1d5b941d5d63bac3f68d868f6ccf517f5c4cecb7fab1404c42341c55ce14e rootfs-usr-bin-usb-moded-tethering-mode +cada62ef2f5a63543b4150abfcb5f07dec40ceb8b1f977f6288468e4d161f0e9f07ce7fa08d33f214a805fecead1a857047af23a4f6bb3fb41c631df8992b53e rootfs-usr-bin-usb-moded-mtp-mode ca4b82b0cccbbb498b8898c4e360142136c46687e97bce85553dc1793bf8ae2e0f509c2a1acdf96b08dc7c6b69f098b56181f9033ad669cabbf5a159ad8efbaa rootfs-usr-lib-systemd-system-generators-umtprd-config-generator " diff --git a/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-developer-mode b/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-developer-mode index 8f7ecf538..c45c6ab5b 100644 --- a/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-developer-mode +++ b/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-developer-mode @@ -2,16 +2,36 @@ # Enable/disable developer USB mode by delegating network operations to NetworkManager # Dynamically generate NetworkManager connection because it is only available in the right USB mode # -# Copyright (c) Dylan Van Assche (2025) -set -e - +# Copyright (c) Dylan Van Assche (2025-2026) CONFIGFS="/sys/kernel/config/usb_gadget" IFACE=$(cat "$CONFIGFS"/usb-signaller-developer/functions/ncm.*/ifname 2>/dev/null) IFACE=${IFACE:-"usb0"} IP_ADDRESS_SERVER=172.16.42.1 IP_ADDRESS_CLIENT=172.16.42.2 CONNECTION_NAME=$(cat "$CONFIGFS"/usb-signaller-developer/configs/*/strings/0x409/configuration 2>/dev/null) -CONNECTION_NAME=${CONNECTION_NAME:-"USB Developer Mode"} +CONNECTION_NAME=${CONNECTION_NAME:-"Developer Mode"} + +set -e + +_start_unudhcpd() { + if [ -d "/run/systemd" ]; then + systemctl start unudhcpd@"$1" + elif [ -d "/etc/rc.conf" ]; then + rc-service unudhcpd."$1" start + else + echo "Cannot start unudhpcd!" + fi +} + +_stop_unudhcpd() { + if [ -d "/run/systemd" ]; then + systemctl stop unudhcpd@"$1" + elif [ -d "/etc/rc.conf" ]; then + rc-service unudhcpd."$1" stop + else + echo "Cannot stop unudhpcd!" + fi +} up() { # Bring interface and NetworkManager connection up @@ -20,12 +40,12 @@ up() { nmcli connection up "$CONNECTION_NAME" # Start DHCP server - unudhcpd -i "$IFACE" -s "$IP_ADDRESS_SERVER" -c "$IP_ADDRESS_CLIENT" & + _start_unudhcpd "$IFACE" } down() { # Stop DHCP server - killall -9 unudhcpd + _stop_unudhcpd "$IFACE" # Bring NetworkManager connection down nmcli connection down "$CONNECTION_NAME" diff --git a/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-mtp-mode b/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-mtp-mode index 3a5e63ba5..edf080539 100644 --- a/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-mtp-mode +++ b/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-mtp-mode @@ -2,10 +2,10 @@ # Enable/disable MTP USB mode by delegating FunctionFS operations to uMTP-responder # # Copyright (c) Dylan Van Assche (2026) -set -e - TIMEOUT=10s +set -e + up() { echo "Starting MTP responder" if [ -d "/run/systemd" ]; then diff --git a/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-tethering-mode b/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-tethering-mode index 4a500fc50..63acc6151 100644 --- a/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-tethering-mode +++ b/main/postmarketos-usb-moded/rootfs-usr-bin-usb-moded-tethering-mode @@ -2,14 +2,14 @@ # Enable/disable tethering USB mode by delegating network operations to NetworkManager. # Dynamically generate NetworkManager connection because it is only available in the right USB mode. # -# Copyright (c) Dylan Van Assche (2025) -set -e - +# Copyright (c) Dylan Van Assche (2025-2026) CONFIGFS="/sys/kernel/config/usb_gadget" IFACE=$(cat "$CONFIGFS"/usb-signaller-tethering/functions/ncm.*/ifname 2>/dev/null) IFACE=${IFACE:-"usb0"} CONNECTION_NAME=$(cat "$CONFIGFS"/usb-signaller-tethering/configs/*/strings/0x409/configuration 2>/dev/null) -CONNECTION_NAME=${CONNECTION_NAME:-"USB Tethering Mode"} +CONNECTION_NAME=${CONNECTION_NAME:-"Tethering Mode"} + +set -e up() { # Bring interface and NetworkManager connection up