屏幕背光如何工作?

屏幕背光如何工作?

关于背光设置和控制的所有内容都对我有用,除了:

背光重置为最大。每次重新启动/引导时。背光最小值持续到完全黑屏,而不是其他地方的最小亮度设置。 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

那么我该如何解决这个问题呢?

一种想法是在关机和/或重新启动之前将当前亮度保存到文件中,然后将上面的命令添加到启动(也许~/.xinitrcdbus-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是为英特尔显卡提供的显卡驱动程序的背光的一部分。

参考

相关内容