Видео смотреть бесплатно

Смотреть молодые видео

Официальный сайт netfuncards 24/7/365

Смотреть видео бесплатно

29.07.09 00:15 h0rr0rr_drag0n

Tips & tricksЗаставляем работать функциональные кнопки при помощи acpid'a.

Несмотря на довольно хорошую поддержку железа в линуксе, иногда все же чего-то не хватает. Например, после установки убунты на мой ноутбук, распознались все функциональные клавиши, кроме Power4Gear - на модели Asus F6E это специальная клавиша, которая вызывает переключение режимов энергосбережения процессора после установки специальной приблудины от асус, сделанной, естественно, только под Windows.
Естественно я озаботился тем, как настроить эту кнопку.

Нажатия всех этих функциональных клавиш перехватывает демон acpid - решено было повесить на него работу по переключению режима энергосбережения. Для начала нужно узнать код события, происходящего при нажатии необходимой функциональной клавиши - используем для этого утилиту acpi_listen. Запустим ее и нажмем на нужную нам кнопку.
1
2
3
4
5
6
7
8
9
10
11


~$ acpi_listen

hotkey ATKD 0000005c 0000000c

^C

~$

 

Первые три поля, разделенных пробелами, это и есть необходимый нам код.
Теперь нужно создать описание действия, которое будет происходить при нажатии на эту кнопку. Все описания действий у демона acpid хранятся в каталоге /etc/acpi/events/ . Создадим там новый файл asus-f6e-power4gear и наполним его следующим содержимым:
1
2
3
4
5
6
7


event=hotkey (ATKD|HOTK) 0000005c

action=/etc/acpi/asus-f6e-power4gear.sh

 

где в первой строчке записан наш код, а во второй абсолютный путь к программе, которую следует запускать после нажатия кнопки.
Содержимое скрипта asus-f6e-power4gear.sh довольно простое:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63


#!/bin/sh



#conservative -> ondemand -> performance -> powersave -

# ^                                                    |

# |----------------------------------------------------|



CURR_CPU0_GOVERNOR=`cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor`

CURR_CPU1_GOVERNOR=`cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor`



case "$CURR_CPU0_GOVERNOR" in

        "conservative")

        NEW_GOVERNOR="ondemand"

        ;;

        "ondemand")

        NEW_GOVERNOR="performance"

        ;;

        "performance")

        NEW_GOVERNOR="powersave"

        ;;

        "powersave")

        NEW_GOVERNOR="conservative"

        ;;

esac

if [ "$CURR_CPU0_GOVERNOR" != "$CURR_CPU1_GOVERNOR" ]; then

        NEW_GOVERNOR="ondemand"

fi



cpufreq-selector -c 0 -g "$NEW_GOVERNOR" &

cpufreq-selector -c 1 -g "$NEW_GOVERNOR" &

DISPLAY=:0 su -c "notify-send -u normal -i /usr/share/icons/gnome/scalable/devices/battery.svg 'Asus Power4Gear' 'Selected governor: $NEW_GOVERNOR'" drag0n

 


Утилита cpufreq-selector является частью gnome-applets, поэтому поклонникам других DE\WM, могу лишь предложить поискать утилиту с похожей функциональностью.
В последней строчке выводим сообщение о смене энергосберегающего режима средствами библиотеку libnotify (которая рисует весьма красивые всплывающие сообщения :-) ).

Переключение режимов происходит циклически, в соответствии со схемой в начале скрипта.

По завершении всех изменений необходимо перезапустить acpid и наслаждаться работающей кнопкой.
1
2
3
4
5


sudo /etc/init.d/acpid restart

 


Теги:

xT 29.07.09 00:40 # +0
Спасибо, попробую аналогично на n10j
ZaWertun 29.07.09 02:57 # +2
есть программка cpufreq-set из пакета cpufrequtils (как он называется в OpenSUSE)
в зависимостях: libc.so.6, libcpufreq.so.0 (входит в пакет cpufrequtils)

cpufreq-set -c0 -g powersave

по параметрам один-в-один как вышеописанная cpufreq-selector
DrThompson 29.07.09 11:31 # +0
После запуска acpi_listen дму функциональные клавиши и ничего не происходит.
Ведь функциональные клавиши это доп клавиши вроде «выключить звук» и «открыть браузер»?
h0rr0rr_drag0n 29.07.09 12:39 # +0
Да.
А демон acpid вообще загружен и поддерживается ли ваша модель ноутбука?
Лучше всего поискать в гугле по модели вашего ноутбука и ключевому слову "acpid".
DrThompson 29.07.09 12:44 # +0
Демон запущен, но у меня не ноутбук и кнопки я нажимаю на клавиатуре. Это важный момент?
h0rr0rr_drag0n 29.07.09 12:48 # +0
ИМХО да. Нажатия различных функциональных кнопок на обычной USB\PS/2клавиатуре демон не перехватывает. Лично у меня было так, хотя я могу и ошибаться.
DrThompson 29.07.09 12:57 # +0
Печально… Давно хотел настроить эти кнопочки, да всё руки не доходили.
Minoru 29.07.09 14:12 # +2
Попробуй встроенные средства DE/WM (в Fluxbox хоткеи конфигурятся шикарно) или xbindkeys.
muhas 29.07.09 22:04 # +0
xbindkeys однозначно.
al1e 30.07.09 14:43 # +0
аналогично в slackware64.... Fn+Esc (включение спячего режима) перехватывает, но эта комбинация работает и из коробки, а вот включение ви-фи , регулировки подсветки и звука и еще что по мелочи не хочет.... пробовал на ноуте samsung R460
h0rr0rr_drag0n 28.08.09 10:42 # +0
UPD: Можно обойтись вообще без cpufreq-selector и cpufreq-set. Достаточно в коде скрипта заменить:
1
2
3
4
5
6
7


cpufreq-selector -c 0 -g "$NEW_GOVERNOR" &

cpufreq-selector -c 1 -g "$NEW_GOVERNOR" &

 

на:
1
2
3
4
5
6
7


echo $NEW_GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

echo $NEW_GOVERNOR > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor

 

Лучшие блоги (все 158)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Элита (все 3245 из 234 городов)
Топ пользователей Топ блогов
В сети: shidoh, knicefire, kstep

Новенькие: neqste, ktulhy-kun, iMihael, palsanich, Brodyaga
welinux.ru

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн