![屏幕背光如何工作?](https://linux22.com/image/45391/%E5%B1%8F%E5%B9%95%E8%83%8C%E5%85%89%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
关于背光设置和控制的所有内容都对我有用,除了:
背光重置为最大。每次重新启动/引导时。背光最小值持续到完全黑屏,而不是其他地方的最小亮度设置。 NB> 我看到上面的 1. 在很多地方都有不同的答案,所以我实际上正在寻找一个人或某个地方,在那里我可以阅读并理解这一切是如何运作的。
我的笔记本电脑中有 2 个不同的背光文件夹和许多要编辑的 conf 文件。因此需要了解这些文件上的哪些内容会影响系统上的哪些内容。
答案1
背光的核心是这个 Linux 内核参数,通过此处向您展示了该参数/sys
。您可以通过将值设置为 1 到 15 之间的值来操作它。例如:
$ echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness
将亮度设置为 5。对该内核参数的操作被抽象化,以便当您使用键盘或桌面小程序更改该值时,您可以通过D总线和哈尔。
D-Bus 允许您操纵这个结构,org.freedesktop.Hal.Device.KeyboardBacklight
并且哈尔正在允许这样做的特权。您可以在我的 Fedora 14 系统上看到这一点,如下所示:
$ grep -i backlight /etc/dbus-1/system.d/*
/etc/dbus-1/system.d/hal.conf: send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
/etc/dbus-1/system.d/hal.conf: send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
在文件中hal.conf
:
<!-- Only allow users at the local console to manipulate devices -->
<policy at_console="true">
...
<allow send_destination="org.freedesktop.Hal"
send_interface="org.freedesktop.Hal.Device.KeyboardBacklight"/>
您可以通过 D-Bus 查询当前值,如下所示:
$ dbus-send \
--print-reply \
--system \
--dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer_backlight \
org.freedesktop.Hal.Device.LaptopPanel.GetBrightness | \
tail -1 | \
awk '{print $2}'
返回值:
15
您还可以像这样从命令行操作它,(int32:10
下面的位将亮度设置为“10”):
$ dbus-send \
--print-reply \
--system \
--dest=org.freedesktop.Hal \
/org/freedesktop/Hal/devices/computer_backlight \
org.freedesktop.Hal.Device.LaptopPanel.SetBrightness \
int32:10 #2&>1 > /dev/null
你可以看到我们改变了亮度:
$ cat /sys/class/backlight/acpi_video0/brightness
10
那么我该如何解决这个问题呢?
一种想法是在关机和/或重新启动之前将当前亮度保存到文件中,然后将上面的命令添加到启动(也许~/.xinitrc
)dbus-send ...
,添加您之前保存到文件中的亮度值。
为什么 /sys/class/backlight 下有多个文件?
我在 askubuntu.com 上看到了这个问答,标题为:为什么我的系统中有两个亮度控制文件(/sys/class/)。在对此的回答中有这样的评论:
如果系统启动时内核参数acpi_backlight=vendor,那么acpi_video0项就会被intel项取代,但是此时Fn键无法改变该项的值。
我还发现了这个内核文档,标题为:内核参数。在本文档中提到了以下 aCPI 选项:
acpi_backlight= [HW,ACPI]
acpi_backlight=vendor
acpi_backlight=video
If set to vendor, prefer vendor specific driver
(e.g. thinkpad_acpi, sony_acpi, etc.) instead
of the ACPI video.ko driver.
我认为intel_backlight
中引用的/sys/class/backlight
是为英特尔显卡提供的显卡驱动程序的背光的一部分。