Date: Tue, 03 Dec 2013 21:28:17 +1100 From: Edwin Groothuis - FreeBSD <edwin@freebsd.org> To: freebsd-usb@freebsd.org Subject: Huawei K4606 issues Message-ID: <529DB241.7030203@freebsd.org>
next in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --e91IfGTKCeDB3et3iPwJmwncq9tXgmkse Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello, I am the proud owner of a Huawei K4606 3G USB dongle and guess... It doesn't work. In the past I managed to get the E220 and E169 working, so I thought that this would be possible to. Boy was I wrong :-( The device shows up as: ugen4.2: <K4606 VodafoneHuawei> at usbus4, cfg=3D1 md=3DHOST spd=3DHIGH (480Mbps) pwr=3DON (500mA) bLength =3D 0x0012 bDescriptorType =3D 0x0001 bcdUSB =3D 0x0200 bDeviceClass =3D 0x0000 bDeviceSubClass =3D 0x0000 bDeviceProtocol =3D 0x00ff bMaxPacketSize0 =3D 0x0040 idVendor =3D 0x12d1 idProduct =3D 0x1f19 bcdDevice =3D 0x0102 iManufacturer =3D 0x0005 <Vodafone(Huawei)> iProduct =3D 0x0004 <K4606> iSerialNumber =3D 0x0007 <FFFFFFFFFFFFFFFF> bNumConfigurations =3D 0x0002 I added this to usbdevs: +product HUAWEI K4606 0x1f19 3G modem And this to u3g.c: + U3G_DEV(HUAWEI, K4606, U3GINIT_HUAWEI), (also used U3GINIT_HUAWEISCSI, didn't change) And I added some debug information to u3g.c function u3g_probe: { struct usb_attach_arg *uaa =3D device_get_ivars(self); + printf(">>idVendor:0x%x\n", uaa->info.idVendor); + printf(">>idProduct:0x%x\n", uaa->info.idProduct); + + if (uaa->info.idVendor !=3D USB_VENDOR_HUAWEI) + return (ENXIO); + + printf(">>uaa->info.bInterfaceClass:%d (must be %d)\n", + uaa->info.bInterfaceClass, UICLASS_VENDOR); + printf(">>uaa->info.bConfigIndex:%d (must be %d)\n", + uaa->info.bConfigIndex, U3G_CONFIG_INDEX); + + + printf(">>u3g_probe - 1: usb_mode\n"); if (uaa->usb_mode !=3D USB_MODE_HOST) { return (ENXIO); } + printf(">>u3g_probe - 2: bConfigIndex\n"); if (uaa->info.bConfigIndex !=3D U3G_CONFIG_INDEX) { return (ENXIO); } + printf(">>u3g_probe - 3: bInterfaceClass\n"); if (uaa->info.bInterfaceClass !=3D UICLASS_VENDOR) { return (ENXIO); } + printf(">>u3g_probe - 4: lookup\n"); return (usbd_lookup_id_by_uaa(u3g_devs, sizeof(u3g_devs), uaa)); } When I load the u3g.ko, it shows me that the device gets probed for the right idVendor and idProduct, but that the expected values for bInterfaceClass and bConfigIndex are never matching what is expected and thus the attachment never will be done: Dec 3 20:56:56 t43 root: Unknown USB device: vendor 0x0483 product 0x2016 bus uhub2 Dec 3 20:56:56 t43 kernel: >>u3g_driver_loaded Dec 3 20:56:56 t43 kernel: >>idVendor:0x483 Dec 3 20:56:56 t43 kernel: >>idProduct:0x2016 Dec 3 20:56:56 t43 kernel: >>idVendor:0x12d1 Dec 3 20:56:56 t43 kernel: >>idProduct:0x1f19 Dec 3 20:56:56 t43 kernel: >>uaa->info.bInterfaceClass:2 (must be 255) Dec 3 20:56:56 t43 kernel: >>uaa->info.bConfigIndex:1 (must be 0) Dec 3 20:56:56 t43 kernel: >>u3g_probe - 1: usb_mode Dec 3 20:56:56 t43 kernel: >>u3g_probe - 2: bConfigIndex Dec 3 20:56:56 t43 kernel: >>idVendor:0x12d1 Dec 3 20:56:56 t43 kernel: >>idProduct:0x1f19 Dec 3 20:56:56 t43 kernel: >>uaa->info.bInterfaceClass:10 (must be 255) Dec 3 20:56:56 t43 kernel: >>uaa->info.bConfigIndex:1 (must be 0) Dec 3 20:56:56 t43 kernel: >>u3g_probe - 1: usb_mode Dec 3 20:56:56 t43 kernel: >>u3g_probe - 2: bConfigIndex Dec 3 20:56:56 t43 kernel: >>idVendor:0x12d1 Dec 3 20:56:56 t43 kernel: >>idProduct:0x1f19 Dec 3 20:56:56 t43 kernel: >>uaa->info.bInterfaceClass:2 (must be 255) Dec 3 20:56:56 t43 kernel: >>uaa->info.bConfigIndex:1 (must be 0) Dec 3 20:56:56 t43 kernel: >>u3g_probe - 1: usb_mode Dec 3 20:56:56 t43 kernel: >>u3g_probe - 2: bConfigIndex Dec 3 20:56:56 t43 kernel: >>idVendor:0x12d1 Dec 3 20:56:56 t43 kernel: >>idProduct:0x1f19 Dec 3 20:56:56 t43 kernel: >>uaa->info.bInterfaceClass:10 (must be 255) Dec 3 20:56:56 t43 kernel: >>uaa->info.bConfigIndex:1 (must be 0) Dec 3 20:56:56 t43 kernel: >>u3g_probe - 1: usb_mode Dec 3 20:56:56 t43 kernel: >>u3g_probe - 2: bConfigIndex Dec 3 20:56:56 t43 root: Unknown USB device: vendor 0x12d1 product 0x1f19 bus uhub4 Doing the magic trick of taking out the USB device half-way and let it reinitialize didn't change anything. So, I'm now utterly confused. If anybody can give me a pointer in the right direction, it would be appreciated. Edwin --e91IfGTKCeDB3et3iPwJmwncq9tXgmkse Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCgAGBQJSnbJDAAoJEBHEgofFk7N65bAH/3Z5rRM7cUDs1MLBJ/7UeS2A LeLS9tMWnIpDvM7EAmb/iYuqMgoy+MVnoLj0997karPQ0I9vax4gAKTaih2e5qe2 a06CRNzmJ5Eyzv4SBSpYAHJdk+pfQx4vPcuZS2A7ONt/mncMX059Au3y6dHdDb4V MBau97BA2+UWBX8vNX5hPSMeY4FuaukHnDuD3fwmzuLCYarTmJTopuakL8Ng9GLT YEVjgKGN9oWT6KQXKx3iyUqroWODhKUdYcgoVX3CpsHCfa2gic+D2EhkJ765EVXe Wf5bLjW95/bCOCmHrTHPKaxwAgssYqgc9ixlGc0uWvsd2M3XFTuYNvvw4cceNfc= =Lg1g -----END PGP SIGNATURE----- --e91IfGTKCeDB3et3iPwJmwncq9tXgmkse--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?529DB241.7030203>