TP_HKEY_EV_HOTPLUG_DOCK и TP_HKEY_EV_HOTPLUG_UNDOCK не видны acpi_listen

TL;DR thinkpad_acpi стреляет TP_HKEY_EV_HOTPLUG_DOCK а также TP_HKEY_EV_HOTPLUG_UNDOCK (соответствующие сообщения появляются в dmesg), но acpi_listen а также kacpimon (а также acpid) не вижу их.

Фон:

Я работаю на ThinkPad T430 (только iGPU, без карты nVidia), с сервером Ubuntu 18.04 (на который я устанавливаю xorg и другие пакеты вручную). Я хотел запускать сценарии (для обработки стыковки и расстыковки) для определенных событий ACPI. Я использовал эту методологию: https://feeding.cloud.geek.nz/posts/hooking-into-docking-undocking-events-to-run-scripts/ с acpid. Это отлично работало в течение нескольких часов, но теперь скрипт больше не запускается, и acpi_listen больше не видит соответствующие события вообще.

Я установил и удалил несколько пакетов между тем, когда он работал, и когда это не было, но я не изменял вручную никакие конфигурации. Все эти пакеты с тех пор были удалены. Конкретные пакеты были:

  • thermald
  • TLP
  • ф-SMAPI-DKMS
  • thinkfan
  • Linux-инструменты-общий

Эти пакеты были удалены с apt remove --purge и с тех пор я несколько раз перезагружался.

Я надеюсь, что кто-то здесь мог бы подсказать, какие службы могли бы отлавливать эти события и предотвращать их захват?

Я уже пытался вручную остановить службу systemd-logind, и это не имеет никакого эффекта - соответствующие события по-прежнему не отображаются в acpi_listen или kacpimon. Эта проблема, по-видимому, влияет только на события док-станции, поскольку клавиши регулировки громкости и яркости по-прежнему генерируют события как в acpi_listen, так и в kacpimon.

Это мои наблюдения до сих пор:

  1. Я вижу такие сообщения, как
[  849.503377] thinkpad_acpi: undocked from hotplug port replicator
[  982.631694] thinkpad_acpi: docked into hotplug port replicator

в dmesg, предположительно, работает модуль acpi_thinkpad.

  1. Я вижу сообщения в acpi_listen, когда я делаю другие вещи, которые могут вызвать события. Например, нажатие на увеличение громкости производит этот вывод:
button/volumeup VOLUP 00000080 00000000 K

предположительно, acpid функционирует правильно. Вывод kacpimon соответствовал этому поведению (также отсутствовали события стыковки / отстыковки).

  1. Как уже отмечалось, я попытался остановить systemd-logind и снова протестировать предыдущий, но безрезультатно. Я недостаточно осведомлен о systemd, чтобы быть уверенным в погоде или нет, но этого было недостаточно, чтобы он не перехватывал все события acpi?

  2. Это содержание /proc/acpi/ibm/hotkey

status:         enabled
mask:           0x078c7ffb
commands:       enable, disable, reset, <mask>

Это идентично содержимому этого файла при загрузке с live CD и имеет значение в /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask, Как отмечено в (1), это говорит о том, что модуль acpi_thinkpad работает и генерирует правильные события.

  1. Загрузка с живого компакт-диска (Xubuntu 18.04, который мне пригодился) и запуск acpi_listen, а затем стыковка / расстыковка приводят к печати ожидаемых событий.

В заключение, я предположительно каким-то образом привел мою систему в состояние, в котором что-то захватывает / маскирует эти конкретные события ACPI, прежде чем acpid сможет их получить.

Кто-нибудь может подсказать, что может быть источником этой проблемы? Альтернативный способ запуска сценариев для запуска в доке / отсоединении тоже подойдет.

0 ответов

Другие вопросы по тегам