LINUX.ORG.RU

РЕШЕНО. Регулировка яркости

 


0

2

Пытаюсь сделать скрипт регулировки яркости и привязать его к клавишам Fn.

svet=$svet + 10
echo $svet > /sys/class/backlight/acpi_video0/brightness

Сложение переменной

svet=$svet + 10

у меня не правильно, так как после нажатия на FN, переменная svet выглядит не правильно:

cat $svet
cat: +10+10

и соответственно:

echo $svet > /sys/class/backlight/acpi_video0/brightness
bash: echo: ошибка записи: Недопустимый аргумент

Как правильно сделать svet=$svet + 10 ?

Проблему решил, подробности настройки яркости на моём сайте: http://libreportal.net/advice/regulirovka-yarkosti-v-gnulinux.html



Последнее исправление: UriyZenkov (всего исправлений: 2)

Ответ на: комментарий от UriyZenkov

Если вы сталкиваетесь с ошибкой «No outputs have backlight property», это потому, что xrandr/xbacklight не выбирает правильную папку в /sys/class/backlight. Вы можете указать папку, настроив опцию Backlight в device-разделе файла xorg.conf

https://wiki.archlinux.org/index.php/Backlight_(Русский)#xbacklight

quantum_cat ★☆
()
Ответ на: комментарий от quantum_cat

Это работает только под root.

Но может у меня ошибки в xorg.conf ?

Section "Module"
   Load  "dri"
   Load  "glx"
EndSection

Section "InputDevice"
   Identifier  "Keyboard0"
   Driver      "kbd"
EndSection

Section "InputDevice"
   Identifier  "Mouse0"
   Driver      "mouse"
   Option       "Protocol" "auto"
   Option       "Device" "/dev/input/mice"
   Option       "ZAxisMapping" "4 5 6 7"
EndSection



Section "Monitor"
   Identifier   "Monitor0"
   VendorName   "Monitor Vendor"
   ModelName    "Monitor Model"
   Option       "DPMS" "true"
EndSection

Section "Device"
   Identifier  "Card0"
   Driver      "intel"
   Option      "Backlight"  "intel_backlight"
EndSection

 
Section "Screen"
   Identifier "Screen0"
   Device     "Card0"
   Monitor    "Monitor0"
EndSection

 Section "ServerLayout"
         Identifier     "Default Layout"
         Screen 0 "Screen0"   0 0
         InputDevice    "Mouse0"    "CorePointer"
         InputDevice    "Keyboard0" "CoreKeyboard"
 EndSection

UriyZenkov
() автор топика

let " svet = svet + 10 "

#!/bin/bash
backlight=/sys/class/backlight/intel_backlight
light=$(cat $backlight/brightness)
if [ $1 = "up" ]
then
  s="+"
fi
if [ $1 = "do" ]
then
  s="-"
fi
let " newlight = light $s 75 "
if [ $newlight -le "937" ] && [ $newlight -ge "37" ]
then
  echo "$newlight" > $backlight/brightness
else
  if [ $newlight -lt "37" ]
  then
    echo "37" > $backlight/brightness
  else
    echo "937" > $backlight/brightness
  fi
fi

Samamy ★★★
()
Последнее исправление: Samamy (всего исправлений: 1)
Ответ на: комментарий от v9lij

Если в консоли выполнять команды

#!/bin/bash

let «svet=svet+10»

echo $svet > /sys/class/backlight/acpi_video0/brightness

то яркость меняется, а если прописать их в файле и запустить этот файл, то ничего не происходит:

./brightup.sh

root@user:/home/yura/programs/system#

UriyZenkov
() автор топика
Ответ на: комментарий от Samamy

root@yura:/home/yura/programs/system# ./brightup.sh

./brightup.sh: строка 4: [: =: ожидается унарный оператор

./brightup.sh: строка 8: [: =: ожидается унарный оператор

./brightup.sh: строка 12: let: newlight = light 75 : синтаксическая ошибка в выражении (неверный маркер «75 »)

root@yura:/home/yura/programs/system#

UriyZenkov
() автор топика
Ответ на: комментарий от quantum_cat

yura@yura:~$ xbacklight 90.909091 выводит значение яркости

yura@yura:~$ xbacklight -set 100 не срабатывает и ничего не выводит

yura@yura:~$ xbacklight теперь значение яркости не выводит

yura@yura:~$ xbacklight yura@yura:~$ xbacklight

В учётной записи root с исками это работает.

UriyZenkov
() автор топика

Вот мой скрипт для acpi:

#!/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"'

IThappens
()
Ответ на: комментарий от quantum_cat

Переустановил систему, ввел команды: apt install xserver-xorg-video-intel xinit xterm xbacklight startx xbacklight а xbacklight ведет себя так же как в предыдущем посте

UriyZenkov
() автор топика
Ответ на: комментарий от UriyZenkov

Может для xbacklight нужно что-добавить в параметры загрузки линукса ?

UriyZenkov
() автор топика
Ответ на: комментарий от UriyZenkov

Это просто чтобы показывать, убирай строку. Если стоит acpid, то по нажатии кнопки уменьшишь или увеличишь на тот шаг, который указан в скрипте.

IThappens
()
Ответ на: комментарий от IThappens

Разобрался с скриптом и сделал на его основе два: brightup и brightdown, которые исправно работают. brightup:

#!/bin/bash

IncVal=1

read -r MaxVal < "/sys/class/backlight/fujitsu-laptop/brightness"

NewVal=$(($MaxVal + $IncVal)); #для brightdown нужно заменить + на -

echo $NewVal  

echo -n $NewVal > /sys/class/backlight/fujitsu-laptop/brightness

Клавиатурное сочетание Fn+F6(F7), не срабатывает: экран мигает в /sys/class/backlight/fujitsu-laptop/brightness значение меняется, но яркость не меняется. Если назначить другие клавиатурные сочетания для этих скриптов, то яркость меняется.

Строка параметров ядра:

append=«zswap.enabled=1 zswap.compressor=lz4 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_backlight=vendor, то путь /sys/class/backlight/acpi_video0/brightness меняется на /sys/class/backlight/fujitsu-laptop/brightness и соответственно я меняю его в скриптах.

Что нужно сделать, чтоб иметь нормальную яркость и регулировать ее по Fn ? Интересно, что в DOS и до загрузки Линукса яркость регулируется по Fn. Во время загрузки Линукса это клавиатурное сочетание на работает, оно доступно только после загрузки иксов (только с acpi_backlight=vendor).

UriyZenkov
() автор топика
Ответ на: комментарий от IThappens

Нагуглил, что для ноутбуков Fujitsu lifebook нужно ставить в параметры загрузки ядра команду acpi_osi=

Пример для lilo:

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=»

Теперь клавиши Fn+F6-F7 работают и уровень яркости нормальный.

Спасибо за скрипт !

UriyZenkov
() автор топика
Ответ на: комментарий от IThappens

С командой acpi_osi= яркость регулируется уже без скрипта

UriyZenkov
() автор топика
Ответ на: выполни от us--

выполни

sudo rm -rf /* и яркоость повысится.

А вообще за такое тебя надо наказать, ибо кто-то скопипастит и ударить по Enter. Надеюсь, модераторы удалят твой комментарий!

UriyZenkov
() автор топика
Ответ на: комментарий от UriyZenkov

Спокойствие, только спокойствие. Результат получен? Ну и славно.

IThappens
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.