У меня проблема с настройкой яркости. Когда я уменьшаю яркость до 1 и перезагружаю компьютер, он сбрасывается до максимального значения яркости. Я устал отрегулировать его и снова уменьшить до 1. Почему настройка не сохраняет последние настройки яркости для меня? Как сохранить текущее значение и восстановить его после перезагрузки с помощью программирования?
Я также пытался добавить echo 0 > /sys/class/backlight/intel_backlight/brightness
в файл /etc/rc.local
, но после перезагрузки он снова сбрасывается до максимума.
Модель моего ноутбука - Vaio SVF1521DCXW
.
У меня была другая названная папка acpi_video0
в этом месте/sys/class/backlight/
Я добавил следующую команду в конце, но прежде exit 0
в gksu gedit /etc/rc.local
файл:
echo 0 > /sys/class/backlight/intel_backlight/brightness
echo 0 > /sys/class/backlight/acpi_video0/brightness
Это работало на меня. И теперь я хочу получить текущую яркость и сохранить ее в файл для восстановления его при следующем перезапуске.
Шаг 1: Проверьте уровни яркости
Установите свою яркость на максимум и проверьте текущий уровень ниже команды:
cat /sys/class/backlight/acpi_video0/max_brightness
(мой ноутбук макс. яркость равняется 100 :)
Теперь установите свою яркость на минимум и проверьте, что текущий уровень путем вызывания затем управляет:
cat /sys/class/backlight/acpi_video0/brightness
(мой минимальный уровень яркости ноутбука 0 :)
Шаг 2: Создайте файл для хранения текущей яркости:
sudo touch /etc/init.d/prev_brightness
sudo chmod o+w /etc/init.d/prev_brightness
Шаг 3: Создайте сценарий, который хранит Вашу текущую яркость ( save_screen_brightness
файл) при закрытии в файл prev_brightness
то, что Вы создали на предыдущем шаге:
sudo touch /etc/init.d/save_current_brightness
sudo chmod +x /etc/init.d/save_screen_brightness
Откройтесь save_screen_brightness
файл с Вашим любимым приложением редактора:
gksu gedit /etc/init.d/save_screen_brightness
И помещенный этот сценарий в него:
#!/bin/sh
cat /sys/class/backlight/acpi_video0/brightness > /etc/init.d/prev_brightness
Сохраните его и перейдите к следующему шагу ;)
Шаг 4: Заставьте сценарий работать каждый раз, когда мы завершаем работу или перезагружаем компьютер:
sudo ln -s /etc/init.d/save_current_brightness /etc/rc0.d/K99save_screen_brightness
## Shuttingdown ^^
sudo ln -s /etc/init.d/save_current_brightness /etc/rc6.d/K99save_screen_brightness
## Rebooting ^^
Шаг 5: Загрузите значение, которое мы сохранили при запуске компьютера:
Добавьте следующую строку в конце и прежде exit 0
в Ваш /etc/rc.local
файл:
cat /etc/init.d/prev_brightness > /sys/class/backlight/acpi_video0/brightness
Вот именно ;)
Благодаря ответу @Hevilath и ответу @user207402 и также ответу @AiPdimi
сделайте файл как fixMaxBrightness.sh
копия все, что они выравнивают к ней, делают ее исполняемым файлом chmod +x fixMaxBrightness.sh
и работают, она этой командой sudo ./fixMaxBrightness.sh
перезапускает Вашу систему.
#!/bin/bash
#this script are going to get last change screen Brightness
#and put it in /.FixBritness
#this folder is in home directory that the following line make it
mkdir $HOME/.FixBritness
cd $HOME/.FixBritness
#make two another script that put current brightness in "currntBritness" file,
#and it must run when system is going down
cat > getBritness.sh <<_EOF_
#!/bin/bash
cat /sys/class/backlight/acpi_video0/actual_brightness > $HOME/.FixBritness/currntBritness
exit 0
_EOF_
#to get last brightness that saved in "currntBritness" file
#and put it in system brightness file
cat > putLastBritness.sh <<_EOF_
#!/bin/bash
cat $HOME/.FixBritness/currntBritness > /sys/class/backlight/acpi_video0/brightness
exit 0
_EOF_
# create currntBritness file and put zero to defult value
touch currntBritness
echo 0 > currntBritness
chmod 755 getBritness.sh
chmod 755 putLastBritness.sh
#put in /etc/init.d/ because these file will use in /etc/rc1 through rc6
mv getBritness.sh /etc/init.d/
mv putLastBritness.sh /etc/init.d/
#make a symbolic link to getBritness.sh that get brightness when:
#shutting down
ln -s /etc/init.d/getBritness.sh /etc/rc0.d/S11getBritness.sh
#and restart
ln -s /etc/init.d/getBritness.sh /etc/rc6.d/S11getBritness.sh
#symlink to put last brightness when system start.
ln -s /etc/init.d/putLastBritness.sh /etc/rc1.d/S66putLastBritness.sh
ln -s /etc/init.d/putLastBritness.sh /etc/rc2.d/S66putLastBritness.sh
ln -s /etc/init.d/putLastBritness.sh /etc/rc3.d/S66putLastBritness.sh
exit 0
На Sony Vaio E15136CN (и большинство других с Видеокартой AMD), не присутствует acpi_video0. Вместо этого существует radeon_bl0
в /sys/class/backlight
. Так оператор, который будет добавлен к rc.local
, файл
echo 60 > /sys/class/backlight/radeon_bl0/brightness
, Замена 60 с любым значением подходит для Вас. Мой диапазон яркости от 0 до 255 (можно проверить максимальную яркость в /sys/class/backlight/radeon_bl0/max_brightness
), таким образом, 60 подходит мне.
Ни один из ответов, с которыми я столкнулся, не упомянул Видеокарту AMD Radeon. Таким образом, я думал, что мог бы добавить ответ, связанный с ним. Кроме того, ответ StГ©phane Gourichon на , Как я устанавливаю яркость дисплея по умолчанию? не работает над Sony Vaio E15136CN. Таким образом короче говоря, это шаги, которые будут выполняться:
Шаг 1:
sudo nano /etc/rc.local
Шаг 2:
echo 60 > /sys/class/backlight/radeon_bl0/brightness
Шаг 3:
Перезапуск Ваша система.