Решение для ubuntu 9.10 в этом
посте. Для 9.04( и предыдущие) остались у меня в бекапе(потом переедут в вики, возможно), поэтому пока спрашивайте меня в личке, а вообще в виду малой популярности я наверно окажусь от ее поддержки.
Тема предназначена для обладателей ноутбуков от Samsung испытывающих проблемы с функциональными клавишами. После написания патчей для пары моделей ноутбуков и поиска решения проблемы было обнаружено, что добрый производитель почти во всех своих ноутах устанавливает одинаковые типы клавиатур. Тогда кейкоды, посылаемые спец-кнопками во многих моделях ноутов одинаковы. Так что для решения проблемы с залипанием этих кнопок необходимо несколько шагов.
Решение ТОЛЬКО для ubuntu 10.04 и выше.
Примечание для ubuntu 11.04 и выше: У дистрибутивов ubuntu 11.04(
даже 12.04) ситуация с кнопками изменилась - теперь из коробки(на чистом дистрибутиве без пакетов voria и других шаманств) у многих моделей ноутов регулировка подсветки работает. Пакеты voria(см. ниже) стоит ставить только если нужно задействовать другие fn кнопки и другие функции сбережения питания. Также, если до установки voria подсветка регулировалась, а после установки - нет, то надо удалить пакет samsung-bachlight (просто он иногда глючит).
1. Узнаем модель ноута:
sudo dmidecode -s system-product-name
У меня например
R59P/R60P/R61P
2.Для 10.10 и старше шаг пропускаем, так как в данном файле все сделано наоборот: по умолчанию сюда включены все модели специальным правилом, так что вашей модели в нем скорее всего не указано явно, а исключения из правила как раз наоборот указаны.
Узнаем наличие модели в специальных правилах в файле 95-keymap.rules, где на fn-кнопки назначены действия, номер модели естественно меняем на свой:
cat /lib/udev/rules.d/95-keymap.rules | grep R59P/R60P/R61P
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*Q210*|*Q310*|*X05*|*P560*|*R560*", RUN+="keymap $name samsung-other"
Если вывод не пустой, значит на основные клавиши действия "повешены", а если пустой, то редактируем файл и добавляем свою модель.
sudo gedit /lib/udev/rules.d/95-keymap.rules
3. Узнаем наличие модели в специальных правилах для "отлипания" клавиш в файле 95-keyboard-force-release.rules, номер модели естественно меняем на свой:
cat /lib/udev/rules.d/95-keyboard-force-release.rules|grep R59P/R60P/R61P
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*N130*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*SR70S/SR71S*|*Q210*|*Q310*|*X05*|*P560*|*R560*", RUN+="keymap $name samsung-other"
Если вывод пустой, то редактируем этот файл и добавляем свою модель, а если не пустой, значит клавиши "отлипаются", но непустой вывод может быть и для такого случая:
Например в п.1 выдало R60P, а в этом пункте выдало непустую строку, но кнопки не будут работать, так как строки *R59P/R60P/R61P* и *R60P* это не одно и тоже. Поэтому добавляем еще отдельно свою *R60P* и все будет работать.
4. Для самунгов есть замечательный проект на voria.org, который объединяет в себе специальные скрипты и модуль easy-slow-down-manager, которые предоставляют фунции для fn-клавиш. Поэтому просто ставим их из репозитория:
sudo apt-add-repository ppa:voria
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install samsung-tools samsung-backlight
Для некоторых моделей этих действий вполне достаточно, но у меня возник конфликт с апплетом регулировки яркости - теперь апплет "залипал" вместо кнопок

. Решение таково - передаем ядру параметр acpi_backlight=vendor, добавляя
его в /etc/default/grub к параметру GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_backlight=vendor"
И обновляем загрузчик:
sudo update-grub
Если после этих манипуляций яркость не меняется и видеокарта
intel, то нужно добавить в параметры ядра nomodeset.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset acpi_backlight=vendor"
А если не заработало для видеокарты
nvidia, то
вот решение от Leolik, а так же пакет из репозитория voria
nvidia-bl-dkms.
Ну и самый запасной вариант для карт nvidia(через утилиту
smartdimmer) -
тут. При должной адаптации этот способ можно применить и для других видеокарт, лишь бы была рабочая команда\утилита для регулировки уровня яркости.
В некоторых случаях, когда не регулируется подсветка помогает
это (помогло для N150, RV508).
Если DE не гном:Если возникают проблемы с залипанием после обновления системы, то заново проходим пункты 1-3.
Так же если есть проблемы с кнопками даже после этих манипуляций, то стоит заглянуть в репозиторий voria - там появляются дополнительные фиксы в других пакетах. Да и вообще обновляйтесь почаще - могут пофиксить внезапно.
Необычное решение для:
Решение для Ubuntu 11.04
Проверено на RV509 ( core i3(intel GMA HD) gf315m)!глюк с затуханием экрана, когда начинает мигать подсветка -
фикс - только прописывать в /etc/rc.local и с задержкой по времени.
echo "xset -dpms && xset s off"|at now + 1 minutes
Еще кое что, если проблемы с уровнями яркости при отключении\включении питания.
И еще.
Свои скрипты регулировки.
Не зависимое от DE
решение.
Настройка кнопок завершена.
Теперь немного опишу новые утилыты из samsung-tools:
Из меню Система > Параметры > Samsung Tools Preferences вызывается настройка fn-кнопок, состояний усройств(wifi, bluetooth, web-камера, проц) при включении, параметров ядра(в разработке), режима сбережения питания laptop-mode (нужно поставить пакет laptop-mode-tools, чтобы стало активным), понижения напряжения проца(работает только с поддерживаемыми PHC
http://linux-phc.org/). А так же появился апплет samsung tools, который дублирует функции клавиш.
У меня нет вебки, а на fn-f3 висит евро, поэтому написал такой скрипт:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import virtkey
v = virtkey.virtkey()
v.lock_mod(1<<2) # зажать ctrl
v.lock_mod(1<<0) # зажать shirt
v.press_keycode(30) # нажать u
v.release_keycode(30) # u
v.press_keycode(26) # нажать e
v.release_keycode(26) # e
v.press_keycode(13) # нажать 4
v.release_keycode(13) # 4
v.press_keycode(11) # нажать 2
v.release_keycode(11) # 2
v.press_keycode(14) # нажать 5
v.release_keycode(14) # 5
v.unlock_mod(1<<0) # отпустить shirt
v.unlock_mod(1<<2) # отпустить ctrl
v.press_keycode(37) # нажать ctrl
v.release_keycode(37) # ctrl
копируем его в /usr/local/bin и вешаем на кнопку в настройках горячих клавиш системы. И обязательно ставим пакет python-virtkey.
Тестим, коментируем. Если пришлось добавлять в правила свой бук, то cравниваем со списком уже поддерживаемых
здесь(Смотрим информацию по пакету linux).
Уже есть в официальном ядре(устарело):
NC10, NC20, SQ45S70S, Q210/P210.
Если модель не поддерживается, то постим здесь
http://www.voria.org/forum/viewtopic.php?f=3&t=358&start=150, номер модели из 1 пункта. Кто хочет пожертвовать деньги этому проекту - там есть кнопка доната.
Благодарности: voria, Codeblight, BASSON XVI, Trofa, Keng-Yu Lin, progroz, многим другим кого не упомянул, но которые приняли участие, и сообществу форума.