Тематика
Тематика
Модель имеет совмещённый порт для подключения наушников с микрофоном (TRRS). Ниже посмотрим, что делать когда нет такой гарнитуры.
Походу Lonovo только «кирпичиный» дизайн не трогает. А всё остальное делает всё более казуальным. Судя по:
Итак:
На фоне этого выглядит забавно это (тут свежее обсуждение):
Смотрится как эдакая попытка срубить бабла с того, что уже было, но было успешно слито. Если вообще будет сделано. А если сделано, то качественно. Воистину:
- Как сделать человеку хорошо?
- Нужно должно делать плохо, а потом просто перестать.
Походу, остаётся только Dell Latitude, со своими тараканами и нечеловеческими ценами. Радует только то, что на мою текущую модель T530 валом запчастей и в пределы производительности я ещё не упирался.
Уже были стоны и жалобы от меня по поводу несколько убогой клавиатуры, точнее раскладки, точнее расположению PrtScr кнопки. Но… или жри кактус или исправляй. Я, обычно, выбираю второй вариант.
Если коротко, команда ниже забиндит PrtScr и сделает из неё Menu (aka Compose) клиавишу:
sudo setkeycodes b7 127
Для других клавиатур и ноутбуков может сработать, но нужно уточнять сканкод (b7
в примере выше).
Эту команду помещаем в /etc/rc.local
или в аналогичный.
Кому нужно подробностей и альтернативных вариантов - смотрим под катом.
В современных системах почти все устройства ввода обслуживаются evdev. В пару с ними трудится udev. Последний может помочь первому в части переопределения сканкодов клавиш.
Собственно все инструкции описаны в:
less /lib/udev/hwdb.d/60-keyboard.hwdb
Вот выдержки, которых достаточно для настройки:
# - AT keyboard DMI data matches: # evdev:atkbd:dmi:bvn*:bvr*:bd*:svn<vendor>:pn<product>:pvr* # <vendor> and <product> are the firmware-provided strings # exported by the kernel DMI modalias.
Эта часть описывает шаблон выбора для AT клавиатур. Да, встроенная клавиатура в T530 это AT клавиатура. Привет NKRO из коробки :) Но об этом дальше.
Следующая часть описывает шаги, которые нужно выполнить после настроек.
# To update this file, create a new file # /etc/udev/hwdb.d/70-keyboard.hwdb # and add your rules there. To load the new rules execute (as root): # udevadm hwdb --update # udevadm trigger /dev/input/eventXX # where /dev/input/eventXX is the keyboard in question. If in # doubt, simply use /dev/input/event* to reload all input rules.
Итак, определяем что у нас за клавиатура, смотрим выхлоп dmesg
:
... [ 2.282100] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3 ...
С вероятностью 147% оно всегда будет так. Запоминаем (особенно последнюю цифру):
/devices/platform/i8042/serio0/input/input3
Теперь определяем сканкод клавиши (подставляем цифру в конце, которую запомнили выше, т.е. input3
→ event3
):
sudo evtest /dev/input/event3
Получаем такой выхлоп:
... Event: time 1487483975.506795, type 4 (EV_MSC), code 4 (MSC_SCAN), value b7 Event: time 1487483975.506795, type 1 (EV_KEY), code 99 (KEY_SYSRQ), value 0 Event: time 1487483975.506795, -------------- SYN_REPORT ------------
Смотрим строку с MSC_SCAN
, значение сканкода поле value
- b7 искомый сканкод.
Кстати, клавиша определяется как KEY_SYSRQ
, но работает только как PrtScr. Для SysRq функциональностью ThinkPad T530: доступ к Break, Pause, Scroll Lock и SysReq.
Далее нам нужно имя клавиши (и код заодно), которые используются внтри ядра. Смотрим в
/usr/include/linux/input-event-codes.h
нужную клавишу. Имя для udev - нижним регистром имя макроопределения, без префикса KEY_
. Для setkeycodes
- dec значение.
Клавиша меню это:
#define KEY_COMPOSE 127
Имеем:
setkeycodes
: 127
Пишем правило для udev (/etc/udev/hwdb.d/70-thinkpath-t530-keyboard.hwdb
):
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr* KEYBOARD_KEY_6b=compose # map PrtScr to Menu
Так как у нас только одна AT клавиатура, и другую подключить нельзя, то правило выше вполне имеет право на жизнь, но при желании можно уточнить как-то так:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*T530*:pvr* KEYBOARD_KEY_6b=compose
Изменения примутся после перезагрузки, так как я не нашёл способ переприменить правила к встроенной клавиатуре. Реаттачатся все, кроме неё (по инструкции из 60-keyboard.hwdb
).
Что бы применить сразу:
sudo setkeycodes b7 127
тут всё понятно: b7 - узнанный сканкод. 127 - числовое значение KEY_COMPOSE
.
После этого, всё, что использует драйвер evdev, будет воспринимать кнопку PrtScr как Menu. Трюк с setkeycodes
будет работать везде, где используется evdev. Стоит отметить, что сканкод платформо-специфичен. Под платформой понимается: AT PS/2, USB HID и т.п. Об этом планирую в другой статье рассказать.
Естественно после всех манипуляций выше вы лишаетесь кнопки Print Screen, но его функциональность в части снятия скриншотов это просто условность и можно настроить окружение так, что бы работала другая комбинация. А можно переназначить другую клавишу аналогичным способом. К примеру, F12. Лично я её использую очень редко. В терминале она вообще эмулируется Shift+F2 (для F11 - Shift+F1)
Полезные ссылки на тему:
man 8 setkeycodes
man 1 loadkeys
- если хочется магии в консоли.Начиная с Tx30 Lenovo дропнули старую клавиатуру на ноутбуках серии ThinkPad, что очень грустно, так как новая в части предоставляемой раскладки просто не выдерживает критики. Одно расположение клавиши Print Screen чего только стоит - ощущение, что клавиатура для ярых скриншотеров, не меньше. С другой стороны, расположение PgUp/PgUp значительно более удобнее, нежели на классике.
Помимо сокращения числа рядов клавиш, сократилось и их количество. К примеру, нет вышеозначенных в заголовке клавиш. При этом официальная документация на сайте говорит о том, как эту функциональность можно получить. Скопирую табличку сюда:
Клавиша | Комбинация |
---|---|
Break | Fn+B |
SysRq | Fn+S |
Scroll Lock | Fn+K |
Pause | Fn+P |
Данные комбинации не зависят от операционки, судя по всему, генерируются самим контроллером, так что должны работать и в консоли и в иксах без каких-то телодвижений.
Собственно вопрос, а чего бы эти значения не нанести на сами клавиши?
Ииии важное замечение, как работать с SysRq в Linux:
ВАЖНО: простое нажатие Alt+Fn+S+буква ни к чему не приведут.
Всегда хочется, что бы ноутбук смог проработать в автономке подольше. Тут помимо оптимизации энергопотребления (статей посвящённых этому вопросу в интернетах уйма) иногда встаёт вопрос более ёмкой батареи. Причём актуальность автономной работы часто перекрывает некоторые неудобства, связанные с весом и габаритами.
Снова мемориз.
./geteltorito.pl -o xxx.img xxx.iso sudo dd if=xxx.img of=/dev/sdX
Опционально проверяем версию BIOS и время релиза из системы:
sudo dmidecode -s bios-version sudo dmidecode -s bios-release-date
После экспериментов с роутером Zyxel Keenetic 4G II (прошил неофициальную прошивку серии V1 (V1.11.RU.NDMS), на родной серии V2 непредсказуемо работал multicast IPTV) заметил, что WiFi стал работать как-то нестабильно (затыки с сайтами, постоянный реконнект у мессенджеров). Временами, но стабильно, стал вылазить диалог с просьбой ввести пароль от точки. Будто бы порвалась связь и не получилось подключиться с какого-то количества попыток.
Размышляя, что менял (ну кроме самой прошивки), вспомнил, что я переключил WiFi с режима 11b/g на режим 11b/g/n (раньше прошивка читалки не могла цепляться, если AP в таком режиме, после прошивку исправили, а настройки так и остались). Действительно, когда я переключил роутер обратно в режим 11b/g, то всё стало на свои места, так что не прошивка виновата. Казалось бы - решение найдено, но такой путь - не наш метод (хотя… если ничто другое не помогает, то лучше синица в руках, чем журавль в небе).