Конфигурация HandleLidSwitch=ignore не очень хорошо работает на MacBook Pro 2012.

Вопрос или проблема

В локальной сети есть два ноутбука HP и Toshiba, на которых установлена Ubuntu Desktop 24.04. Поскольку к ним имею доступ только я через Remmina, была применена следующая конфигурация, чтобы избежать ненужного использования экрана каждого ноутбука:

  • Откройте файл /etc/systemd/logind.conf
  • Измените строку с #HandleLidSwitch=suspend на HandleLidSwitch=ignore
  • Выполните команду sudo systemctl restart systemd-logind

Таким образом, при закрытии крышки ноутбука происходит 2 вещи:

  • Экран становится черным
  • Ноутбук продолжает работать в обычном режиме

Помните, что к каждому ноутбуку осуществляется доступ через Remmina.

Замечание: если крышка ноутбука открыта – хотя бы под углом более 05 градусов – экран показывает, что выполняется. Другими словами, экран больше не черный. Более того, если крышка ноутбука открыта под углом менее 5 градусов, экран остается черным.

На MacBook Pro 2012 была установлена Debian 12 Desktop на новом SSD. Теперь, применяя полностью все те же процедуры, указанные выше: при закрытии крышки ноутбука экран продолжает работать – он не становится черным – я подтвердил это, открыв крышку ноутбука под небольшим углом.

Как это исправить?

На всякий случай, когда крышка ноутбука закрыта полностью, свет “apple” горит белым

Кроме того, когда мне нужно задействовать режим сна в локальной сети для двух указанных ноутбуков HP и Toshiba, через Терминал для каждого выполняется следующая команда:
Код: Выделить все

sleep 60 && systemctl suspend

Как и ожидалось, экран становится черным и режим ожидания активируется. Для возобновления нажимается кнопка “PowerOn” самого ноутбука, и если память не подводит, можно нажать либо клавишу Esc, либо Intro. В любом случае снова появляется экран входа, и можно продолжить работу.

Теперь, на том же MacBook Pro 2012 при выполнении той же команды экран становится черным, как и ожидалось, но менее чем через 5 секунд всегда и автоматически появляется экран входа. Как это исправить?

Примечание команда sleep 60 используется только для того, чтобы дать время клиенту Remmina закрыть удаленное соединение

На всякий случай в Debian сделано то же самое, что было сделано в Ubuntu для двух ноутбуков

Настройки -> Энергопотребление -> Отключение экрана -> На "Никогда"
Настройки -> Конфиденциальность и безопасность -> Блокировка экрана -> Задержка отключения экрана -> На "Никогда"

Таким образом для HP и Toshiba:

  • Пока крышка закрыта, ноутбук продолжает работать благодаря HandleLidSwitch=ignore. Важно отметить: второстепенным следствием является то, что монитор ноутбука черный, это не было настроено, но полезно
  • Никогда не происходит действия “ожидания” из-за какого-либо времени бездействия

Таким образом, через Remmina можно работать с каждым ноутбуком

Наконец, когда мне нужно перейти в режим сна, команда sleep 60 && systemctl suspend выполняется для каждого ноутбука, и они переходят в “сон” до тех пор, пока я не открою крышку. Так появляется экран входа, и после входа крышка снова закрывается, и можно работать с этими ноутбуками в локальной сети

Для обоих ноутбуков все работает хорошо, но на MacBook Pro не работает так же, как на других ноутбуках

Что делать?

Ответ или решение

Когда дело касается настройки различных ноутбуков с разными операционными системами для определенных рабочих сценариев, могут возникать неожиданные проблемы. В данном случае мы сталкиваемся с вопросом, почему настройка HandleLidSwitch=ignore в файле /etc/systemd/logind.conf работает отлично на ноутбуках HP и Toshiba с установленной Ubuntu Desktop 24.04, но не дает того же результата на MacBook Pro 2012, на который установлена Debian 12 Desktop.

Вначале стоит рассмотреть теоретическую часть относительно функции HandleLidSwitch. В большинстве дистрибутивов Linux, когда крышка ноутбука закрывается, система интерпретирует это как сигнал для определенного действия, например, перехода в режим ожидания (suspend) или гибернации. Изменяя параметр HandleLidSwitch=ignore, мы указываем системе, что она должна игнорировать это событие и не выполнять никаких действий. В результате, экран может выключиться, но система продолжит работу, что позволяет при работе через удаленные подключения, такие как Remmina, обойти ограничение, связанное с крышкой.

Теперь, рассмотрим конкретные примеры. На ноутбуках HP и Toshiba, после изменения конфигурации и перезапуска службы systemd-logind, при закрытии крышки ноутбука экран становится черным, но работа системы продолжается. Возможность использовать эти ноутбуки через Remmina остается. Наличие черного экрана при закрытой крышке является побочным эффектом отключения дисплея, что удобно и экономит энергию.

Однако, на MacBook Pro 2012 с Debian 12 Desktop описанный метод не функционирует должным образом. Проблемой является то, что после закрытия крышки экран не выключается и остается активным.

Анализ проблемы

  1. Различия в аппаратном обеспечении: MacBook Pro 2012 имеет специфическую аппаратную поддержку для дисплеев, включая датчик крышки, который может отличаться в реализации от стандартных ноутбуков. Возможно, что драйверы Linux для MacBook не полностью поддерживают такие функции или нуждаются в дополнительной настройке.

  2. Особенности системы управления питанием в Debian: Debian может иметь конфигурации по умолчанию для MacBook, которые игнорируют изменения в /etc/systemd/logind.conf, или в их реализации есть дополнительные слои управления питанием.

  3. Драйверы и ядро: Возможно, проблема кроется в используемых драйверах дисплея или самом ядре. Комбинация hardware-specific драйверов в Ubuntu не совпадает с теми, что используются в Debian.

Применение и решение

  1. Проверка драйверов дисплея и управления питанием:

    • Убедитесь, что на MacBook установлены все необходимые обновления и драйверы, совместимые с оборудованием Apple.
    • Используйте команды lspci или lsusb для проверки, распознается ли дисплей корректно системой.
  2. Дополнительные конфигурации:

    • Проверьте конфигурацию службы systemd-logind и убедитесь, что настройки не переопределяются какими-либо другими конфигурационными файлами или политиками.
    • Убедитесь, что исключены конфликты конфигураций через графические утилиты управления питанием в Debian.
  3. Редактирование других конфигурационных файлов:

    • В некоторых случаях, может потребоваться дополнительно настроить файл /etc/acpi/events/lid для правильной реакции системы на закрытие крышки.
    • Если проблемы сохраняются, можно попытаться напрямую манипулировать ACPI-событиями для отключения дисплея через скрипты.
  4. Сообщество и поддержка:

    • Изучите форумы пользователей Debian и сообщество вокруг установки этой ОС на MacBook. Такие ресурсы могут содержать специфические решения или патчи.
  5. Диагностика ядра Linux:

    • Изучите логи системы с помощью journalctl для выявления возможных сообщений об ошибках при закрытии крышки.
    • При необходимости обновите ядро до последней тестируемой версии, так как могут быть исправлены известные баги, влияющие на работу с MacBook.

Таким образом, решение проблемы требует тщательного изучения как программной конфигурации, так и аппаратной совместимости, чтобы добиться такого же эффекта, как на других ноутбуках. Комплексный подход позволит определить и устранить причины сбоя в поведении системы при закрытии крышки на MacBook Pro.

Оцените материал
Добавить комментарий

Капча загружается...