wine serial support

Raul Dias chaos at swi.com.br
Sat Sep 15 11:14:44 CDT 2001


>On Fri, 14 Sep 2001, Raul Dias wrote:

[...]
>> Hi,
>>
>> I use wine to run a terminal emulator (NetTerm).
>> It connects to a Linux Server (it was meant to run from windows) that runs a commerce software.
>>
>> This Linux commerce software sends the terminal emulator escape codes to interface with a
>> "ticket" printer attached to a serial port.
>>
>> The reason to go thru all this problem is that the printer has a proprietary, closed source driver
>> for windows only and interface only with netterm.
>>
>> With wine 20001026 this works greatfull.  The application takes 3 seconds to startup
>> in a P133 machine.
>>
>> However, the serial communication part does not work with the later versions of wine
>> like 20010731.  The application reports as if there is no serial port and wine complains
>> with some fixmes about comm support.
>
>Well, quote the fixme's.

Here is the full log (comments in ==[ ]==):

------8<----------------------------------------------
err:mmsys:MMDRV_InitHardcoded You didn't setup properly the config file for the Wine multimedia modules.
Will use the hard-coded setup, but this will disapear soon.
Please add a WinMM section to your Wine config file.
fixme:font:RemoveFontResourceA ("E:\\decfnt.fon"): stub
fixme:font:CreateScalableFontResourceA (0,E:\decfnt.fon,E:\decfnt.ttf,(null)): stub
fixme:font:AddFontResourceA ("isifont1.dll"): stub! Read the Wine User Guide on how to install this font manually.
fixme:tapi:lineInitialize (0x40392558, 400000, 0x441105, "NetTerm", 0x4039255c): stub.

=========[ Here is when the netterm.exe shows up on the screen ]==================

=========[ The next messages just shows up when trying to use the serial ports ] ======

fixme:comm:SetupComm insize 384 outsize 384 unimplemented stub
fixme:comm:PurgeComm no handle 244 found
fixme:comm:PurgeComm no handle 244 found
fixme:comm:PurgeComm no handle 244 found

======[ here is when the network connection closes ]===============

fixme:winsock:_get_sock_fd handle -1 is not a socket (GLE 6)

====[ and here when the application is closed ]====================

fixme:font:RemoveFontResourceA ("isifont1.dll"): stub
fixme:font:RemoveFontResourceA ("E:\\decfnt.fon"): stub
fixme:tapi:lineShutdown (0000): stub.
------------------------>8------------------------------

>>
>> Did wine suffered a big serial change over the last year?
>
>Massive reorganization, which shouldn't have broken anything.  My comms
>apps still work.  Mmmm, didn't the config file format and location
>change some time in 200012xx?  Or was that the year before?  Have you
>accounted for the fact that Wine doesn't look for a global wine.conf
>file anymore, but only $WINEPREFIX/config (~/.wine/config)?

sure.

>
>--debugmsg +file,+comm,+relay is more likely to be useful; maybe just
>+file,+comm would be enough, if we can't figure it out from the fixmes.
>

here is the logs of wine --debugmsg +comm,+file:

--------------------------------------------8<---------------------------------------
trace:file:CreateFileA C:\Program Files\NetTerm\netterm.exe GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\windows\system\ole32.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isi500.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\msvcrt40.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isivideo.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isistat.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isibar.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isiprint.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isilogo.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:_lopen ('(None)',0000)
trace:file:CreateFileA (None) GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from '(None)' (GLE 2)
trace:file:_lopen ('C:\WINDOWS\(None)',0000)
trace:file:CreateFileA C:\WINDOWS\(None) GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'C:\WINDOWS\(None)' (GLE 2)
trace:comm:COMM_Init COM1 = /dev/ttyS0
trace:comm:COMM_Init LPT1 = /dev/lp0
trace:comm:COMM_Init COM2 = /dev/ttyS1
err:mmsys:MMDRV_InitHardcoded You didn't setup properly the config file for the Wine multimedia modules.
Will use the hard-coded setup, but this will disapear soon.
Please add a WinMM section to your Wine config file.
trace:file:CreateFileA C:\WINDOWS\SYSTEM\wineoss.drv GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'C:\WINDOWS\SYSTEM\wineoss.drv' (GLE 2)
trace:file:CreateFileA C:\WINDOWS\SYSTEM\msacm.iac2 GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'C:\WINDOWS\SYSTEM\msacm.iac2' (GLE 2)
trace:file:CreateFileA C:\windows\system\iac25_32.ax GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\WINDOWS\SYSTEM\iacenc.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'C:\WINDOWS\SYSTEM\iacenc.dll' (GLE 2)
trace:file:CreateFileA C:\WINDOWS\SYSTEM\msacm.iac2 GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'C:\WINDOWS\SYSTEM\msacm.iac2' (GLE 2)
trace:file:CreateFileA C:\Program Files\NetTerm\brazil.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\isidata.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\EACECF.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\windows\system\oleaut32.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\ECF4000.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Threads.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Date.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Char.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Perifericos.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Protocols.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Structs.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\SerialPort.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Swecf.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Mp97fi32.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA C:\Program Files\NetTerm\Mp20fi32.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
trace:file:CreateFileA E:\isi675c.tmp GENERIC_WRITE CREATE_NEW
trace:file:FILE_GetTempFileName created E:\isi675c.tmp
trace:file:FILE_GetTempFileName returning E:\isi675c.tmp
trace:file:FILE_DoOpenFile E:\isi675c.tmp OF_READ OF_SHARE_COMPAT OF_DELETE 
trace:file:FILE_DoOpenFile E:\isi675c.tmp 0200
trace:file:FILE_DoOpenFile found /tmp/isi675c.tmp = E:\ISI675C.TMP
trace:file:FILE_DoOpenFile (E:\isi675c.tmp): OF_DELETE return = OK
fixme:font:RemoveFontResourceA ("E:\\decfnt.fon"): stub
trace:file:FILE_DoOpenFile E:\decfnt.fon OF_READ OF_SHARE_COMPAT OF_DELETE 
trace:file:FILE_DoOpenFile E:\decfnt.fon 0200
warn:file:FILE_DoOpenFile 'E:\decfnt.fon' not found or sharing violation
warn:file:FILE_DoOpenFile (E:\decfnt.fon): return = HFILE_ERROR error= 2
trace:file:FILE_DoOpenFile E:\decfnt.ttf OF_READ OF_SHARE_COMPAT OF_DELETE 
trace:file:FILE_DoOpenFile E:\decfnt.ttf 0200
warn:file:FILE_DoOpenFile 'E:\decfnt.ttf' not found or sharing violation
warn:file:FILE_DoOpenFile (E:\decfnt.ttf): return = HFILE_ERROR error= 2
trace:file:FILE_DoOpenFile E:\decfnt.ttf OF_READ OF_SHARE_COMPAT OF_EXIST 
trace:file:FILE_DoOpenFile E:\decfnt.ttf 4000
warn:file:FILE_DoOpenFile 'E:\decfnt.ttf' not found or sharing violation
warn:file:FILE_DoOpenFile (E:\decfnt.ttf): return = HFILE_ERROR error= 2
trace:file:FILE_DoOpenFile E:\decfnt.ttf OF_READ OF_SHARE_COMPAT OF_CREATE 
trace:file:FILE_DoOpenFile E:\decfnt.ttf 1000
trace:file:CreateFileA E:\decfnt.ttf GENERIC_READ GENERIC_WRITE FILE_SHARE_READ FILE_SHARE_WRITE CREATE_ALWAYS 
trace:file:FILE_DoOpenFile (E:\decfnt.ttf): OK, return = 216
trace:file:_hwrite 216 0x1c030018 24212
trace:file:WriteFile 216 0x1c030018 24212 0x405a59f4 (nil)
trace:file:_lclose handle 216
fixme:font:CreateScalableFontResourceA (0,E:\decfnt.fon,E:\decfnt.ttf,(null)): stub
trace:file:SetFileAttributesA (E:\decfnt.ttf,2)
fixme:font:AddFontResourceA ("isifont1.dll"): stub! Read the Wine User Guide on how to install this font manually.
trace:file:FILE_DoOpenFile logo.bmp OF_READ OF_SHARE_COMPAT 
trace:file:FILE_DoOpenFile logo.bmp 0000
trace:file:FILE_DoOpenFile found /root/pacotes/netterm/var/lib/wn/Program Files/NetTerm/logo.bmp = C:\PROG~FBU\NETTERM\LOGO.BMP
trace:file:FILE_DoOpenFile (logo.bmp): OK, return = 216
trace:file:ReadFile 216 0x405a61f4 14 0x405a61cc (nil)
trace:file:ReadFile 216 0x4040ab80 40 0x405a61cc (nil)
trace:file:ReadFile 216 0x4040aba8 1024 0x405a61cc (nil)
trace:file:SetFilePointer handle 216 offset 1078 high 0 origin 0
trace:file:ReadFile 216 0x4040afa8 32767 0x405a61a4 (nil)
trace:file:ReadFile 216 0x40412fa7 32767 0x405a61a4 (nil)
trace:file:ReadFile 216 0x4041afa6 29330 0x405a61a4 (nil)
trace:file:_lclose handle 216
trace:file:CreateFileA C:\WINDOWS\SYSTEM\tapi32.dll GENERIC_READ FILE_SHARE_READ OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'C:\WINDOWS\SYSTEM\tapi32.dll' (GLE 2)
fixme:tapi:lineInitialize (0x403921d8, 400000, 0x441105, "NetTerm", 0x403921dc): stub.

======================[ as before here is when the application shows on the screen ]================================

======================[ there was no debug msg until the serial port was tryied to use ]===============================

trace:file:CreateFileA CHEQUEII.DAT GENERIC_READ FILE_SHARE_READ FILE_SHARE_WRITE OPEN_EXISTING 
warn:file:CreateFileA Unable to get full filename from 'CHEQUEII.DAT' (GLE 2)
trace:file:CreateFileA COM1 GENERIC_READ GENERIC_WRITE OPEN_EXISTING 
trace:file:CreateFileA opening device 'COM1'
trace:comm:GetCommState handle 244, ptr 0x42c60328
trace:comm:GetCommState OK
trace:comm:GetCommState bytesize 8 baudrate 9600 fParity 0 Parity 2 stopbits 1
trace:comm:GetCommState ~IXON ~IXOFF
trace:comm:GetCommState ~CRTSCTS
trace:comm:SetCommState handle 244, ptr 0x42c60328
trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 0 Parity 2 stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommMask handle 244, mask 1
trace:comm:SetCommTimeouts (f4,0x405a52dc)
fixme:comm:SetupComm insize 384 outsize 384 unimplemented stub
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )

===============[ last debug message repeats 10 times ]================

trace:comm:PurgeComm handle 244, flags c
trace:comm:PurgeComm handle 244, flags c
trace:file:WriteFile 244 0x405a5040 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5041 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5042 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5043 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5044 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )

===============[ last debug message repeats 193 times ]================

trace:comm:PurgeComm handle 244, flags c
trace:file:WriteFile 244 0x405a5040 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5041 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5042 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5043 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5044 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )

===============[ last debug message repeats 124 times ]================

trace:comm:PurgeComm handle 244, flags c
trace:file:WriteFile 244 0x405a5040 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5041 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5042 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )
trace:file:WriteFile 244 0x405a5043 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5044 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )

===============[ last debug message repeats 157 times ]================

trace:comm:PurgeComm handle 244, flags c
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )
trace:file:WriteFile 244 0x405a5040 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5041 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5042 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5043 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )
trace:file:WriteFile 244 0x405a5044 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )

trace:comm:WaitCommEvent trace:comm:PurgeComm handle 244, flags c
trace:file:WriteFile 244 0x405a5040 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )
trace:file:WriteFile 244 0x405a5041 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5042 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5043 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5044 1 0x405a4ff4 (nil)
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )

===============[ last debug message repeats 144 times ]================

trace:comm:WaitCommEventrace:comm:PurgeComm handle 244, flags c
trace:comm:WaitCommEvent (f4 0x43ac6718 (nil) )
trace:file:WriteFile 244 0x405a5040 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5041 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5042 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5043 1 0x405a4ff4 (nil)
trace:file:WriteFile 244 0x405a5044 1 0x405a4ff4 (nil)

==============[ last debug message repeats 181 times ]============================

=============[ This one now is when the network connection is closed ]================
fixme:winsock:_get_sock_fd handle -1 is not a socket (GLE 6)

==============[ and the rest when the application closed ]===========================

fixme:font:RemoveFontResourceA ("isifont1.dll"): stub
fixme:font:RemoveFontResourceA ("E:\\decfnt.fon"): stub
trace:file:FILE_DoOpenFile E:\decfnt.fon OF_READ OF_SHARE_COMPAT OF_DELETE 
trace:file:FILE_DoOpenFile E:\decfnt.fon 0200
warn:file:FILE_DoOpenFile 'E:\decfnt.fon' not found or sharing violation
warn:file:FILE_DoOpenFile (E:\decfnt.fon): return = HFILE_ERROR error= 2
trace:file:FILE_DoOpenFile E:\decfnt.ttf OF_READ OF_SHARE_COMPAT OF_DELETE 
trace:file:FILE_DoOpenFile E:\decfnt.ttf 0200
trace:file:FILE_DoOpenFile found /tmp/decfnt.ttf = E:\DECFNT.TTF
trace:file:FILE_DoOpenFile (E:\decfnt.ttf): OF_DELETE return = OK
fixme:tapi:lineShutdown (0000): stub.

------------------------------------------->8----------------------------------

>Lawson
>---oof---


If you need more info, let me know.

Raul Dias





More information about the wine-users mailing list