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:
@@ -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
|
||||
Reference in New Issue
Block a user