Почему "Режим полета" продолжает переключаться на моем ноутбуке HP в Ubuntu 18.04?
У меня ноутбук HP Specter x360 с откидным верхом, и я использую Ubuntu 18.04. Каждый раз, когда я поворачиваю экран вбок или в режиме планшета и обратно, активируется "Режим полета". Фактически, когда я загружаюсь и регистрируюсь, я должен вручную отключить "Режим полета" и снова включить Wi-Fi. Я не хочу отключать плагин gnome rfkill следующим образом: "gsettings set org.gnome.settings-daemon.plugins.rfkill active false", потому что тогда я больше не могу использовать Bluetooth. Кроме того, по какой-то богом забытой причине, даже когда я действительно отключаю плагин, оболочка gnome в любом случае включает "Режим полета", что означает, что я должен возвращать Wi-Fi обратно КАЖДЫЙ раз, когда я вхожу в систему. Это очень раздражает, я действительно понравилось, где 18.04 собирался, но это серьезно нарушает весь опыт оболочки гнома.
4 ответа
В оболочке gnome "Режим полета" автоматически активируется при загрузке для многих ноутбуков HP, когда экран наклонен в сторону или когда крышка открыта / закрыта. Ниже приведено исправление для ноутбуков HP, работающих под управлением Linux и использующих оболочку gnome. Код ключа 240 определен как KEY_UNKNOWN (тип неактивного ключа) в /usr/include/linux/input-event-codes.h. Также ваш системный журнал больше не будет предлагать вам определять коды HP e057 и e058, которые могут быть очень раздражающими.
Во-первых, это исправление с использованием классического сценария инициализации SysV, помещенного в каталог init.d и имеющего символическую ссылку соответственно (в основном, мы хотим, чтобы он выполнялся независимо от уровня запуска для чего-либо, кроме halt (0) или reboot (6)). Второй - это сервис systemd, который гораздо более надежен и, возможно, присутствует в последних изменениях systemd, который также работает на Fedora 28 и других дистрибутивных платформах. В частности, на Fedora вы найдете почти полное отсутствие скриптов в каталоге /etc/init.d вместе с небольшим README, подробно описывающим переход от SysV к systemd. Первый метод будет работать, но второй метод гораздо более "дружественен к будущему", особенно с учетом того, куда движется Ubuntu, и также будет работать немного менее... раздражающим образом. Сценарии инициализации Systemd на самом деле довольно удобны, полностью реализованы и часто используются в Ubuntu 18.04.
Старый метод SysV:
$ sudo sh -c 'printf "#! / bin / sh \ n / usr / bin / setkeycodes e057 240 e058 240 \ n"> /etc/init.d/hp-keycodes' $ sudo chmod + x /etc/init.d/hp-keycodes $ sudo ln -s /etc/init.d/hp-keycodes /etc/rc1.d/K01hp-keycodes $ sudo ln -s /etc/init.d/hp-keycodes /etc/rc2.d/S01hp-keycodes $ sudo ln -s /etc/init.d/hp-keycodes /etc/rc3.d/S01hp-keycodes $ sudo ln -s /etc/init.d/hp-keycodes /etc/rc4.d/S01hp-keycodes $ sudo ln -s /etc/init.d/hp-keycodes /etc/rc5.d/S01hp-keycodes $ sudo reboot
Новый рекомендуемый метод Systemd:
$ sudo nano /etc/systemd/system/hp-keycodes.service
Вставьте следующие строки или введите их в файл:
[Единица измерения] Описание = исправление кодов установки HP [Обслуживание] Тип = OneShot Restart= нет RemainAfterExit= нет ExecStart = / usr / bin / setkeycodes e057 240 e058 240 [Установить] WantedBy=rescue.target WantedBy=multi-user.target WantedBy=graphical.target
Сохраните и подтвердите имя файла с помощью ctrl-x, y.
$ sudo systemctl daemon-reload $ sudo systemctl enable hp-keycodes.service $ sudo reboot
И это все, больше не надоедливые странные вещи, когда вы наклоняете экран или закрываете / открываете крышку ноутбука!
У меня та же проблема с 17.10 на моем HP Spectre x360. На самом деле, я сталкиваюсь с проблемами Николаса и Пьера-Антуана:
- Режим полета активируется каждый раз, когда я вхожу или переключаюсь в режим планшета;
- Fn + F12 (кнопка переключения режима полета) больше не работает.
Чтобы быстро переключить Wi-Fi, я сделал небольшой скрипт:
## Content of ~/scripts/wifi_toggle : ##
#!/bin/bash
str=`export LANGUAGE=en_GB ; nmcli r wifi`
[ "$str" == "enabled" ] && nmcli r wifi off
[ "$str" == "disabled" ] && nmcli r wifi on
Я редко использую Bluetooth, так что он работает только с Wi-Fi, но вы можете легко изменить его для работы с Bluetooth и Wi-Fi.
Все это явный регресс от 17.04, где все работало без нареканий. Я попробовал 18.04 бета, но это та же самая ситуация, что и с 17.10.
Николас, Пьер-Антуан, я заполняю, как заполнение двух отчетов об ошибках по этим вопросам (по отчетам за выпуск). Как вы думаете, вы могли бы иметь комментарий в этих отчетах всякий раз, когда я закончу писать? Это поможет подтвердить состояние ошибки (затронуто более одного пользователя).
ура
Огромное спасибо!
Я могу подтвердить, что Nicholas Stommel также работает на моем Huawei Matebook D15 (не конвертируемом), который, похоже, потерял все подключения после приостановки.
После проверки файла
/usr/include/linux/input-event-codes.h
Я мог убедиться, что в моей системе ключ 240 также был помечен как KEY_UNKNOWN, поэтому я решил попробовать его решение " Systemd "... и оно сработало! Очевидно, я изменил имя нового файла, чтобы оно отражало мою систему («huawei-keycodes.service»), а также изменил описание службы в файле, но все остальное было просто заданием копирования/вставки. Еще раз спасибо, и я надеюсь, что мой опыт поможет другим людям с похожими проблемами, которые не обязательно работают на машинах HP.
Редактировать : только что понял, что это работает только тогда, когда я активно приостанавливаю работу компьютера, оно не работает, когда компьютер автоматически приостанавливается при закрытии крышки ... Мне нужно еще провести некоторые исследования ...
В продолжение ответа Николаса Стоммела udev также может устанавливать коды клавиш из hwdb для соответствующего оборудования. Фактически, системный udev hwdb является виновником этой неисправности в первую очередь. У меня есть следующий фрагмент в
# systemd's udev hwdb breaks our keyboard tablet mode switcheroo thing. Fix it.
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPSpectrex360Convertible*:pvr*
KEYBOARD_KEY_ab=unknown # emitted by brightness keys
KEYBOARD_KEY_d7=f22 # normal mode - turn touchpad on
KEYBOARD_KEY_d8=f23 # tablet mode - turn touchpad off
Установка этих клавиш на F22 и F23 заставит GNOME отображать значок включения/выключения сенсорной панели при переключении из/в режим планшета.
Я не знаю, является ли селектор здесь слишком ограничивающим, но он работает на моем ноутбуке модели 2015 года. Соответствующее название продукта в селекторе можно найти, запустив