I am in London for work, and my hotel wants me to pay £ 17 per day for accessing internet. But I found an internet café which is offering Internet connection on a 3G USB stick for £ 19.99 per week ( reload.com 197 Praed Street, Paddington ). The USB stick is from Three, like the one that can be found here.
When you plug it in, Linux will mount a storage device which contains the drivers for OSX/Windows/Linux. The ones for Linux, of course, do not work: there are some files (zte drivers) precompiled for some version of Fedora, and other stuff which doesn't compile on Ubuntu.
The good news is that you don't need any driver in Linux; just some hacking. The kernel of Ubuntu is built with support of the most common 3G drivers.
Below I explain how to make it work.
Disable the USB storage
When the USB stick is behaving as USB storage it won't work as 3G modem. The first thing to do is to disable that.
Locate the device assigned to the USB stick:
luigi@hal9000:~$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 199024992 113153688 75761392 60% / udev 2018164 296 2017868 1% /dev none 2018164 340 2017824 1% /dev/shm none 2018164 324 2017840 1% /var/run none 2018164 0 2018164 0% /var/lock none 2018164 0 2018164 0% /lib/init/rw /dev/sr1 26330 26330 0 100% /media/3Connect
The 3Connect one is the USB stick, so let's unmount it, to be able - later - to unload the usb_storage kernel module.
luigi@hal9000:~$ sudo eject /dev/sr1 [sudo] password for luigi: *****
now let's unload the usb_storage kernel module.
luigi@hal9000:~$ lsmod | grep usb_storage usb_storage 66016 0 luigi@hal9000:~$ sudo rmmod usb_storage luigi@hal9000:~$ lsmod | grep usb_storage
The first command (lsmod) checks that usb_storage is loaded, and see if there are other modules depending on it. There aren't, so we can remove the module (rmmod command). Last command (lsmod) is to verify that the module is successfully unloaded; if it doesn't display anything means that the usb_storage module is gone, so it's ok!
Load the usbserial kernel module
Now we can load the usbserial kernel module and we can associate that to the USB stick.
First of all, let's check how the module is loaded:
luigi@hal9000:~$ lsmod | grep usbserial usbserial 43248 1 option
We see that there's the "option" module depending on the usbserial, so we need to first unload option then usbserial.
Let's do that with rmmod command.
luigi@hal9000:~$ sudo rmmod option usbserial luigi@hal9000:~$ lsmod | grep usbserial
The lsmod at the end is just to ensure that usbserial is successfully unloaded. This time it should not display anything.
Now we need to know the manufacturer id and the product id of the usb device. Let's do that with lsusb command:
luigi@hal9000:~$ lsusb Bus 004 Device 003: ID 05ac:8213 Apple, Inc. Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp. Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 002: ID 05ac:8507 Apple, Inc. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 003: ID 05ac:0237 Apple, Inc. Bus 003 Device 002: ID 05ac:8242 Apple, Inc. Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 006: ID 19d2:0031 ONDA Communication S.p.A. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Our device is the 19d2:0031 ONDA Communication S.p.A. I found that after some tries, pluggin and unplugging the USB stick and checking the differences printed by lsmod. Notice that if the usb_storage module is active the product id will be different, while the manufacturer id will be the same. The output of lsmod is not very informative and helping to understand the nature of the usb device, unfortunately.
Now we can load the usbserial device specifying the vendor id and product id of the USB stick.
luigi@hal9000:~$ sudo modprobe usbserial vendor=0x19d2 product=0x0031
If there are no error displayed, and the command ends silently, then it means that the module is loaded successfully.
Configuring the 3G connection
Clicking on the NetworkManager we should now be able to see the New Mobile BroadBand (GSM) Connection:
Click on it to configure. It will result in a Wizard dialog that will ask you information to "Set up a Mobile Broadband Connection". In my case I filled following information:
Country: I selected "Britain (UK)" ... I took some time to find it: I was looking for "UK" or "United Kingdom" or "England" or some other name...
Select your provider form a list: 3
Select your plan: Internet
After that, the connection is ready and you should be able to browse the internet. Clicking on the NetworkManager tray icon you'll see that you are now connected through it:
Improving the connection reliability
The connection is quite bad through the 3 network. Sometime you keep being connected but internet stops working. I thought to DNS problem so I set up OpenDNS following these instructions, and now it seems more reliable and usable, but still sometime the connection stops working, and you need to unplug the stick and restart from with the procedure described above.
I don't know why... if somebody knows, please leave a comment.
I'd like to buy a 3G USB Stick or 3G modem; if somebody have some hints on a good supported device, and stable, (easier to set up), please leave a comment.
|« Dec||Apr »|
- Android (3)
- Apple (30)
- Books (7)
- Eclipse (14)
- Errors (5)
- Firefox (7)
- Git (3)
- Hardware (18)
- Horror Code (8)
- Internet (21)
- Java (106)
- Life, universe and everything (45)
- Lifehacks (26)
- Linux (53)
- Opinions (26)
- OSX (11)
- OWNER API (3)
- Python (1)
- Software (35)
- Speeches and Conferences (8)
- Unix (5)
- Web (23)
- Windows (19)
Android apple architecture Bash bsd configuration CSS Development Düsseldorf framework free Git Google Hardware hdr How-To howto Java Karmic library Linux lion MacBook maven opensource Open Source Opinion os x OSX owner owner api patterns Pitfalls Practices properties Software TDD Testing tip tonemapped Tricks Ubuntu unix video Web