Kalombyr
@Kalombyr

Wine зависает при отправке в com порт, как выяснить причину?

Добры день!
Wine 4.0-rc2, Ubuntu 18.04. Пытаюсь заставить работать стенд для СТО под Линукс (под Windows всё нормально), подключаю устройство к хосту, определяется, в dmesg показывает, что используется ftdi_sio и приконнекчено к ttyUSB0,
сделал симлинск на ~/.wine/dosdevices/com3, для самой проги установил mfc42 через winetricks, прога запустилась, порт видит, к устройству подключается, считывает с него версию и прочие базовые параметры.
В dmesg при коннекте есть ошибка

ftdi_sio unable to read latency timer: -32
ftdi_sio unable to write latency timer: -32


Проблема в следующем:
Дело в том, что на стенд отправляется разные грубо говоря "задания" из самой программы, размер этих заданий может быть как совсем мизерным (пару действия) так и до пары сотен.
Так вот, если отправить малое задание, то на стенд оно загружается и всё отрабатывает нормально, а как только размер задания превышает какую-то границу, то отправка не доходит до конца (всегда останавливается на одном и том же месте, если отправлять оно и то же задание)
В dmesg больше ничего нет, Wine то же не пишет об ошибках.

При попытке setser /dev/ttyUSB0 low_latency опять ошибка с unable to write latency timer: -32.

ftdi_sio определяет устройство как ft232bm, НО чип связи стоит VNC1L (то же от FTD, просто два в одном и мастер и слейв, как я понял из доков так что и должен определятся как ft232bm).

Думаю, что что-то то ли с настройками, или хз... (в настройках программы по поводу скорости ничего нет, она сама видимо что-то выставляет). И стенд и программа - чёрный ящик.

Подскажите, куда копать?

P.S. Пробовал разные версии Wine, Ubuntu (минимально 11 пробовал), менял компы, менял USB кабели и до кучи съездил в другой город на такой же стенд - везде одинаковое поведение.

P.P.S. Перекомпилировал модуль ядра ftdi_sio, взял прямо из репозитория - один чёрт всё то же самое.
  • Вопрос задан
  • 443 просмотра
Пригласить эксперта
Ответы на вопрос 3
@rPman
Вопрос, а в windows то работает? Потому что проблемы может создавать usb->com контроллер. Изучите вашу материнскую плату, иногда com и lpt на ней распаяны но разъемы только на внешнюю планку а не позади.

Пальцем в небо, но попробуйте в настройках соединения вашего приложения уменьшить скорость соединения и проверить что используется хотя бы стандартное.
Standard baud rates include 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000 and 256000 bits per second.

ftdi-usb-sio.sourceforge.net написано что нестандартные поддерживаются но работа не гарантируется, кстати там же можете debug включить, потрейсить что передается и прочее, вдруг мысли какие появятся.

p.s. просто смените usb порт, у меня есть mitx материнка, один usb порт которой глючит с мышкой (и ничем более, просто она ездит рывками в нем), например порты на корпусе могут быть менее 'надежными' чем на материнской плате, поменяйте провод-удленнитель между usb и контроллером, если есть и т.п.
Ответ написан
Комментировать
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
wine не является и не будет никогда являться полноценной заменой винды. Это набор костылей, которые работают более или менее хорошо, но так как винда - работать никогда не будут. А уж тем более в отношении работы с оборудованием.
Ответ написан
В теме не разбираюсь, но попробую направить на путь.
Сначала убедиться, что верно сконфигурированы ссылки на порты
https://wiki.winehq.org/Wine_User%27s_Guide#Serial...
https://forum.winehq.org/viewtopic.php?f=8&t=18385

Попробовать отлаживать ПО в Wine
https://wiki.winehq.org/Wine_Developer%27s_Guide/D...
Убедиться, что в логах нет что-то типа "not implemented".
https://stackoverflow.com/questions/940374/how-can...
https://www.downtowndougbrown.com/2013/03/getting-...

Ради интереса можно попробовать запускать в ReactOS?!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы