Jump to content
From ArchWiki

Related articles

- USB 3G Modem

This article describes how to configure Huawei E1550 3G modems.

## Preparing device

This modem is a generic device, but there are two caveats:

### Switching into modem mode

By default kernel recognizes it as usb-storage device (SCSI CD-ROM). It is true, because of this modem contains MicroSD card (up to 4Gb) reader and internal flash.

To turn on modem you should run

    $ /lib/udev/usb_modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd

command.

See also the usb_modeswitch package, which you may need in future since in udev-157 modem-modeswitch has been renamed and changed as described in the commit. This package does not need any modifications, just install it.

Also you can create udev's config: `/etc/udev/rules.d/15-huawei-e1550.rules`

    /etc/udev/rules.d/15-huawei-e1550.rules

    ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/lib/udev/usb_modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"

After that, modem changes its USB IDs to 12d1:140c and `/sys/bus/usb/devices` shows new USB endpoints.

### Loading the driver

usbserial is proper driver for this modem, but probably it does not recognize it, so you should force it, passing USB IDs.

    # modprobe usbserial vendor=0x12d1 product=0x140c

or put options into `/etc/modprobe.d/modprobe.conf`

    /etc/modprobe.d/modprobe.conf

    ...
    options usbserial vendor=0x12d1 product=0x140c
    ...

(do not forget to `rmmod usbserial` if it is already loaded before)

### Naming the device (optional)

You can generate symlinks to the ttyUSB* ports for a more human readable configuration with udev rules.

For a Huawei device which identifies with the USB ID 12D1:1001 after modeswitching and has 3 serial ports:

     SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_modem"
     SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_diag"
     SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1001*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="02", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_pcui"

For a Huawei device which identifies with the USB ID 12D1:1003 after modeswitching and has 2 serial ports:

     SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1003*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="00", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_modem"
     SUBSYSTEMS=="usb", ATTRS{modalias}=="usb:v12D1p1003*", KERNEL=="ttyUSB*", ATTRS{bInterfaceNumber}=="01", ATTRS{bInterfaceProtocol}=="ff", SYMLINK+="ttyUSB_utps_pcui"

## Connecting to the network

Now you have new 2 or 3 `/dev/ttyUSB*` devices.Most likely first of them (ttyUSB0 if you had not such devices before) is PPP compatible modem. Use it as usual with pppd, kppp, gnome-ppp, network-manager, etc.

Note: If you want to use your 3G modem with NetworkManager, you have to install the package modemmanager and then restart the `NetworkManager.service`. Now you can Enable Mobile Broadband in the networkmanager applet.

## Using gammu

Use gammu to access cell phones functionalities.

Edit `~/.gammurc`

    ~/.gammurc

    [gammu]
    port=/dev/ttyUSB0
    connection=at
    name=huawei e1550
    model=

you can also generate the config using

    $ gammu-detect > ~/.gammurc

Sending SMS:

    $ gammu sendsms TEXT +7123456789 -text qwe

find device info:

    $ gammu identify

for gui use wammuAUR or modem-manager-gui.

## Using Gnome Calls and Chatty

Install purism-chattyAUR and callsAUR to have basic GUI for calls and SMS. gnome-calls also supports using USSD codes in dialer.

## USSD Requests

Use ussd.php tool.

Category:

- Modems