Linux

螢幕背光如何工作?

  • April 15, 2020

關於背光設置和控制的一切都對我有用,除了:

背光重置為最大值。在每次重新啟動/啟動時。背光最小值繼續完成黑屏,而不是其他地方的最小亮度設置。NB> 我看到 1. 以上在很多地方都有不同的答案,所以我實際上正在尋找可以閱讀並理解它是如何工作的人或地方。

我的筆記型電腦中有 2 個不同的背光文件夾和許多要編輯的 conf 文件。因此需要了解這些文件上的內容會影響系統上的內容。

背光的核心是這個 Linux 核心參數,在/sys. 您可以通過將值設置為 1 到 15 之間的值來操作它。例如:

$ echo 5 | sudo tee /sys/class/backlight/acpi_video0/brightness

將亮度設置為 5。操作此 Kernel 參數是抽象的,因此當您使用鍵盤或桌面小程序更改值時,您可以通過D-BusHAL操作它。

D-Bus 允許您操縱這個結構,org.freedesktop.Hal.Device.KeyboardBacklightHAL允許這樣做的特權。你可以在我的 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-Keys不能改變這個項目的值。

我還看到了這個核心文件,標題為:核心參數。在本文件中,提到了以下 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是為英特爾顯卡提供的顯卡驅動程序背光的一部分。

參考

引用自:https://unix.stackexchange.com/questions/83871