From b968f6c6e06d743fb1dbf493a9aad31b5fc410b7 Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Thu, 3 Jan 2019 11:46:24 +0000 Subject: Add initscript to save and restore backlight brightness (Closes: #746221) --- debian/changelog | 1 + debian/initscripts.conffiles | 1 + debian/initscripts.lintian-overrides | 5 ++ debian/initscripts.postinst | 2 +- debian/initscripts.postrm | 2 +- debian/src/initscripts/etc/init.d/brightness | 68 ++++++++++++++++++++++++++++ 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100755 debian/src/initscripts/etc/init.d/brightness diff --git a/debian/changelog b/debian/changelog index b42da70d..208cc028 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,7 @@ sysvinit (2.93-3) UNRELEASED; urgency=medium * Do not mount gfs, ocfs2 and gfs2 in mountall.sh script (Closes: #504748) * Specify pidfile option to `status_of_proc' function in `init-d-script' (Closes: #822674) + * Add initscript to save and restore backlight brightness (Closes: #746221) -- Dmitry Bogatov Thu, 27 Dec 2018 10:06:16 +0000 diff --git a/debian/initscripts.conffiles b/debian/initscripts.conffiles index dfb94959..b10b6abf 100644 --- a/debian/initscripts.conffiles +++ b/debian/initscripts.conffiles @@ -1,4 +1,5 @@ /etc/init.d/bootlogs +/etc/init.d/brightness /etc/init.d/bootmisc.sh /etc/init.d/checkfs.sh /etc/init.d/checkroot.sh diff --git a/debian/initscripts.lintian-overrides b/debian/initscripts.lintian-overrides index 15171e63..e5dca6ac 100644 --- a/debian/initscripts.lintian-overrides +++ b/debian/initscripts.lintian-overrides @@ -24,3 +24,8 @@ initscripts: script-in-etc-init.d-not-registered-via-update-rc.d initscripts: init.d-script-missing-dependency-on-local_fs initscripts: init.d-script-depends-on-all-virtual-facility + +# Init scripts, provided by bin:initscripts are explicitly whitelisted +# in `data/systemd/init-whitelist' by Lintian. The `brightness' script +# is very new, and not yet in that whitelist. +initscripts: missing-systemd-service-for-init.d-rcS-script brightness diff --git a/debian/initscripts.postinst b/debian/initscripts.postinst index 21c840e6..2293045d 100755 --- a/debian/initscripts.postinst +++ b/debian/initscripts.postinst @@ -81,7 +81,7 @@ if dpkg --compare-versions "$PREV_VER" lt-nl "2.88dsf-23" ; then fi fi -INITSCRIPTS="mountkernfs.sh hostname.sh mountdevsubfs.sh checkroot.sh \ +INITSCRIPTS="mountkernfs.sh brightness hostname.sh mountdevsubfs.sh checkroot.sh \ checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \ mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \ umountroot umountfs umountnfs.sh sendsigs killprocs single motd \ diff --git a/debian/initscripts.postrm b/debian/initscripts.postrm index 99e62c04..730551f0 100755 --- a/debian/initscripts.postrm +++ b/debian/initscripts.postrm @@ -5,7 +5,7 @@ set -e -INITSCRIPTS="mountkernfs.sh hostname.sh mountdevsubfs.sh checkroot.sh \ +INITSCRIPTS="mountkernfs.sh brightness hostname.sh mountdevsubfs.sh checkroot.sh \ checkroot-bootclean.sh checkfs.sh mountall.sh mountall-bootclean.sh \ mountnfs.sh mountnfs-bootclean.sh bootmisc.sh urandom halt reboot \ umountroot umountfs umountnfs.sh sendsigs killprocs single motd \ diff --git a/debian/src/initscripts/etc/init.d/brightness b/debian/src/initscripts/etc/init.d/brightness new file mode 100755 index 00000000..3e22bff8 --- /dev/null +++ b/debian/src/initscripts/etc/init.d/brightness @@ -0,0 +1,68 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: brightness +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Default-Start: S +# Default-Stop: 0 6 +# Short-Description: Save and restore brightness level between restarts. +# Description: This script saves the brightness level between restarts. +# It is called from the boot, halt and reboot scripts. +### END INIT INFO +readonly SAVEDFILE=/var/lib/initscripts/brightness +readonly DEFAULT_LEVEL=4 +readonly SYS_CONTROL=/sys/class/backlight/acpi_video0/brightness +readonly SYS_MAXIMUM=/sys/class/backlight/acpi_video0/max_brightness + +. /lib/init/vars.sh +. /lib/lsb/init-functions + +do_status () { + MSG="Current brightness level is $(cat ${SYS_CONTROL})" + if [ -f $SAVEDFILE ] ; then + log_success_msg "${MSG}, saved value is $(cat ${SAVEDFILE})" + return 0 + else + log_failure_msg "${MSG}, there is no saved value" + return 4 + fi +} + +do_start () { + [ "${VERBOSE}" = no ] || + log_action_begin_msg "Initializing brightness level" + + if [ -f "${SAVEDFILE}" ] ; then + cat "${SAVEDFILE}" > "${SYS_CONTROL}" + else + cat "${SYS_MAXIMUM}" > "${SYS_CONTROL}" + fi + ES=$? + + [ "${VERBOSE}" = no ] || + log_action_end_msg $ES +} + +do_stop () { + [ "${VERBOSE}" = no ] || + log_action_begin_msg "Saving brightness level" + cat "${SYS_CONTROL}" > "${SAVEDFILE}" + ES=$? + + [ "$VERBOSE" = no ] || + log_action_end_msg $ES +} + +case "$1" in + (start) do_start ;; + (stop) do_stop ;; + (status) do_status ;; + (restart|reload|force-reload) + echo "Error: argument '$1' not supported" >&2 + exit 3 + ;; + (*) + echo "Usage: brightness start|stop" >&2 + exit 3 + ;; +esac -- cgit v1.2.3