Тоже Vaio только FS115ZR Клавиша Fn под Ubuntu 10.04 вообще не работает. У Гентушников нашел вот:
Вступление
Большинство современных клавиатур оснащено мультимедийными клавишами (кнопками). Это руководство обьясняет, что и как нужно сделать, чтобы использовать эти клавиши.
[править]
Определить коды клавиш
Какую бы клавишу вы не нажали на вашей клавиатуре ядро выдает скан-код клавиши, который может быть привязан к коду клавиши. В тоже время, это происходит на уровне ядра, а X использует собственный способ привязки клавиш. При загрузке читается таблица кодов клавиш ядра, затем код клавиши привязывается к собственной таблице кодов. Каждый код клавиши может быть привязан к символу клавиши, строке, которая представляет эту клавишу.
Определить коды для ваших мультимедийных клавиш очень просто. Нужно лишь ввести команду в X терминале
xterm/konsole/eterm):
xev
Note: если вы используете модульный (т.е. распространяющийся по частям) X сервер версии >=7.0.0, то возможно вам для начала понадобится поставить (emerge) и раскрыть (unmask) x11-apps/xev, примерно так:
echo x11-apps/xev | tee -a /etc/portage/package.keywords /etc/portage/package.unmask
# -a ВАЖНО, это точно заставляет tee не перезаписывать файл
Теперь нажмите каждую мультмедийную клавишу на вашей клавиатуре и запомните сгенерированные коды, которые будут выводиться в окне терминала и выглядеть так:
Code: Вывод xev
KeyRelease event, serial 31, synthetic NO, window 0x2800001,
root 0x7d, subw 0x0, time 2792224, (-22,86), root:(565,101),
state 0x10, keycode 160, same_screen YES,
XLookupString gives 0 bytes:
Значение "keycode" - это то, что нам нужно. В этом пример это 160. Запомните значение для каждой дополнительной клавиши.
Если после нажатия все клавиши выдают информацию, тогда вы можете перейти к настройке xmodmap или создать свою модель клавиатуры, что считается более эстетичным=) Если нажатие какой-то клавиши не дает ничего, введите в X терминал:
dmesg
Вы можете увидеть строки вроде этих:
Code: Вывод dmesg
atkbd.c: Unknown key released (translated set 2, code 0x96 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e016 <keycode>' to make it known.
Это значит, что ядро не имеет кодов клавиш привязанных к сканкодам вашей клавиатуры. Вы должны добавить одну строку в /etc/conf.d/local.start для каждой отсутствующей клавиши, вот так:
Файл: /etc/conf.d/local.start
setkeycodes e008 136
setkeycodes e016 150
... и так далее ...
Где первое число - это то, которое вы видели в выводе dmesg, и второе (136) - неиспользуемый код клавиши вашего ядра. В общем случае, вы можете дать хороший код для клавиши взяв последние 2 знака первого числа, преобразовав их из шестнадцатиричного представления в десятичное и прибавив 128.
Кроме того, неиспользуемые коды клавиш вы можете посмотреть с помощью getkeycodes, только выполнять эту программу нужно не в x-терминале. Например, вы можете перейти в tty2, нажав кнопки [Ctrl]+[Alt]+[F2], залогиниться и выполнить getkeycodes. Вы увидите таблицу, где нули - клавиши с неиспользуемыми кодами. Результат может быть примерно такой: Code: Вывод getkeycodes
<tt>
Собственно скан-коды xx (hex) и, соответственно, коды клавиш (десятичные)
for 1-83 (0x01-0x53) scancode equals keycode
0x50: 80 81 82 83 99 0 86 87
0x58: 88 117 0 0 95 183 184 185
0x60: 0 0 0 0 0 0 0 0
0x68: 0 0 0 0 0 0 0 0
0x70: 93 0 0 89 0 0 85 91
0x78: 90 92 0 94 0 124 121 0
Скан-коды с `Escape' e0 xx (hex)
e0 00: 0 0 0 0 0 0 0 0
e0 08: 0 204 167 170 0 0 0 0
e0 10: 165 0 237 0 0 0 0 0
e0 18: 0 163 0 0 96 97 0 0
e0 20: 113 140 164 0 166 0 0 0
e0 28: 0 0 255 0 0 0 114 0
e0 30: 115 0 150 0 0 98 255 99
e0 38: 100 0 0 0 0 0 0 0
e0 40: 0 0 0 0 0 119 119 102
e0 48: 103 104 0 105 112 106 118 107
e0 50: 108 109 110 111 0 0 0 0
e0 58: 0 0 0 125 126 127 116 142
e0 60: 0 0 0 143 0 217 156 173
e0 68: 128 159 158 157 155 226 0 112
e0 70: 0 0 0 0 0 0 0 0
e0 78: 0 0 0 0 0 0 0 0
</tt>
Посмотреть, используется ли код клавиши, который вы хотите установить с помощью setkeycodes, можно с помощью небольшого конвеера:
getkeycodes | grep <код клавиши>
Добавив setkeycodes и полученные значения аргументов в /etc/conf.d/local.start, вы поставите в соответствие связи "сканкод - код клавиши" при каждой загрузке. Чтобы выставить их без перезапуска, выполните следующую команду как рут:
sh /etc/conf.d/local.start
После того, как правильные связи будут выставлены, перезапустите X и снова воспользуйтесь xev, чтобы узнать коды для каждой мультимедийной клавиши, которую вы хотите использовать
Note: с мультимедийными клавишами, действующими только при нажатой функциональной клавишей (Fn), проблемы, возможно, будут продолжаться.
xev мою Fn не видит, dmesg показал:
atkbd.c: Unknown key released (translated set 2, code 0x96 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e075 <keycode>' to make it known.
Далее куда прописывать полученное где потправить? local.start в убунте не могу найти.
Подскажите люди добрые...