Difference between revisions of "Huawei E1550 3G modem"

From ArchWiki
Jump to navigation Jump to search
(Created page with '{{i18n|Huawey_E220_E1550_3G_modem}} == Introduction == This article describes how to configure Huawey E220 and E1550 3G modems. This modem is generic modem device, but there a…')
 
m (typos)
 
(49 intermediate revisions by 17 users not shown)
Line 1: Line 1:
{{i18n|Huawey_E220_E1550_3G_modem}}
+
[[Category:Modems]]
 
+
[[ja:Huawei E1550 3G モデム]]
 +
[[ru:USB 3G Modem]]
 
== Introduction ==
 
== Introduction ==
  
This article describes how to configure Huawey E220 and E1550 3G modems.
+
This article describes how to configure Huawei E1550 3G modems.
  
 
This modem is generic modem device, but there are two kludges:
 
This modem is generic modem device, but there are two kludges:
Line 13: Line 14:
 
=== Switch into modem mode ===
 
=== Switch into modem mode ===
  
By default kernel recongnizes it as usb-storage device (SCSI CD-ROM). It is true, because of this modem
+
By default kernel recognizes it as usb-storage device (SCSI CD-ROM). It is true, because of this modem
contains MicroSD card reader.
+
contains MicroSD card (up to 4Gb) reader and internal flash.
  
To switch modem on you shoud run
+
To turn on modem you should run
  /lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd
+
$ /lib/udev/usb_modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd
command. (See also [http://aur.archlinux.org/packages.php?K=usb_modeswitch usb_modeswitch] package in AUR)
+
command.
 +
 
 +
See also the {{Pkg|usb_modeswitch}} package, which you may need in future since in udev-157 modem-modeswitch has been renamed and changed as described in the [http://git.kernel.org/?p=linux/hotplug/udev.git;a=commit;h=4dd9b291354e76f34b0d6d7b5c3b28d03a624418 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
 
Also you can create udev's config: /etc/udev/rules.d/15-huawei-e1550.rules
  SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x1446 --type option-zerocd"
+
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:1003 and /proc/bus/usb/devices shows new USB endpoints.
+
After that, modem changes its USB IDs to 12d1:140c and /proc/bus/usb/devices shows new USB endpoints.
  
 
=== Driver loading ===
 
=== Driver loading ===
  
usbserial is proper driver for this modem, but probably it does not recognize it, so you shold
+
usbserial is proper driver for this modem, but probably it does not recognize it, so you should
 
force it, passing USB IDs.
 
force it, passing USB IDs.
   modprobe usbserial vendor=0x12d1 product=0x1003
+
   # modprobe usbserial vendor=0x12d1 product=0x140c
 
or put options into /etc/modprobe.d/modprobe.conf
 
or put options into /etc/modprobe.d/modprobe.conf
   options usbserial vendor=0x12d1 product=0x1003
+
   options usbserial vendor=0x12d1 product=0x140c
 
(do not forget to 'rmmod usbserial' if it is already loaded before)
 
(do not forget to 'rmmod usbserial' if it is already loaded before)
 +
 +
=== Optional: device naming ===
 +
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 internet ==
 
== Connecting internet ==
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.
 
  
== AT commands ==
+
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.
There are some usefull commands:
+
 
* AT^U2DIAG=0 - disable usb-storage (also changes USB ID to 12d1:1001 and adds third ttyUSB device)
+
{{Note|If you want to use your 3G modem with [[NetworkManager]], you have to install the package {{Pkg|modemmanager}} and then [[restart]] the {{ic|NetworkManager.service}}. Now you can 'Enable Mobile Broadband' in the networkmanager applet.}}
* AT+CUSD=1,<encoded-USSD-code>,15 - USSD request, result can be found (probably) in /dev/ttyUSB2.
+
 
TODO: continue.
+
== Using gammu ==
 +
 
 +
Use {{Pkg|gammu}} to access cell phones functionalities.
 +
 
 +
Edit ~/.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 {{Pkg|wammu}} or {{Pkg|modem-manager-gui}}.
 +
 
 +
== USSD Requests ==
 +
 
 +
Use {{AUR|huawei-ussd}}{{Broken package link|{{aur-mirror|huawei-ussd}}}} package. Or use [https://github.com/gnomeby/ussd ussd.php] tool.
 +
 
 +
== Success Stories ==
 +
2010-August-03: I didn't do anything, I just installed usb_modeswitch-1.1.3-2 and my kernel is 2.6.33. In the syslog (/var/log/messages.log) the usb_modeswitch can automatically configure the modem correctly but I still cannot connect to the internet using gnome network manager applet, then I installed the modemmanager package and restart the networkmanager service. Everything is working properly now.
 +
 
 +
== References ==
 +
* [[USB 3G Modem]]
 +
* [[Huawei E220]]

Latest revision as of 15:29, 11 September 2019

Introduction

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

This modem is generic modem device, but there are two kludges:

  • you need to switch it into modem mode
  • you need to load proper driver (usbserial)

Prepare device

Switch 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

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 /proc/bus/usb/devices shows new USB endpoints.

Driver loading

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

 options usbserial vendor=0x12d1 product=0x140c

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

Optional: device naming

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 internet

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

 [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 wammu or modem-manager-gui.

USSD Requests

Use huawei-ussdAUR[broken link: archived in aur-mirror] package. Or use ussd.php tool.

Success Stories

2010-August-03: I didn't do anything, I just installed usb_modeswitch-1.1.3-2 and my kernel is 2.6.33. In the syslog (/var/log/messages.log) the usb_modeswitch can automatically configure the modem correctly but I still cannot connect to the internet using gnome network manager applet, then I installed the modemmanager package and restart the networkmanager service. Everything is working properly now.

References