On Sun, Jan 29, 2012 at 07:11:22PM +0100, LEVAI Daniel wrote:
> On v, jan 29, 2012 at 20:40:35 +1100, Jonathan Gray wrote:
> > On Sun, Jan 29, 2012 at 08:27:16AM +0100, LEVAI Daniel wrote:
> > > Hi!
> > > 
> > > 
> > > I'm trying to use an USB serial device with qemu on a OpenBSD host and a
> > > winxp guest. I presume the first step would be to recognize this device
> > > under OpenBSD as some kind of ucom(4). Currently this is printed in
> > > dmesg when I plug in the stuff:
> > > 
> > > ugen1 at uhub1 port 2 "Atmel E85 USB Serial" rev 2.00/1.00 addr 2
> > > 
> > > Eventually I would like to use cu(1) or minicom thru a /dev/cuaU?
> > > device.
> > > The vendor_id:product_id is 03eb:6119.
> > > 
> > > Is it possible to somehow use/probe the existing usb serial drivers to
> > > see if it attaches/works with one of them?
> > 
> > It is apparently CDC compliant, so try this:
> 
> Thank you very much! It is working perfectly.
> It will be the icing on the cake if I can setup qemu to somehow utilize
> this device... but that will another issue.
> Now I can access and configure my car's bio-ethanol fuel converter with
> OpenBSD (and I'm not forced to use its win* GUI).
> 
> 
> Thanks again,
> Daniel

Can you try the following?  It would be interesting to know why it doesn't
match the class test.

Index: sys/dev/usb/umodem.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/umodem.c,v
retrieving revision 1.44
diff -u -p -r1.44 umodem.c
--- sys/dev/usb/umodem.c        3 Jul 2011 15:47:17 -0000       1.44
+++ sys/dev/usb/umodem.c        31 Jan 2012 02:35:49 -0000
@@ -226,6 +226,11 @@ umodem_match(struct device *parent, void
                return (ret);
 
        ret = UMATCH_NONE;
+
+       if (UGETW(dd->idVendor) == USB_VENDOR_ATMEL &&
+           UGETW(dd->idProduct) == 0x6119)
+               ret = UMATCH_VENDOR_PRODUCT;
+
        if (UGETW(dd->idVendor) == USB_VENDOR_KYOCERA &&
            UGETW(dd->idProduct) == USB_PRODUCT_KYOCERA_AHK3001V &&
            id->bInterfaceNumber == 0)
@@ -236,6 +241,9 @@ umodem_match(struct device *parent, void
            id->bInterfaceSubClass == UISUBCLASS_ABSTRACT_CONTROL_MODEL &&
            id->bInterfaceProtocol == UIPROTO_CDC_AT)
                ret = UMATCH_IFACECLASS_IFACESUBCLASS_IFACEPROTO;
+
+       printf("class 0x%x subclass 0x%x protocol 0x%x\n", id->bInterfaceClass,
+           id->bInterfaceSubClass, id->bInterfaceProtocol);
 
        if (ret == UMATCH_NONE)
                return (ret);

Reply via email to