Thursday, November 10, 2005

Linux: Internet Einwahl via bluetooth/UMTS Handy

Vorwort
Manch einer wird sich jetzt fragen, warum man in der Zeit von DSL-Breitbandanbindungen Internet via UMTS zulegen will - meine Intention war einen relativ schnellen und flexibeln Internetzugang zu haben.

Erste Überlegungen
Das braucht man dazu:
  • Handy
  • Bluetooth Dongle
  • UMTS SIM-Karte
benutzte Tools
  • hcitool
  • sdptool
  • rfcomm
  • kbluetoothd
  • YaST2
  • screen
Einrichten Schritt 1

Zuerst ist es wichtig einen Bluetooth-Dongle anzustecken. Hier gäbe es die Möglichkeit (soweit vorhanden) über den SD-Steckkartenplatz besser aber über USB - warum einige SD-Kartenleser sind nicht so gut unterstützt. Wird der USB-Dongle erkannt und richtig konfiguriert kann man auch gleich unter KDE im kbluetoothd eine Meldung sehen. Ein einfacher Klick genügt um ein Fenster mit den aktuell erreichbaren Bluetooth-Geräten zu öffnen.

Einrichten Schritt 2


Ist Ihr Handy nicht in der Liste über prüfen Sie, ob es "sichtbar" ist und bluetooth eingeschaltet ist - Wenn ein Freund mit seinem bluetoothfähigen Handy ihnen Bilder etc. schicken kann sollte es auch in kbluetoothd zu sehen sein - falls nicht einfach das Fenster schließen und wieder erneut öffnen.

Einrichten Schritt 3

Um das Handy als Modem nutzen zu können müssen wir nun folgende Konfigurationsdateien anlegen/ändern:
  • /etc/bluetooth/pin
  • /etc/bluetooth/rfcomm.conf
in die pin-Datei schreiben sie einfach die PIN, die beim Verbinden mit dem Handy benötigt wird:
root@host> echo "1221" >/etc/bluetooth/pin

In /etc/bluetooth/rfcomm.conf müssen wir schon etwas mehr eintragen:
---snip---
#
# RFCOMM configuration file.
#
# $Id: rfcomm.conf,v 1.1 2002/10/07 05:58:18 maxk Exp $
#

rfcomm0 {
# Automatically bind the device at startup
bind yes;

# Bluetooth address of the device
device 00:0F:DE:8C:F7:09;

# RFCOMM channel for the connection
channel 1;

# Description of the connection
comment "Sony Ericcson v800";
}
---snap---

bind yes - bedeutet, dass beim Start vom Bluetooth-Deamon das Device gleich angelegt wird.
device - die Geräte-id können Sie mit Hilfe von "hcitool" herausbekommen, bzw. über kbluetoothd.

---snip---
linux:~ # hcitool scan
Scanning ...
00:0E:07:83:BE:29 v800
---snap---
channel 1 - hier kommt es nun auf das Handy an. Normalerweise sollte ein "sdptool browse" eine Liste ausspucken, der man es entnehmen kann:

---snip---
linux:~ # sdptool browse
Inquiring ...
Browsing 00:0E:07:83:BE:29 ...
Service Name: Dial-up Networking
Service RecHandle: 0x10000
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
...
---snap---

Jetzt können wir schonmal den Daemon start:
root@host> rcbluetooth start

Danach sollte folgende Datei angelegt worden sein:
---schnip---
linux:~ # ls -la /dev/rfcomm*
crw-rw---- 1 root root 216, 0 Nov 11 19:31 /dev/rfcomm0
---schnapp---

Nun wie es bei bluetooth üblich ist müssen die Geräte, bevor sie miteinannder kommunizieren können ein "Pairing" machen.

um das zu initialisieren, einfach mal einen screen auf dieses device ansetzen:
screen /dev/rfcomm0
Wenn si den screen gestartet haben sollte erstmal keine Meldung kommen. falls Sie eine Meldung, wie "no controlling PTY" bekommen liegt es wahrscheinlich daran, dass das Device nicht richtig initialisiert worden ist. (den Screnn können Sie mit folgender Tastenkombination wieder schließen: <strg>+<a>+<k>)


(Falls das nicht geht, mal mit "cat /dev/rfcomm0" probieren.)

Bei der PIN-Eingabe müssen Sie schnell sein, da nach wenigen Sekunden sich die Fenster wieder schließen. Wenn die PIN-Eingabe erfolgreich war und keine Fehlermeldung zu sehen war können Sie schonmal probieren das Bluetooth-Handy als Modem zu nutzen. Geben Sie dazu einfach in den offenen screen (falls nicht einfach dn obigen Befehl absetzen) AT + ein. (den Screnn können Sie mit folgender Tastenkombination wieder schließen: <strg>+<a>+<k>)

Ist dies geschafft, können Sie in YaST2 das Modem vorkonfigurieren (manuelle anpassung nötig).

Einrichten Schritt 4

Im yast können sie nun wie gewohnt das Modem einrichten - geben sie aber als Device bzw. "Modemgerät" "/dev/rfcomm0" an und drücken Sie dann auf details.

Baudrate auf 921600

init1 = ATZ
init2 = AT &FE1 +CMEE=1
init3 = AT +CGDCONT=1,"IP","web.vodafone.de"
und benutzergesteuert [x] auswählen.

Die Konfigurationsdatei die Yast erstellt sollte dann wie folgt aussehen:
---/etc/sysconfig/network/ifcfg----
BOOTPROTO='none'
DIALCOMMAND='ATDT'
DIALPREFIX=''
DIALPREFIXREGEX=''
INIT1='ATZ'
INIT2='AT &FE1 +CMEE=1'
INIT3='AT +CGDCONT=1,"IP","web.vodafone.de"'
INIT8='ATM0'
INIT9='ATX3'
MODEM_DEVICE='/dev/rfcomm0'
NAME='umts via bluethooth'
PPPD_OPTIONS=''
PROVIDER='provider0'
SPEED='921600'
STARTMODE='manual'
UNIQUE=''
USERCONTROL='yes'
---end---

Danach müssen sie einen "eigenen Provider" einstellen:
als Nummer kan bei Sony Ericcson v800 "*99***1#" angeben. Für andere
modelle bitte im internet nach Infos suchen.
Die Provider Datei sollte wie folgt aussehen:
---/etc/sysconfig/network/providers/provider0---
ASKPASSWORD='no'
AUTODNS='yes'
DEMAND='no'
DSLSUPPORTED='no'
IDLETIME='1800'
ISDNSUPPORTED='no'
MODEMSUPPORTED='yes'
MODIFYDNS='yes'
PASSWORD='freedom'
PHONE='*99***1#'
PROVIDER='vodafone umts/gprs'
STUPIDMODE='no'
USERNAME='freedom'
---end---

Das sollte es gewese sein ;) jetzt können Sie über kinternet sich einwählen.

2 comments:

Andreas said...

Hat phantastisch geklappt, Danke!

Anonymous said...

Hi,

some mobile phones need the folowing first two init strings:
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0