
Недавно я приобрел Samsung NP900X3N и пытаюсь заставить работать подсветку (с Linux Mint 18.1 и Kernel 4.10 на UEFI). Я много читал об этом и знаю, что на эту тему существует много страниц, но все они старые (3+ года), и я не смог заставить работать ни одну из них (возможно, потому что эта версия ноутбука относительно новая).
Вот некоторые вещи, которые я попробовал:
- Я загрузил и установил
samsung-tools
пакет, но при его запуске возникает ошибка примерно через 2 минуты отсутствия вывода. - Я пытался найти
samsung::kbd_backlight/brightness
файл поэтот простой ответ, но, по-видимому, его нет (я смог найти толькоphy0-led/brightness
, который не знаю, что делает, но уже установлен в 1). - Я пытался следоватьэто руководствона очень ручном подходе, но, честно говоря, я не смог продвинуться слишком далеко (вероятно, из-за недостатка знаний с моей стороны, но я думаю, что должен быть менее запутанный подход)
- Проверка скан-кода ключа путем проверки журнала ядра, как предложеноэтот ответ.
Это последнее, что было ближе всего, и то, что я хотел бы изучить подробнее. При нажатии fn+f9
(переключить подсветку клавиатуры) я получаю скан-код, e02c
назначенный этой клавише. Так что я сделал
sudo setkeycodes e02c 230
как предложеноответ. Итак, когда я нажимаю эту клавишу, я получаю уведомление, в котором отображается символ подсветки клавиатуры, что, по моему мнению, является хорошим знаком, но ничего не происходит.
Как указано в вопросе, значение кода клавиши 230 предназначено для увеличения kbdlight, но на моем ноутбуке его нет: у него есть только клавиша переключения kbdlight. Поэтому я думаю, что это может быть проблемой, но я не могу найти код клавиши «переключения» (что может быть связано с моей неспособностью /usr/include/linux/input.h
полностью понять).
Я попытался xmodmap -pke | less
найти «включение подсветки клавиатуры», которая указана как код клавиши 236, но, судя по всему, цифры в этом списке на самом деле не работают.
Какие-либо предложения?
РЕДАКТИРОВАТЬ
Вывод ll /sys/class/backlight/
:
lrwxrwxrwx 1 root root 0 Apr 28 07:16 intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/
Я уже пробовал менять значение /sys/class/backlight/brightness
, но это регулирует только яркость дисплея.
Вывод ll /sys/class/leds/
:
lrwxrwxrwx 1 root root 0 Apr 28 07:19 input3::capslock -> ../../devices/platform/i8042/serio0/input/input3/input3::capslock/
lrwxrwxrwx 1 root root 0 Apr 28 07:19 input3::numlock -> ../../devices/platform/i8042/serio0/input/input3/input3::numlock/
lrwxrwxrwx 1 root root 0 Apr 28 07:19 input3::scrolllock -> ../../devices/platform/i8042/serio0/input/input3/input3::scrolllock/
lrwxrwxrwx 1 root root 0 Apr 28 07:19 phy0-led -> ../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/leds/phy0-led/
Capslock — это то, что он говорит (я проверял). Numlock, похоже, ничего не делает, так как я изменил значение с 0 на максимальное, и ничего не произошло (на моей клавиатуре нет Numlock. Scrolllock тоже, похоже, ничего не делает. Я тоже не знаю, что phy0-led
. Он уже установлен на 1, и ввод 0, похоже, ничего не делает.
ИЗМЕНИТЬ2
Выполнение этого действия modprobe samsung-laptop
приводит к следующей ошибке
modprobe: ERROR: could not insert 'samsung_laptop': No such device
что, по-видимому, являетсястарая ошибка.
решение1
Возможность управления подсветкой с помощью специальных клавиш на клавиатуре состоит из двух частей:
- понимать события, которые происходят при нажатии клавиш
- на самом деле изменить интенсивность подсветки
И вам нужна программа, например, оконный менеджер, которая реагирует на события, а затем меняет интенсивность.
С первой частью у вас все в порядке, вы получаете событие, а необходимые переводы мы можем сделать позже. Что касается второй части, вам нужен какой-то драйвер, который умеет управлять интенсивностью подсветки, а затем какой-то интерфейс к этому драйверу.
Очень часто они встречаются в /sys
иерархии, поэтому попробуйте
ll /sys/class/backlight
ll /sys/class/led
и отредактируйте свой вопрос с выводом. Эти каталоги должны содержать ссылки на другие каталоги с файлом с именем brightness
и файлом с именем max_brightness
. Если вы не можете понять из имени, что это, посмотрите на содержимое max_brightness
, и как root, попробуйте записать числа от 0 до максимального значения в каждый из этих файлов, например
echo 0 > /sys/class/led/phy0-led/brightness
и посмотрите, сможете ли вы определить, что именно он контролирует.
Редактировать:
Хорошо, похоже, что нет элементов управления подсветкой клавиатуры, и вам нужен определенный драйвер. phy0-led
скорее всего, это разъем светодиода WLAN, который может быть или не быть подключен к чему-либо. Вы можете проверить lspci
и поискать устройство на 00:1c.0
.
Элементы samsung::kbd_backlight
управления предоставляютсяasus-wmiдрайвер для ноутбуков ASUS с использованием интерфейса WMI.являетсячто-то похожее для Samsung, а именноsamsung-ноутбук, он обеспечивает leds/samsung::kbd_backlight
, а также есть debugfs
интерфейс для более прямого доступа.
Не знаю, сработает ли это на вашей модели. Попробуйте
modprobe samsung-laptop
как root, проверьте, lsmod
загружен ли он, посмотрите, dmesg
нет ли каких-либо проблем или других сообщений, и посмотрите, появится ли что-нибудь.