Linux快捷键不能调节亮度,Linux(Ubuntu)无法调节亮度的终极解决方案(还原Fn组合键调节方法...
5年前我花了一周时间也没解决的问题,现在只用了2个小时就完美解决了
重要提示
这篇文章展示了我的思考及尝试过程,其中一些诸如文件保存的方法等简单操作没有加入,如果你很着急或是刚刚接触Linux,请参考这篇精简版【地址摸我】
参考资料:[1]https://blog.csdn.net/u013991521/article/details/49562365
[2]https://askubuntu.com/questions/762764/cant-change-brightness-in-ubuntu-16-04-lts
序
本人的一台联想昭阳E46G笔记本(无独显),在被换上i5 520M、4G内存、120G ssd之后继续延续着他第8年的使命。
尽管如此,但即便是windows7也无法流畅的在这台老机器上运行了。于是,我重新给他装上了Linux系统(5年前尝试了基于Debian 8 某Linux发行版,这次是Ubuntu 18.04 LTS)
不出所料,5年前的BUG又一次的出现了!!
只能在结束boot界面后到Ubuntu的logo出现的那短短几秒的时间可以通过Fn组合键调节亮度!!进入系统后使用Fn调节亮度,屏幕的亮度调节滑块正常显示,但屏幕背光没有丝毫改变
全亮与一格亮度对比【没有任何变化】
然而这个现象在我的另一台笔记本上却没有出现。
附上未出BUG机器的配置:
Model:ASUS X84L
CPU:intel B815 @1.60GHz
RAM:2G DDR3
HDD:320G WD
GPU:AMD HD6470m 1G
在查阅多方资料与不断尝试后,我发现是因为Intel集成显卡的原因。
原因如下:
fn调节的是/sys/class/backlight/acpi_video0/brightness文件,而Intel的文件是/sys/class/backlight/intel_backlight/brightness
-------来自参考资料[1]
参考资料[1]中给出了两种解决方案:
1)通过修改/etc/default/grub 来实现对Intel显卡的支持
2)手动通过命令修改
然而第1种方案对我无效,而我喜欢经常调节亮度,法2实在过于麻烦。
在参考资料[2]中也有一种方案,但依旧对我无效。
由于发现是外文资料,且国内好像无人翻译,现翻译在另一篇文章上,可以先尝试一下【地址摸我】
解决思路
经过实验发现,在通过Fn组合键促发亮度调节功能时,系统的亮度logo会有正常响应
而且,/sys/class/backlight/acpi_video0/brightness 会有变化
!我可以写一个程序监控/sys/class/backlight/acpi_video0/brightness ,然后反手把读出来的值经过处理写到/sys/class/backlight/intel_backlight/brightness!
观察得出:
我的/sys/class/backlight/acpi_video0/brightness 值的范围在[0,10],且0时为最暗但不是黑屏,10为最亮
我的/sys/class/backlight/intel_backlight/brightness值的范围在[0,4882],且0时为最暗且为黑屏,4882为最亮
写入超出范围的值均会触发写入错误。
注:图片仅为文件格式展示,不代表最低/高值
于是就有了第一代程序
import time
import os
# 先赋777权限(其实这里给高了,不过没关系
os.system("sudo chmod -R 777 /sys/class/backlight/intel_backlight/brightness")
while True:
# 先读取Fn组合键保存的文件
acpi_l = open("/sys/class/backlight/acpi_video0/brightness")
# 简单的线性调整,偏置值+20 为了在调至最暗时不至于黑屏 480权重请自己测试,不同机型可能不一样
brightness= str(int(acpi_l.read()) * 480 + 20)
acpi_l.close()
# 以“w”模式打开,方便清空
intel_l = open("/sys/class/backlight/intel_backlight/brightness","w")
intel_l.write(brightness)
intel_l.close()
# 等待0.5s,在不过多占用系统资源的情况下获得较好的体验
time.sleep(0.5)
先解释下为什么要每次给写入权限:因为sys目录里的权限掉电会还原,所以每次都要打上。
然而这样的操作很麻烦,每次先不说要打开一个文件,还要输密码,而且还要给他一个单独的shell占用着。
拓展1
我先创建了/etc/rc.local文件(Ubuntu16.10以后就没有了)
加入了
# 注:为了精简,这里的/etc/rc.local文件内容仅包含有实际意义的部分
sudo chmod -R 777 /sys/class/backlight/intel_backlight/brightness
python /etc/auto_brightness/change.py
然后重启
结果卡死在启动界面!!
赶紧进入可读写的单用户模式把rc.local删了。
分析原因
Linux的开机启动项目必须执行完才能进入桌面,然而 while True。。。。
难道这与开机自启无缘了吗?
拓展2
其实用screen就可以完美解决!
要使用screen,请先执行
sudo apt-get install screen
然后建立一个sh文件
screen_name="auto_run"
screen -dmS $screen_name
#以下路径为python程序的路径
cmd="python3 /etc/auto_run/change.py";
screen -x -S $screen_name -p 0 -X stuff "$cmd"
screen -x -S $screen_name -p 0 -X stuff '\n'
在/etc/rc.local中加入
如果没找到/etc/rc.local,请参考https://blog.csdn.net/weixin_43599336/article/details/85970601
sudo chmod -R 777 /sys/class/backlight/intel_backlight/brightness
# 刚刚的sh文件路径
sh /etc/auto_run/auto_run.sh
重启
sudo reboot
问题解决!
通过反光就看得出来!!!
拓展3
你以为就这么结束了吗?
其实我觉得个人喜欢的亮度范围在[500,2500]之间,如果用线性变化有时会出现加一格嫌亮,降一格觉得暗的情况。
于是我就开始用了一个新的处理函数
10.8x2 + 299x + 201
整个程序就变成了这样
import time
while True:
acpi_l = open("/sys/class/backlight/acpi_video0/brightness")
l = int(acpi_l.read())
brightness = str(int(10.8 * l * l + 299 * l + 201))
intel_l = open("/sys/class/backlight/intel_backlight/brightness","w")
intel_l.write(brightness)
intel_l.close()
time.sleep(0.5)
这个函数可以使亮度调节的中后段调节更加的细腻,更符合我的个人习惯
要注意的一点是:一点要确保当l在[0,10]时,你的函数值不会小于0或溢出最大值(我的是4880)
Linux快捷键不能调节亮度,Linux(Ubuntu)无法调节亮度的终极解决方案(还原Fn组合键调节方法...相关推荐
- linux开机黑屏时间长,Ubuntu启动长时间黑屏解决方案
虽然不知道这是不是Ubuntu的通病,不过从10版本后很多机器都会出现Ubuntu启动过程中一直黑屏直到登录画面,中间显示器一点反应没有,根本看不到发生了什么,让人很难受.造成这种情况的原因主要是安装 ...
- linux快捷键锁定屏幕,天天Linux-Ctrl+S快捷键锁定屏幕的问题
Windows过来的初学者常遇到的问题,在Vi里写完东西,习惯性Ctrl+S保存,然后就死在那里了,完全没有反映,只好重启,高级点的用Alt+F2/3/4切换到另外的控制台干别的事情 其实应该用Ctr ...
- 常用的Linux快捷键 [译]
本文原文是英文,我只做了翻译和一点整理工作.感谢 Pio 大侠!原文作者还在不停的更新这个帖子: 点击这里查看原文出处 目前的翻译稿基于2006年11月6日原稿.可以到原作者的Blog上去提供您所知道 ...
- linux系统怎么安装pr,Linux安装后的配置
系统:CentOS-6.3 1.NVIDIA驱动的安装与配置 Linux本身的显卡驱动是能够满足平常应用的,但是有时候我们为了获得3D效果,或者更流畅的视频体验,我们会安装新的显卡驱动.这时候就需要安 ...
- 查看linux代码版本,如何查看 Linux Mint 版本号和代号 | Linux 中国
Linux Mint 每两年发布一次主版本(如 Mint 19),每六个月左右发布一次次版本(如 Mint 19.1.19.2 等).你可以自己升级 Linux Mint 版本,而次版本也会自动更新. ...
- linux mint版本,如何查看 Linux Mint 版本号和代号 | Linux 中国
原标题:如何查看 Linux Mint 版本号和代号 | Linux 中国 了解 Linux Mint 版本号可以帮助你确定某个特定软件是否适用于你的系统,或者检查你的系统是否已达到使用寿命. -- ...
- 电脑组合键无法调节亮度及其解决方法
电脑组合键无法调节亮度及其解决方法 @author Gxiang date 2019/5/13 #Question1 问题:新装的系统使用组合键(FN+F5/F6(个人电脑的))无法调节屏幕的亮度. ...
- Linux快捷键不能调节亮度,linux debian ubuntu等亮度调节失效或滑竿无效的解决办法...
前情提要:我的笔记本,东芝SatelliteL600-22B,生产日期2010年. 自从装了Ubuntu14.04,小生就经常处于被亮瞎的状态,因为亮度调节是失效的,默认应该是开了最高亮度. Ubun ...
- Linux自动亮度,ubuntu亮度无法自动调节终极解决方案
关于ubuntu亮度无法自动调节的问题,纠结了我快两年,主要是自己懒,写了个脚本来调节亮度,不过还是稍显不便.近日兴起折腾了一番,终于找到问题根结了. There are many ways to c ...
最新文章
- Java 和 HTTP 的那些事(四) HTTPS 和 证书
- 论文,风险管理(背诵)
- 调用cmd方法,用于网盘文件压缩下载
- javaScript第七天(1)
- 3.live555源码分析----延时队列
- python url解析path_Django(CBV解析、模板层)
- java基础:8.1 异常
- 知识表示学习Trans系列梳理(论文+代码)
- Java密码类型_java加密类型和算法名称
- easyMule自动关机工具(可用于1.X和2.0版本)
- vue 判断是否是微信浏览器
- as常用固定搭配_语法必看:as的几种固定用法
- 2015~2020年中国房价走势
- 一文读懂keepalive的工作原理
- Spider爬虫--手机App抓包爬虫
- 超全整理100个 Pandas 函数,建议收藏!
- 原理图库:元器件引脚命名如何输出上划线
- Linux搭建Discuz论坛
- View系列 (三) — Measure 流程详解
- 全国大中学生体测取消选测 长跑成为必测项目
热门文章
- 全景播放器-js+flash
- Java获取当前时间戳的方法
- Python后端工程师学习路线——大学版
- IDisposable
- 为什么Service之间最好不要相互调用?
- 风压和功率计算公式轴流式_带你认识风机中风压、风量、功率与转速的关系!...
- 多个ai文件合并成pdf_Ai保存为多页面pdf脚本 Ai(Illustrator)多图层保存
- win10 电脑u盘读不出来怎么办
- 计算与数据结构篇 - 哈希算法 (Hash)
- “开-闭”原则(Open-Closed Principle)