LINUX.ORG.RU

Миграция скрипта Slackware => Arch


0

2

Прошу модераторов перенести туда, куда более подойдет, я даже не знаю куда это.

Для изменения яркости экрана ноутбука использую самописный скрипт. После долгих шатаний меня занесло в Арч (Таже Слака, только более удобная в кастомизации, что, собственно, и понравилось.) и тут оказалось, что часть скрипта отказывается работать.На Слаке все работало.

Часть, собственно, отвечает за переключение подсветки (вкл-выкл).

Подсветка отключается, но не включается. Пробовал изменить, что бы уровень подсветки брался не из сохраненного файла, а просто выставляя «var» - все равно не работает.

Помогите отладить.

#!/bin/bash
#
# Управление яркостью экрана через sudo /sbin/setpci
#
# br_up_me inc/dec/set/toggle <значение> (для toggle значение не нужно)
#
# в /etc/sudoers нужно добавить строку:
# имя_пользователя ALL=NOPASSWD: /sbin/setpci
#
# snefjyent 25/12/2011 
#
# Путь к файлу, где будет сохраняться яркость при отключении подсветки
data_file=.brme_db
# Путь к setpci (Для поиска используйте which setpci)
path_setpci=/usr/sbin/setpci
# Адрес
device=00:02.0
# Сохраняем второй введенный аргумент
amount=$2

# Установка яркости
SET ()
{
 sudo $path_setpci -s $device F4.B=$var
}

# Проверяем, допустимо ли значение при ув. яркости, если нет - берем максимально возможное
INC_TEST ()
{
 let "ovar=98-$br"
 if [ "$amount" -gt "$ovar" ];
  then
   var=99
 fi
}

# Проверяем, допустимо ли значение при ум. яркости, если нет - берем минимально возможное
DEC_TEST ()
{
 let "ovar=$br-10"
 if [ "$amount" -gt "$ovar" ];
  then
   var=10
 fi
}

# Берем яркость экрана
var=`sudo $path_setpci -s $device F4.B`

# Сохраняем для тестов (INC/DEC_TEST)
br=$var

# Выбираем действие по 1 агрументу
case "$1" in

# Увеличения яркости
	inc)
let "var=$var+$amount"
INC_TEST
SET
;;

# Уменьшение яркости
	dec)
let "var=$var-$amount"
DEC_TEST
SET
;;

# Установка яркости
	set)
let "var=$amount"
SET
;;

# Переключение подсветки
	toggle)
if [ $var -eq 0 ];
 then
  var=`cat $data_file`
  SET
 else
  echo $var>$data_file
  var=0
  SET
fi
;;

esac
exit 0

Перемещено mono из talks

Deleted

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

В этом разделе мозг автоматом отключается, по этому даже не читал...

Morphine
()
Ответ на: Арчевики от Belkrr

Попробую, но все равно же интересно - почему оно не работает.

Deleted
()

факин шыт, нахрена всё это?

я се на хоткеи бука повесил вызов
xbacklight -dec 20 -steps 1
и
xbacklight -inc 20 -steps 1

и никаких проблем

smalcom
()

Вместо того, чтобы городить всё это, можно было бы просто поставить laptop_mode_utils и добавить пару команд для изменения яркости в /etc/laptop-mode/conf.d/exec-commands

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

на какую именно команду ничего не выдает? повводи все команды руками.

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

Поставил, в lcd-* вписал /sys/**/backlight свои параметры, echo итд. И, собственно, ничего не заработало. Еще что нужно?

Komintern Внезапно, к моему удивлению, скрипт заработал.

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

тогда предлагаеца процесс именуемый саливация верхней конечности млекопитающего ротовой полостью с давлением ниже атмосферного....

smalcom
()

и до сих пор никто не предложил пересобрать ядро, ну. не торт, не торт...

dib2 ★★★★★
()

Отловил проблему.

Она тут:

# Переключение подсветки
	toggle)
if [ $var -eq 0 ];
 then
  var=`cat $data_file`
  SET

Меняем на

# Переключение подсветки
	toggle)
if [ $var -eq 00 ];
 then
  var=`cat $data_file`
  SET

И все, @#$%, работает.

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

аналогично, только что вот для интересу взял и запустил
[smalcom@panasmal ~]$ xbacklight -set 0 -steps 1
пронаблюдал черноту

в dmesg или syslog ничо не сыпет при вызове xbacklight?

smalcom
()

И чем это арч удобней в кастомизации, если там даже скрипты не работают? Я правда не пробовал арч, но почему-то заранее уверен, что он мне не понравится.

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

И чем это арч удобней в кастомизации, если там даже скрипты не работают? Я правда не пробовал арч, но почему-то заранее уверен, что он мне не понравится.

В скрипте где то ошибка, поэтому и не работает. Правда где эта ошибка...

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

Ну попробуй set -x и/или set -v что ли в начало скрипта... отладка — увидишь, какие команды исполняются, а какие нет

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

if [ $var -eq 00 ];

лучше сразу сделать чтото типа
for i in 0, 00, 000, 0000

чтобы в будущем работало на любом дистре

Ну вы хоть man bash прочитайте, что ли. -eq делает арифметическое сравнение, ему побоку, что 0, что 000 - одинаково.

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

Ну вы хоть man bash прочитайте, что ли. -eq делает арифметическое сравнение, ему побоку, что 0, что 000 - одинаково.

Да, я ошибся. Меня столкнуло с истины то, что скрипт после одного этого изменения заработал.

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

товарищ, сходите ка к гудвину за сеном, може начнёте, оттопыривая её, распознавать иронию/сарказм.

хочеца ответить матом, но гдето здесь в кустах джиби засел.

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

Тут, в техразделах, такое и на полном серьёзе пишут, например.

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