LPT-порт в wine-приложении (не работает)

Вопросы настройки, запуск любых Windows-программ, кроме игр

Модератор: Модераторы разделов

FlySnake
Сообщения: 992
ОС: openSUSE

LPT-порт в wine-приложении

Сообщение FlySnake »

Имеется виндовая софтина и самопальный девайс, с которым она работает через LPT порт. В винде всё работает как надо, под wine эта софтина запускается, видит порт, но ничего в него не выдает и соответственно девайс не работает. Ссылка на /dev/lp0 в ~/.wine/dosdevices есть, chmod 777 /dev/lp0 сделано (после этих манипуляций софтина увидела порт). Что ещё можно попробовать? И вопрос №2: как проверить сам порт? Нужно отправить туда несколько бит и посмотреть их осциллографом, почитал форум - слишком сложно т.к. ничего кроме ассемблера для микроконтроллеров я не знаю в програмировании :) Какой-нибудь одной командой можно отправить на выводы D0-D7 порта какое-нибудь значение типо FFh?
openSUSE 10.3
wine 1.1.2
ICProg 1.06B + AN589 програматор
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

читать документацию иногда помогает, правда :)
http://www.etersoft.ru/content/view/56/156/#wine3
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

Читать посты - тоже, иногда, правда :)
chmod 777 для lp0 сделано и ссылка нужная. на всякий случай своего юзера в группу lp добавил, но разумеется это не помогло. от рута тоже не работает
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

что в ~/.wine/dosdevices ?
под рутом wine работать не будет полностью (только ощущение работы)
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

Код: Выделить всё

ls -l ~/.wine/dosdevices/ | grep lp
lrwxrwxrwx 1 root     root         8 Ноя 24 11:25 lp0 -> /dev/lp0

Код: Выделить всё

ls -l /dev/lp0
crwxrwxrwx 1 flysnake lp 6, 0 Сен 22  2007 /dev/lp0
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

угу, я так и думал :) читаем документацию...
Спасибо сказали:
Hoblin
Модератор
Сообщения: 1442
Статус: Etersoft team
ОС: ALT Linux

Re: LPT-порт в wine-приложении

Сообщение Hoblin »

FlySnake
lpt1 -> /dev/lp0
?
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

опаньки, недоглядел, спасибо :)
поправил ссылку

Код: Выделить всё

ls -l ~/.wine/dosdevices/ | grep lp
lrwxrwxrwx 1 flysnake beagleindex  8 Ноя 26 15:46 LPT1 -> /dev/lp0

но всё равно не работает
или опять я косячу что-то?
работает же оно у людей как-то http://appdb.winehq.org/appview.php?iAppId=2239 , правда там через COM-порт
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

ещё раз читаем :)
Спасибо сказали:
Hoblin
Модератор
Сообщения: 1442
Статус: Etersoft team
ОС: ALT Linux

Re: LPT-порт в wine-приложении

Сообщение Hoblin »

yaleks писал(а):
26.11.2008 17:19
ещё раз читаем

Очень умно. В следующий раз либо молчите, либо объясняйте. Остальное считается флудом и оценивается соответственно.
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

Hoblin писал(а):
26.11.2008 17:29
yaleks писал(а):
26.11.2008 17:19
ещё раз читаем

Очень умно. В следующий раз либо молчите, либо объясняйте. Остальное считается флудом и оценивается соответственно.

регистр - LPT1 и lpt1...

Я так понимаю топикстартер документацию не читал и не собирается.
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

yaleks, я ценю ваше желание помочь. действительно спасибо.
НО документацию я читал, и то на что вы ссылку дали, и в гугле был и по форуму поиском лазил. поверьте, я бы не стал задавать вопрос, если бы сам мог найти на него ответ.
Кусочек доки по вашей ссылке
Последовательные и параллельные порты (COM и LPT)

Для отображения портов в ~/.wine/dosdevices создаются ссылки на соответствующие устройства в хост-системе (см. предыдущий пример про создание логического диска). Обычно это выполняется автоматически при первой настройке WINE. Например, в Linux для COM1 будет создана ссылка на /dev/ttyS0, для LPT1- ссылка на /dev/lp0.

Если при использовании COM- или LPT-портов в WINE (например в команде copy файл LPT1) выдаётся сообщение Access Denied, скорее всего у пользователя недостаточно прав для прямого обращения к порту. Проверьте права командой ls -l /dev/lp0 и при необходимости внесите пользователя в соответствующую группу (обычно uucp для последовательных портов и lp для параллельных).

Тут нет явного указания регистра LPT1 или lpt1, там вообще не написано, каким должно быть имя ссылки и я нигде не находил этого. пробовал как сначала lp0 и lpt1 в разных регистрах - результата это не дало. Софтина увидела порт сразу после добавления ссылки и правки прав доступа к /dev/lp0 (или добавления себя в группу lp - результат одинаковый), и видит его с любым именем ссылки в ~/.wine/dosdevices. При считывании/записи в/из порта софтина не выдаёт никаких ошибок. В winecfg установлена версия винды - 98, т.к. для NT этой софтине нужен драйвер, который работает в винде, но вываливается с ошибкой в вайне.
Что я делаю не правильно? Если вы заметили это - пожалуйста скажите или не говорите, но ухмылятся над "тупым" не нужно.
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

Код: Выделить всё

WINEDEBUG=comm wine MegaProga.exe

и смотреть что пишут. Лучше конечно достать LPT принтер (тот что под DOS печатает) и попробовать на него что-нибудь отправить.
Спасибо сказали:
stampoon
Сообщения: 702
ОС: Mandrake/Mandriva Cooker

Re: LPT-порт в wine-приложении

Сообщение stampoon »

yaleks писал(а):
27.11.2008 11:48
WINEDEBUG=comm wine MegaProga.exe

только WINEDEBUG=+comm wine MegaProga.exe
Интеллект — это способность избегать выполнения работы, но так, чтобы она при этом была сделана.
Спасибо сказали:
Hoblin
Модератор
Сообщения: 1442
Статус: Etersoft team
ОС: ALT Linux

Re: LPT-порт в wine-приложении

Сообщение Hoblin »

stampoon писал(а):
27.11.2008 14:14
yaleks писал(а):
27.11.2008 11:48
WINEDEBUG=comm wine MegaProga.exe

только WINEDEBUG=+comm wine MegaProga.exe

Без разницы в данном случае.
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

Запускается без каких либо сообщений. Закускаю проверку железяки (функция в проге такая), подключеной к порту:

Код:

WINEDEBUG=comm wine ~/bin/pics/icprog.exe trace:comm:GetCommState handle 0x58, ptr 0x6b90a8 trace:comm:io_control 0x58 IOCTL_SERIAL_GET_BAUD_RATE (nil) 0 0x185fb48 4 0x185fae4 err:comm:get_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:dump_dcb bytesize=8 baudrate=0 fParity=0 Parity=0 stopbits=2 trace:comm:dump_dcb ~IXON ~IXOFF trace:comm:dump_dcb fOutxCtsFlow=0 fRtsControl=0 trace:comm:dump_dcb fOutxDsrFlow=0 fDtrControl=0 trace:comm:dump_dcb ~CRTSCTS trace:comm:io_control 0x58 IOCTL_SERIAL_SET_BAUD_RATE 0x185fb4c 4 (nil) 0 0x185faf4 err:comm:set_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:SetCommTimeouts (0x58, 0x185fb84) trace:comm:io_control 0x58 IOCTL_SERIAL_SET_TIMEOUTS 0x185fb40 20 (nil) 0 0x185faf4

И это при считывании данных из порта через железяку:

Код:

WINEDEBUG=comm wine ~/bin/pics/icprog.exe trace:comm:GetCommState handle 0x60, ptr 0x7df629cc trace:comm:io_control 0x60 IOCTL_SERIAL_GET_BAUD_RATE (nil) 0 0x7df62980 4 0x7df6291c err:comm:get_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:dump_dcb bytesize=8 baudrate=115200 fParity=0 Parity=0 stopbits=2 trace:comm:dump_dcb ~IXON ~IXOFF trace:comm:dump_dcb fOutxCtsFlow=0 fRtsControl=0 trace:comm:dump_dcb fOutxDsrFlow=0 fDtrControl=0 trace:comm:dump_dcb ~CRTSCTS trace:comm:io_control 0x60 IOCTL_SERIAL_SET_BAUD_RATE 0x7df62984 4 (nil) 0 0x7df6292c err:comm:set_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:GetCommState handle 0x64, ptr 0x7b7fe9cc trace:comm:io_control 0x64 IOCTL_SERIAL_GET_BAUD_RATE (nil) 0 0x7b7fe980 4 0x7b7fe91c err:comm:get_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:dump_dcb bytesize=8 baudrate=115200 fParity=0 Parity=0 stopbits=2 trace:comm:dump_dcb ~IXON ~IXOFF trace:comm:dump_dcb fOutxCtsFlow=0 fRtsControl=0 trace:comm:dump_dcb fOutxDsrFlow=0 fDtrControl=0 trace:comm:dump_dcb ~CRTSCTS trace:comm:io_control 0x64 IOCTL_SERIAL_SET_BAUD_RATE 0x7b7fe984 4 (nil) 0 0x7b7fe92c err:comm:set_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:GetCommState handle 0x68, ptr 0x7b7fe9cc trace:comm:io_control 0x68 IOCTL_SERIAL_GET_BAUD_RATE (nil) 0 0x7b7fe980 4 0x7b7fe91c err:comm:get_baud_rate tcgetattr error 'Недопустимый аргумент' trace:comm:dump_dcb bytesize=8 baudrate=115200 fParity=0 Parity=0 stopbits=2 trace:comm:dump_dcb ~IXON ~IXOFF trace:comm:dump_dcb fOutxCtsFlow=0 fRtsControl=0 trace:comm:dump_dcb fOutxDsrFlow=0 fDtrControl=0 trace:comm:dump_dcb ~CRTSCTS trace:comm:io_control 0x68 IOCTL_SERIAL_SET_BAUD_RATE 0x7b7fe984 4 (nil) 0 0x7b7fe92c err:comm:set_baud_rate tcgetattr error 'Недопустимый аргумент'

Код: Выделить всё

WINEDEBUG=+comm wine MegaProga.exe
результат такой же
Спасибо сказали:
stampoon
Сообщения: 702
ОС: Mandrake/Mandriva Cooker

Re: LPT-порт в wine-приложении

Сообщение stampoon »

>>err:comm:set_baud_rate tcgetattr error 'Недопустимый аргумент'
мда... гугль молчит как партизан....
Интеллект — это способность избегать выполнения работы, но так, чтобы она при этом была сделана.
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

видимо LPT порты вышли из обращения и что-то поломали.
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

У этого LPT же было несколько режимов работы - SPP, ECP, EPP... надо проверить что стоит в bios, поменять и посмотреть что линуксовое ядро может само конфигурить.
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

В бивисе стоял SPP. Попробовал остальные:
EPP - результат такой же
ECP - при проверке железки или попытки считывания на все линии данных порта (D0-D7) выводятся лог."0" и так и остаются там до перезагрузки. Тест железки заключается в установке/сбросе состояний на 5 линиях, т.е. галочками в проге можно побитно выставлять уровни "0" или "1", и отслеживать их осциллографом (а в моем случае ещё специально светодиоды стоят для индикации состояний на 3-х линиях)
ECP+EPP - тоже самое, что и в предыдущем случае.
Вывод WINEDEBUG=comm wine MegaProga.exe идентичен с предыдущеми случаями.
Поиск доки по конфигу LPT-порта не осилил. Ядро пересобирать? С какими опциями? Куда пойти за манами на эту тему?
Спасибо сказали:
Galaxy Master
Сообщения: 142
ОС: Debian GNU/Linux

Re: LPT-порт в wine-приложении

Сообщение Galaxy Master »

Друзья, я пишу софт под линух, который управляет железом (это большой телескоп) через LPT. Так вот в своих программах, я обращаюсь не к /dev/lp0 , а к /dev/parport0 т.к. именно этот нод создается юзерспейс-драйвером параллельного порта. И мое железо успешно работает. В начале исследования вопроса, я так же тыкался в lp0 ...и безрезультатно. (возможно, что lp0 - это некая затычка адаптированная для принтеров)

Возможно эта инфа чем-то вам поможет.
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

Galaxy Master, спасибо за хороший совет! Теперь осталось дождатся понедельника чтобы придти на работу и проверить :)
Спасибо сказали:
voth
Сообщения: 6
ОС: Debian

Re: LPT-порт в wine-приложении

Сообщение voth »

Были проблемы...похожие...если стоит cups, то есть и модуль который держит /dev/lp0 либо /dev/parport...
лечилось - rmmod lp, и дальше все путем...это если разово что-то сделать надо...
а на постоянку, просто отключить загрузку этого модуля...
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

/dev/parport0 отсутствует :(
rmmod lp не помогает. те же симптомы
Спасибо сказали:
yaleks
Сообщения: 2121
Статус: вне статуса
ОС: Gentoo ~

Re: LPT-порт в wine-приложении

Сообщение yaleks »

FlySnake писал(а):
01.12.2008 10:51
/dev/parport0 отсутствует :(
rmmod lp не помогает. те же симптомы

OpenSUSE 10.3 нет /dev/parport0 для VMware
Спасибо сказали:
FlySnake
Сообщения: 992
ОС: openSUSE

Re: LPT-порт в wine-приложении

Сообщение FlySnake »

yaleks писал(а):
01.12.2008 11:47
FlySnake писал(а):
01.12.2008 10:51
/dev/parport0 отсутствует :(
rmmod lp не помогает. те же симптомы

OpenSUSE 10.3 нет /dev/parport0 для VMware
Это тоже не принесло результатов. В настоящий момент поиски решения проблемы приостановлены т.к. временно пропала надобность. Новая проблема с USB и wine в соседней теме :D
Спасибо сказали:
xyz
Сообщения: 7
ОС: ubuntu

Re: LPT-порт в wine-приложении

Сообщение xyz »

Были проблемы с осциллографом PCS 500 от Velleman. Эта приблуда тоже работает через LPT. Помогло использование http://www.lafraze.net/nbernard/doc/misc_tips/iowrapper.c
Запускать так: ./iowrapper моя_виндовая_прога.exe
Спасибо сказали: