, Johann Schmitz

Here is a quick guide on how to get the o2 Prepaid Surfstick running under Gentoo Linux (or other distros).

To get the modem running, you need a few kernel settings:

Device Drivers  --->
    [*] Network device support  --->
        <*>   PPP (point-to-point protocol) support
        [*]     PPP filtering
        <*>     PPP support for async serial ports
        <*>     PPP support for sync tty ports
        <*>     PPP Deflate compression 
        <*>     PPP BSD-Compress compression
    [*] USB support  --->
        <*>   USB Serial Converter support  --->
            [*]   USB Serial Console device support 
            <*>   USB driver for GSM and CDMA modems

When plugging in, the stick shows up in dmesg with its USB memory or MicroSD card memory:

[ 1967.469023] usb 1-1.5: udev 8, busnum 1, minor = 7
[ 1967.469028] usb 1-1.5: New USB device found, idVendor=19d2, idProduct=0117
[ 1967.469032] usb 1-1.5: New USB device strings: Mfr=3, Product=2, SerialNumber=4
[ 1967.469036] usb 1-1.5: Product: ZTE WCDMA Technologies MSM
[ 1967.469039] usb 1-1.5: Manufacturer: ZTE,Incorporated
....
[ 1968.474145] scsi 13:0:0:0: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
[ 1968.474467] sd 13:0:0:0: Attached scsi generic sg4 type 0
[ 1968.477376] sd 13:0:0:0: [sde] 121088 512-byte logical blocks: (61.9 MB/59.1 MiB)
[ 1968.478128] sd 13:0:0:0: [sde] Write Protect is off
[ 1968.478134] sd 13:0:0:0: [sde] Mode Sense: 0f 0e 00 00
[ 1968.478138] sd 13:0:0:0: [sde] Assuming drive cache: write through
[ 1968.480956] sd 13:0:0:0: [sde] Assuming drive cache: write through
[ 1968.480963]  sde: sde1
[ 1968.486096] sd 13:0:0:0: [sde] Assuming drive cache: write through
[ 1968.486102] sd 13:0:0:0: [sde] Attached SCSI removable disk

To "see" the modem, you have to issue an usb_modeswitch (sys-apps/usb_modeswitch) command:

usb_modeswitch -R -W -v <VendorID> -p <ProductID>

You can find the vendor and product id in the dmesg output. After executing the usb_modeswitch command, udev creates some the modem devices (/dev/ttyUSB*). The device names may differ if you have other serial hardware in use.

I use net-dialup/wvdial to create a session to my provider o2 (which in turn uses net-dialup/ppp to create a ppp tunnel). After emerging wvdial use wvdialconf to create a stub configuration for wvdial. Now, edit the /etc/wvdial.conf:

[Dialer o2]
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
ISDN = 0
Username = surf02
Init1 = ATZ
Password = surf02
Modem = /dev/ttyUSB0
Baud = 460800
Carrier Check = No
Stupid Mode = 1
Phone = *99#

[Dialer pin]
Modem = /dev/ttyUSB0
Init3 = AT+CPIN=1234

Don't forget to change the pin in the [Dialoer pin] section.

Now, start the connection with wvdial pin followed by wvdial o2.

See http://documentation.dbernhardt.com/surfstick/article.html for a more verbose guide on how to setup the stick on gentoo linux.