[Wine] Wine + serial port basically hangs system

Dan Armbrust daniel.armbrust.list at gmail.com
Sun May 7 16:28:23 CDT 2006


Back to the battle again...

I uninstalled all of the older version of wine that I had.  I erased
my .wine folder.

I installed 0.9.12 from source (that took a long time on this old pc :)

I reran winecfg.

I installed my HeavyWeather program.

I symlinked dosdevices/com1 -> /dev/ttyS0

I chmodded /dev/ttyS0 to 777.

I launch HeavyWeather... and it start up.  But it does not ever make a
connection to the weather station.

I ran in comm debug mode, and this is what I get:

HeavyWeather]$ WINEDEBUG=comm wine heavy\ weather.exe
fixme:win:EnumDisplayDevicesW ((null),0,0x679ff7f4,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x679ff7f4,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x679ff7f4,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x679ff7f4,0x00000000), stub!
trace:comm:SetCommState handle 0xa8, ptr 0x685b1bb0
trace:comm:SetCommState bytesize 8 baudrate 2400 fParity 0 Parity 0 stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState fOutxCtsFlow 0 fRtsControl 1
trace:comm:SetCommState fOutxDsrFlow 0 fDtrControl1
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_COMMSTATUS (nil)
0 0x7c25e628 20 0x7c25e578
fixme:comm:SetupComm insize 1298 outsize 1298 unimplemented stub
trace:comm:SetCommTimeouts (0xa8,0x7c25e75c)
trace:comm:SetCommState handle 0xa8, ptr 0x685b1bb0
trace:comm:SetCommState bytesize 8 baudrate 2400 fParity 0 Parity 0 stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState fOutxCtsFlow 0 fRtsControl 1
trace:comm:SetCommState fOutxDsrFlow 0 fDtrControl1
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_COMMSTATUS (nil)
0 0x7c25e84c 20 0x7c25e79c
fixme:comm:SetupComm insize 1298 outsize 1298 unimplemented stub
trace:comm:SetCommTimeouts (0xa8,0x7c25e980)
trace:comm:EscapeCommFunction handle 0xa8, function=3
trace:comm:EscapeCommFunction SETRTS
trace:comm:EscapeCommFunction handle 0xa8, function=6
trace:comm:EscapeCommFunction CLRDTR
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_PURGE 0x7c25e99c 4
(nil) 0 0x7c25e8d8
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_PURGE 0x7c25e99c 4
(nil) 0 0x7c25e8d8
trace:comm:SetCommMask handle 0xa8, mask 0
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_SET_WAIT_MASK
0x7c25e974 4 (nil) 0 0x7c25e8b0
trace:comm:SetCommMask handle 0xa8, mask 1
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_SET_WAIT_MASK
0x7c25e938 4 (nil) 0 0x7c25e874
trace:comm:WaitCommEvent (0xa8 0x7befea64 0x7befea34 )
trace:comm:GetCommMask handle 0xa8, mask 0x65a1edbc
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_WAIT_MASK (nil)
0 0x65a1edbc 4 0x7befe8cc
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_MODEMSTATUS
(nil) 0 0x65a1edc0 4 0x7befe8dc
trace:comm:get_modem_status 4004 ->
trace:comm:Comm_CheckEvents mask 0x00000001
trace:comm:Comm_CheckEvents old->rx          0x00000216 vs. new->rx   
      0x00000216
trace:comm:Comm_CheckEvents old->tx          0x00000257 vs. new->tx   
      0x00000257
trace:comm:Comm_CheckEvents old->frame       0x00000001 vs. new->frame
      0x00000001
trace:comm:Comm_CheckEvents old->overrun     0x00000000 vs.
new->overrun     0x00000000
trace:comm:Comm_CheckEvents old->parity      0x00000000 vs.
new->parity      0x00000000
trace:comm:Comm_CheckEvents old->brk         0x0000000e vs. new->brk  
      0x0000000e
trace:comm:Comm_CheckEvents old->buf_overrun 0x00000000 vs.
new->buf_overrun 0x00000000
trace:comm:Comm_CheckEvents OUTQUEUE 0, Transmitter not empty
trace:comm:COMM_WaitCommEventService handle 0xa8 fd 0x00000021, mask
0x00000001 buffer 0x7befea64 event 0xbc irq_info 0x65a1edc4 waitmask
0x00000000
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_MODEMSTATUS
(nil) 0 0x7bdfaa2c 4 0x7bdfa930
trace:comm:get_modem_status 4004 ->
trace:comm:Comm_CheckEvents mask 0x00000001
trace:comm:Comm_CheckEvents old->rx          0x00000216 vs. new->rx   
      0x00000216
trace:comm:Comm_CheckEvents old->tx          0x00000257 vs. new->tx   
      0x00000257
trace:comm:Comm_CheckEvents old->frame       0x00000001 vs. new->frame
      0x00000001
trace:comm:Comm_CheckEvents old->overrun     0x00000000 vs.
new->overrun     0x00000000
trace:comm:Comm_CheckEvents old->parity      0x00000000 vs.
new->parity      0x00000000
trace:comm:Comm_CheckEvents old->brk         0x0000000e vs. new->brk  
      0x0000000e
trace:comm:Comm_CheckEvents old->buf_overrun 0x00000000 vs.
new->buf_overrun 0x00000000
trace:comm:Comm_CheckEvents OUTQUEUE 0, Transmitter not empty
trace:comm:GetCommMask handle 0xa8, mask 0x7bdfaa28
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_WAIT_MASK (nil)
0 0x7bdfaa28 4 0x7bdfa920
trace:comm:COMM_WaitCommEventService resulting Eventmask 0x00000000
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_MODEMSTATUS
(nil) 0 0x7bdfaa2c 4 0x7bdfa930
trace:comm:get_modem_status 4004 ->
trace:comm:Comm_CheckEvents mask 0x00000001
trace:comm:Comm_CheckEvents old->rx          0x00000216 vs. new->rx   
      0x00000216
trace:comm:Comm_CheckEvents old->tx          0x00000257 vs. new->tx   
      0x00000257
trace:comm:Comm_CheckEvents old->frame       0x00000001 vs. new->frame
      0x00000001
trace:comm:Comm_CheckEvents old->overrun     0x00000000 vs.
new->overrun     0x00000000
trace:comm:Comm_CheckEvents old->parity      0x00000000 vs.
new->parity      0x00000000
trace:comm:Comm_CheckEvents old->brk         0x0000000e vs. new->brk  
      0x0000000e
trace:comm:Comm_CheckEvents old->buf_overrun 0x00000000 vs.
new->buf_overrun 0x00000000
trace:comm:Comm_CheckEvents OUTQUEUE 0, Transmitter not empty
trace:comm:GetCommMask handle 0xa8, mask 0x7bdfaa28
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_WAIT_MASK (nil)
0 0x7bdfaa28 4 0x7bdfa920
trace:comm:COMM_WaitCommEventService resulting Eventmask 0x00000000
trace:comm:COMM_DeviceIoControl 0xa8 IOCTL_SERIAL_GET_MODEMSTATUS
(nil) 0 0x7bdfaa2c 4 0x7bdfa930
trace:comm:get_modem_status 4004 ->
trace:comm:Comm_CheckEvents mask 0x00000001
trace:comm:Comm_CheckEvents old->rx          0x00000216 vs. new->rx   
      0x00000216
trace:comm:Comm_CheckEvents old->tx          0x00000257 vs. new->tx   
      0x00000257
trace:comm:Comm_CheckEvents old->frame       0x00000001 vs. new->frame
      0x00000001


So, it looks like after it calls getModemStatus, its getting back a
status that it doesn't like:
trace:comm:Comm_CheckEvents OUTQUEUE 0, Transmitter not empty

Any ideas on where this is coming from?  I did have this thing
connected at one point last week (which gave me the error that I
started this thead for) but now I can't even get back to that point.

Any suggestions are welcome,

Thanks,

Dan



More information about the wine-users mailing list