从旧电脑上转移ubuntu数据至新电脑,已经使用了好几天了。新电脑机械革命Code01,CPU性能可以,用着十分舒服。只是这笔记本屏幕开机之后立马变成全亮度,让我觉得有些不太适应,每次开机后都要自行调整亮度,比较麻烦。

我希望笔记本开机之后能够保持关机前的亮度,于是上网去搜索解决方案。有使用应用包laptop-mode的,试之无用;还有一些通过配置/etc/rc.local文件来使开机后屏幕亮度变成指定亮度,也不符合我的想法(而且ubuntu1404之后使用systemd,放弃了rc.local)。

通过搜索得知ubuntu亮度调整配置文件位于/sys/class/backlight/xxxgpu/brightness(xxxgpu不同笔记本电脑可能不同),当将一定的数值写入该文件后,屏幕亮度便可变为该数值所对应的亮度。

通过cat /sys/class/backlight/xxxgpu/brightness,便可显示当前屏幕亮度数值。我将屏幕亮度调为最大值后,发现该命令显示值为255,也就是说我的笔记本屏幕亮度调节范围为0-255 。通过对这一文件的修改,可以直接控制屏幕亮度。下面直接上方案。

解决方案:

首先需要在关机的时候保存屏幕的亮度数值;紧接着开机时自动将该数值反馈到/sys/class/backlight/xxxcpu/brightness文件中,即可实现开机后屏幕亮度调整为关机前的数值。

我首先新建了/etc/backlight文件,用于储存亮度数值:

sudo touch /etc/backlight
sudo chmod 777 /etc/backlight

此文件需要放在不常动的文件夹中,以免误删(我放在/etc文件夹中),文件名也可以自取。chmod 777 是为了可以方便地更改其中的内容。

然后需要在关机时将/sys……/brightness中的数值保存到/etc/backlight文件中。网上搜索了一下关于关机时执行命令的方法,可知在ubuntu20的环境中,关机依靠systemd及其相关的文件,我们这里先写一个保存数值的脚本,再建立与systemd关机有关的服务以在关机时执行该脚本。

先在/usr/bin新建一个脚本backlight_save.sh

sudo touch /usr/bin/backlight_save.sh

在其中输入以下内容:

#!/bin/sh
cat /sys/class/backlight/xxxgpu/brightness > /etc/backlight

这一脚本将当前屏幕亮度数值保存在/etc/backlight中。然后我们使它可以被执行:

sudo chmod +x /usr/bin/backlight_save.sh

接着我们写一个关机时自动运行的服务(在/lib/systemd/system新建一个.service文件):

sudo touch /lib/systemd/system/backlight_shut.service

在此文件中编入以下内容:

[Unit]
Description=关机时保存屏幕亮度信息
After=display-manager.service
Before=systemd-poweroff.service systemd-reboot.service systemd-halt.service
DefaultDependencies=no[Service]
ExecStart=/usr/bin/backlight_save.sh
Type=forking[Install]
WantedBy=poweroff.target
WantedBy=reboot.target
WantedBy=halt.target

这个文件中的编制方法源于百度,可以搜ubuntu关机时执行程序。

接着将此服务软链接到want的三个文件夹中(此操作与上面的服务相关,具体细节请查阅systemd相关文档)

sudo ln -s /lib/systemd/system/backlight_shut.service /lib/systemd/system/poweroff.target.wants
sudo ln -s /lib/systemd/system/backlight_shut.service /lib/systemd/system/reboot.target.wants
sudo ln -s /lib/systemd/system/backlight_shut.service /lib/systemd/system/halt.target.wants

然后我们直接重启单元块:

sudo systemctl daemon-reload

关机保存亮度值模块到此完成。

开机时加载亮度数据的操作目前没有达到完全完美的效果,原因之后再说。

先写一个将/etc/backlight中数值加载到/sys/class/backlight/xxxcpu/brightness中的可执行脚本:

sudo touch /usr/bin/backlight_load.sh
sudo chmod +x /usr/bin/backlight_load.sh

在此脚本中添加以下内容:

#!/bin/sh
cat /etc/backlight > /sys/class/backlight/xxxgpu/brightness

此脚本将/etc/backlight中保存的数值直接加载到屏幕亮度配置文件中,可以瞬间调整亮度。对了,还需要:

sudo chmod 777 /sys/class/backlight/xxxgpu/brightness

否则写入亮度数值的操作可能没有权限。

现在只需要在开机时运行backlight_load.sh便可以还原屏幕亮度了。目前暂时的方法:ubuntu启动应用程序(ubuntu自带)中添加启动程序

现在开机登陆后便可以实现亮度改变的操作。

有点问题的地方

其实我原本想在显示开机动画的时候或者刚开始加载系统时就实现亮度更改,其实就是添加一个开机服务,让系统在开机的时候自动运行backlight_load.sh(就像关机时运行backlight_shut.sh一样)。但是并没有成功。系统开机后屏幕亮度依然最大,但查看/sys……/brightness文件亮度却只有5,让我不禁怀疑什么地方除了问题,难道是服务没运行?

在亮度加载脚本backlight_load.sh中我加入了如下命令:

echo 'ok' > ~/temp

如果backlight_load.sh正常运行,那~/temp文件中应该会有ok字样,重新开机后,的确发现temp文件中有ok,说明服务的确是运行了的,那为什么会调节失败呢?

我查看了系统日志/var/log/syslog,翻找了很久很久,终于发现了关于服务backlight执行失败的命令。backlight原是系统自带的一个单元,本应有使屏幕亮度调节至关机前水平的功能,但我的笔记本电脑该单元发生故障,故不能实现开机后亮度自动调节的功能。使用sudo systemctl --failed,我发现

~$ sudo systemctl --failedUNIT                                            LOAD   ACTIVE SUB    DESCRIPT>
● dmesg.service                                   loaded failed failed Save ini>
● systemd-backlight@backlight:acpi_video0.service loaded failed failed Load/Sav>
● systemd-backlight@backlight:amdgpu_bl0.service  loaded failed failed Load/Sav>LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

这个单元模块的确失效。具体怎么修复,现在尚不清楚。

----------------------------分割线--------------------------------

===============2022.2.15=================

目前找到了我的问题的原因!

grub启动时,内核启动参数中的 $vt_handoff去掉,就能够实现开机时恢复屏幕亮度了,上网去查询过,还不知道是什么原理

我的电脑基于UEFI启动,加上$vt_handoff后可以很顺畅地过渡到动画,去掉之后只是多显示一点点开机代码内容,影响不大

在/etc/default/grub中,将quiet splash改为如下形式

GRUB_CMDLINE_LINUX_DEFAULT=""

GRUB_CMDLINE_LINUX="quiet splash"

然后执行sudo update-grub,即可去掉grub.cfg中的$vt_handoff参数选项

ubuntu笔记本开机后屏幕亮度调整的头疼问题,另一种解决方案……完成率70%相关推荐

  1. 联想G450笔记本开机后屏幕黑屏的解决办法

    上午折腾了好久,笔记本开启后屏幕一直不亮,重启后仍然是这样,其中有一次亮了,然后关机后又不好使了 ...真是闹腾,后来想到自己的电脑已经有五年了, 1.   把内存条卸了..重新安装,显卡太麻烦就不卸 ...

  2. 计算机开机桌面黑屏,电脑开机后黑屏 - 笔记本开机后黑屏的解决办法 - 安全专题...

    最近有不少用户反映电脑开机后黑屏的问题,金山网络安全专家对用户的电脑分析发现其中一部分是由病毒木马引起的.有一部分是因为不该启动的加载项加载时间过长导致. 电脑开机后黑屏的原因 1.病毒木马是造成电脑 ...

  3. 台式电脑桌面没有计算机,台式电脑开机后屏幕没显示怎么解决?

    虽然有手机,但是手机有些还是代替不了电脑,会用电脑操作,但如果会电脑的简单的故障处理,减少了很多不必要的麻烦了!今天小编为大家分享台式电脑开机后屏幕没显示怎么解决方法,来看看吧! 工具 一台完整的台式 ...

  4. 电脑双屏开机后副屏黑屏,电脑开机显示器黑屏,教您电脑开机后屏幕黑屏怎么解决...

    电脑开机显示出黑屏多为内存条显卡接触不良,故障现象为电脑主机通电且能听到散热风扇运转的声音显示器显示无信号后黑屏,用户如果遇到肯定会受到影响,那么该怎么去解决呢?下面,小编给大伙准备了一些解决电脑开机 ...

  5. 解决windows下合上、掀开笔记本盖子后屏幕黑屏的问题

    解决windows下合上.掀开笔记本盖子后屏幕黑屏的问题 参考文章: (1)解决windows下合上.掀开笔记本盖子后屏幕黑屏的问题 (2)https://www.cnblogs.com/marioc ...

  6. 按开机计算机屏幕数字是,电脑开机后屏幕全都是英文字母及数字跳动,什么处理?...

    电脑开机后屏幕全是英文字母及数字跳动是因为你上次没有正常关机,系统自动的修复一些东西,为了防止文件的丢失. 1)这是系统在扫描硬盘,可能是自己操作的问题,如果非法关机,直接断电或者直接按电源关电,电脑 ...

  7. 计算机开机显示器闪,电脑开机后屏幕一直闪怎么办

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电脑开机后屏幕一直闪的原因有: 1.显示刷新率设置不正确: 2.显卡驱动程序不正确: 3.磁场干扰造成显示器闪: 4.显示卡接触不 ...

  8. 开机后黑屏看不到桌面_教你win10电脑开机后黑屏进不了桌面的排查解决方案

    今天小编教你win10电脑开机后黑屏进不了桌面的排查解决方案,有时想使用电脑时,会遇到开机后显示器突然黑屏的问题,面对突如其来的黑屏,你是否会束手无策呢?别急,遇到此问题的用户,可参照以下的方法进行排 ...

  9. 计算机开机后屏幕和键盘不亮,电脑开机后屏幕仍是黑屏鼠标和键盘灯不亮是为什么??...

    电脑开机黑屏,开机后显示器上没有任何显示,可以细分为以下几种情况: 1.电脑开机黑屏,表现为电源风扇和CPU风扇不动,主板上的指示灯不亮,电脑无任何反应.这个时候,首先应该检查电源插座是否通电,各种电 ...

最新文章

  1. 【建模必备】遗传算法的定义与生物学基础
  2. Ajax传递路径问题及解决
  3. DEBUG日记:同样的代码在不同的环境却得出不同的结果。
  4. P1600 天天爱跑步
  5. python中字符串乘法_python leetcode 字符串相乘实例详解
  6. python 去除nan inf_Python实现半自动评分卡建模(附代码)
  7. mysql 查看索引 命令_MySQL命令篇之库、表、索引、用户、视图及SELECT查询
  8. Rust 中的继承与代码复用
  9. 俞敏洪吹的牛破了?首场直播带货后 新东方股价大跌
  10. android系统下载管理器,android 系统下载管理器
  11. 前端入门篇(四十)JS基础7浏览器原理和BOM
  12. php文字下划线,如何在文字下面添加下划线
  13. ORA-01720: grant option does not exist for 'HWCUST.H_OKC_REGION_TERRITORY_T'
  14. 【汇正财经】成交量的三种表达方式
  15. Application Loader上传成功了 iTunes Connect不显示构建版本
  16. 计算机网络路由器和交换机之间该如何配置,交换机怎么配置?交换机和路由器有什么区别?...
  17. HTML5期末大作业:动漫网站设计——迪斯尼公主(6个页面) HTML+CSS+JavaScript 动漫网页HTML代码 学生网页课程设计期末作业下载 动漫大学生网页设计制作成
  18. android 给图片蒙上蒙层_Android 新手引导蒙层效果实现代码示例
  19. CydiaSubstrate框架
  20. 异常处理 --- 一些垂死挣扎的代码

热门文章

  1. java HotSpot
  2. 爬虫快速入门教程:爬虫应该怎么学
  3. 用编程给正处于高考考场的小伙伴们加油
  4. 激活 win7 刷bios 方法 工具 刷带有slic2.1的bios 教程 方法 刷bios激活win7 汇总
  5. pm2 linux 离线安装
  6. ajax error parsererror,ajax jsonp parsererror原因及解决方法
  7. Roboguide软件安装
  8. 拿下一级造价工程师证书,可以从事什么工作?
  9. Android播放提示音
  10. Latex Package fontspec Warning Font FandolSong-Regular does not contain requested Script CJK