【精简版】Linux(Ubuntu)无法调节亮度的终极解决方案(还原Fn组合键调节方法

完整版:https://blog.csdn.net/weixin_43599336/article/details/85981442

写在前面

此方法仅适用于只含Intel集成显卡的便携式笔记本计算机!!
请先尝试https://blog.csdn.net/u013991521/article/details/49562365

的方案,如果失败,再使用这个
在这里插入图片描述
原先的亮度调节毫无作用

正文

请先安装screen,执行

sudo apt-get install screen
# 在etc目录建立“auto_run”文件夹以及两个文件
cd /etc/
sudo mkdir auto_run
sudo touch auto_run.sh
sudo touch change.py

打开auto_run.sh文件

sudo nano /etc/auto_run/auto_run.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'   

按ctrl+X退出,y保存

打开change.py

sudo nano /etc/auto_run/change.py

加入

import time
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)

注意,不同机型的最大亮度值可能会不一样
查看方法:

sudo nano /sys/class/backlight/intel_backlight/brightness

在这里插入图片描述
显示的数字即为最大亮度数字,然后自己回归一下,建一个函数即可(0为黑屏)
acpi_l.read() 的值从0 – 10。

按ctrl+X退出,y保存

在/etc/rc.local中加入

sudo nano /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

按ctrl+X退出,y保存
重启

sudo reboot

等待启动完成后即可测试!
在这里插入图片描述
左图是正常的一格亮度,右图实为满格。
从反光可以看出,亮度调节已正常

猜你喜欢

转载自blog.csdn.net/weixin_43599336/article/details/85988403