Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2004 11:47:44 -0800
From:      John Merryweather Cooper <john_m_cooper@yahoo.com>
To:        charlysquare@altern.org
Cc:        freebsd-current@freebsd.org
Subject:   Re: Cordless combo Mouse/keyboard
Message-ID:  <40609460.8070807@yahoo.com>
In-Reply-To: <20040323105752.E5A6A43D45@mx1.FreeBSD.org>
References:  <20040323105752.E5A6A43D45@mx1.FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
For my Logitech Cordless iTouch Keyboard and Mouse I had to:

1) set flag to 0x6100 for device pcm in my kernel configuration
2) set options PSM_HOOKRESUME and PSM_RESETAFTERSUSPEND
3) rebuild the kernel.

This works for me on FreeBSD 4.9-STABLE.  I realize you may be running 
-CURRENT, but this may point out some fruitful avenues.

jmc

charlysquare@altern.org wrote:

> Hi,
> 
> I've got a Cordless combo Mouse/keyboard Memorex RF7000, my keyboard is detected, but the mouse don't want to move.. i've tested it under knoppix or windows, and it works ! but under FreeBSD 5.2, i cant't manage to move the cursor..
> 
> I've been helped by Soren Schmidt 'til now, here is what he adviced me :
> 
> 1. ----------------------------------------------
> -------------------------------------------------
> 
> I use the following hack with a wireless Fujitsu-Siemens USB kbd+mouse 
> here, maybe that helps..
> 
> 
> 
> 
> Index: hid.c
> ===================================================================
>   u_long
>   hid_get_data(u_char *buf, struct hid_location *loc)
>   {
> -       u_int hpos = loc->pos;
> +       u_int hpos = loc->pos - 40;;
>          u_int hsize = loc->size;
>          u_int32_t data;
>          int i, s;
> 
> Index: ums.c
> ===================================================================
>                  ret = UMATCH_NONE;
> 
>          free(desc, M_TEMP);
> -       return (ret);
> +       return (UMATCH_IFACECLASS);
>   }
> 
>   USB_ATTACH(ums)
> 
> 
> 2. ----------------------------------------------
> -------------------------------------------------
> 
> 
>>dmesg | grep ums return ums0 so this is good
>>ps ax|grep moused return :
>>/usr/sbin/moused -p /dev/ums0 so this is great.. >but...the mouse is not moving at all... 
> 
> 
> OK, then back out this part of the patch, that might not be needed for 
> your mouse (mine has several buttons and wheels and what not :) )
> 
>  > >   hid_get_data(u_char *buf, struct hid_location *loc)
>  > >   {
>  > > -       u_int hpos = loc->pos;
>  > > +       u_int hpos = loc->pos - 40;;
>  > >          u_int hsize = loc->size;
>  > >          u_int32_t data;
>  > >          int i, s;
>  > >
> 
> 3. ----------------------------------------------
> -------------------------------------------------
> 
> 
>>I've rebuild my kernel, but the cursor is not moving... 
> 
> 
> Hmm then the mouse is probably using a new variation of the protocol 
> (mine does hence the first patch). I guess that will need further 
> investigation to find out how it sends its position info, there are some 
>   debugging code in there that can be of use, but if you are not a 
> programmer it will probably be a bit difficult todo...
> 
> 4. ----------------------------------------------
> -------------------------------------------------
> 
> I used the below patch to find out how the position info looked 
> from my mouse/kbd combo, use it with debug defined in ums.c.
> Looking at the output when moving the mouse might help you to find out 
> what your does.
> 
> Hope that helps you further along...
> 
> Index: ums.c
> ===================================================================
> 
>   #define UMS_BUT(i) ((i) < 3 ? (((i) + 2) % 3) : (i))
> 
>          DPRINTFN(5, ("ums_intr: sc=%p status=%d\\n", sc, status));
> -       DPRINTFN(5, ("ums_intr: data = %02x %02x %02x\\n",
> -                    sc->sc_ibuf[0], sc->sc_ibuf[1], sc->sc_ibuf[2]));
> +       DPRINTFN(5, ("ums_intr: data = "));
> +       for (i=0; i<sc->sc_isize; i++)
> +               DPRINTFN(5, ("%02x ", sc->sc_ibuf[i]));
> +       DPRINTFN(5, ("\\n"));
> 
>          if (status == USBD_CANCELLED)
>                  return;
> 
> 
> ---------------------------------------------------------
> --------->>>> at this point, i don't where to search to find the mouse position... i don't know which log i have to catch..
> 
> Any solution please ?
> 
> Many thanks
> 
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40609460.8070807>