# [HOWTO] Tre HiSpeed 3G with Huawei E220 USB Modem

## xanthax

Oki, i have read a a shitload of howto´s and never got the complete story so now to let other people off a bit easier i write this quick guide...

[EDIT]

This should of cause work with ANY 3G operator that uses Huawei E220.

You just have to change your "Phone" number and APN.

[/EDIT]

First of all you need to get the USB device identified by your computer and to do that wee need to modify our drivers a bit.

This is no less then the "Airprime" module. (Yes i know you can use the "usbserial" to but not with full speed compability)

So lets open the "/usr/src/linux/drivers/usb/serial/airprime.c" and se

Now look for this line:

```

static struct usb_device_id id_table [] = {

```

below you will se lines like this:

```

        { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */

```

Now add the folowing line right below the static struct line:

```

        { USB_DEVICE(0x12d1, 0x1003) }, /* Huawei E220 */

```

So the two first lines in "airprime.c" starting from the "static struct" line will look like this:

```

static struct usb_device_id id_table [] = {

        { USB_DEVICE(0x12d1, 0x1003) }, /* Huawei E220 */

```

Now save it and enter kernel config by doing the following:

```

~ # cd /usr/src/linux

linux # make menuconfig

```

Now youhave to add support for you device as a module, So you have to add the following to you kernel.

```

Device Drivers  --->

 USB support  --->

  USB Serial Converter support  --->

   <M> USB Serial Converter support

    [*]   USB Generic Serial Driver

    <M>   USB AirPrime CDMA Wireless Driver

```

Now exit saving changes and recompile your kernel by doing:

```

make && make modules_install

```

Now you have you module complete and if you shouldnt havae to restart your computer unless it´s a new version on your new kernel.

So now you can load your module by doing like this.

```

modeprobe airprime

```

Now you should be able to see your new device in /dev, it´s full path is /dev/ttyUSB0.

So now to the connection part....

First we need a program to actually handle the "modem" connection, i choose wvdial.

so compile in wvdial and then continue.

Now we have to create a wvdial config file with all the right options and stuff so i do it the easiest way, i´ll let you have mine  :Wink: 

```

[Dialer Defaults]

Stupid Mode = 1

Modem = /dev/ttyUSB0

Modem Type = Analog Modem

Dial Command = ATDT

ISDN = 0

Baud = 460800

Phone = *99*data.tre.se#

Username = user

Password = pass

[Dialer PIN]

Init1 = AT+CPIN=XXXX

[Dialer PINOFF]

Init1 = AT+CLCK="SC",0,"XXXX"

[Dialer PINON]

Init1 = AT+CLCK="SC",1,"XXXX"

[Dialer 3G]

Init2 = ATZ

Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

```

(DON´T FORGET TO REPLACE THE XXXX WITH YOUR OWN PIN CODE)

And when you have saved that one you should only have to start the program by doing this:

```

wvdial PIN 3G

```

(YOU ONLY USE THE "PIN" PARAMETER THE FIRST TIME TO ACCESS THE MODEM)

So nex time if no computer restart or unplugging of the modem has been done u just use this:

```

wvdial 3G

```

If that dosen´t work you could try the old version of connecting.

This is just another way to make the connection wich they used to use.

So here comes my old config:

```

[Dialer Defaults]

Stupid Mode = 1

Modem = /dev/ttyUSB0

Modem Type = Analog Modem

Dial Command = ATDT

ISDN = 0

Baud = 460800

Phone = *99#

Username = user

Password = pass

[Dialer PIN]

Init1 = AT+CPIN=XXXX

[Dialer PINOFF]

Init1 = AT+CLCK="SC",0,"XXXX"

[Dialer PINON]

Init1 = AT+CLCK="SC",1,"XXXX"

[Dialer 3G]

Init2 = ATZ

Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

[Dialer DATA]

Init4 = AT+CGDCONT=1,"IP","data.tre.se"

```

(DON´T FORGET TO REPLACE THE XXXX WITH YOUR OWN PIN CODE)

And the command to use this version of conf is this:

```

wvdial PIN 3G DATA

```

Or if it´s not the first time:

```

wvdial 3G DATA

```

The only diffrerens is as i said how you connects, so here is an explanation.

Phone is more or less the number you dial, so with the "new" config you connect by specifying all you need in you "number" like this.

*99*APN*LinkProtocol*CID#

Ex: Phone = *99*data.tre.se#

Or: Phone = *99*data.tre.se*IP*1#    <-- is exactly the same as old version with another command.

In the "old" config you specify evetrything in a "Define PDP Context" command known as AT+CGDCONT like this

AT+CGDCONT=CID,"LinkProtocol","APN"

Ex: AT+CGDCONT=1,"IP","data.tre.se"

This link explains AT+CGDCONT and GPRS AT commands abit more:

http://www.phonestar.com.my/s_at_10.html

If you wanna permanently turn you pin off you cand do so by executing the following command:

```

wvdial PINOFF

```

And to turn it on just type:

```

wvdial PINON

```

And USERNAME and PASSWORD is not important so just leave them be.

So just for your information:

At least my operator TRE has multiple APN´s wich is the "data.tre.se" part, you can use any of them and i can give you two here

[list=]

APN1: data.tre.se

APN2: bredband.tre.se

[/list]

And if you know any more or maybe some for another provider please post them here.

Hope you have som use of this, and happy halloween ehh or something.....

//XanthaX

----------

## newbenji

Getting this

Ps i live in Denmark

wvdial

WvDial<*1>: WvDial: Internet dialer version 1.56

WvDial<*1>: Initializing modem.

WvDial<*1>: Sending: ATZ

WvDial Modem<*1>: ATZ

WvDial Modem<*1>: OK

WvDial<*1>: Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

WvDial Modem<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

WvDial Modem<*1>: OK

WvDial<*1>: Sending: AT+CGDCONT=1,"IP","data.tre.dk"

WvDial Modem<*1>: AT+CGDCONT=1,"IP","data.tre.dk"

WvDial Modem<*1>: OK

WvDial<*1>: Modem initialized.

WvDial<*1>: Sending: ATDT*99*data.tre.dk#

WvDial<*1>: Waiting for carrier.

WvDial Modem<*1>: ATDT*99*data.tre.dk#

WvDial Modem<*1>: CONNECT

WvDial<*1>: Carrier detected.  Waiting for prompt.

----------

## xanthax

Have you tried the older version ? (old config and "wvdial 3G DATA")

As i said in the tutorial some of the providers dont support the newer method...

----------

## newbenji

pppd[24136]: pppd 2.4.4 started by root, uid 0

 pppd[24136]: Couldn't set tty to PPP discipline: Invalid argument

 pppd[24136]: Exit.

this was my error now

----------

## tekknokrat

@xanthax 

did you tried with the usbserial solution before?

I have mine running with this howto but dont like the solution because I need

to start pppd config twice and the udev script doesnt run very well. 

Don't you have problems with the usb-storage initial state of device using this driver?

What do you mean with full speed of usbserial driver?

I have this speed ( got it from shitty german web speed test )

===============================================

DSL Speedtest http://www.speedreport.de

Download-Speed: 26 kb/s (204 kbit/s)

Upload: 20 kb/s (156 kbit/s)

Ping: 0,27 ms

measurement on 07.08.2007 at 14:14:29 o clock

===============================================

I want to try your solution too but don't want to struggle (again) with these usb_storage problems...

----------

## jpl888

tekknokrat 

To try and answer your questions.

I think the "option" serial driver is actually the one to use. If you look at the help for that driver it lists Huawei as one of the manufacturers it supports. Having tried the Generic, Airprime and Option drivers, the Generic one doesn't support the full speed of the e220 (somebody told me the e220 will go up to 14Mbps, obviously the network has to support that). The only discernable differences I can make out between Airprime and Option are Airprime creates more /dev/ttyUSBx's and doesn't run as smoothly (at least for me anyway).

If you are using a new enough kernel (2.6.20 or above) you won't have issues with usb-storage.

For completeness here are the relevant sections of my kernel config and /etc/conf.d/net:-

```
  │ │    <*>   PPP (point-to-point protocol) support                      │ │  

  │ │    [ ]     PPP multilink support (EXPERIMENTAL)                     │ │  

  │ │    [ ]     PPP filtering                                            │ │  

  │ │    <*>     PPP support for async serial ports                       │ │  

  │ │    < >     PPP support for sync tty ports                           │ │  

  │ │    < >     PPP Deflate compression                                  │ │  

  │ │    < >     PPP BSD-Compress compression                             │ │  

  │ │    < >     PPP MPPE compression (encryption) (EXPERIMENTAL)         │ │  

  │ │    < >     PPP over Ethernet (EXPERIMENTAL)

  │ │            <*> USB Serial Converter support                                                  │ │  

  │ │            [ ]   USB Serial Console device support (EXPERIMENTAL)                            │ │  

  │ │            [ ]   USB Generic Serial Driver                                                   │ │  

  │ │            < >   USB AIRcable Bluetooth Dongle Driver (EXPERIMENTAL)                         │ │  

  │ │            < >   USB AirPrime CDMA Wireless Driver                                           │ │  

  │ │            < >   USB ARK Micro 3116 USB Serial Driver (EXPERIMENTAL)                         │ │  

  │ │            < >   USB Belkin and Peracom Single Port Serial Driver                            │ │  

  │ │            < >   USB ConnectTech WhiteHEAT Serial Driver                                     │ │  

  │ │            < >   USB Digi International AccelePort USB Serial Driver                         │ │  

  │ │            < >   USB CP2101 UART Bridge Controller                                           │ │  

  │ │            < >   USB Cypress M8 USB Serial Driver                                            │ │  

  │ │            < >   USB Empeg empeg-car Mark I/II Driver                                        │ │  

  │ │            < >   USB FTDI Single Port Serial Driver (EXPERIMENTAL)                           │ │  

  │ │            < >   USB Fundamental Software Dongle Driver                                      │ │  

  │ │            < >   USB Handspring Visor / Palm m50x / Sony Clie Driver                         │ │  

  │ │            < >   USB PocketPC PDA Driver                                                     │ │  

  │ │            < >   USB IR Dongle Serial Driver (EXPERIMENTAL)                                  │ │  

  │ │            < >   USB Inside Out Edgeport Serial Driver                                       │ │  

  │ │            < >   USB Inside Out Edgeport Serial Driver (TI devices)                          │ │  

  │ │            < >   USB Garmin GPS driver                                                       │ │  

  │ │            < >   USB IPWireless (3G UMTS TDD) Driver (EXPERIMENTAL)                          │ │  

  │ │            < >   USB Keyspan PDA Single Port Serial Driver                                   │ │  

  │ │            < >   USB Keyspan USA-xxx Serial Driver                                           │ │  

  │ │            < >   USB KL5KUSB105 (Palmconnect) Driver (EXPERIMENTAL)                          │ │  

  │ │            < >   USB KOBIL chipcard reader                                                   │ │  

  │ │            < >   USB MCT Single Port Serial Driver                                           │ │  

  │ │            < >   USB Moschip 7720 Serial Driver                                              │ │  

  │ │            < >   USB Moschip 7840/7820 USB Serial Driver                                     │ │  

  │ │            < >   USB Navman GPS device                                                       │ │  

  │ │            < >   USB Prolific 2303 Single Port Serial Driver                                 │ │ 

  │ │            < >   USB HP4x Calculators support                                                │ │  

  │ │            < >   USB Safe Serial (Encapsulated) Driver (EXPERIMENTAL)                        │ │  

  │ │            < >   USB Sierra Wireless Driver                                                  │ │  

  │ │            < >   USB TI 3410/5052 Serial Driver                                              │ │  

  │ │            < >   USB REINER SCT cyberJack pinpad/e-com chipcard reader (EXPERIMENTAL)        │ │  

  │ │            < >   USB Xircom / Entregra Single Port Serial Driver                             │ │  

  │ │            <*>   USB driver for GSM and CDMA modems                                          │ │  

  │ │            < >   USB ZyXEL omni.net LCD Plus Driver (EXPERIMENTAL)                           │ │  

  │ │            < >   USB Debugging Device                                                        │ │  

```

```

#-----------------------------------------------------------------------------

# PPP

# For PPP support, emerge net-dialup/ppp

# PPP is used for most dialup connections, including ADSL.

# The older ADSL module is documented below, but you are encouraged to try

# this module first.

# 

# You need to create the PPP net script yourself. Make it like so

#ln -s net.lo /etc/init.d/net.ppp0

# 

# We have to instruct ppp0 to actually use ppp

config_ppp0=( "ppp" )

# 

# Each PPP interface requires an interface to use as a "Link"

link_ppp0="/dev/ttyUSB0"                # Most PPP links will use a serial port

#link_ppp0="eth0"                       # PPPoE requires an ethernet interface

#link_ppp0="[itf.]vpi.vci"              # PPPoA requires the ATM VC's address

#link_ppp0="/dev/null"                  # ISDN links should have this

#link_ppp0="pty 'your_link_command'"    # PPP links over ssh, rsh, etc

# 

# Here you should specify what pppd plugins you want to use

# Available plugins are: pppoe, pppoa, capi, dhcpc, minconn, radius,

#                        radattr, radrealms and winbind

#plugins_ppp0=(

#       "pppoe"                         # Required plugin for PPPoE

#       "pppoa vc-encaps"               # Required plugin for PPPoA with an option

#       "capi"                          # Required plugin for ISDN

#)

# 

# PPP requires at least a username. You can optionally set a password here too

# If you don't, then it will use the password specified in /etc/ppp/*-secrets

# against the specified username

username_ppp0='user'

#password_ppp0='password'

# NOTE: You can set a blank password like so

#password_ppp0=

#

# The PPP daemon has many options you can specify - although there are many

# and may seem daunting, it is recommended that you read the pppd man page

# before enabling any of them

pppd_ppp0=(

#       "maxfail 0"     # WARNING: It's not recommended you use this

#                       # if you don't specify maxfail then we assume 0

#       "updetach"      # If not set, "/etc/init.d/net.ppp0 start" will return

#                       # immediately,  without waiting the link to come up

#                       # for the first time.

#                       # Do not use it for dial-on-demand links!

#       "debug"         # Enables syslog debugging

        "noauth"        # Do not require the peer to authenticate itself

        "defaultroute"  # Make this PPP interface the default route

        "persist"

#       "usepeerdns"    # Use the DNS settings provided by PPP

# 

# On demand options

#       "demand"                # Enable dial on demand

#       "idle 30"               # Link goes down after 30 seconds of inactivity

#       "10.112.112.112:10.112.112.113" # Phony IP addresses

        "ipcp-accept-remote"    # Accept the peers idea of remote address

        "ipcp-accept-local"     # Accept the peers idea of local address

        "holdoff 1"     # Wait 3 seconds after link dies before re-starting

# 

# Dead peer detection

        "lcp-echo-interval 3"   # Send a LCP echo every 15 seconds

        "lcp-echo-failure 1"    # Make peer dead after 3 consective

#                               # echo-requests

#       

# Compression options - use these to completely disable compression

#       noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp

#              

# Dial-up settings

        "lock"                          # Lock serial port

#       "460800"                        # Set the serial port baud rate

        "modem crtscts"                 # Enable hardware flow control

#       "192.168.0.1:192.168.0.2"       # Local and remote IP addresses

) 

# 

# Dial-up PPP users need to specify at least one telephone number

phone_number_ppp0=( "*99#" ) # Maximum 2 phone numbers are supported

# They will also need a chat script - here's a good one

chat_ppp0=(

        'ABORT' 'BUSY'

        'ABORT' 'VOICE'

        'ABORT' 'NO CARRIER'

        'ABORT' 'NO DIALTONE'

        'ABORT' 'NO DIAL TONE'

        ''      'ATZ'

        'OK'    'ATE0V1&D2&C1S0=0+IFC=2,2'

        'OK'    'AT+CGDCONT=1,"IP","3ireland.ie"'

        'OK'    'ATDT*99#'

        'CONNECT' ''

#       'ABORT' 'Invalid Login'

#       'ABORT' 'Login incorrect'

#       'TIMEOUT' '5'

#       '' 'ATZ'

#       'OK' 'AT' # Put your modem initialization string here

#       'OK' 'ATDT\T'

#       'TIMEOUT' '60'

#       'CONNECT' ''

#       'TIMEOUT' '5'

#       '~--' ''

) 

```

Obviously you will need to put the correct apn information in the chat script and possibly username and password for pppd to use (my settings are for 3Ireland). You should also disable the pin on the sim using your mobile phone (mine came disabled).

In short you should have little problem getting this working without any hacks and full Gentoo init script support. I get bursts of upto 2Mbps but I have never had the full 3.6 that my ISP advertises. I don't know whether that is a limitation of the network conditions here or the option driver. But hey it works and is reliable enough.

----------

## tekknokrat

Hi jpl888,

thanks for posting your config and answering my questions.

I was unsure if options is the right way to go when I first saw xanthax post with airprime driver. 

I am using option all the time and have some issues also with newer kernel 

```
Linux gentoo 2.6.21-suspend2-r7 #1 SMP Wed Sep 19 21:50:00 CEST 2007 i686 AMD Opteron(tm) Processor 146 AuthenticAMD GNU/Linux
```

```
Linux gentoo 2.6.20-suspend2-r6 #1 SMP Wed Sep 19 21:50:00 CEST 2007 i686 AMD Opteron(tm) Processor 146 AuthenticAMD GNU/Linux
```

I have an udev script from https://forums.gentoo.org/viewtopic-t-523964-highlight-huawei.html running for connection.

Did your modem runs out of the box without doing some of these steps?

For me on bootup with 2.6.21 only one /dev/ttyUSBx entry appears. pppd daemon than refuses to work. I need to use a active usb-cable extension (active means it is identified as hub via kernel) because without having modem near my window I only get fallback to gprs.

Yesterday, I had some interruption when connected via utms. dmesg says 

 *Quote:*   

> Sep 19 17:31:09 gentoo usb 1-5.1: USB disconnect, address 5
> 
> 

  -> Is this usb or modem related?

The options driver also states to try the FTDI driver if not working correct, didn't tried that,yet.

EDIT: I have only speed of a max. 691 kbit/s (86 kByte/s) KB/sec. do I have some possibility in speed control? I commented the 460800 out of the chapscript.

----------

## jpl888

My kernel is:-

```

Linux tux 2.6.22-gentoo-r5 #18 Wed Sep 19 14:24:35 IST 2007 x86_64 AMD Turion(tm) 64 Mobile Technology MK-38 AuthenticAMD GNU/Linux

```

When I first installed the laptop it had 2.6.21-gentoo-r4.

I don't use any special udev script to create the device nodes maybe that is where you are going wrong, perhaps you should delete your udev config and re-emerge it? Other than using the correct kernel config and /etc/conf.d/net I don't think I did anything else special. I can do the setup again from scratch on another machine if that would make you feel better.

My dmesg says:-

```
usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0

usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1

```

when the e220 is attached. I have 2 cables one very short another a few feet long with 2 connectors on. Works with both but use the longer cable in the hope I get better connection.

Your disconnect problems are USB related I suspect (unless the modem is faulty).

The speed your are describing certainly isn't unusual for me, but it does burst higher regularly, I would suggest that your local network conditions are responsible. Still at 86k per second its still much better than dial up or ISDN. 

AFAIK there is no way to control the speed and the modem is adaptive trying to get the best connection possible.

----------

## tekknokrat

jpl888 wrote:

 *Quote:*   

> Your disconnect problems are USB related I suspect (unless the modem is faulty). 

 

You're right. 

I have found this thread related to my problem and I am know thinking about changing usb onboard against an usb 2.0 pci card.

your also right, for me currently under 

```
Linux gentoo 2.6.21-suspend2-r7 #3 SMP Thu Sep 20 14:07:19 CEST 2007 i686 AMD Opteron(tm) Processor 146 AuthenticAMD GNU/Linux
```

initialisation works (on boot) without the udev script. It needs some more restart / replug tests to see if it (modem initialisation) is stable.

----------

## jpl888

 *tekknokrat wrote:*   

> 
> 
> You're right. 
> 
> 

 

Being right was bound to happen sooner or later. Kind of like the theoretical monkeys eventually creating the works of Shakespeare if you give them long enough  :Wink: 

I am basking in the glory as I write this ... bask.

Right enough basking now back to being wrong!

BTW I think that Schopenhaur quote is spot on, my take on it would be "It's never as easy as you think it will be"

----------

## jpl888

FYI I happened to see the short log for the last RC of 2.6.23  *Quote:*   

> Jaime Velasco Juan (1):
> 
>       USB: option: Add a new device ID for the HUAWEI E220 HSDPA modem.

 

The kernel guys think the option driver is the right one to use too!

----------

## tekknokrat

The tests with another usb card yesterday gets awkward. 

I change kernel back to gentoo-soruces, currently using suspend2 on all my boxes but it has no features for my old opteron 146, only keeping consistence.

Obviosly I have to say more "thanks, that has done the trick" instead of "you're right"   :Wink: 

Your catch with schopenhaur is right ( oh I did it again ) - spending days easily, with one! problem gives you a real feeling of what is the meaning of easy.

----------

## jpl888

 *Quote:*   

> Your catch with schopenhaur is right ( oh I did it again ) - spending days easily, with one! problem gives you a real feeling of what is the meaning of easy.

 

Yes but then you know much more about how these yokes work now than if it had been easy. The amount you get out is directly proportional to the amount you put in.

I have some more tips which may or may not improve your experience, these may just be 3 Ireland specific but I would imagine they configure HSDPA networks in much the same way in different countries.

1. You can bypass the transparent proxy (which may be crap) on [Insert your provider here]'s HSDPA network by getting an IPV6 address and tunnel. For instance in Europe from www.sixxs.net

2. Don't use the DNS servers provided by the ISP instead use OpenDNS or something like that (these servers seem to be more reliable at least).

3. If you need a public IP (and you can't use your IPV6 address) and you have access to a customer/friend's DSL connection, you can create a VPN using OpenVPN and route relevant incoming traffic to your machine through the VPN tunnel using policy routing (I haven't done this yet, although I know it is possible).

To give an example use of 3. for some reason I cannot send out large emails, the connection breaks in the middle of sending and times out, so what I did yesterday was tell OpenVPN to route all traffic and sent the email through that. The VPN seems to be much better at recovering from an unstable link than bog standard tcp/ip.

----------

## tekknokrat

 *Quote:*   

> Yes but then you know much more about how these yokes work now than if it had been easy. The amount you get out is directly proportional to the amount you put in.
> 
> 

 

apart, if you're doing the same thing over and over - like compiling "option" in kernel, as modules "usb_storage" in kernel or as modules whole uhci,ohci,ehci in kernel as option in the hope that these disconnects will went over.

The effort done is not worth to ( beside you're as internet addicted as me ) . The look in the kernel changelog from your side was way more faster    :Very Happy: 

 *Quote:*   

> 1. You can bypass the transparent proxy

 

my chatscript looks:

```
ABORT BUSY

ABORT 'NO CARRIER'

ABORT VOICE

ABORT 'NO DIALTONE'

ABORT 'NO DIAL TONE'

ABORT 'NO ANSWER'

ABORT DELAYED

# modeminit

'' ATZ

ABORT 'NO CARRIER'

ABORT ERROR

REPORT CONNECT

TIMEOUT 10

OK AT+CPIN? READY-AT+CPIN=<DOYOUNEEDTHIS?>-OK ""

TIMEOUT 20

'' 'AT+cgdcont=1,"IP","Internet.eplus.de"' OK "ATDT*99***1#"  -> is this APN? Internet.eplus.de

SAY "Calling Base Internet Flatrate\n"

TIMEOUT 60

CONNECT \d\c

```

 *Quote:*   

> 2. Don't use the DNS servers

 

I know that provider based are not usable from other internet connections. Have to get on universal for both dsl / umts here than also manually edit resolv.conf will come to an end.

 *Quote:*   

> 3. If you need a public IP

 

Hm, ok I understand that tunneling (includes vpn) sometimes is better for stability of connection, I used to access my box through http tunnel with ssh out of my old company. But for clarifying: public IP did work for incoming umts / gprs or is there some hitch?

Did you already tried to play with MTU Settings?

I also wonder if this is possible. Would have a need for stress testing the connection as the modem one day will become my customers one...

----------

## tekknokrat

test with 2.6.23-rc7 (vanilla-sources) when plug in the modem afterwards booting:

```
Sep 22 11:37:12 gentoo usb 1-6.1: new full speed USB device using ehci_hcd and address 10

Sep 22 11:37:12 gentoo usb 1-6.1: configuration #1 chosen from 1 choice

Sep 22 11:37:12 gentoo scsi5 : SCSI emulation for USB Mass Storage devices

Sep 22 11:37:12 gentoo usb-storage: device found at 10

Sep 22 11:37:12 gentoo usb-storage: waiting for device to settle before scanning

Sep 22 11:37:17 gentoo scsi 5:0:0:0: CD-ROM            HUAWEI   Mass Storage     2.31 PQ: 0 ANSI: 2

Sep 22 11:37:17 gentoo sr1: scsi-1 drive

Sep 22 11:37:17 gentoo sr 5:0:0:0: Attached scsi CD-ROM sr1

Sep 22 11:37:17 gentoo sr 5:0:0:0: Attached scsi generic sg2 type 5

Sep 22 11:37:17 gentoo usb-storage: device scan complete

```

*argh* at least i thought that would work now.

----------

## xanthax

OK, Here it has been som activity while i have been gone...

I see jpl888 and tekknokrat has found a few solutions to some of the problems.

Still at the time when i did my install Airprime where the only driver that included high speed connection which usb-serial didnt as "Standard".

You could remove a buffer max size in the driver but that didnt work for me so Airprime was the only real way to use it then if you wanted to get any good speed.

But now it seems that the usb-serial driver worked just fine, but there is still things about the 3G network like response time, dips and much more that makes it worthless as a replacement for ADSL or Cabel connections... 

So unless you ONLY use it for surfing and email stick to a wired connection.

And thanks to "jpl888" and "tekknokrat" for picking up where i left of...

//XanthaX

----------

