[PATCH] hal-info : Support for Option Globetrotter HSDPA Modem

Linus Walleij linus.ml.walleij at gmail.com
Mon Nov 17 15:26:02 PST 2008


I also had an experience with this modem a few days ago, had to return it
due to bad Linux support ...

2008/11/17 Dan Williams <dcbw at redhat.com>:

> just to be clear, this is _without_ any ZeroCD device mounted,

It is. The device is detected by the kernel as a "hso"
http://lxr.linux.no/linux/drivers/net/usb/hso.c

It creates three serial ports /dev/ttyHS{0|1|2}

You can actually find this list of devices in the kernel driver:

/* list of devices we support */
static const struct usb_device_id hso_ids[] = {
        {default_port_device(0x0af0, 0x6711)},
        {default_port_device(0x0af0, 0x6731)},
        {default_port_device(0x0af0, 0x6751)},
        {default_port_device(0x0af0, 0x6771)},
        {default_port_device(0x0af0, 0x6791)},
        {default_port_device(0x0af0, 0x6811)},
        {default_port_device(0x0af0, 0x6911)},
        {default_port_device(0x0af0, 0x6951)},
        {default_port_device(0x0af0, 0x6971)},
        {default_port_device(0x0af0, 0x7011)},
        {default_port_device(0x0af0, 0x7031)},
        {default_port_device(0x0af0, 0x7051)},
        {default_port_device(0x0af0, 0x7071)},
        {default_port_device(0x0af0, 0x7111)},
        {default_port_device(0x0af0, 0x7211)},
        {default_port_device(0x0af0, 0x7251)},
        {default_port_device(0x0af0, 0x7271)},
        {default_port_device(0x0af0, 0x7311)},
        {default_port_device(0x0af0, 0xc031)},  /* Icon-Edge */
        {icon321_port_device(0x0af0, 0xd013)},  /* Module HSxPA */
        {icon321_port_device(0x0af0, 0xd031)},  /* Icon-321 */
        {icon321_port_device(0x0af0, 0xd033)},  /* Icon-322 */
        {USB_DEVICE(0x0af0, 0x7301)},           /* GE40x */
        {USB_DEVICE(0x0af0, 0x7361)},           /* GE40x */
        {USB_DEVICE(0x0af0, 0x7401)},           /* GI 0401 */
        {USB_DEVICE(0x0af0, 0x7501)},           /* GTM 382 */
        {USB_DEVICE(0x0af0, 0x7601)},           /* GE40x */
        {}
};

All of them should have identical entries then. But can't we just detect
use of the "hso" kernel module instead?? (Not that I'm all into how
HAL does this kind of stuff...)

> if this modem does ZeroCD?  A few of the option devices will act like a CD when
> you first plug them in, until you send the SCSI rezero command to them.

Rezero is a tool from the vendor I think, and it has to be installed in parallel
in order to switch from USB Mass Storage to "HSO" mode. It is called from
udev directly in the examples I've seen, and the sample udev.rules for
it only cover a few devices.

It switches the mode of the modem from USB Mass Storage to "next" mode
by issuing an SCSI command 01, "REZERO" (as in the name of the tool).

The more generic tool usb_modeswitch tries to do the same thing for a wide
range of devices:
http://www.draisberghof.de/usb_modeswitch/
However this utility does *not* use the SCSI REZERO command, it's using
libusb:s ability to unload the kernel module in Linux instead. This
appear to have the same effect but (my intuitive interpretation) has been
reported to be less stable.

That package also require manual configuration of the device to
be modeswitched. (Hm, could be fixed, sadly I'm not going down that
road.)

I think a lot of distros need to fix these modems, shaping up the
rezero utility and calling it apropriately from udev to modeswitch
and then have HAL detect it through the kernel module "hso" should be
the way forward I believe. But that's just me.

> We need the dump from when you can actually use the modem.  Let me know.

What you see should be it.

In USB mass storage mode, it presents as a common such device, no
custom interfaces and mounts fine.

Yours,
Linus Walleij


More information about the hal mailing list