Рейтинг:1

фокальная регрессия: сбой USB-подключения к APC SmartUPS после перезагрузки

флаг cn

Я управляю примерно девяноста серверами Dell, распределенными по всему миру, которые в настоящее время находятся в процессе обновления с Ubuntu 16.04LTS xenial до Ubuntu 20.04LTS focus. Блок питания каждого сервера защищен ИБП APC SmartUPS, подключенным через USB, и контролируется гайкой для корректного отключения в случае сбоя питания. Это работает довольно хорошо на серверах, на которых все еще работает xenial.

На тех, кто работает с фокусом, часто возникает проблема с USB-подключением к ИБП, которое не появляется после перезагрузки. Конкретно:

  • При запуске системы ядро ​​не обнаруживает ИБП и вместо этого пишет в /var/log/syslog:

    ядро: [2.239216] usb usb1-port4: не удалось выделить usb_device
    
  • упсмон периодически жалуется в syslog:

    upsmon[1105]: Ошибка опроса ИБП [ups@localhost] — драйвер не подключен
    
  • SmartUPS не отображается в выходных данных lsusb:

    a-schmidt@где-то:~$ lsusb
    Шина 002 Устройство 001: ID 1d6b:0003 Корневой концентратор Linux Foundation 3.0
    Шина 001 Устройство 004: ID 1604:10c0 Tascam
    Шина 001 Устройство 003: ID 1604:10c0 Tascam
    Шина 001 Устройство 002: ID 1604:10c0 Tascam
    Шина 001 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
    
  • Бег запуск sudo upsdrvctl вручную сообщает, что не может найти устройство:

    a-schmidt@somewhere:~$ запуск sudo upsdrvctl
    Сетевые инструменты ИБП - контроллер драйвера ИБП 2.7.4
    Network UPS Tools — универсальный драйвер HID 0.41 (2.7.4)
    Драйвер связи USB 0.33
    Подходящие ИБП HID не найдены
    Драйвер не запустился (состояние выхода = 1)
    

Выполнение сброса шины USB с помощью последовательности команд:

эхо '0000:00:14.0' | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind
эхо '0000:00:14.0' | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind

помогает каждый раз. ИБП обнаружен, о чем свидетельствует сообщение /var/log/syslog:

ядро: [20025.662161] usb 1-4: новое полноскоростное USB-устройство номер 2 с использованием xhci_hcd
ядро: [20025.838902] usb 1-4: найдено новое USB-устройство, idVendor = 051d, idProduct = 0003, bcdDevice = 0,01
ядро: [20025.838907] usb 1-4: Новые строки USB-устройства: Mfr=1, Product=2, SerialNumber=3
ядро: [20025.838910] usb 1-4: Продукт: Smart-UPS_1500 FW:UPS 04.1 / ID=1018
ядро: [20025.838913] usb 1-4: Производитель: American Power Conversion

Он появляется в lsusb, и запуск upsdrvctl успешно подключается:

a-schmidt@где-то:~$ lsusb
Шина 002 Устройство 001: ID 1d6b:0003 Корневой концентратор Linux Foundation 3.0
Шина 001 Устройство 002: ID 051d:0002 Источник бесперебойного питания American Power Conversion
Шина 001 Устройство 005: ID 1604:10c0 Tascam
Шина 001 Устройство 004: ID 1604:10c0 Tascam
Шина 001 Устройство 003: ID 1604:10c0 Tascam
Шина 001 Устройство 001: ID 1d6b:0002 Корневой концентратор Linux Foundation 2.0
a-schmidt@somewhere:~$ запуск sudo upsdrvctl
Сетевые инструменты ИБП - контроллер драйвера ИБП 2.7.4
Network UPS Tools — универсальный драйвер HID 0.41 (2.7.4)
Драйвер связи USB 0.33
Использование поддрайвера: APC HID 0.96

упсмон перестает жаловаться и все снова в порядке.

В чем может быть причина такого поведения и как это исправить?

Tilman avatar
флаг cn
Не могли бы авторы трех заключительных голосов поделиться тем, какое правило сообщества, по их мнению, нарушает этот вопрос?
24601 avatar
флаг in
Из того, что я вижу, близкие голоса касаются отчетов об ошибках, о которых следует сообщать [здесь] (https://bugs.launchpad.net/ubuntu/+filebug/?no-redirect)
Рейтинг:0
флаг cn

Похоже, это вызвано ошибкой ядра, о которой уже сообщалось на Launchpad здесь:

[регрессия] USB-устройство не обнаружено во время загрузки

и на kernel.org Bugzilla здесь:

Ошибка 214021 — USB-устройства не обнаруживаются во время загрузки.

Таким образом, решением было бы подождать, пока не будет доступно исправленное ядро.

Примечание. Я попытался добавить @перезагрузка crontab для запуска последовательности команд сброса шины USB после каждой перезагрузки в качестве временной меры, но это не сработало, потому что @перезагрузка происходит слишком поздно в процессе запуска, когда орех Драйвер уже запущен, поэтому я отказался от этой идеи.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.