WG: Re: Wine and the serial port [LONG]

lawson_whitney at juno.com lawson_whitney at juno.com
Wed Nov 7 11:34:38 CST 2001


On Wed, 7 Nov 2001, Gerson Kurz wrote:

> Hi, I applied your patch and recompiled, but I'm still having trouble. In
> what follows I've tried to describe some details.

I've sent a copy of this to Mike McCormakc, whose patch it is.
>
> Ther reason for this: If you use ReadFile() after WriteFile(), the following
> might happen on very slow machines: Data comes in on the serial line, and
> cannot be buffered by the serial port, and because there is no Read pending,
> the data gets lost. (This happened to us, so its a real-life problem and not
> something theoretical).
>
Not on linux, I think.  If CREAD is set in the termios, which wine does
do, the interrupt handler buffers up to 4k even if there is no read.


>
> In the wine trace (done with +comm +file) you see the following
> -------------------------------------
> trace:file:CreateFileA opening device 'COM1'
> trace:comm:GetCommState handle 268, ptr 0x421666f8
> trace:comm:GetCommState OK
> trace:comm:GetCommState bytesize 8 baudrate 9600 fParity 1 Parity 0 stopbits
> 2
> trace:comm:GetCommState ~IXON ~IXOFF
> trace:comm:GetCommState ~CRTSCTS
> trace:comm:BuildCommDCBAndTimeoutsA (baud=9600 parity=o data=8
> stop=2,0x421666f8,(nil))
> trace:comm:SetCommState handle 268, ptr 0x421666f8
> trace:comm:SetCommState bytesize 8 baudrate 9600 fParity 1 Parity 0 stopbits
> 2
> trace:comm:SetCommState ~IXON ~IXOFF
> trace:comm:SetCommState CRTSCTS
> trace:comm:SetCommState ~CRTSCTS

You have not got the patch at this point.

> -------------------------------------
>
> OK, maybe I've done something wrong when compiling. I downloaded the archive
> "wine-20011004", and recompiled. When I check the binary (wine* in
> /usr/local/bin), everything has a new compile date, but wine --version still
> reports "release 20010731". This is what i did:

depending where you got this wine, it may not be in the same place, it
may be earlier in the PATH than the one you just built.

>
> cd wine-20011004
> configure
> make deps && make
> make install
>
> Bye, Gerson
>
Make deps is a typo in this letter, I guess?

some people who make rpm's and so on of wine ./configure it with
--prefix= something other than tne default /usr/local.  Some go to
/opt/wine, who knows what all is out there.  You might need to uninstall
the old one to get at the new one.  If it is an rpm, rpm -ql wine should
tell you where it put it.

You might also need a line
 /usr/local/lib
in /etc/ld.so.conf, but we haven't go tto where we are using the newly
compiled wine binary.  Of course, you can always get at it by absolute
path name:

/usr/local/bin/wine blah.exe


have root run /sbin/ldconfig after making a change to /etc/ld.so.conf.

Or try this:

LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/wine\
 --debugmsg +comm,+file blah.exe 2>&1|tee logfile

Lawson
---oof---


________________________________________________________________
GET INTERNET ACCESS FROM JUNO!
Juno offers FREE or PREMIUM Internet access for less!
Join Juno today!  For your FREE software, visit:
http://dl.www.juno.com/get/web/.




More information about the wine-users mailing list