X10 Wireless Technology Inc USB Receiver
Bernd Walter
ticso at cicely12.cicely.de
Sun Sep 21 15:04:42 PDT 2003
On Sun, Sep 21, 2003 at 10:35:33AM -0700, Lars Eggert wrote:
> Hi,
>
> I'm trying to get the USB RF remote control that comes with some ATI
> Wonder cards to do something meaningful under -current.
>
> It shows up as an "X10 Wireless Technology Inc USB Receiver" with three
> devices: /dev/ugen0, and the corresponding input (/dev/ugen0.1) and
> output endpoints (/dev/ugen/0.2). Also see the attached usbctl output.
>
> Simply reading from the input endpoint /dev/ugen0.1 doesn't work.
>
> This page (http://remotew.free.fr/linux_en.htm) points at the Gatos
> project, which has a Linux driver (ati_remote) that seems to make the
> remote show up as a USB keyboard:
> http://sourceforge.net/project/showfiles.php?group_id=12629
>
> That driver sends a couple of magic bytes to the device during
> initialization. I'm trying to do the same from userland:
>
> static char init1[]= { 0x80, 0x01, 0x00, 0x20, 0x14 };
> static char init2[]= { 0x80, 0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20 };
>
> int main(int argc, char *argv[]) {
> int out = open("/dev/ugen0.2", O_WRONLY);
> if (out == -1) {
> perror("ugen0.2");
> goto done;
> }
>
> if (write(out, init1, sizeof init1) == -1) {
> perror("write init1");
> goto done;
> }
>
> if (write(out, init2, sizeof init2) == -1) {
> perror("write init1");
> goto done;
> }
>
> done:
> close(out);
> }
>
> Really simply. Here's what happens when I run it:
>
> write init1: Input/output error
Are you shure that the above is correct data for the device?
The IO error could also be returned from the device.
What does USB_DEBUG with hw.usb.debug=2 and hw.usb.ugen.debug=2 say?
Bevor I download the complete source you mentioned, can you give us the
lines that lead to the above command?
> it feels like I'm missing something extremely obvious, but I'm new to
> the USB internals. The two endpoints are "interrupt" endpoints. I'm not
> sure what that signifies, but I heard writing to them on -stable is
> broken, but on -current it should work.
I don't know, but it could also depend on the controller you use.
E.g. ehci currently doesn't support interrupt endpoints at all.
--
B.Walter BWCT http://www.bwct.de
ticso at bwct.de info at bwct.de
More information about the freebsd-current
mailing list