package/modem-manager: init script for systemV-like init systems
PATCH v2 1/1 package/modem-manager: init script for systemV-like init systems
ModemManager get started by NetworkManager, in case of systemd init system. In case of other systems it needs to be started by init script.
Debian [1] solved it by detection in code. For Buildroot it's IMHO enough to install init script for systemV-like init systems.
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770871
---
Changes v1->v2:
* Rewrited init script to use start-stop-daemon.
* Intended install command.
--- package/modem-manager/S44modem-manager | 45 ++++++++++++++++++++++++++++++++++ package/modem-manager/modem-manager.mk | 4 +++ 2 files changed, 49 insertions(+) create mode 100755 package/modem-manager/S44modem-manager
package/modem-manager/S44modem-manager new file +45 -0
@@ -0,0 +1,45 @@ +#!/bin/sh +# +# Starts ModemManager +# + +MODEMMANAGER_BIN=/usr/sbin/ModemManager +PIDFILE=/var/run/ModemManager.pid + +[ -x $MODEMMANAGER_BIN ] || exit 0 + +start() { + echo -n "Starting ModemManager: " + umask 077 + start-stop-daemon -S -q -b -m -p $PIDFILE \ + --exec $MODEMMANAGER_BIN + ret=$? + [ $ret = 0 ] && echo "OK" || echo "FAIL" +} +stop() { + echo -n "Stopping ModemManager: " + start-stop-daemon -K -q -p $PIDFILE + ret=$? + [ $ret = 0 ] && { echo "OK"; rm -f $PIDFILE; } || echo "FAIL" +} +restart() { + stop + start +} + +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart|reload) + restart + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $ret
package/modem-manager/modem-manager.mk +4 -0
@@ -26,4 +26,8 @@ else MODEM_MANAGER_CONF_OPTS += --without-mbim endif +define MODEM_MANAGER_INSTALL_INIT_SYSV + $(INSTALL) -m 0755 -D package/modem-manager/S44modem-manager $(TARGET_DIR)/etc/init.d/S44modem-manager +endef + $(eval $(autotools-package))
Signature · 1 line
1.8.0
PATCH v2 1/1 package/modem-manager: init script for systemV-like init systems
Petr,
Quoted 1 line · Petr Vorel
+MODEMMANAGER_BIN=/usr/sbin/ModemManager
This variable was not needed, it's only used once, so I've just used directly the path to ModemManager.
package/modem-manager/S44modem-manager line 17
Quoted 11 lines
package/modem-manager/S44modem-manager new file +11
-0+PIDFILE=/var/run/ModemManager.pid + +[ -x $MODEMMANAGER_BIN ] || exit 0 + +start() { + echo -n "Starting ModemManager: " + umask 077 + start-stop-daemon -S -q -b -m -p $PIDFILE \ + --exec $MODEMMANAGER_BIN + ret=$? + [ $ret = 0 ] && echo "OK" || echo "FAIL"
ret variable not really needed.
package/modem-manager/S44modem-manager line 23
Quoted 6 lines
package/modem-manager/S44modem-manager new file +6
-0+} +stop() { + echo -n "Stopping ModemManager: " + start-stop-daemon -K -q -p $PIDFILE + ret=$? + [ $ret = 0 ] && { echo "OK"; rm -f $PIDFILE; } || echo "FAIL"
Ditto.
package/modem-manager/modem-manager.mk else · line 30
Quoted 2 lines
package/modem-manager/modem-manager.mk +2
-0+define MODEM_MANAGER_INSTALL_INIT_SYSV + $(INSTALL) -m 0755 -D package/modem-manager/S44modem-manager $(TARGET_DIR)/etc/init.d/S44modem-manager
Line slightly too long, so I've broken it up with a \
Applied with those minor nits fixed!
Thanks a lot!
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com