I like Linux. Especially for being able to create graceful workarounds for the things we get accustomed in a real life.
Being a Linux-powered laptop owner I have always been annoyed by sharp backlight change when Linux boots up. I do not like when a backlight is set to the maximum one and there are no ways to affect these settings on. So I did a very funny trick.
System's backlight (aka "display's brightness") in Linux could be changed through the special /sys/class/backlight/acpi_video0/brightness file. When an integer is written Linux immediately changes laptop's backlight level. E.g. the following command:
The first steps of Linux boot up are made with initramfs scripts which are executed one by one. When system-required-specific modules are loaded laptop's backlight level dramatically raises up. So we can think about this point in time as a moment when the user is able to tell Linux not to do so; or at least set it explicitly to a preferred value. That moment in time in the terms of initrams-tools could be called "premount".
So here we go:
Being a Linux-powered laptop owner I have always been annoyed by sharp backlight change when Linux boots up. I do not like when a backlight is set to the maximum one and there are no ways to affect these settings on. So I did a very funny trick.
System's backlight (aka "display's brightness") in Linux could be changed through the special /sys/class/backlight/acpi_video0/brightness file. When an integer is written Linux immediately changes laptop's backlight level. E.g. the following command:
# echo 10 > /sys/class/backlight/acpi_video0/brightnesswill set display's brightness to 10 points.
The first steps of Linux boot up are made with initramfs scripts which are executed one by one. When system-required-specific modules are loaded laptop's backlight level dramatically raises up. So we can think about this point in time as a moment when the user is able to tell Linux not to do so; or at least set it explicitly to a preferred value. That moment in time in the terms of initrams-tools could be called "premount".
#!/bin/sh ### file: /etc/initramfs-tools/scripts/local-premount/backlight_level ### this file must have an executable bit. ### ### Author: Andrew Sichevoi ### Please feel free to send your bug reports to http://blog.thekondor.net PREREQ="" prereqs() { echo "${PREREQ}" } case "${1}" in prereqs) exit 0; ;; esac . /scripts/functions DEFAULT_BACKLIGHT_LEVEL=10 BACKLIGHT_LEVEL= for arg in $(cat /proc/cmdline); do case ${arg} in backlight_level=*) BACKLIGHT_LEVEL=${arg#backlight_level=} ;; esac done if [ -z ${BACKLIGHT_LEVEL} ]; then log_warning_msg "Using default backlight level: '${DEFAULT_BACKLIGHT_LEVEL}'" BACKLIGHT_LEVEL=${DEFAULT_BACKLIGHT_LEVEL} fi echo ${BACKLIGHT_LEVEL} > /sys/class/backlight/acpi_video0/brightness
So here we go:
- Add the below-mentioned backlight_level script to /etc/initramfs-tools/scripts/local-premount directory, make it executable;
- Update initramfs using update-initramfs command (Linux distribution specific; at least that works for Debian and Ubuntu) to include the script to the initrd image;
- Set passing backlight_level=X (where X is a preferred backlight level) boot option in your's grub.cfg.
and reboot to see the changes in action.
The script just looks up backlight_level kernel boot option and writes (if any, or default one otherwise) this value to the brightness file for immediate laptop's brightness update.
Simple? I think yes. Does it work? Definitely. Perfect? Not at all: I believe that system's boot's up settings should not differ from main DE's ones: they should be configured through the single entry point not several ones. Anyway this scripts makes feel us that we able to control Linux as well as we have a new task to think about :). So stay tuned!
The script just looks up backlight_level kernel boot option and writes (if any, or default one otherwise) this value to the brightness file for immediate laptop's brightness update.
Simple? I think yes. Does it work? Definitely. Perfect? Not at all: I believe that system's boot's up settings should not differ from main DE's ones: they should be configured through the single entry point not several ones. Anyway this scripts makes feel us that we able to control Linux as well as we have a new task to think about :). So stay tuned!