main/postmarketos-usb-moded: add usb-moded-mtp-mode

MTP mode requires some time for the userspace daemon
to configure the FunctionFS gadget, wait until it is completed.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8553>
This commit is contained in:
Dylan Van Assche
2026-06-18 06:26:56 +00:00
parent 7c4ebfcc91
commit f82661f261
3 changed files with 52 additions and 0 deletions
+4
View File
@@ -30,6 +30,7 @@ _source644="
etc/umtprd/umtprd.conf
usr/lib/systemd/system/usb-moded-developer-mode.service
usr/lib/systemd/system/usb-moded-tethering-mode.service
usr/lib/systemd/system/usb-moded-mtp-mode.service
usr/lib/systemd/system/usb-moded.service.d/override.conf
"
_source755="
@@ -37,6 +38,7 @@ _source755="
etc/init.d/usb-moded-tethering-mode.initd
usr/bin/usb-moded-developer-mode
usr/bin/usb-moded-tethering-mode
usr/bin/usb-moded-mtp-mode
usr/lib/systemd/system-generators/umtprd-config-generator
"
@@ -118,10 +120,12 @@ af41dc4ceb7255dbb88273916306c6e7e66c879bb67523c9571f9e812c9b36ab00ea666ade49369c
912f0700c87883b55f631cfc3d76e172ff1c21aa57b0c18d1e7b9671ecd6254b1e7565816e3967c68caab196076bf7c8b848375c89185aa4466f4ca7f65231be rootfs-etc-umtprd-umtprd.conf
2c838fd0ad66c92386f6159c7d96d3ba940e13834642eb2cb7612d79d6b8832e9bd06b1eb189141f21fa9085d8b43ea514c15d82736ebd6b94533811f5a15f11 rootfs-usr-lib-systemd-system-usb-moded-developer-mode.service
56ce2662dd8f88795bd2e9063f20747e1377d896fbcf9e1ae43c90ef511c4a11517d7c673f857cf194070c425f417df8f40ced9b95749ed1df53e1be122a8ef7 rootfs-usr-lib-systemd-system-usb-moded-tethering-mode.service
969cfeb3ff0a0153f0d383db18600a3d94e80d39cfb6fb0bae3439c6550785d022852447e93834c50d8d1ec8edc7eec4114db1de64ed454aa9b01f4e6f621e08 rootfs-usr-lib-systemd-system-usb-moded-mtp-mode.service
fe4d085730d448e51bbce9e99c3cc7b4662e5fadd6108e5f2e74040f0d4e901132aa7f3367acad183198c5a150862bdef536a6a1968784bf9babc1702c2f16fe rootfs-usr-lib-systemd-system-usb-moded.service.d-override.conf
95681a9bb2d5f8d99f51762d09dc4f0c487442a20070ad1439de1309b775ac1752fe60a205389cc74a1ee9026afc4ad984ac3363659a6749792835654a111d7f rootfs-etc-init.d-usb-moded-developer-mode.initd
1d8b98508f7969a4ba671866eee5e54261c50362e41b18bfebf004a6ed1e97d01a8eb83e3a33c392cbd00ea1a20f0f004b4794582ef1b71dedbba0fba2dc4602 rootfs-etc-init.d-usb-moded-tethering-mode.initd
9aab1a91a817e2337320ee0fa1bf6133e65e9269631560c1860c3b777adb336d036cebbc2510d1df35a82bf4396d553ff9e2edd0004027c7a3130168f7f50d90 rootfs-usr-bin-usb-moded-developer-mode
4539e5ba2d72b585b24b8a8606019f680226026d8316cdd69d476e3aa8126e5f2d236c5faaa2541f4b24e10bbb69ca5233e0b8e025a8307d4688e0c8fa071800 rootfs-usr-bin-usb-moded-tethering-mode
87b0cbf8388ea77ef674d1dee2744cb8cc41db9a703ac449883466f145025604b210c8f798dbaff8e4bccbff1eb2b9527b7f355910eb1fee055978b3444feb6e rootfs-usr-bin-usb-moded-mtp-mode
ca4b82b0cccbbb498b8898c4e360142136c46687e97bce85553dc1793bf8ae2e0f509c2a1acdf96b08dc7c6b69f098b56181f9033ad669cabbf5a159ad8efbaa rootfs-usr-lib-systemd-system-generators-umtprd-config-generator
"
@@ -0,0 +1,37 @@
#!/bin/sh
# Enable/disable MTP USB mode by delegating FunctionFS operations to uMTP-responder
#
# Copyright (c) Dylan Van Assche (2026)
set -e
TIMEOUT=10s
up() {
echo "Starting MTP responder"
systemctl start umtprd
# Wait up to 10s for EP fds to appear
# usb-signaller and usb-moded need
# to wait for the FunctionFS daemon
# to prepare the gadget before activating it
timeout $TIMEOUT sh -c 'while [ $(ls /dev/mtp/ep* | wc -l) -le '1' ]; do sleep 1; done'
}
down() {
echo "Stopping MTP responder"
systemctl stop umtprd
}
case $1 in
up)
up
;;
down)
down
;;
*)
echo "need an argument (up|down)"
exit 0
;;
esac
@@ -0,0 +1,11 @@
[Unit]
Description=USB Moded MTP Mode
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=usb-moded-mtp-mode up
ExecStop=usb-moded-mtp-mode down
[Install]
WantedBy=multi-user.target