Вопрос или проблема
Я использую двойную загрузку (пока) Windows и Fedora WS 41 (6.12.6-200.fc41.x86_64). Я использую одни и те же периферийные устройства для моего личного компьютера и рабочего компьютера. Я управляю этим с помощью коммутатора USB3.0 (универсальная марка). Моя проблема заключается в том, что при выключении компьютера с Fedora все периферийные устройства (клавиатура и мышь), подключенные через коммутатор/хаб, остаются подсвеченными (RGB), даже когда остальная система полностью выключена. Решение этой проблемы, конечно, простое, если я просто отключу питание USB в состоянии S5 в BIOS. Однако я не хочу делать это, так как заряжаю гарнитуру ночью через USB, когда компьютер выключен.
Интересным в этом является то, что при выключении в Windows все RGB-светильники гаснут, как и ожидалось. Однако это не так при выключении из Linux (тестировалось с установкой Fedora, Fedora Live USB, Gparted live USB [все GNOME!!]). Я предполагаю, что дело либо в самих драйверах хаба, либо в том, как Linux обрабатывает USB-периферийные устройства для управления состоянием питания при выключении (или не обрабатывает?). Если я подключу периферийные устройства напрямую к материнской плате ПК, это работает должным образом и в Fedora, хотя это сводит на нет цель использования коммутатора.
Хаб просто называется Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
, когда я просматриваю свои USB-устройства с помощью lsusb
. Я пробовал все виды “хаков”, чтобы вручную выключить периферийные устройства, используя команды для манипуляции /sys/bus/usb/devices/<device>/power/control
и т.д. вручную, но безуспешно.
Еще одна интересная вещь заключается в том, что освещение периферийных устройств действительно правильно выключается, если я приостанавливаю работу. Так что если мы могли бы выяснить, что именно происходит при приостановке, что, по-видимому, не происходит у меня при выключении, это помогло бы.
Я пытался выполнить
echo "0" | sudo tee /sys/bus/usb/devices/1-2.2/power/autosuspend_delay_ms
echo "auto" | sudo tee /sys/bus/usb/devices/1-2.2/power/control
echo "1-2.2" | sudo tee /sys/bus/usb/drivers/usb/unbind
чтобы вручную попробовать заставить мое устройство (в моих тестах Corsair мышь) “выключиться”/погрузиться в режим ожидания, но безрезультатно. Я также пробовал аналогичные команды для самого хаба, но с тем же отсутствием результата. Как это должно работать в Linux при выключении? Я предполагаю, что во время выключения он проходит через USB-устройства и устанавливает некоторое состояние, но проходит ли он “вниз” по дереву хаба, или предполагается, что сам хаб должен каким-то образом передавать сигнал вниз по цепи? Я открыт для предположения, что сам хаб не совсем соответствует стандарту и, возможно, не передает сигналы, как должен, хотя, как я сказал, это работает в Windows, что означает, что Windows здесь как-то по-другому выполняет последовательность выключения, обходя проблему.
Я готов удовлетвориться каким-нибудь скриптом, который мог бы это делать за меня, если бы я мог найти набор команд, который можно было бы выполнить при выключении для отключения огней. Я бы тогда, вероятно, зарегистрировал скрипт как сервис для выполнения при выключении. У кого-нибудь есть идеи, что я мог бы попробовать дальше, чтобы либо решить, либо обойти мою проблему?
Ответ или решение
Конечно, давайте разберемся со сложившейся ситуацией. Вы используете USB3.0 переключатель для подключения периферийных устройств (клавиатуры и мыши) к двум системам — Windows и Fedora WS 41. Проблема заключается в том, что при выключении компьютера с Fedora, RGB-подсветка периферийных устройств, подключенных через этот переключатель, продолжает гореть, тогда как, при выключении с Windows, всё работает нормально.
Начнем с краткого резюме того, что происходит. Ваш USB3.0 хаб распознается как "Genesys Logic, Inc. Hub". Проблема исчезает, если подключать периферийные устройства напрямую к материнской плате, но это не ваш предпочтительный вариант. При этом, подсветка корректно отключается при переходе системы в спящий режим (suspend).
Анализ проблемы:
-
Поведение при выключении: При выключении компьютера, операционная система должна корректно управлять состоянием USB-устройств, включая отключение питания. В Windows, возможно, используются определенные команды или драйверы, которые вызывают это корректное поведение. Linux, судя по всему, не выполняет аналогичной процедуры для управления питанием USB через хаб.
-
Спящий режим: Успешное отключение RGB-подсветки при переходе в спящий режим говорит о том, что Linux, в этом состоянии, управляет питанием USB устройств. Это может быть полезным для поиска решения.
-
Различия в драйверах и процедурах управления: Windows и Linux могут использовать разные драйверы или подходы к управлению USB оборудованием. Это может включать в себя как драйвер самого хаба, так и способы выполнения операций в течение выключения системы.
Рекомендации и решения:
-
Установите подробные USB-логи: Активируйте детализированные логи работы USB в Linux, чтобы понять, как система взаимодействует с хабом во время выключения. Это может потребовать корректировки конфигурации ядра или использования таких утилит, как
dmesg
. -
Сравните драйверы USB: Изучите различия в драйверах USB для Windows и Linux. Возможно, можно искать обновленные версии драйверов или патчи, чтобы улучшить совместимость с вашим хабом.
-
Используйте скрипты: Поскольку вы открыты для использования скриптов, попробуйте написать скрипт, который отключает питание USB перед завершением работы Fedora. Вы можете использовать события udev для автоматизации этого процесса, либо вручную создать systemd unit, который выполняет команды на выключение.
-
Исследовать альтернативные решения: Подумайте об использовании других хабов, которые могут лучше поддерживать выключение USB в Linux, несмотря на то, что Genesys Logic известен случайными проблемами совместимости.
Таким образом, ваша цель наверняка заключается в нахождении способа, который в наилучшей степени будет адаптирован для вашей конфигурации оборудования и операционной системы, чтобы избежать необходимости постоянных манипуляций и сохранить функциональность вашей системы. С учетом комплексного подхода и тщательного анализа возможно разработать способ для автоматизации безопасного управления питанием USB-периферии при выключении системы Fedora.