From owner-freebsd-usb@freebsd.org Wed Nov 11 19:51:41 2015 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DE9A5A2BA21 for ; Wed, 11 Nov 2015 19:51:41 +0000 (UTC) (envelope-from alfred@freebsd.org) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id C93DC1568 for ; Wed, 11 Nov 2015 19:51:41 +0000 (UTC) (envelope-from alfred@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id C6FFAA2BA1F; Wed, 11 Nov 2015 19:51:41 +0000 (UTC) Delivered-To: usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C59EFA2BA1E for ; Wed, 11 Nov 2015 19:51:41 +0000 (UTC) (envelope-from alfred@freebsd.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id AF5891567 for ; Wed, 11 Nov 2015 19:51:41 +0000 (UTC) (envelope-from alfred@freebsd.org) Received: from Alfreds-MacBook-Pro-2.local (unknown [IPv6:2601:645:8004:7515:9522:db07:c2:1b88]) by elvis.mu.org (Postfix) with ESMTPSA id B103A345A92E; Wed, 11 Nov 2015 11:51:40 -0800 (PST) Subject: Re: usb modem "Can't setup transfer" To: Hans Petter Selasky , usb@freebsd.org References: <5642B7E4.505@freebsd.org> <5642FE24.4050408@selasky.org> From: Alfred Perlstein Organization: FreeBSD Message-ID: <56439C4B.6060407@freebsd.org> Date: Wed, 11 Nov 2015 11:51:39 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <5642FE24.4050408@selasky.org> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Nov 2015 19:51:42 -0000 On 11/11/15 12:36 AM, Hans Petter Selasky wrote: > On 11/11/15 04:37, Alfred Perlstein wrote: >> Hello, >> >> A friend gave me a usb modem recently. The model is: >> Multi-Tech Systems - Multi-Modem USB - MT5634ZBA >> >> The Linux driver info is here: >> ftp://ftp.multitech.com/usb/usb-linux2.txt >> >> When I plug this device into FreeBSD I get a ugen0 device. >> >> So I tried hacking into the driver itself: >> >> diff --git a/sys/dev/usb/serial/umodem.c b/sys/dev/usb/serial/umodem.c >> index c1e8812..9886294 100644 >> --- a/sys/dev/usb/serial/umodem.c >> +++ b/sys/dev/usb/serial/umodem.c >> @@ -136,6 +136,7 @@ static const STRUCT_USB_HOST_ID >> umodem_host_devs[] = { >> {USB_VPI(USB_VENDOR_KYOCERA, USB_PRODUCT_KYOCERA_AHK3001V, 1)}, >> {USB_VPI(USB_VENDOR_SIERRA, USB_PRODUCT_SIERRA_MC5720, 1)}, >> {USB_VPI(USB_VENDOR_CURITEL, USB_PRODUCT_CURITEL_PC5740, 1)}, >> + {USB_VP(0x06e0, 0xf107)}, >> }; >> >> /* >> >> >> Now I get the following: >> >> Nov 10 19:19:54 spigot kernel: ugen3.3: at >> usbus3 >> Nov 10 19:19:54 spigot kernel: umodem0: on >> usbus3 >> Nov 10 19:19:54 spigot kernel: umodem0: data interface 1, has CM over >> data, has no break >> Nov 10 19:19:54 spigot kernel: umodem0: Can't setup transfer >> Nov 10 19:19:54 spigot kernel: device_attach: umodem0 attach returned 6 >> >> I read the Linux driver and it seems pretty similar, although it does >> look like they have a ton more quirks and edge cases the handle. The >> file in Linux I'm looking at is: linux/drivers/usb/class/cdc-acm.c (this >> seems to make the most sense given the instructions given at >> ftp://ftp.multitech.com/usb/usb-linux2.txt). >> >> I tried turning on sysctl hw.usb.debug=10 however after doing so it >> didn't seem to want to probe anymore. >> >> Any ideas? >> >> I can ship this modem to someone if they are interested and have a good >> idea how to fix. > > Hi, > > Can you send the configuration descriptor dump: > > usbconfig -d X.Y dump_device_desc dump_curr_config_desc > > Maybe the modem fits into the U3G driver. > > --HPS > Hans, Moving it to u3g on -current gives nearly same error: Nov 11 11:38:48 spigot kernel: u3g0: Nov 11 11:38:48 spigot kernel: on usbus3 Nov 11 11:38:49 spigot kernel: u3g0: no ports found Nov 11 11:38:49 spigot kernel: device_attach: u3g0 attach returned 6 Nov 11 11:38:56 spigot kernel: ugen3.3: at usbus3 (disconnected) Nov 11 11:39:00 spigot kernel: ugen3.3: at usbus3 Nov 11 11:39:00 spigot kernel: u3g0: on usbus3 Nov 11 11:39:00 spigot kernel: u3g0: no ports found Nov 11 11:39:00 spigot kernel: device_attach: u3g0 attach returned 6 Output from usbconfig is as follows: /usr/home/alfred # usbconfig -d 3.3 dump_device_desc dump_curr_config_desc ugen3.3: at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (400mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0100 bDeviceClass = 0x0002 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0008 idVendor = 0x06e0 idProduct = 0xf107 bcdDevice = 0x0100 iManufacturer = 0x0001 iProduct = 0x0002 iSerialNumber = 0x0000 bNumConfigurations = 0x0002 Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x0029 bNumInterfaces = 0x0002 bConfigurationValue = 0x0001 iConfiguration = 0x0003 bmAttributes = 0x00a0 bMaxPower = 0x00c8 Interface 0 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0000 bAlternateSetting = 0x0000 bNumEndpoints = 0x0000 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x00ff bInterfaceProtocol = 0x00ff iInterface = 0x0004 Interface 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0000 bNumEndpoints = 0x0002 bInterfaceClass = 0x00ff bInterfaceSubClass = 0x00ff bInterfaceProtocol = 0x00ff iInterface = 0x0005 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0002 bmAttributes = 0x0002 wMaxPacketSize = 0x0010 bInterval = 0x0000 bRefresh = 0x0000 bSynchAddress = 0x0000 Endpoint 1 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0084 bmAttributes = 0x0003 wMaxPacketSize = 0x003f bInterval = 0x0002 bRefresh = 0x0000 bSynchAddress = 0x0000