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