Регулировка яркости в GNU/Linux |
Автор: admin Просмотров: 3531 Комментарии:
Добавлен: 7 августа 2018
Обновлено: 7.08.2018 - 17:58
Регулировка яркости в Линукс осуществляется посредством изменения значений в файле brightness
# ls /sys/class/backlight
acpi_video0 acpi_video1
# ls /sys/class/backlight/acpi_video0
actual_brightness brightness max_brightness subsystem uevent
bl_power device power type
Для этой цели можно использовать простейшие утилиты или скрипты.
Пример утилиты xbacklight. Если вы получаете ошибку "No outputs have backlight property", то нужно добавить в настройки Xorg следующий раздел:
Раскрыть
Section "Device"
Identifier "Card0"
Driver "intel"
Option "Backlight" "intel_backlight" (у вас может быть не intel_backlight, а fujitsu-laptop, acpi_video0 и т.д (проверить можно по пути /sys/class/backlight) в зависимости от вашей конфигурации компьютера и от параметров загрузки ядра)
EndSection
Identifier "Card0"
Driver "intel"
Option "Backlight" "intel_backlight" (у вас может быть не intel_backlight, а fujitsu-laptop, acpi_video0 и т.д (проверить можно по пути /sys/class/backlight) в зависимости от вашей конфигурации компьютера и от параметров загрузки ядра)
EndSection
Для регулировки яркости существует популярная утилита xbacklight, но на моём ноутбуке она работает только в иксах, запущенных от root. От простого пользователя xbacklight у меня работает так:
$ xbacklight 90.909091 выводит значение яркости
$ xbacklight -set 100 не срабатывает и ничего не выводит
$ xbacklight теперь значение яркости не выводит
$ xbacklight яркость не меняется
Хотя в прошлых выпусках Debian, xbacklight нормально работал у любого пользователя.
Пример такого скрипта:
#!/bin/bash
IncVal=1
read -r MaxVal < "/sys/class/backlight/fujitsu-laptop/brightness"
NewVal=$(($MaxVal + $IncVal)); #для уменьшения яркости нужно заменить + на -
echo $NewVal
echo -n $NewVal > /sys/class/backlight/fujitsu-laptop/brightness
IncVal=1
read -r MaxVal < "/sys/class/backlight/fujitsu-laptop/brightness"
NewVal=$(($MaxVal + $IncVal)); #для уменьшения яркости нужно заменить + на -
echo $NewVal
echo -n $NewVal > /sys/class/backlight/fujitsu-laptop/brightness
Расширенный пример этого скрипта с поддержкой уведомлений на рабочий стол:
#!/bin/bash
YOUR_USERNAME="" // Вводи сюда своего пользователя
# Set the static increment value. Keep in mind that this will
# be done twice.
IncVal=50
# Get the Maximum value for use.
#MaxVal=$(cat /sys/class/backlight/intel_backlight/max_brightness);
read -r MaxVal < "/sys/class/backlight/intel_backlight/max_brightness"
# Get the current brightness value.
#CurrVal=$(cat /sys/class/backlight/intel_backlight/brightness);
read -r CurrVal < "/sys/class/backlight/intel_backlight/brightness"
# Set the new value minus the decrement value.
NewVal=$(($CurrVal + $IncVal));
echo $NewVal
# Set it to the threshold of the max value.
ThresholdVal=$(($NewVal<$MaxVal?$NewVal:$MaxVal))
echo $ThresholdVal
# Set the new value directly.
echo -n $ThresholdVal > /sys/class/backlight/intel_backlight/brightness
su $YOUR_USERNAME -c 'DISPLAY=":0.0" notify-send -t 50 \
-i super_icon_brightness "Brightness +50"'
YOUR_USERNAME="" // Вводи сюда своего пользователя
# Set the static increment value. Keep in mind that this will
# be done twice.
IncVal=50
# Get the Maximum value for use.
#MaxVal=$(cat /sys/class/backlight/intel_backlight/max_brightness);
read -r MaxVal < "/sys/class/backlight/intel_backlight/max_brightness"
# Get the current brightness value.
#CurrVal=$(cat /sys/class/backlight/intel_backlight/brightness);
read -r CurrVal < "/sys/class/backlight/intel_backlight/brightness"
# Set the new value minus the decrement value.
NewVal=$(($CurrVal + $IncVal));
echo $NewVal
# Set it to the threshold of the max value.
ThresholdVal=$(($NewVal<$MaxVal?$NewVal:$MaxVal))
echo $ThresholdVal
# Set the new value directly.
echo -n $ThresholdVal > /sys/class/backlight/intel_backlight/brightness
su $YOUR_USERNAME -c 'DISPLAY=":0.0" notify-send -t 50 \
-i super_icon_brightness "Brightness +50"'
Пути нужно заменить на свои (проверить можно по пути /sys/class/backlight) в зависимости от вашей конфигурации компьютера и от параметров загрузки ядра), а шаг регулировки яркости (IncVal=50) нужно подобрать в зависимости от своих предпочтений. Максимальное значение яркости указано в файле /sys/class/backlight/intel_backlight(acpi_video0 или что там у Вас)/max_brightness
Для удобства, можно задать клавиатурную комбинацию, запускающую утилиту или скрипт, предварительно указав его в sudoers.
Например, если у Вас оконный менеджер Icewm:
key Super(это клавиша Windows)+F6 sudo /home/yura/programs/system/brightly/brightdown
key Super+F7 sudo /home/yura/programs/system/brightly/brightup
На ноутбуках можно обойтись без скриптов и утилит, так как там есть системное клавиатурное сочетание Fn+F6-F7 для регулировки яркости в любой операционной системе и даже на начальном этапе загрузки компьютера. Однако в GNU/Linux оно может не работать (до загрузки работать, а во время и после - нет), если ядро загружено не с теми параметрами. Все доступные параметры для различных версий ядра:
https://redsymbol.net/linux-kernel-boot-parameters/
Какие параметры ядра использовать, acpi_osi=linux или acpi_backlight=vendor ?
Я перепробовал шесть значений параметра acpi_backlight: acpi_backlight=i915 acpi_backlight=native acpi_osi=Linux acpi_backlight=intel, acpi_backlight=vendor(максимальная яркость у меня раза в два меньше максимальной якрости без acpi_backlight=vendor или при других значениях acpi_backlight), acpi_osi=
И остановился на acpi_osi=
Проверить параметры загрузки ядра можно так:
$ cat /proc/cmdline
Я на ноутбуке FUJITSU LIFEBOOK N532 для регулировки яркости я указал параметр acpi_osi=:
auto BOOT_IMAGE=Linux ro root=UUID=5cef5461-8e50-4c8f-9029-f373d52f4ef7 zswap.enabled=1 zswap.compressor=lz4 acpi_osi=
Потому что с параметрами "по умолчанию" яркость клавиатурным сочитанием Fn+F6-F7 на Fujitsu LIFEBOOK N532 не регулируется.
Добавление параметров в загрузчик Grub.
Я приведу пример для старой версии Grub, так как давно перешел на Lilo и не знаю как теперь в новых версиях Grub:
что в /boot/grub/grub.cfg
linux /boot/vmlinuz-4.1.31-30-default root=UUID=c52ca066-e48f-4df2-bc7e-4d885a354090 resume=/dev/sda7 splash=silent quiet showopts
initrd /boot/initrd-4.1.31-30-default acpi_osi=
initrd /boot/initrd-4.1.31-30-default acpi_osi=
$ grub-install /dev/sda
Перезагрузка:
$ reboot
Почему я отказался от Grub ? Ставил Дебианы, начиная с 7,8,9 на два совершенно разных ноутбука. Везде при установке Дебиана ошибка установки Grub, приходилось возвращаться по пунктам установщика вниз и выбирать lilo. Я не раз убеждался, что Grub как-то нестабильно устанавливается: нужно раз 10-15 ввести grub-install /dev/sda чтоб он нормально установился. Вводишь первый раз grub-install /dev/sda, при загрузке компа появляются одни артефакты вместо загрузчика, вводишь второй раз grub-install /dev/sda - другие артефакты, третий - третье. И так пока grub не установиться нормально. Проверял установку груба командой kvm /dev/sda. Да и lilo мне, как простому пользователю намного проще.
Добавление параметров в загрузчик Lilo.
что в /etc/lilo.conf
image = /boot/vmlinuz-4.9.0-6-amd64
label = "Linux"
read-only
# restricted
# alias = 1
# optional
initrd = /boot/initrd.img-4.9.0-6-amd64
append="zswap.enabled=1 zswap.compressor=lz4 acpi_osi="
label = "Linux"
read-only
# restricted
# alias = 1
# optional
initrd = /boot/initrd.img-4.9.0-6-amd64
append="zswap.enabled=1 zswap.compressor=lz4 acpi_osi="
$ lilo
Перезагрузка:
$ reboot
------------------------
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Компьютерные советы
Комментарии |