maybe chmod 0644 'default/cryptdisks'
maybe chmod 0644 'default/dbus'
maybe chmod 0644 'default/ebtables'
+maybe chmod 0644 'default/g15daemon'
maybe chmod 0644 'default/google-chrome'
maybe chmod 0644 'default/grub'
maybe chmod 0755 'default/grub.d'
maybe chmod 0755 'init.d/dbus'
maybe chmod 0755 'init.d/dns-clean'
maybe chmod 0755 'init.d/ebtables'
+maybe chmod 0755 'init.d/g15daemon'
maybe chmod 0755 'init.d/gdm3'
maybe chmod 0755 'init.d/grub-common'
maybe chmod 0755 'init.d/hddtemp'
--- /dev/null
+#! /bin/sh
+
+### BEGIN INIT INFO
+# Provides: g15daemon
+# Required-Start: $syslog $local_fs
+# Required-Stop: $syslog $local_fs
+# Should-Start: $remote_fs
+# Should-Stop: $remote_fs
+# X-Start-Before: xdm kdm gdm ldm sdm
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: load deamon for Logitech G15 keyboard lcd display
+# Description: load deamon for Logitech G15 keyboard lcd display
+### END INIT INFO
+
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/g15daemon
+NAME=g15daemon
+DESC=g15daemon
+
+[ -x "$DAEMON" ] || exit 0
+
+# Include g15daemon defaults if available
+if [ -f /etc/default/g15daemon ] ; then
+ . /etc/default/g15daemon
+fi
+
+if [ "$SWITCH_KEY" = "MR" ]; then
+ DAEMON_OPTS="-s $DAEMON_OPTS"
+fi
+
+set -e
+
+if [ "$G15DEBUG" = "on" ]; then
+
+log() {
+ logger -p daemon.debug -t g15 -- "$*"
+}
+else
+
+log() {
+ true
+}
+
+fi
+
+
+
+
+wait_for_file() {
+ local file=$1
+ local timeout=$2
+ [ "$timeout" ] || timeout=120
+
+ local count=$(($timeout * 10))
+ while [ $count != 0 ]; do
+ [ -e "$file" ] && return 0
+ sleep 0.1
+ count=$(($count - 1))
+ done
+ return 1
+}
+
+load_uinput() {
+ if [ ! -e /dev/input/uinput ] ; then
+ modprobe -q uinput || true
+ wait_for_file /dev/input/uinput 3 || return 1
+ fi
+}
+
+wait_usr_mount() {
+ if [ ! -e "$DAEMON" ] ; then
+ wait_for_file "$DAEMON" 7 || return 1
+ fi
+}
+
+is_running() {
+ start-stop-daemon --stop --test --quiet --pidfile \
+ /var/run/$NAME.pid --exec $DAEMON
+}
+
+do_start() {
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON -- $DAEMON_OPTS
+}
+
+do_stop() {
+ $DAEMON -k
+ start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+ --oknodo --retry 5 --exec $DAEMON
+}
+
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ load_uinput || echo -n ".../dev/input/uinput not found ..."
+ do_start
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ do_stop
+ echo "$NAME."
+ ;;
+ #reload)
+ #
+ # If the daemon can reload its config files on the fly
+ # for example by sending it SIGHUP, do it here.
+ #
+ # If the daemon responds to changes in its config file
+ # directly anyway, make this a do-nothing entry.
+ #
+ # echo "Reloading $DESC configuration files."
+ # start-stop-daemon --stop --signal 1 --quiet --pidfile \
+ # /var/run/$NAME.pid --exec $DAEMON
+ #;;
+ force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart" except that it does nothing if the
+ # daemon isn't already running.
+ # check wether $DAEMON is running. If so, restart
+ is_running && $0 restart || exit 0
+ ;;
+ restart)
+ echo -n "Restarting $DESC: "
+ do_stop
+ # the device is slow to shut-down
+ sleep 1
+ do_start
+ echo "$NAME."
+ ;;
+ udev)
+ log "calling g15 udev; action: $ACTION, product $PRODUCT"
+ if [ "x$ACTION" = "xadd" ] ; then
+ load_uinput || true
+ wait_usr_mount || true
+ # it seems udev will not release a device if userspace is still
+ # connected
+ is_running && ( do_stop; sleep 1 )
+ do_start
+ elif [ "x$ACTION" = "xremove" ] ; then
+ do_stop
+ else
+ echo "unknow udev action '$ACTION'"
+ exit 1
+
+ fi
+ ;;
+ shared-udev)
+ # some devices share usb also for audio, which causes some spourios
+ # udev messages.
+ log "calling g15 shared-dev; action: $ACTION, product $PRODUCT"
+ if [ "x$ACTION" = "xadd" ] ; then
+ load_uinput || true
+ wait_usr_mount || true
+ do_start
+ elif [ "x$ACTION" = "xremove" ] ; then
+ do_stop
+ else
+ echo "unknow udev action '$ACTION'"
+ exit 1
+
+ fi
+ ;;
+
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|restart|force-reload|udev}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0