我是靠谱客的博主 单纯黄蜂,最近开发中收集的这篇文章主要介绍Linux 调节并自动保存屏幕亮度,重启有效,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        用过几个Linux的发行版,发现在笔记本上每次调节亮度后,不能固定下来,重新开机后就又恢复最大亮度了。

        之前一直用的是网上流行的方法,即往etc/rc.local文件写入命令,使其每次重新开机都会将亮度值写入特定的文件以控制屏幕亮度。虽然能满足大多数情况下的需要,因为人们一旦找到适合自己的亮度后,一般也不会再变了。但是这种方法每次开机都是将事先固定好了的亮度值写入设备文件的。

        昨晚搞了一晚上,搞到了凌晨三点,终于解决了这个问题。我的思路是,电脑开机后,亮度是可调节的,并且这个亮度值会写入特定的文件以控制屏幕亮度,但是这个文件是内存文件,就是说关机后就消失了,所以亮度值不是保存在持久文件中的。那么,在关机的时候,读取这个亮度值并写入持久文件中,再在开机的时候从文件中读入,写入控制设备的内存文件中,不就可以了吗?

        首先,写一个脚本文件:savelight

        #!/bin/bash
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
echo "                                   SAVING THE LIGHT VALUE"
for line in `cat /sys/class/backlight/intel_backlight/brightness`
do
echo $line > /root/.blacklight
echo vsv > /root/.baa
done

       /sys/class/backlight/intel_backlight/brightness,此文件保存有屏幕当前的亮度值,当手动调节亮度后,此文件的值也随之改变。脚本文件savelight首先echo几行内容是我做测试用的,之后将/sys/class/backlight/intel_backlight/brightness文件中的亮度值读入line中,最后将其写入/root/.blacklight文件中。此脚本若在关机或重启的时候执行,就达到我的目的了。

        将下面的脚本命令加入/etc/rc.local:

for line in `cat /root/.blacklight`
do
echo $line > /sys/class/backlight/intel_backlight/brightness
done

        首先,读入/root/.blacklight文件中的值,然后将其写入/sys/class/backlight/intel_backlight/brightness文件,/sys/class/backlight/intel_backlight/brightness文件控制屏幕亮度,若这几行脚本能在开机的时候得到执行,那么就达到我的目的了。

        以上的过程简单来说就是,关机的时候将当前屏幕亮度值保存下来,开机的时候再读取并写入设备内存文件。思路简单清晰,剩下来的就是怎么实现的问题了。

        上面的脚本命令可以直接写入rc.local文件,需要root权限。因为此文件会在开机的时候得到执行。但是事件证明,还是将其写入/etc/init.d/bootlog文件中好。

        那么,如何让系统关机的时候自动执行savelight脚本文件呢?网上搜索了资料,都是关于运行级别的,繁琐,也没有成功,就放弃了。感觉就是让系统关机的时候自动执行一段脚本而已,能有多复杂?经实验,最终发现,在/etc/init.d/umountroot脚本文件中开头,一定要是开头处,因为此时系统还没有卸载根文件系统,若卸载了,就不能进行文件操作了,加入一行代码:bash /root/savelight。我是将savelight放在了/root目录下。

        ok,以上操作都需要root权限。关于/etc/init.d/umountroot再说几点,这个文件和系统的运行级有关,/etc/init.d/目录下的多数文件都是在系统运行级别发生改变的时候执行的,有的开启服务,有的关闭服务,有开就有关,这个多数都是一一对应。开始的时候,我v把bash /root/savelight这行代码放在了apache2这个文件中,我的本意是让其关机时执行,但是这个脚本是开机和关机的时候都会执行的,关机的时候没有问题,但是开机的时候,再执行savelight脚本就不对了。我也尝试过将其写入halt和reboot文件,但是这也是不行的,因为savelight脚本会进行文件操作,而执行halt或者reboot的时候,已经将文件系统卸载了。所以最终我选择了umountroot文件,写在文件开始,也就是文件系统卸载之前。

        ok,就这样就解决问题了。每次开机后可随意调节屏幕亮度,再次重启后亮度和之前一致。感觉这个问题不是很难解决,但是不知道为什么Linux发行版公司没有给出系统级的方案。难道是为了锻炼Linux用户?

最后

以上就是单纯黄蜂为你收集整理的Linux 调节并自动保存屏幕亮度,重启有效的全部内容,希望文章能够帮你解决Linux 调节并自动保存屏幕亮度,重启有效所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部