Index: [thread] [date] [subject] [author]
  From: teunis <teunis@computersupportcentre.com>
  To  : ggi-develop@eskimo.com
  Date: Tue, 18 May 1999 16:57:02 -0700 (MST)

Re: Mouse: Error reading mouse: Resource temporarily unavailable

On Tue, 18 May 1999, Marcus Sundberg wrote:

> teunis wrote:
> > 
> > Mouse: Error reading mouse: Resource temporarily unavailable
> > 
> > this error message is always received on any amount of data coming in
from
> > /dev/gpmdata pipethrough.  (/dev/gpmdata is a FIFO buffer iirc)
> > 
> > This -was- fixed before.
> > 
> > Why is this message back?
> > (as near as I can tell just disabling the errormessage fixed it before)
> > 
> > Watching this scroll by -every- slightest movement of the mouse is
> > highly... irritating.
> > 
> > Could this -please- be fixed for once and for all... and a note placed?
> > This only seems to show up when I use GPM as the mouse pipethrough (which
> > I -always- do as it's used for coordinating X as well... though as I'm
> > using XGGI it's no longer such a big deal)
> 
> I need more info in order to fix anything.
> What application(s) does it appear with and what arguments did you use?
> Did you set any GGI-related env-vars?
> Did you config your mouse?
> What does GGI_DEBUG=255 tell you?

ALL ggi programs.
ANY parameters.
the mouse driver is the problem  - this error message is spat out by the
linux_mouse driver (iirc) when it can't get any data.

off of the FIFO gpm pipe (/dev/gpmdata which is incidentally where
/dev/mouse is pointing) this happens.

Doesn't anyone else pipe all their mouse stuff through GPM?  Does anyone
else have a mouse-systems mouse that requires this or the mouse crashes if
more than one program (ie gpm + -anything- else) is loaded?  X is the
usual culprit but GGI does it too - it's a problem with how mouse-systems
mice are initialized;

Ideas?  This is a GGI problem dealing with a gpm FIFO!

I've tracked this before and I can track it again.  Should I post what
file and line the prob is?  If so here it is:

This just watches for errno=EAGAIN and doesn't do perror if this is what
it is.  AFAIK this -is- a correct patch because as far as I know EAGAIN
just means check the data again.  It's line ~658 as far as I know...
also had to include <errno.h> at the top.  That's it.

        if (read_len <= 0) {
                if (read_len == 0) {
                        /* End-of-file occured */
                        mpriv->eof = 1;
                        GIIDPRINT_EVENTS("Mouse: EOF occured on fd: %d\n",
                                         mpriv->fd);
                        return 0;
                }
                /* Error, we try again next time */
                if (errno==EAGAIN) return 0; /* this fixes a gpm problem */
                perror("Mouse: Error reading mouse");
                return 0;
        }


It works for me (tm)

Oh an explanation of my GGI_INPUT and why I -don't- use /dev/mouse:
export GGI_INPUT="(linux-mouse:msc,/dev/gpmdata):(linux-mouse:mman,/dev/ttyS0)"

Primary mouse : /dev/gpmdata; protocol mouse-systems
	- at the moment this is a Zoltrix PS/2 mouse with a wheel that GPM
		doesn't support going through GPM which turns all mice
		into mouse-systems mice.

Secondary mouse: a Logitech CyberMan on /dev/ttyS0
	(planning on eventually making a driver for this beast as soon as
	I've got something that can use it...)

I also have a mousesystems mouse I sometimes hook up to /dev/ttyS1 but
that's a modem at the moment

Incidentally is it possible to tell mice apart using GGI or GII?  Or
should I open a seperate GII device for the cyberman?

G'day, eh? :)
	- Teunis

Index: [thread] [date] [subject] [author]