TL; DR thinkpad_acpi
запускает TP_HKEY_EV_HOTPLUG_DOCK
и TP_HKEY_EV_HOTPLUG_UNDOCK
(соответствующие сообщения появляются в dmesg
), но acpi_listen
и kacpimon
(и acpid
) их не видят. [1129 ]
Предыстория:
Я работаю на 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 больше не видит соответствующие события вообще.
Я установил и удалил несколько пакетов между тем, когда он работал, и когда это было не так, но я сам не изменял никакие конфигурации. Все эти пакеты с тех пор были удалены. Конкретными пакетами были:
Все эти пакеты были удалены с apt remove --purge
, и с тех пор я несколько раз перезагружался.
Я надеюсь, что кто-то из присутствующих мог бы подсказать, какие службы могли бы перехватывать эти события и предотвращать их захват с помощью acpid?
Я уже пытался вручную остановить службу systemd-logind, и это не имеет никакого эффекта - - соответствующие события все еще не отображаются в acpi_listen или kacpimon. Эта проблема, по-видимому, влияет только на события док-станции, поскольку клавиши регулировки громкости и яркости по-прежнему генерируют события как acpi_listen, так и kacpimon.
Это мои наблюдения до сих пор:
[ 849.503377] thinkpad_acpi: undocked from hotplug port replicator
[ 982.631694] thinkpad_acpi: docked into hotplug port replicator
в dmesg, так что предположительно модуль acpi_thinkpad работает.
button/volumeup VOLUP 00000080 00000000 K
, по-видимому, acpid работает правильно. Вывод kacpimon соответствовал этому поведению (также отсутствовали события стыковки / отстыковки).
Как уже отмечалось, я попытался остановить systemd-logind и снова протестировать предыдущий, но безрезультатно. Я недостаточно осведомлен о systemd, чтобы быть уверенным в погоде или нет, но этого было недостаточно, чтобы помешать ему перехватывать все события acpi?
Это содержание /proc/acpi/ibm/hotkey
status: enabled
mask: 0x078c7ffb
commands: enable, disable, reset,
Это идентично содержимому этого файла при загрузке с live CD и имеет значение в /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask
. Как отмечено в (1), это говорит о том, что модуль acpi_thinkpad работает и генерирует правильные события.
В заключение, я предположительно каким-то образом довел мою систему до состояния, когда что-то захватывает / маскирует эти конкретные события ACPI, прежде чем acpid сможет их получить.
1143 Кто-нибудь может подсказать, что может быть источником этой проблемы? Альтернативный способ запуска сценариев для запуска в доке / отсоединении тоже подойдет.