Benutzer:Bastla/Bt ppp temp

Aus Freifunk Potsdam | Wiki
Zur Navigation springen Zur Suche springen

Dieser Artikel lagert hier erstmal temporär. --bastla

Vorbereitung

  • essenziell sind die bluez-utils
  • falls der hcid (HCI Daemon) nicht automatisch gestartet wurde: /etc/init.d/bluetooth start
  • pppd wird benötigt (zu finden im Paket ppp)
  • wenn man einen schönen PIN Helper verwenden möchte sollte man die libkbluetooth0 installiert haben

Bluetooth Modem Schnittstelle einrichten

Mobiltelefon finden

Mit dem hcitool kann man BT Geräte in seiner Reichweite finden. Bei mir sieht das z.B. so aus:

bastla@bx41 ~ % hcitool scan
Scanning ...
        00:18:42:C5:81:15       n/a
        00:60:57:8F:F3:D2       bastla n-gage
        00:19:4F:BE:44:2A       bastla n93i

HCID konfigurieren

Damit das Handy als Modem benutzt werden kann muss der HCI Daemon konfiguriert werden.

Im device Block sollte die Klasse man die Klasse wie folgt setzen

 class 0x3e0100;

oder

class 0x100100;

Das nehme ich mal so als gegeben, da bei mir die Klasse per default auf class 0x3e0100; gesetzt war, habe ich das nie weiter ausprobiert. Um das im Kontext zu zeigen stelle ich nochmal meine gesamte Konfiguration zur Verfügung.

RFCOMM Schnittstelle einrichten

Um mit dem Handy ins Netz zu gehen muss man sich noch eine Modemschnittstelle einrichten. Dazu editiert man die /etc/bluetooth/rfcomm.conf

# /etc/bluetooth/rfcomm.conf

rfcomm0 {
 bind yes;
# Bluetooth Geräteadresse
 device 00:19:4F:BE:44:2A;
# RFCOMM Kanal für die Verbindung (nicht zwingend erforderlich)
#       channel 1;
# Beschreibung der Verbindung
  comment "n93i BT Modem";
}

Ich habe also mein Telefon auf das Gerät /dev/rfcomm0 gelegt. Wenn auf dieses zugegriffen wird, wird eine Verbindung zu der Geräteadresse meines Telefons aufgebaut. Das sollte daran zu sehen sein, dass im selbigen das BT Verbindungs Symbol zu sehen ist.

Nachdem man seine Konfiguration abgeschlossen hat sollte man den hcid daemon neustarten:

/etc/init.d/bluetooth restart

Pairing

Damit Telefon und Computer miteinander kommunizieren müssen sie "gepaart" werden.

Dieses Pairing hat sich bei mir in der Praxis teilweise ziemlich störrisch verhalten, da scheinbar jedes Endgerät wieder ein wenig anders funktionieren will...

Theoretisch sollte es ausreichen in der /etc/bluetooth/pin eine 4-stellige PIN seiner Wahl abzulegen. In dieser Datei steht wirklich nur die Zahl drin, nicht mehr nicht weniger.

Wenn man ein X nutzt ist es sehr praktisch einen PIN Helper zu nutzen. Ich nutze dazu gerne das Tool kbluetooth zu finden ist es in dem Paket libkbluetooth0 - nach der Installation sollte es in /usr/bin/kbluetooth liegen und kann mit kbluetooth gestartet werden.

Nun ist der Punkt erreicht, an dem man die Funktion seiner BT Verbindung ausprobieren und die Geräte paaren kann. Dazu sendet man ein Modemkommando, den String "ATZ" an das Mobiltelefon und löst damit das Pairing aus:

echo "ATZ" > /dev/rfcomm0

Nun sollte das das Telefon nach einer PIN Nummer fragen, nach der Eingabe kbluetooth und anschließend muss auf dem Telefon bestätigt werden, dass man mit dem Pairing einverstanden ist.

Internetverbindung einrichten

Wenn man bis hierhin gekommen ist, hat man schon einmal den wesentlichsten Teil hinter sich. Die BT Verbindung steht, alles was nun kommt ist eine ganz andere Baustelle.

ppp Konfiguration

Die Einstellungen für die Modemverbindung sind in /etc/ppp/peers/ zu finden. Dort erstellt man eine neue Modemverbindung z.B. /etc/ppp/peers/gprs

# You usually need this if there is no PAP authentication
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs"
# Set up routing to go through this PPP link
defaultroute
# Set this to /dev/ircomm0 or similar
/dev/modem
# Speed
115200
# Reconnect on disconnect
persist
# Be extra verbose
debug
# You may need these
passive
noipdefault
noproxyarp
ipcp-accept-local
ipcp-accept-remote
ipcp-restart 2
ipcp-max-configure 20
ipcp-max-failure 20
asyncmap 0xa0000
novj
nodeflate
nobsdcomp
# Use remote DNS
usepeerdns
user "eplus"
password "gprs"

Zu beachten ist dabei, dass man die Einstellungen user und password je nach Anbieter setzt. Die Einstellungen der deutschen Netzbetreiber findet man unter http://www.teltarif.de/i/gprs-config.html

Chat Script

Wie das Modem mit dem Netzbetreiber zu kommunizieren hat findet das ppp Script in /etc/chatscripts/

In diesem Beispiel liegt das Chatscript in /etc/chatscripts/gprs

 TIMEOUT         120
 ABORT           'BUSY'
 ABORT           'ERROR'
 ABORT           'NO CARRIER'
 ''              'ATE1'
 OK              AT+CGDCONT=1,"IP","internet.eplus.de"
 OK              ATD*99***1#
 # or OK         ATD*99#
 CONNECT         \d\c

Auch wieder dabei zu beachten: DIE APN Einstellungen müssen dabei dem eigenen Netzbetreiber entsprechen. Auch das findet man unter http://www.teltarif.de/i/gprs-config.html

In das Internet Einwählen

Um nun das Internet zu erreichen muss man sich in das VPN des Netzbetreibers einwählen.

Dazu linkt man die Handy Schnittstelle (z.B. /dev/rfcomm0) auf /dev/modem und startet die ppp Verbindung.

ln -sf /dev/rfcomm0 /dev/modem
pppd updetach call gprs