700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ubuntu (20.04 LTS) 屏幕亮度调节无效解决方法

ubuntu (20.04 LTS) 屏幕亮度调节无效解决方法

时间:2023-08-14 09:40:42

相关推荐

ubuntu (20.04 LTS) 屏幕亮度调节无效解决方法

ubuntu屏幕亮度调节无效解决方法

问题描述尝试过的解决方法解决方法发现历程解决方法总结

问题描述

因为学习需要,在Win10系统的基础上安装了Ubuntu20.04 LTS 双系统,但遇到了各种各样的问题。经过一番搜索,解决了大部分的问题,但最难搞的就是屏幕亮度调不了的问题。虽然这并不是什么硬伤,但是这个刺眼的屏幕亮度太辣眼睛了,解决一下还是有必要的。网上看过了许多文章,许多办法都尝试过,但终究是没能很好的解决,最终经过一番努力找到了一个比较能让我满意的办法。这也许是你未曾看到过的一种解决方法,如果你也有这个问题,在你的系统上应该也可以适用。

尝试过的解决方法

我的尝试历程和这篇博文比较相似,除此之外还尝试了一些方法。

按照一些博主的说法尝试了升级内核,但是升级内核后仍无法调节安装英伟达显卡的驱动,安装完成依旧无法调节修改内核,使亮度控制的文件改为/sys/class/backlight/intel_backlight/brightness,但是这个是intel的CPU才有的,我是AMD的CPU加英伟达的显卡,所以没有这个文件夹尝试按照英伟达显卡无法调节亮度的思路去解决问题,尝试过修改/etc/default/grub文件,也尝试过修改/usr/share/X11/xorg.conf.d/10-nvidia.conf文件,但是都没有效果。甚至按照某个博主的配置的修改了10-nvidia.conf文件后还启动系统黑屏了,费了好大功夫才又把屏幕点亮。是确实可以解决问题的一种方法,就是下载Brightness Controller Simple软件进行调节,确实可行,就是有些麻烦,需要每次开机都调节一下,而且和系统亮度没有关联。

好像还试了几种方法来着,也不太记得了,主要就是这些。

解决方法发现历程

虽然下载Brightness Controller Simple软件可以实现调节亮度,但是有些麻烦,还是希望能够像正常电脑一样用键盘或拖系统的亮度条完成控制。

想到的第一个方法就是看能不能给这个控制程序传参数以便通过命令控制,如果可以的话就会好处理很多,但难受的是传参数并没有用。

不过随后意外发现这个程序是用python写的,就用文本方式打开看了下源码,读了一下感觉还是很好理解的。最核心的就是调用系统的驱动,也被软件开发者封装成了一个函数,获取驱动后通过系统命令就可以进行控制。

了解到这些后,马上打开控制台开始尝试调整亮度,果然凑效了!再结合之前读文章时发现存储系统亮度值的是/sys/class/backlight/acpi_video0/brightness这个文件,就写了一小段程序来实时监测这个文件并控制屏幕亮度。实验非常成功,然后将这个python脚本设置成开机自动运行就完美解决问题了~

解决方法

第一步先找到存储系统亮度值的文件,目前了解情况看来ubuntu应该都是有/sys/class/backlight/acpi_video0/brightness这个文件的吧,不是的话需要找一下对应的文件。使用cat命令看一下内容发现里面只有一个亮度值的整数文本,非常方便读取,调节系统亮度值也会刷新数值。

接着在/usr目录下新建个目录并创建python脚本,代码很简单,有额外需要的c友可以自行修改使用。

cd /usrmkdir self_documentscd self_documentssudo gedit ubuntu_brightness_assistant.py

打开文本后粘贴python代码如下,然后保存退出:

import sysimport subprocessimport timefrom os import systemimport os# 这部分函数来自Brightness Controller Simple软件def detect_display_devices():"""Detects available displays"""connected_devs = []xrandr_output = subprocess.check_output('xrandr -q', shell=True)lines = str(xrandr_output, encoding="utf-8").split('\n')for line in lines:words = line.split(' ')for word in words:if word == 'connected':connected_devs.append(words[0])return connected_devsdef get_system_brightness(path: str) -> int:brightness = 100if os.path.exists(path):with open(path, 'r') as f:brightness = int(f.readline())else:return brightnessreturn brightnessdef main(argv):detected_device = detect_display_devices()[0]brightness = 100while True:time.sleep(0.1)if brightness != get_system_brightness(argv[1]):brightness = get_system_brightness(argv[1])system('xrandr --output %s --brightness %.2f' % (detected_device, brightness / 100))if __name__ == '__main__':main(sys.argv)

这个python脚本需要传入一个参数,就是那个存着系统亮度值的文件路径,接下来只要用下面命令运行这个python脚本就可以通过系统改变屏幕亮度值了。

python3 /usr/self_documents/ubuntu_brightness_assistant.py /sys/class/backlight/acpi_video0/brightness &

为了不用每次都开机手动跑一下这个命令才能控制亮度,需要把这个命令添加到开机启动里面。

总结

装了Ubuntu双系统还是碰到了不少的问题,花费了好多的时间去找资料和解决,还是感谢许多c友的慷慨分享,节约了我许多时间。同时也把我自己探索的一点经历分享出来,希望能帮到遇到和我一样问题的c友,节省一点你们的时间,同时也记录一下排坑经历。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。