"Преобразователь последовательного устройства FTDI USB теперь отключен" с докером и рычагом
Я использую Orange Pi PC PLUS2 (emmc memory, arv7l 32bit) для управления другим устройством через последовательное соединение (RS485) с последовательным преобразователем, использующим чипы FTDI (sparkfun bob 09822).
Я использую docker-контейнеры и docker-compose для встраивания моего приложения и его простого развертывания / публикации. Он не делает ничего слишком сложного, просто непрерывно (1 раз в полсекунды) считывает значения с датчиков через rs485, сохраняет их в локальной базе данных и отправляет данные на мой сервер.
uname -a дает мне:
Linux host-test 4.14.15-sunxi #28 SMP Mon Jan 29 07:24:48 CET 2018 armv7l GNU/Linux
Если я запускаю свой SW вне докера, все работает нормально, я не испытываю сбоев через несколько недель. Проблема в том, что если я использую Docker, в течение нескольких дней я получаю следующую ошибку (dmesg):
[135431.500807] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[137213.011801] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[138650.664850] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[140559.020691] ohci-platform 1c1b400.usb: frame counter not updating; disabled
[140559.020972] ohci-platform 1c1b400.usb: HC died; cleaning up
[140559.025797] usb 6-1: USB disconnect, device number 2
[140560.099001] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[140560.099018] ftdi_sio ttyUSB0: urb failed to clear flow control
[140560.099652] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[140560.099738] ftdi_sio 6-1:1.0: device disconnected
После этого я больше не могу использовать последовательный конвертер. Он не появляется на ttyUSB0, и мне не удается заставить его работать снова. Я попытался rmmod и "ftdi_sio", и "usbserial", и снова запустил modprobe, но ничего не изменилось. Единственный способ это исправить - перезагрузить плату.
Я много экспериментирую с такими модулями, как pylibftdi, драйверы vpc и d2xx и т. Д., Но без удачи.
Я также использую тот же SW на Nanopi NEO PLUS2 (emmc, armv8 64bit, тест хоста Linux 4.14.0 #82 SMP пт 8 декабря 14:33:14 CST 2017 aarch64 aarch64 aarch64 GNU / Linux) и у меня есть идентичные проблемы... все в порядке без докера, похожая проблема возникает при использовании докера (слегка отличающийся dmesg).
Мой docker-compose не является чем-то особенным, он просто отображает последовательный порт с помощью "devices: - /dev/ttyUSB0:/dev/ttyUSB0"
Вопрос
Кто-нибудь знает, как решить эту большую проблему, которая полностью останавливает мою работу?
Extra (быстрый и грязный)
По крайней мере, как временный патч, кто-нибудь знает, как восстановить последовательную линию без перезагрузки, и хочет дать мне подсказку о комментариях?
редактировать
Для полноты, вот ошибка (dmesg) в Nanopi:
[159155.585672] ohci-platform 1c1d400.usb: frame counter not updating; disabled
[159155.593147] ohci-platform 1c1d400.usb: HC died; cleaning up
[159155.600959] usb 8-1: USB disconnect, device number 2
[159156.608522] ftdi_sio ttyUSB0: ftdi_set_termios FAILED to set databits/stopbits/parity
[159156.616559] ftdi_sio ttyUSB0: ftdi_set_termios urb failed to set baudrate
[159156.623461] ftdi_sio ttyUSB0: urb failed to clear flow control
[159156.629832] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
[159156.629907] ftdi_sio 8-1:1.0: device disconnected