# Vodafone UMTS PCMCIA Adapter Howto

## tuxian

1.) Vorwort:

Da es im Moment bei einem österreischen Mobilnetzbetreiber ein günstiges Angebot gibt hab ich mich entschlossen mir die Vodafone UMTS PCMCIA zu kaufen. Hat mir mit Anmeldung 39 gekostet.

Zum Einwählen verwende ich kppp.

2.) Kernel richtig konfigurieren:

```
   PCMCIA/CardBus support --->

     <M> PCMCIA/CardBus support

     <M>   CardBus yenta-compatible bridge support

   Device Drivers --->

     USB support --->

       <*> Support for USB

       ---   Miscellaneous USB options

       [*]   USB device filesystem

       ---   USB Host Controller Drivers

       <M>   EHCI HCD (USB 2.0) support

       <M>   OHCI HCD support

       <*>   UHCI HCD (most Intel and VIA) support

       --- USB port drivers

           USB Serial Converter support --->

          <M> USB Serial Converter support                                                                        

          [*]   USB Generic Serial Driver 
```

PPP-Support:

```
<M>   PPP (point-to-point protocol) support                                                  

[ ]     PPP multilink support (EXPERIMENTAL)                                                

[*]     PPP filtering                                                                   

<M>     PPP support for async serial ports                                                   

<M>     PPP support for sync tty ports                                                       

 <M>     PPP Deflate compression                                                              

<M>     PPP BSD-Compress compression
```

Ich habe es mit gentoo-dev-sources-2.6.9-r1 und gentoo-dev-sources-2.6.8-r10 zum Laufen gebracht, sollte aber auch mit älteren Kernel-Versionen funktionieren (auch mit Kernel 2.4.x).

Danach habe ich folgendes in die Datei /etc/modules.autoload.d/kernel-2.6

eingetragen damit das Modul "usbserial" mit richtigen Parametern automatisch beim Booten geladet wird:

```
usbserial vendor=0xaf0 product=0x5000
```

Wenn man dann bootet und tail -f /var/log/messages eingibt sollte man folgendes sehen sobald man die Karte einsteckt:

```
Oct 28 22:33:56 laptop usb 5-1: new full speed USB device using address 4

Oct 28 22:33:56 laptop usbserial_generic 5-1:1.0: Generic converter detected

Oct 28 22:33:56 laptop usb 5-1: Generic converter now attached to ttyUSB0

Oct 28 22:33:56 laptop usbserial_generic 5-1:1.1: Generic converter detected

Oct 28 22:33:56 laptop usb 5-1: Generic converter now attached to ttyUSB1

Oct 28 22:33:56 laptop usbserial_generic 5-1:1.2: Generic converter detected

Oct 28 22:33:56 laptop usb 5-1: Generic converter now attached to ttyUSB2

```

3.) Notwendige Programme installieren:

Notwendig ist ppp, also

emerge ppp

und kppp (im Packet kdenetwork), daher installieren falls es noch nicht ist:

emerge kdenetwork

4.) Skript zum Setzen des PIN-Codes installieren:

```
#!/usr/bin/env perl

use strict;

use warnings;

my $modem = "/dev/usb/tts/0";

# Substitute xxxx with your PIN.

# You should probably put your pin somewhere else, e.g. on an USB stick,

# an encrypted file system or something else, and read it from there...

# You have been warned!

my $pin = "1234";

$SIG{ALRM} = sub {

        die("timeout: no response from modem $modem\n");

};

open(MODEM, "+<", $modem) or die("can't open modem $modem");

alarm(10);

print(MODEM "AT+CPIN=\"$pin\"\n\r");

while (<MODEM>) {

        if (m/OK/) {

                close(MODEM);

                print("PIN accepted\n");

                exit(0);

        }

        if (m/ERROR/) {

                close(MODEM);

                print("PIN rejected\n");

                exit(1);

        }

}
```

z.b. unter /usr/bin/setpin abspeichern, eigenen PIN-Code eintragen (eventuell auch Modem-Device, in diesem Fall "/dev/usb/tts/0", anpassen!)

Danach mit chmod 700 ausführbar machen.

Dieses Script muss ausgeführt werden nachdem man die Karte eingesteckt hat und vor dem Einwählen, denn ohne PIN-Code kann sich die Karte logischerweise nicht ans Netz anmelden.

5.) kppp einrichten:

Ich habe ein paar Screenshots gemacht, denn Bilder sagen mehr als 100 Worte:

http://www.layr.at/gentoo/screenshot1.jpg

http://www.layr.at/gentoo/screenshot2.jpg

http://www.layr.at/gentoo/screenshot3.jpg

http://www.layr.at/gentoo/screenshot4.jpg

http://www.layr.at/gentoo/screenshot5.jpg

Dabei gegebenfalls Modemgerät, Benutzername und DNS-Server anpassen!

Falls man sich auch als normaler Benutzer einwählen will dann muss man in der Gruppe dialout sein!

6.) Inbetriebnahme und Verwendung:

6.1. Karten einstecken (wenn sie es noch nicht ist).

Es werden beide LEDs der Karte (blau und grün) gleichzeitig blinken,        

das bedeutet dass die Karte nicht ans Netz angemeldet ist. (Ist noch      

nicht möglich weil wir der Karte noch keinen PIN-Code mitgeteilt haben!)

6.2. setpin (als Benutzer root!)

Damit schickt man der Karte den PIN-Code.

Unter der Annahme dass man Empfang hat wird sich nach ein paar   

Sekunden der Status der LEDs ändern, so dass nur noch entweder +   die grüne LED oder die blau LED blinkt.

Blinkt die blaue LED, dann hat man UMTS-Empfang, blinkt hingegen nur die grüne LED, dann hat man nur GPRS-Emfang.

Sollte man vorerst nur GPRS-Empfang haben (nur grüne LED blinkt) und man wählt sich ein, und dann hat man doch UMTS-Empfang (nur blaue LED blinkt) muss man sich neu einwählen damit man mit UMTS Geschwindigkeit online ist!

6.3. kppp starten und auf "Verbinden klicken"  :Wink: 

EDIT: 17.11.2004

Zu Punkt 4.)

Bis jetzt habe das Skript "setpin" immer manuell ausgeführt, bevor ich mich mit kppp einwählte.

Nun habe ich es aber geschafft mittels hotplug das Skript automatisch auszuführen, immer wenn die Karte eingesteckt wird. So ist der mobile Surf-Komfort noch größer.

In der Datei /etc/hotplug/usb.usermap folgende Zeile hinzufügen:

```
usbgenericserial 0x03 0xaf0 0x5000 0 0 0 0 0 0 0 0 0
```

Dann die Datei /etc/hotplug/usb/usbgenericserial mit folgendem Inhalt anlegen:

```
#!/bin/sh

modprobe usbserial vendor=0xaf0 product=0x5000

sleep 3

/usr/bin/setpin
```

und mit 

chmod 755 /etc/hotplug/usb/usbgenericserial

ausführbar machen.

Abschließend noch den hotplug-Dämonen neustarten:

/etc/init.d/hotplug restart

Und fertig  :Wink: 

UPDATE: 25.12.2004

Notwendige Änderungen nach Wechsel auf udev:

Nach dem Wechsel auf udev laut http://de.gentoo-wiki.com/HOWTO_von_devfs_zu_udev_wechseln#UDEV_installieren

habe ich folgende Änderungen vornehmen müssen:

In dem Script setpin die Zeile 

```
my $modem = "/dev/usb/tts/0";
```

auf 

```
my $modem = "/dev/ttyUSB0";
```

geändert.

Und die Datei /etc/hotplug/usb/usbgenericserial folgendermaßen abgeändert:

```
#!/bin/sh

modprobe usbserial vendor=0xaf0 product=0x5000

#if [ "`rc-status|grep wlan|grep started`" != "" ]

#then

#/etc/init.d/wlan stop

#fi

sleep 2

test -e /dev/ttyUSB0 || mknod /dev/ttyUSB0 c 188 0

test -e /dev/ppp || mknod /dev/ppp c 108 0

rm -f /dev/modem

ln -s /dev/ttyUSB0 /dev/modem

/usr/bin/setpin
```

Die wlan-Statusabfrage kann vielleicht auch jemand anderer brauchen, dann ggfs. die #-Zeichen entfernen.

Und in kppp habe ich nun /dev/modem als Modem-Gerät angegeben (vorher /dev/usb/tts/0).

EDIT: 14.07.2005

7.) Bekannte Probleme und Lösungen

7.1) Es darf beim Einwählen keine default route aktiv sein, daher gegenfalls WLAN- / LAN-Verbindung vorher deaktivieren

7.2) Wenn man sich als normaler User nicht einwählen kann, als User root hingegen schon kann es daran liegen dass das sticky-Bit für /usr/sbin/pppd nicht gesetzt ist (ggfs. chmod +s /usr/sbin/pppd ausführen) bzw. dass der Benutzer nicht Mitglied der Gruppen dialout und uucp ist!Last edited by tuxian on Thu Jul 14, 2005 5:07 pm; edited 5 times in total

----------

## py-ro

Das Pin Script kannst dir sparen, trage den AT Befehl einfach als zweiten INIT String bei kppp ein, mach ich mit meinem Handy als Modem ganauso.

MfG

Py

----------

## tuxian

Kannst du mir bitten den genauen AT-Befehl nennen?

at+cpin="xxxx" ?

Wo genau schreib ich das rein?

Wenn möglich mit Screenshot!

Danke!

----------

## tuxian

Habs schon gestetet mit dieser Methode.

Würde ich aber nicht empfehlen.

Denn wenn man sich danach nochmals einwählen will erhält man "ERROR" und kppp wählt sich nicht ein. Der "ERROR" wird daran liegen dass die Karte nur 1x pro Einstecken den PIN akzeptiert.

Mittels meiner Methode hat die Karte außerdem genug Zeit sich ans UMTS-Netz anzumelden da man den PIN manuell setzt und sich dann einige Sekunden später mit kppp einwählt.

Bei deiner Methode wählt kppp gleich mit 57600 und nicht mit 384000.

----------

## py-ro

Ok, wollt nur mal darauf ginweisen  :Wink: 

----------

## py-ro

Wie wäre es mit einem Hotplug Script?

Dann würde die PIN automatisch eingegeben werden (OK nicht das sicherste)

MfG

Py

----------

## tuxian

Weiß nicht wie was ich da machen sollte   :Rolling Eyes: 

Naja, ich bleibt lieber bei dem Script   :Wink: 

----------

## tuxian

Okay, habs hinbekommen, wie steht oben  :Wink: 

----------

## toskala

spannende frage, da ich selbst grade vor dem kauf einer umts karte stehe, welche funktionieren denn? also gibts da unterschiede und falls ja, kann mir einer eine kaufempfehlung für eine vodafone karte geben?

cheerios,

toskala

----------

## tuxian

Die für ich ich das Howto geschrieben habe ist eine Option Karte ( http://www.option.com ) => http://www.a1.net/CDA/businesszone/bz_frame/0,6009,2862-2939-html-de,00.html

Die linke ist mit WLAN, die rechte ohne.

Die ganzen Anleitung im Netz sind für die Option Card, wie es mit anderen ausschaut weiß ich nicht, ich würde dir die Option Card ohne WLAN ( http://www.a1.net/CDA/businesszone/bz_frame/0,6009,2862-2939-32829-html-de,00.html ) empfehlen, die ist billiger und WLAN haben sowieso praktisch alles Laptops eingebaut.

Zu den Vodafone Hotspots kann man sich auch mit dem interen WLAN-Chips verbinden!

Ich habe die Karte nicht mehr da ich das ganze jetzt mit dem Nokia 6630 mache weil das auch EDGE kann, wenn du keinen Stress mit dem Kaufen hast und auch an der EDGE-Funktionalität interessiert bist würde ich warten bis es von Vodafone EDGE-fähige Option Karten gibt!

----------

## toskala

ah, okay, ich hatte nämlich gelesen, dass diese "Mobile Connect Card Novatel" ganz gut funktionieren soll. die beiden anderen unterscheiden sich offenbar nicht sonderlich voneinander also von der "Mobile Connect Card". kann ich theoretisch irgendeine von beiden nehmen?

*schauder* das is ein kranker scheiss, ech... dass die nich hinschreiben können was genau auf ihren karten verbaut ist macht mich echt wahnsinnig.

was genau tut edge?

----------

## tuxian

Schau mal hier: http://www.onlinekosten.de/forum/showthread.php?t=59905

Ein Auszug davon:

```
Der grösste Unterschied zwischen den Karten besteht darin, dass die Novatel Karte vom Kernel nicht als USB Gerät behandelt wird, so wie die Medion Karte. Wenn ihr eine Novatel Karte habt könnt ihr den Teil in den Anleitungen mit USB (modprobe usbserial, etc) also vergessen.
```

Funktionieren sollten alle drei Karten, nur ist die Option / Medion Card sicher mehr verbreitet und bei Probleme werden dir daher eher geholfen werden können!

Was EDGE ist: http://umtslink.at/EDGE/EDGE-Start.php

----------

## toskala

hmm, okay laufen tut das ganze nun auch. jetz gibts nur ein problem.

ping funktioniert gut. allerdings sind datenverbindungen nicht wirklich prickelnd.

ich kann zuweil mal www.google.de aufrufen aber sobald ich eine seite mit etwas mehr traffic betrachte, dann hängt die verbindung fest. pingen geht allerdings ohne probleme weiterhin.

muss man evtl. noch irgendwas an der mtu einstellen oder so?

----------

## toskala

das problem ist gelöst.

es fehlte

```

emerge setserial
```

und dann der befehl:

```

setserial -a /dev/ttyS1 low_latency spd_warp
```

das hilft einer lahmenden umts verbindung auf die sprünge...  :Smile: 

----------

## tuxian

Okay super, hast du die Karte eigentlich jetzt so schnell gekauft, ein paar Postings vorher hast du ja noch eine Kaufempfehlung haben wollen und nun hast du sie schon?  :Shocked: 

----------

## toskala

tz, was heisst gekauft  :Smile:  ich hab mittags angerufen und wollte ne vodafone karte haben, keine 3h später hielt ich die karte aktiviert in händen  :Wink:  kostete mich nen euro... naja, ich kann nix dafür, ich hab da nur nen netten support  :Smile:  ich war selbst total überrumpelt, dass ich abends per kurier die karte im büro hatte... ich dachte "ich les da mal noch ne weile drüber nach, und kuck mir howtos an" und zack schellt es an der türe und die karte is da mit allem papierkram unterschrieben is der vertrag "i.A." gewesen, ich solls noch bestätigen wenn ich will.

muhaha...  :Smile:  die "concierge" taste taugt doch was aufm telefon  :Very Happy: 

----------

## hoschi

Sehr schön, muss das aber so KDE lastig sein?

Überhaupt, grafische Oberfläche...bähh :p

----------

## toskala

naja, ich hab ein howto gefunden dass den kram in wvdial abbildet. ich weiss allerdings nicht, wie ich das device erzeugen soll unter gentoo. siehe thread: https://forums.gentoo.org/viewtopic-t-359488.html

wenn du da infos zu hast, her damit, dann gehts wohl auch mit wvdial  :Smile: 

----------

## legine

Hallo allerseits,Ich habe genau das Problem das bei mir immer das eth0 device gestartet wird. Ich würde daranaber nicht unbedingt etwas ändern wollen. Kann ich über das hotplug script nicht das Gateway löschen (mithilfe des Routes befehls) und beim unplugen ein zweites script starten welches das gateway wieder setzt?

Es gab auch ein tool welches automatisch die Internetconnection wählt die gerade aktiv ist. Hat das jemand mal Probiert?

Gruß

Peter

----------

## tuxian

Wie du mit udev Befehle nach dem Einstecken der Karte ausführst steht weiter oben.

Ich würde aber gleich ein 

```
/etc/init.d/net.eth0 stop
```

 reinschreiben.

Ob man mit udev auch einen Befehl beim Entfernen der Karte ausführen kann weiß ich nicht.

----------

