[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: usb hsdpa modem only detected after using it on windows



Hi,

Umarzuki Mochlis <umarzuki@gmail.com> writes:
> 2009/8/16, Raja R Harinath <harinath@hurrynot.org>:
>> Umarzuki Mochlis <umarzuki@gmail.com> writes:
>>> the modem is Huawei E1762 which is provided by local ISP when registering
>>> for their wireless broadband service.
>>>
>>> this modem, weirdly, can only be detected when i used it recently from
>>> windows xp, while the device still connected into the usb port, reboot
>>> into debian, then it will be
>>> detected and can be used with Vodafone Mobile Connect Card driver for
>>> Linux
>>>
>>> detected as usb storage
>>> Bus 005 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd.
>>>
>>> detected as modem
>>> Bus 005 Device 003: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA
>>> Modem / E270 HSDPA/HSUPA Modem
>>
>> This looks like an USB device that carries its Windows drivers on it.
>> When you first plug it in, it appears as a USB storage device with the
>> driver in it.  After the Windows driver is installed, it pokes the
>> device to make the modem interface appear.
>>
>> Now, on Linux, the modem interface, 0x1003, is supported by the option.c
>> driver.  So, the trick is to add a quirk to the USB storage driver to
>> handle the poking.  It appears there already are similar devices, and
>> there already is code in the kernel to handle the poking of the device,
>> etc.

To clarify this point -- once the interface is visible to Linux, the
device works with the existing drivers you already have.

>> You'll probably need to patch the drivers/usb/storage/unusual_devs.h
>> file in the kernel to add a para that looks like:
>>
>>   UNUSUAL_DEV(  0x12d1, 0x1446, 0x0000, 0x0000,
>>                 "HUAWEI MOBILE",
>>                 "Mass Storage",
>>                 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
>>                 0),
>>
>> and recompile.  Unfortunately, the usbstorage 'quirk=...' option doesn't
>> appear to be able to handle this kind of quirk.
>
> i could not find any option.c 

It doesn't matter :-)  You probably have the option.ko kernel module.

> or unusual_devs.h on my machine, what sould i do next?

I wasn't too clear above.  You need to get a copy of the kernel source,
patch it, compile it, and install it.

However, it might be much much easier to follow the suggestion
elsethread: install the 'usb-modeswitch' package, and add a line:

  SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="1446", RUN+="/usr/sbin/usb_modeswitch --default-vendor 0x12d1 --default-product 0x1446 --target-vender 0x12d1 --target-product 0x1003 --huawei-mode --detach-storage-only "

to /etc/udev/rules.d/usb_modeswitch.rules

- Hari


Reply to: