3G USB Modems under Crouton

A few weeks back I blogged on how to get Ubuntu installed through Crouton on a Chromebook. One of the biggest challenges I faced in setup was getting a USB 3G Modem to work. Below are my notes on how I managed to succeed.

The first step in getting the modem to work is sorting out usbmodeswitch, without usbmodeswitch when I initially plug in the modem it appears as a cd-rom. On a terminal if you enter lsusb the output contains:

Bus 002 Device 003: ID 12d1:1446 Huawei Technologies Co., Ltd. E1552/E1800 (HSPA modem)

While the USB Modem is in cd-rom mode it will not operate as a modem.

To get the modeswitch to work udevd needs to be running. This can be done manually by entering:

sudo udevd --daemon

Now entering lsusb results in an output containing:

Bus 002 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd.

This means that the device is now acting as a modem.

The next thing to do is configuring the settings for dialing a connection.

In a terminal edit /etc/wvdial.conf

My settings for Virgin Mobile Broadband in Australia are:

[Dialer Defaults]
Dial Command = ATDT
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = USB Modem
Phone = *99#
ISDN = 0
Password = guest
New PPPD = yes
Username = guest
Modem = /dev/ttyUSB0
Baud = 460800
Init3 = AT+CGDCONT=1,"IP","VirginBroadband"
Stupid Mode = yes
Auto DNS = On
Auto Reconnect = Off

Additionally for my ISP chap is not supported as a connection option. To disable chap in /etc/ppp/options find the line that contains:

-chap

and remove the # symbol from in front of the line.

You may need to verify and change these settings relative to your own ISPs settings.

To now connect to the internet in a terminal window enter:

sudo wvdial

This should now dial through to the ISP. However, DNS settings may not be set correctly. If this is the case then edit /etc/resolv.conf and replace the contents with:

nameserver 8.8.8.8

Once you are connected to the network you can disconnect by entering:

sudo poff

Finally, udevd doesn’t start automatically under Crouton. So if you want it to autostart edit /etc/rc.local and add udevd --daemon before exit 0