Конвертер FTDI USB Serial Device теперь отключает проблему с докером и рукой

Я использую Orange Pi PC PLUS2 (память emmc, arv7l 32bit) для управления другим устройством через последовательное соединение (RS485) с последовательным преобразователем, который использует микросхемы FTDI (sparkfun bob 09822).

Я использую контейнеры докеров и компоновку докеров, чтобы встроить свое приложение и легко развернуть/поделиться им. Он не делает ничего слишком сложного, просто непрерывно (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 вне докера, все работает нормально, у меня не возникает сбоев по прошествии нескольких недель. Проблема в том, что если я использую докер, через пару дней я получаю следующую ошибку (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 и т. д., но безуспешно.

  • Я также использую то же ПО на Nanopi NEO PLUS2 (emmc, armv8 64bit, Linux host-test 4.14.0 #82 SMP, пятница, 8 декабря, 14:33:14 CST 2017 aarch64 aarch64 aarch64 GNU/Linux ) и у меня идентичные проблемы... все в порядке без докера, аналогичная проблема возникает при использовании докера (немного другой dmesg).

  • В моем docker-compose нет ничего особенного, он просто сопоставляет последовательный порт с «devices: - /dev/ttyUSB0:/dev/ttyUSB0»

Вопрос

Кто-нибудь знает, как решить эту большую проблему, которая полностью тормозит мою работу?

Дополнительно (быстро и грязно)

По крайней мере, просто как временный патч, кто-нибудь знает, как восстановить последовательную линию без перезагрузки, и хочет дать мне подсказку в комментариях?

Изменить

Для полноты картины вот ошибка (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

person Bertone    schedule 11.02.2018    source источник
comment
Возможно, ваш tty-порт занят. Проверьте это (команда ps -ef | grep tty будет отображаться для всех портов tty), если нужный порт занят, попробуйте убить соответствующий процесс или используйте другой порт: например, devices: - /dev/ttyUSB1:/dev/ttyUSB0. После изменений не пропустите перестроить контейнеры, например. docker-compose up -d --build   -  person Taron Saribekyan    schedule 15.02.2018
comment
К сожалению, это не так. Я уже пробовал этот подход, и действительно разочаровывает то, что сам порт отключается и его больше нельзя увидеть, пока я не выполню перезагрузку! Смена порта тоже ни на что не влияет.   -  person Bertone    schedule 17.02.2018
comment
Появляется ли устройство снова, если оно подключено/отключено на хосте с работающим докером? Не обязательно ttyUSB0 - может быть ttyUSB1... и т.д.?   -  person Maquefel    schedule 20.02.2018
comment
Любое решение этой проблемы? У меня такая же проблема с устройством ftdi на Ubuntu 18.04.4.   -  person user3862410    schedule 11.05.2020


Ответы (1)


попробуй sudo apt-get remove brltty

person 4eax4m    schedule 25.05.2020
comment
Пожалуйста, добавьте некоторые пояснения к ответу о том, что это будет делать и как это решит эту проблему. - person Jason Aller; 25.05.2020
comment
@Jason Извините, я был слишком поспешным, я в основном здесь наблюдатель и ученик, поэтому, вероятно, мне не следовало публиковать это. У меня была такая же проблема, как описано выше, с моей установкой Debian Buster. Я нашел обсуждение этой проблемы в отчете об ошибках Debian #667616, датированном 2012 годом. Похоже, что удаление пакета brltty, установленного по умолчанию в моей установке, решило проблему. Насколько я понимаю, на Orange Pi работает дистрибутив Debian, я только пытался предположить, что проблема, описанная выше, может быть решена путем удаления пакета brltty, если он является частью установки Orange Pi по умолчанию. - person 4eax4m; 29.05.2020