diff options
author | Lucio Tarantino <lucio.tarantino@gmail.com> | 2020-06-13 02:32:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-12 20:32:12 -0400 |
commit | 35bbd989e4383193b8ef4cfef0b262831e611f75 (patch) | |
tree | 2c66e0821e9f51f2a127beb05d042ac6280e4000 /scripts/klipper-mcu-start.sh | |
parent | 519c3ad5ee0cc84b41d091f721fc6fb006c83209 (diff) | |
download | kutter-35bbd989e4383193b8ef4cfef0b262831e611f75.tar.gz kutter-35bbd989e4383193b8ef4cfef0b262831e611f75.tar.xz kutter-35bbd989e4383193b8ef4cfef0b262831e611f75.zip |
docs: LinuxMCU doc & script (#2956)
Signed-off-by: Lucio Tarantino <lucio.tarantino@gmail.com>
Diffstat (limited to 'scripts/klipper-mcu-start.sh')
-rw-r--r-- | scripts/klipper-mcu-start.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/scripts/klipper-mcu-start.sh b/scripts/klipper-mcu-start.sh new file mode 100644 index 00000000..f58a6298 --- /dev/null +++ b/scripts/klipper-mcu-start.sh @@ -0,0 +1,78 @@ +#!/bin/sh +# System startup script to start the MCU Linux firmware + +### BEGIN INIT INFO +# Provides: klipper_mcu +# Required-Start: $local_fs +# Required-Stop: +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Klipper_MCU daemon +# Description: Starts the MCU for Klipper. +### END INIT INFO + +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +DESC="klipper_mcu startup" +NAME="klipper_mcu" +KLIPPER_HOST_MCU=/usr/local/bin/klipper_mcu +KLIPPER_HOST_ARGS="-r" +PIDFILE=/var/run/klipper_mcu.pid + +. /lib/lsb/init-functions + +mcu_host_stop() +{ + # Shutdown existing Klipper instance (if applicable). The goal is to + # put the GPIO pins in a safe state. + if [ -c /tmp/klipper_host_mcu ]; then + log_daemon_msg "Attempting to shutdown host mcu..." + set -e + ( echo "FORCE_SHUTDOWN" > /tmp/klipper_host_mcu ) 2> /dev/null || ( log_action_msg "Firmware busy! Please shutdown Klipper and then retry." && exit 1 ) + sleep 1 + ( echo "FORCE_SHUTDOWN" > /tmp/klipper_host_mcu ) 2> /dev/null || ( log_action_msg "Firmware busy! Please shutdown Klipper and then retry." && exit 1 ) + sleep 1 + set +e + fi + + log_daemon_msg "Stopping klipper host mcu" $NAME + killproc -p $PIDFILE $KLIPPER_HOST_MCU +} + +mcu_host_start() +{ + [ -x $KLIPPER_HOST_MCU ] || return + + if [ -c /tmp/klipper_host_mcu ]; then + mcu_host_stop + fi + + log_daemon_msg "Starting klipper MCU" $NAME + start-stop-daemon --start --quiet --exec $KLIPPER_HOST_MCU \ + --background --pidfile $PIDFILE --make-pidfile \ + -- $KLIPPER_HOST_ARGS + log_end_msg $? +} + +case "$1" in +start) + mcu_host_start + ;; +stop) + mcu_host_stop + ;; +restart) + $0 stop + $0 start + ;; +reload|force-reload) + log_daemon_msg "Reloading configuration not supported" $NAME + log_end_msg 1 + ;; +status) + status_of_proc -p $PIDFILE $KLIPPER_HOST_MCU $NAME && exit 0 || exit $? + ;; +*) log_action_msg "Usage: /etc/init.d/klipper_mcu {start|stop|status|restart|reload|force-reload}" + exit 2 + ;; +esac +exit 0 |