main/postmarketos-usb-moded: use service manager for unudhcpd

Also start set -e after config parameters are read. Fallbacks would trigger exit otherwise.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8553>
This commit is contained in:
Dylan Van Assche 2026-05-31 18:58:40 +02:00 committed by The Friendly Meow (merge) Bot
parent 9bccd6b5e9
commit ccd3a554a6
No known key found for this signature in database
4 changed files with 35 additions and 15 deletions

View file

@ -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
"

View file

@ -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"

View file

@ -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

View file

@ -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