[Wine]serial port problem

Jan Schmdit j.schmidt at baumueller-kamenz.de
Tue Jan 11 03:28:07 CST 2005


I have a program which works fine with "Wine 20030115" (shipped with
SuSE-8.2). Using the same program with "Wine 20041201" (after Upgrade to
SuSE-9.2) does not work anymore. The communication with the device
connectet to the seriel port does not work.

I converted my old .wine/config from:

"Com1" = "/dev/ttyS0"
"Com2" = "/dev/ttyS1"
"Com3" = "/dev/ttyS2"
"Com4" = "/dev/modem"

so that

.wine/dosdevices/com1 is a link to /dev/ttyS0 ...

The rights are ok:

schmidtj at schmidt-l:~> ls -l .wine/dosdevices/com1
lrwxrwxrwx  1 schmidtj users 10 2005-01-05 09:40 .wine/dosdevices/com1 -> 

schmidtj at schmidt-l:~> ls -l /dev/ttyS0
crw-rw----  1 root uucp 4, 64 2005-01-11 08:42 /dev/ttyS0

schmidtj at schmidt-l:~> groups
users disk uucp dialout video

Futhermore I used the default-installation from SuSE-8.2 and SuSE-9.2.

while debugging I found with WINEDEBUG=+win32,+comm,+file


warn:file:wine_nt_to_unix_file_name "required a case-insensitive search"

Does that matter?

Debugging with "WINEDEBUG=+comm,+file" gives

attributes 0x80
trace:file:RtlDosPathNameToNtPathName_U (L"COM1",0x406cf6cc,(nil),(nil))
trace:file:RtlGetFullPathName_U (L"COM1" 520 0x406cf448 (nil))
trace:file:get_dos_device L"COM1" -> "/home/schmidtj/.wine/dosdevices/com1"
trace:file:CreateFileW returning 0x38
fixme:comm:SetupComm insize 2048 outsize 2048 unimplemented stub
trace:comm:BuildCommDCBAndTimeoutsA (baud=38400 parity=N data=8 stop=1 to=off
  xon=off odsr=off octs=off dtr=off rts=on idsr=off,0x406cf760,(nil))
trace:comm:BuildCommDCBAndTimeoutsW (L"baud=38400 parity=N data=8 stop=1 to=off
  xon=off odsr=off octs=off dtr=off rts=on idsr=off",0x406cf760,(nil))
trace:comm:SetCommState handle 0x38, ptr 0x406cf760
trace:comm:SetCommState bytesize 8 baudrate 38400 fParity 0 Parity 0 stopbits 1
trace:comm:SetCommState ~IXON ~IXOFF
trace:comm:SetCommState fOutxCtsFlow 0 fRtsControl 1
trace:comm:SetCommState fOutxDsrFlow 0 fDtrControl0
trace:comm:PurgeComm handle 0x38, flags f
trace:comm:PurgeComm handle 0x38, flags f
trace:comm:GetCommTimeouts (0x38,0x406cf7d8)
trace:file:WriteFile 0x38 0x406cf824 10 0x406cf7f0 (nil)
trace:comm:ClearCommError handle 0x38 cbInQue = 0 cbOutQue = 0

indicating, that the program wants to write 10 Bytes but nothing goes
to the Queue. I haved patched the serial driver so that every Byte
which the driver sendet and received was printed to the syslog via
printk. There was no communication reported.

What is wrong? How can I get the program work again?


More information about the wine-users mailing list