Я управляю примерно девяносто серверами Dell, распределенными по всему миру, в настоящее время в процессе обновления с Ubuntu 16.04LTS xenial до Ubuntu 20.04LTS focal. Источник питания каждого сервера защищен APC SmartUPS, подключенным через USB, и контролируется гайкой, чтобы полностью отключиться в случае сбоя питания. Это довольно хорошо работает на серверах, на которых все еще работает xenial.
На тех, кто работает focal, часто возникает проблема с USB-подключением к ИБП, которое не запускается после перезагрузки. В частности:
Во время запуска системы ядро не обнаруживает ИБП и вместо этого сообщает в / var / log / syslog:
kernel: [2.239216] usb usb1-port4: не удалось выделить usb_device
upsmon
периодически жалуется в системный журнал:
upsmon [1105]: Не удалось опросить UPS [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 start
вручную сообщает, что не может найти устройство:
a-schmidt @ где-то: ~ $ sudo upsdrvctl start
Network UPS Tools - контроллер драйвера ИБП 2.7.4
Network UPS Tools - Универсальный драйвер HID 0.41 (2.7.4)
Драйвер связи USB 0.33
Не найдено ни одного подходящего ИБП HID
Драйвер не запустился (статус выхода = 1)
Выполнение сброса шины USB с помощью последовательности команд:
echo '0000:00:14.0' | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind
echo '0000:00:14.0' | sudo tee /sys/bus/pci/drivers/xhci_hcd/bind
помогает каждый раз. ИБП обнаружен, о чем свидетельствует сообщение / var / log / syslog:
kernel: [20025.662161] usb 1-4: new full-speed USB device number 2 using xhci_hcd
kernel: [20025.838902] usb 1-4: New USB device found, idVendor=051d, idProduct=0003, bcdDevice= 0.01
kernel: [20025.838907] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
kernel: [20025.838910] usb 1-4: Product: Smart-UPS_1500 FW:UPS 04.1 / ID=1018
kernel: [20025.838913] usb 1-4: Manufacturer: American Power Conversion
Он отображается в lsusb
, а upsdrvctl start
успешно подключается:
a-schmidt@somewhere:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 001 Device 005: ID 1604:10c0 Tascam
Bus 001 Device 004: ID 1604:10c0 Tascam
Bus 001 Device 003: ID 1604:10c0 Tascam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
a-schmidt@somewhere:~$ sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: APC HID 0.96
upsmon
] перестает жаловаться, и снова все в порядке.
В чем может быть причина такого поведения и как это исправить?