Technische Universität Ilmenau Fakultät für

Transcription

Technische Universität Ilmenau Fakultät für
Technische Universität Ilmenau
Fakultät für Elektrotechnik und Informationstechnik
Hauptseminararbeit
GPRS-Anbindung über Bluetooth-Handys unter Linux
vorgelegt von:
eingereicht am:
Danilo Hoffmann
10. 07. 2008
geboren am:
Studiengang:
Studienrichtung:
Ingenieurinformatik
Multimediale Informations- und
Kommunikationssysteme
Anfertigung im Fachgebiet:
Kommunikationsnetze
Fakultät für Elektrotechnik und Informationstechnik
Verantwortlicher Professor:
Wissenschaftlicher Betreuer:
Prof. Dr. rer. nat. habil. Jochen Seitz
Dipl.-Ing. Florian Evers
Inhaltsverzeichnis
i
Inhaltsverzeichnis
1 Grundlagen
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Der Linux Bluetooth Protokoll-Stack . . . . . . . . . . . . . . . . . . .
1
1
1
2 Installation
2.1 APT . . . . . . . . . . . . . . . . . .
2.2 RPM . . . . . . . . . . . . . . . . . .
2.3 Quellen . . . . . . . . . . . . . . . .
2.4 Passkey-Agent . . . . . . . . . . . . .
2.5 Firmware für den Bluetooth-Adapter
.
.
.
.
.
2
2
2
3
3
3
.
.
.
.
.
5
5
7
8
8
9
.
.
.
.
.
.
.
.
.
.
11
11
12
12
13
13
14
14
15
16
17
3 Programme
3.1 hcitool . . . .
3.2 l2ping . . . .
3.3 sdptool . . . .
3.4 rfcomm . . .
3.5 passkey-agent
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Das HowTo
4.1 Handy finden . . . . . . . . . . . . . . . . . . . .
4.2 Handy anbinden . . . . . . . . . . . . . . . . . . .
4.2.1 Konfiguration der RFCOMM-Schnittstelle
4.2.2 Pairing . . . . . . . . . . . . . . . . . . . .
4.2.2.1 KDE und gnome . . . . . . . . .
4.2.2.2 Konsole . . . . . . . . . . . . . .
4.3 Verbindung ins Internet mit GPRS . . . . . . . .
4.3.1 pppd-Konfiguration . . . . . . . . . . . . .
4.3.2 Chatscript . . . . . . . . . . . . . . . . . .
4.4 Starten der Internetverbindung . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Hauptseminararbeit Danilo Hoffmann
Inhaltsverzeichnis
4.5
ii
Stoppen der Internetverbindung . . . . . . . . . . . . . . . . . . . . . .
18
5 Fazit
19
A Die
A.1
A.2
A.3
A.4
A.5
A.6
A.7
21
21
22
22
23
26
26
27
verwendeten Programme
Paketliste bluez-utils . . . . . . . . . .
hcitool . . . . . . . . . . . . . . . . . .
sdptool . . . . . . . . . . . . . . . . . .
sdptool Ausgabe . . . . . . . . . . . .
rfcomm . . . . . . . . . . . . . . . . .
erfolgreicher pppd-Verbindungsaufbau .
Verbindungsabbau mit Ctrl+C . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Literaturverzeichnis
28
Abkürzungsverzeichnis
29
Erklärung
30
Hauptseminararbeit Danilo Hoffmann
1 Grundlagen
1
1 Grundlagen
1.1 Motivation
Häufig bekommt man die Frage gestellt: Warum Linux? Die Anbindung eines Handys
unter Mac OS X oder den verschiedenen Windows-Versionen mit Hilfe von Bluetooth
ist dank grafischer Oberfläche und schon vorinstallierter Tools mit ein paar wenigen
Klicks“ sehr leicht erledigt. Trotzdem gibt es Gründe, die für die Verwendung von
”
Linux sprechen.
Die Konfiguration in den eben genannten Betriebssystemen lässt sich schlecht automatisiert, und schon garnicht ohne grafische Oberfläche erfolgreich abschließen. In
Linux hingegen, dass ja bekanntlich auf sehr vielen verschiedenen Plattformen schon
lauffähig vorgeführt wurde, hat man sowohl die Möglichkeit mit Hilfe von unter gnome oder KDE zur Verfügung gestellten Programmen grafisch vorzugehen, als auch per
Kommandozeile textuell und einfach automatisiert sein Ziel zu erreichen. Genau dieser
letztere Weg soll in dieser Ausarbeitung vorrangig behandelt werden.
Es sollen Grundlagen gelegt werden, um auf einer beliebigen Linux-Distribution die
Anbindung eines Handys per Bluetooth zur Nutzung des GPRS-Dienstes zu ermöglichen.
1.2 Der Linux Bluetooth Protokoll-Stack
Im Rahmen dieser Ausarbeitung möchte ich nicht auf detaillierte Grundlagen zum
Bluetooth-Stack eingehen. Vielmehr möchte ich auf die Ausarbeitung Bluetooth”
Anwendungen“ - besonders auf das Kapitel 1.4 - aus dem Jahre 2004 am Fachgebiet
Kommunikationsnetze verweisen ([Komm04]). Natürlich findet man auch alle nötigen
Informationen in der aktuellen Bluetooth-Spezifikation ([Blue08]), allerdings nicht so
gut zusammengefasst.
Diese Ausarbeitung ist eher als eine Art HowTo“ gedacht. Es soll das Verfahren der
”
Anbindung im Vordergrund stehen, und das wenige Grundwissen stark zusammengefasst vermittelt werden.
Hauptseminararbeit Danilo Hoffmann
2 Installation
2
2 Installation
Die Installation funktioniert auf einem der Linux-typischen Wege mit Hilfe von PaketManagern oder durch Installation mit Hilfe der Quellen. Links zu vorgefertigten Paketen und die Quellen findet man auf der bluez-Projektseite: [Sour08].
2.1 APT
Unter debian und seinen Derivaten kann man unter Verwendung von apt schon vorkonfigurierte Pakete ins System holen:
apt-get install bluez-utils
Sollte beim Vorliegen einer Minimaldistribution kein apt zur Verfügung stehen, kann
man unter Verwendung von dpkg die heruntergeladenen debian-Pakete manuell installieren:
dpkg -i bluez-utils_[version]_[architecture].deb
2.2 RPM
In RPM-basierenden Systemen findet man die Bluetooth-Programme auch unter dem
Namen bluez-utils. Die Installation erfolgt zum Beispiel mit dem Paketmanagementsystem YaST aus Suse Linux oder mit Hilfe des Befehls emerge in gentoo Linux, um
nur zwei mögliche Paketmanager dieser RPM-basierenden Distributionen zu nennen.
Auch hier lassen sich Pakete mit dem Programm rpm nach dem Herunterladen per
Kommandozeile installieren:
rpm -Uhv bluez-utils-[version]-[architecture].rpm
Hauptseminararbeit Danilo Hoffmann
2 Installation
3
2.3 Quellen
Sollte man nicht den Luxus haben, einen Paketmanager verwenden zu dürfen, bleibt
einem immer noch die Möglichkeit, die bluez-utils von den Quellen zu installieren.
Wie gewohnt erreicht man hier sein Ziel durch Entpacken der Pakete (zusätzlich muss
man die bluez-libs mit installieren) und anschließender Eingabe von:
./configure
make
make install
Nähere Informationen findet man in den Dateien README“ und INSTALL“, die
”
”
den Quellen beigelegt sind.
2.4 Passkey-Agent
Wenn man die Anbindung des Handys komplett per Kommandozeile durchführen will
(oder muss), so braucht man zusätzlich das Programm passkey-agent, das es, aus mir
unverständlichen Gründen, leider noch nicht in das debian-Paket geschafft hat. Der
passkey-agent liegt aber den Quellen bei, ist also bei der Installation mit Hilfe der
Quellen verfügbar. Zur PIN-Eingabe unter KDE oder gnome braucht man zusätzlich
noch das Paket kdebluetooth bzw. bluez-gnome. Mitgeliefert werden hier grafische
Dialoge zur PIN-Eingabe.
2.5 Firmware für den Bluetooth-Adapter
Nun kann man der Bluetooth-Dongle mit dem PC verbinden. Ein Aufruf von dmesg
zeigt, ob das Gerät richtig erkannt wurde. In meinem Fall war die Initialanbindung
nicht erfolgreich, weil die passende Firmware nicht auf dem PC vorlag:
user@host:~$ dmesg
...
usb 2-1: new full speed USB device using uhci_hcd and address 2
usb 2-1: configuration #1 chosen from 2 choices
Bluetooth: BlueFRITZ! USB driver ver 1.1
bfusb_probe: Firmware request failed
bfusb: probe of 2-1:1.0 failed with error -5
usbcore: registered new driver bfusb
Hauptseminararbeit Danilo Hoffmann
2 Installation
4
Für Bluetooth-Dongles auf Basis des Broadcom BCM203x Chipsatzes gibt es ein
Firmware-Paket, dass auf der bluez-Projektseite angeboten wird: [Sour08]. Für meinen
BlueFRITZ!-Dongle bin ich hier fündig geworden: [Indi08]. Die Datei bfubase.frm
muss anschließend nach /lib/firmware/ kopiert, und der Bluetooth-Dongle erneut
mit dem Rechner verbunden werden.
Ein Aufruf von dmesg ergibt nun folgende Ausgabe:
user@host:~$ dmesg
...
usb 2-1: new full speed USB device using uhci_hcd and address 3
usb 2-1: configuration #1 chosen from 2 choices
Bluetooth: BlueFRITZ! USB loading firmware
Bluetooth: BlueFRITZ! USB device ready
Hauptseminararbeit Danilo Hoffmann
3 Programme
5
3 Programme
Die bluez-utils beinhalten eine Reihe von Programme, um auf verschiedenstem Wege die Kommunikation mit Hilfe der Bluetooth-Protokolle zum Bluetooth-Stack zu
ermöglichen. Eine komplette Liste des Pakets für die debian-Distribution befindet sich
im Anhang auf Seite 21.
Die Aufgaben der wichtigsten Programme für die Handy-Anbindung sollen in diesem
Kapitel zusammengefasst werden.
3.1 hcitool
Das Programm hcitool bietet verschiedene Informationen und Dienste der untersten
Schicht im Bluetooth-Protokollstack. Eine Übersicht über alle Funktionen befindet sich
im Anhang auf Seite 22. Einige wichtige Funktionen sind hier einmal aufgelistet:
• dev gibt die MAC-Adressen der lokal vorliegenden Bluetooth-Geräte an. Normalerweise stehen dort nur die Adressen der Bluetooth-Dongles, die momentan mit
dem Rechner verbunden sind.
user@host:~$ hcitool dev
Devices:
hci0
00:04:0E:81:F8:D4
• inq und scan dienen zum Suchen nach Bluetooth-Geräten im Umkreis. Ausgegeben werden Geräteadressen und Gerätenamen.
user@host:~$ hcitool scan
Scanning ...
00:12:62:D6:C8:4B
Nokia6230
• Mit info erhält man Informationen zu einem Gerät, dessen Adresse man angegeben hat. Unter anderem erhält man so die Versionsnummer des Link Management
Protocol (LMP), also die Version der unterstützten Bluetooth-Spezifikation. Weiterhin werden Informationen über unterstützte Mechanismen ausgegeben.
Hauptseminararbeit Danilo Hoffmann
3 Programme
6
user@host:~$ hcitool info 00:12:62:D6:C8:4B
Requesting information ...
BD Address: 00:12:62:D6:C8:4B
Device Name: Nokia6230
LMP Version: 1.1 (0x1) LMP Subversion: 0x382
Manufacturer: Cambridge Silicon Radio (10)
Features: 0xbf 0xee 0x0f 0x00 0x00 0x00 0x00 0x00
<3-slot packets> <5-slot packets> <encryption> <slot offset>
<timing accuracy> <role switch> <sniff mode> <RSSI>
<channel quality> <SCO link> <HV3 packets> <u-law log>
<A-law log> <CVSD> <paging scheme> <power control>
<transparent SCO>
• Die Option con gibt alle aktiven Verbindungen aus.
user@host:~$ hcitool con
Connections:
< ACL 00:12:62:D6:C8:4B handle 1 state 1 lm MASTER
Diese Option ist später eventuell nützlich, um die Bluetooth-Verbindung zu überwachen.
• rssi gibt einen Wert für die Received Signal Strength Indication (RSSI) zurück.
Dieser Wert ist ein ungenormtes Maß für die empfangene Signalstärke. Je nach
Hersteller werden hier unterschiedliche Werte zurückgegeben.
user@host:~$ hcitool rssi 00:12:62:D6:C8:4B
RSSI return value: -2
Bei offenbar sehr guten Verbindungen in Sichtweite“ liegt der Wert in meinem
”
Fall nahe 0“. Mit wachsender Entfernung steigt der Wert betragsmäßig. Wenn
”
eine normale Hauswand zwischen den Kommunikationspartnern liegt, geht der
RSSI-Wert gegen -20“. Betragsmäßig größere Werte habe ich experimentell nicht
”
erreicht, weil bei weiterer Verschlechterung die Verbindung abreißt. Diese Funktion könnte später zum Überwachen der Verbindungsqualität zum BluetoothHandy benutzt werden.
Hauptseminararbeit Danilo Hoffmann
3 Programme
7
das Programm hcitool bietet auch noch weitere Funktionen zur Verbindungseinstellung, zum Beispiel zur Rollenverteilung oder zum Definieren zugelassener Pakettypen und auch zum Verbindungsauf- bzw. -abbau. Im Rahmen dieser Ausarbeitung
wird allerdings keine direkte Verbindung über die HCI-Schnittstelle gebraucht, sondern
lediglich eine Verbindung über die RFCOMM-Schnittstelle, die auf das HCI aufsetzt,
deswegen soll hierzu nichts weiter gesagt werden. Erklärungen zu diesen weiteren Funktionen kann man auf den Linux-man-pages nachlesen: [Manu08b].
3.2 l2ping
l2ping ist ein Programm zum Pingen“ eines Gerätes über Bluetooth. Das Programm
”
setzt auf das Logical Link Control and Adaption Protocol (L2CAP) auf:
l2ping - L2CAP ping
Usage:
l2ping [-i device] [-s size] [-c count] [-t timeout] [-f] [-r] <bdaddr>
Ähnlich dem normalen Programm ping bietet l2ping folgende Optionen:
• -i gibt das Interface an, auf dem der Ping ablaufen soll.
• Mit -s kann man eine Paketgröße angeben.
• -c gibt die Anzahl der zu sendenden Pakete an. Wenn diese Option nicht verwendet wird, wird dauerhaft gesendet.
• -t gibt den timeout für ein Paket an.
• -f setzt die Wartezeit zwischen dem Senden zweier Pakete auf 0, der Kanal wird
also geflutet“.
”
• Mit -r wird ein Reverse ping“ durchgeführt. Dabei sendet das Programm keinen
”
echo request“ sondern einen echo response“.
”
”
• <bdaddr> gibt die MAC-Adresse des Bluetooth-Gerätes an.
Ein Beispielhafter Aufruf sieht so aus:
user@host:~$ l2ping -c 5 00:12:62:D6:C8:4B
Ping: 00:12:62:D6:C8:4B from 00:04:0E:81:F8:D4 (data size 44) ...
0 bytes from 00:12:62:D6:C8:4B id 0 time 49.56ms
Hauptseminararbeit Danilo Hoffmann
3 Programme
0
0
0
0
5
bytes
bytes
bytes
bytes
sent,
from 00:12:62:D6:C8:4B
from 00:12:62:D6:C8:4B
from 00:12:62:D6:C8:4B
from 00:12:62:D6:C8:4B
5 received, 0% loss
8
id
id
id
id
1
2
3
4
time
time
time
time
17.08ms
17.84ms
23.62ms
18.39ms
l2ping ist also ein weiteres Programm, um später ein Bluetooth-Handy auf Verfügbarkeit zu prüfen, sowie die aktuelle Verbindungsqualität zu ermitteln.
3.3 sdptool
Das Programm sdptool bietet eine Reihe von Funktionen, um die lokal angebotenen
Bluetooth-Dienste zu verwalten und um die verfügbaren Dienste der Kommunikationspartner auszulesen. Es setzt auf das Service Discovery Protocol (SDP) auf. Da viele
Funktionen zur Verwaltung der lokalen Dienste im Rahmen dieser Ausarbeitung irrelevant sind, ist der vollständige Umfang der Funktionen im Anhang auf Seite 22
hinterlegt.
Für den Zweck der Handy-Anbindung hat das sdptool nur die Aufgabe, herauszufinden, auf welchem Kanal der Dial-Up Networking Service zu erreichen ist. sdptool
browse <MAC-Adresse> gibt zum Beispiel eine Übersicht über alle verfügbaren Dienste
eines Gerätes. Mit sdptool search DUN <MAC-Adresse> kann man genauer herausfinden, auf welchem Kanal der Dial-up Networking Dienst zu erreichen ist.
3.4 rfcomm
rfcomm ist das Programm zur Verwaltung der RFCOMM-Schnittstellen. Alternativ
bieten die BlueZ-Utils auch die automatisierte Konfiguration mit Hilfe des RFCOMMDaemons und der dazugehörigen Datei /etc/bluetooth/rfcomm.conf an, was sich bei
einem wiederholten Einsatz, wie in unserem Falle (später in Punkt 4.2.1 auf Seite 12
angewendet), anbietet.
Natürlich kann man die Einstellungen auch direkt per Aufruf des Programms rfcomm
vornehmen. Da die RFCOMM-Schnittstelle eine Emulation der seriellen Schnittstelle
bietet, hat natürlich auch das Programm rfcomm eine Vielzahl von Funktionen. Im
Anhang auf Seite 26 befindet sich eine komplette Funktionsübersicht.
Die wichtigsten Funktionen für die Handy-Anbindung sind hier einmal aufgelistet:
Hauptseminararbeit Danilo Hoffmann
3 Programme
9
• mit bind <dev> <bdaddr> [channel] lässt sich der Kanal channel des Gerätes
<bdaddr> an die RFCOMM-Schnittstelle /dev/rfcomm<dev> binden. Binden“
”
bedeutet in diesem Falle, dass noch keine Verbindung aufgebaut, sondern erstmal
nur eine Schnittstelle eingerichtet wird.
• release <dev> bietet die Möglichkeit, alle Schnittstellen des Gerätes <dev>
wieder freizugeben.
• show <dev> zeigt alle Schnittstellen des Gerätes <dev>
• connect <dev> <bdaddr> [channel] funktioniert wie die Option bind, nur wird
hier sowohl die RFCOMM-Schnittstelle eingerichtet, und nachfolgend eine Verbindung aufgebaut.
Die weiteren Optionen dienen der Kommunikation auf direkter Basis der RFCOMMSchnittstelle. Da die Verbindung zum Internet auch nicht direkt über die RFCOMMSchnittstelle hergestellt wird, sondern mit dem darauf aufsetzenden Programm pppd
realisiert wird, ist das Benutzen dieser Funktionen im Rahmen dieser Arbeit nicht
notwendig.
3.5 passkey-agent
Das Programm passkey-agent bietet die Möglichkeit das Pairing der BluetoothGeräte per Kommandozeile durchzuführen.
Pairing ist ein Mechanismus, der garantiert, dass bei der Kommunikation zweischen
zwei Geräten jeder der beiden Kommunikationspartner weiß, mit welchem Gerät er gerade kommuniziert. Bei Bluetooth werden zu Beginn des Verbindungsaufbaus Schlüssel ausgetauscht, um den jeweiligen Kommunikationspartner zu authentifizieren. Diese Schlüssel basieren auf einem gemeinsamen Passwort, dass beim erstmaligen Verbindungsaufbau auf beiden Geräten eingegeben werden muss. Die daraus generierten
Schlüssel werden im jeweiligen Gerät gespeichert und können für zukünftige Verbindungen wiederverwendet werden. Das Löschen eines der Schlüssel auf einem der beiden
Endgeräte erzwingt bei einem weiteren Verbindungsaufbau ein erneutes Eingeben des
Passworts auf beiden Geräten. Die Schlüssel liegen im Linux-Dateisystem in der Datei
/usr/lib/<MAC-Adresse des Bluetooth-Dongles>/linkkeys.
Der passkey-agent bietet folgende Optionen:
user@host:~$ passkey-agent --help
Hauptseminararbeit Danilo Hoffmann
3 Programme
10
Bluetooth passkey agent ver 3.32
Usage:
passkey-agent [--default] [--path agent-path] <passkey> [address]
• --default bietet die Möglichkeit, den passkey-agent für das Pairing mehrerer
Geräte zu verwenden, da er sich (mit dieser Option aktiviert) nicht beendet,
sondern auf weitere Pairing-Versuche wartet.
• mit --path hat man die Möglichkeit ein externes Programm zum Abfragen des
Passworts aufzurufen.
• passkey steht für das zu verwendende Passwort.
• address steht für das zu pairende Gerät.
Ein Aufruf von:
passkey-agent --default "1234567"
bedeutet also in etwa so viel wie nimm für jeden eingehenden Verbindungsversuch das
”
Passwort ’1234567’“.
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
11
4 Das HowTo
4.1 Handy finden
Da nun alle benötigten Programme installiert sind, kann man mit der Anbindung
starten. Auf dem Handy muss man natürlich zuerst Bluetooth anschalten, und das
Handy sichtbar machen. Nach dem im zweiten Schritt noch kommenden Pairing kann
man die Sichtbarkeit wieder wegnehmen.
Um das Handy aufzufinden hilft einem die scan Funktion des Programms hcitool.
Ein beispielhafter Aufruf sieht so aus:
user@host:~$ hcitool scan
Scanning ...
00:12:62:D6:C8:4B
Nokia6230
Nun muss man herausfinden, auf welchem Kanal der Dial-Up Networking Service zu
erreichen ist. Eine komplette Auflistung aller verfügbaren Dienste erhält man durch
einen Aufruf von sdptool browse (Eine mögliche Ausgabe befindet sich im Anhang
auf Seite 23). Da wir aber eigentlich nur am schon genannten Dial-Up Networking
Dienst interessiert sind, genügt ein Aufruf der search-Routine:
user@host:~$ sdptool search DUN 00:12:62:D6:C8:4B
Inquiring ...
Searching for DUN on 00:12:62:D6:C8:4B ...
Service Name: Dial-up networking
Service RecHandle: 0x10048
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
12
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Üblicherweise ist der Dienst für das Dial-Up Networking bei den meißten Handys
auf Kanal 1 zu erreichen.
Nun kann man sich mit dem Anbinden des Handys an die RFCOMM-Schnittstelle
beschäftigen.
4.2 Handy anbinden
4.2.1 Konfiguration der RFCOMM-Schnittstelle
Hierzu muss man ein paar Eintragungen in der Konfigurationsdatei des RFCOMMDaemons vornehmen, die im Ordner /etc/bluetooth unter dem Namen rfcomm.conf
zu finden ist. Fertig eingetragen sieht das so aus:
rfcomm0 {
bind yes;
device 00:12:62:D6:C8:4B;
channel 1;
comment "my phone";
}
rfcomm0 ist der Bezeichner der zugehörigen rfcomm-Schnittstelle. Wenn schon andere
Geräte per Bluetooth angebunden sind, muss man hier entsprechend eine andere Zahl
als 0“ nehmen. Mit der Option bind legt man fest, ob das Handy beim Starten des
”
Rechners automatisch angebunden wird. Es ist empfehlenswert, dies zu tun, wenn man
später einfach per Skript den Internetzugang an- oder abschalten will. Alternativ kann
man dies allerdings auch mit einem Aufruf von
rfcomm bind 0 00:12:62:D6:C8:4B 1
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
13
tun. Das automatische Anbinden stellt kein Sicherheitsrisiko dar, da die Eintragung
hier nur eine Schnittstelle aufbaut, auf der dann weiterführende Anwendungen aufbauen. Bei der Option device muss man die Hardware-Adresse des Handys eintragen.
channel gibt den Kanal an, auf dem der Dial-Up Networking Dienst zu erreichen ist.
comment Ist nur ein Kommentar, um später mehrere RFCOMM-Schnittstellen einfacher auseinander halten zu können.
Anschließend muss man die neue Konfiguration aktivieren. Bei debian, und auch einigen anderen Distributionen liegt zur Verwaltung aller Bluetooth-Prozesse ein Skript
mit dem Namen bluetooth oder bluez im Ordner /etc/init.d/. Aufzurufen ist beispielsweise folgendes Kommando:
/etc/init.d/bluetooth restart
Um zu sehen, ob die Anbindung geklappt hat, benutzt man am besten die option
show des Programms rfcomm. Eine positive Ausgabe sieht zum Beispiel so aus:
user@host:~$ rfcomm show 0
rfcomm0: 00:12:62:D6:C8:4B channel 1 clean
4.2.2 Pairing
4.2.2.1 KDE und gnome
Wie schon angesprochen, ist es bei der Verwendung von KDE oder gnome ratsam, die
jeweilig dazu passenden Pakete zu installieren, um ein Pairing auf grafischen Wege zu
vollziehen. Nach Installation dieser Pakete sendet man einfach den String ATZ“ an
”
die RFCOMM-Schnittstelle. ATZ“ Steht hierbei für den AT-Befehl zur Modeminitia”
lisierung. Das macht man mit folgendem Kommandozeilenbefehl:
user@host:~$ echo "ATZ" > /dev/rfcomm0
Wenn die Pakete kdebluetooth bzw. bluez-gnome richtig installiert wurden, sollte
nach der Eingabe des Passworts auf dem Handy ein Dialog auf der Oberfläche des PCs
aufgehen, der nach der Eingabe des gleichen Passworts fragt. Alternativ wird auch
beim der erstmaligen Verbingungsaufbau mit einem der KDE- oder gnome-spezifischen
Programme zur Verwaltung von Adressdaten, Nachrichten, etc. das Pairing vollzogen.
Der grafische Weg soll aber im Rahmen dieser Arbeit nicht weiter erläutert werden.
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
14
4.2.2.2 Konsole
Für das Pairing per Konsole rufen wir den passkey-agent wie folgt auf:
user@host:~$ passkey-agent "1234567" 00:12:62:D6:C8:4B
1234567“ ist hierbei das Passwort, dass wir verwenden wollen.
”
Nun senden wir auch hier ein ATZ“ zum Verbindungsaufbau. Dazu muss man vorher
”
auf eine andere Shell wechseln bzw. eine zweite Konsole aufmachen und folgenden
Befehl eingeben:
user@host:~$
echo "ATZ" > /dev/rfcomm0
Nun wird das Pairing vollzogen. Bei erfolgreichem Abschluss ercheinen folgende Zeilen
auf der Shell auf der wir den passkey-agent gestartet haben:
Passkey request for device 00:12:62:D6:C8:4B
Passkey service has been released
4.3 Verbindung ins Internet mit GPRS
Zur Anbindung ans Internet nutzen Handys der älteren Generation GPRS oder das
sich langsam durchsetzende UMTS. Beide Systeme funktionieren auf ähnliche Weise,
was sich in ähnlichen Einstellungen auf der Anwenderseite zeigt. Wie der Titel der
Ausarbeitung schon sagt, will ich hier nur näher auf die Nutzung von GPRS eingehen.
Für die Einwahl ins Internet braucht man in der Linux-Welt den Point-to-Point
Protocol Daemon (pppd) er liegt meist standardmäßig bei allen Linux-Distributionen
bei, da er vor allem bei der Installation auf dem Netz“ gebraucht wird.
”
Alternativ bietet sich hier die Verwendung von wvdial oder dem grafischen Programm für KDE kppp an. Da diese aber meist nicht standardmäßig vorinstalliert sind,
will ich hier nicht näher darauf eingehen.
Für die Konfiguration des pppd braucht man 2 Dateien, eine Konfigurationsdatei,
die alle verbindungstechnischen Einstellungen beinhaltet, und ein so genanntes Chat”
skript“, was die AT-Befehle für die Modemkommunikation enthält. Hier seien die Konfigurationen dieser 2 Dateien anhand des Beispiels eines FONIC-O2 Anbieters dargestellt.
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
15
4.3.1 pppd-Konfiguration
Folgende Eintragungen sind für die Verbindungskommunikation in einer Datei abzulegen. Zur besseren Übersicht sollte der Dateiname den gleichen Namen wie der Anbieter
haben (/etc/ppp/peers/fonic):
/dev/rfcomm0
57600
noipdefault
usepeerdns
defaultroute
persist
noauth
connect ’/usr/sbin/chat -v -f /etc/ppp/chat-fonic’
Anmerkend muss man sagen, dass das die minimalen Einstellungen sind, die für einen
Betrieb notwendig sind. Zur Erklärung sind sie hier noch einmal einzeln aufgelistet:
• /dev/rfcomm0 steht für die Schnittstelle, an der das zu verwendende Gerät
zur Verfügung steht. Logischerweise ist in unserem Fall die vorher konfigurierte RFCOMM-Schnittstelle zu verwenden. Alternativ können hier auch andere
Schnittstellen (zum Beispiel USB, IrDA) angegeben werden.
• 57600 steht für die zu verwendende Baudrate. 57600 stellt eine Minimalrate dar,
die bei allen Anbindungen funktionieren sollte. Alternativ kann man hier eine
Rate von 115200 baud oder für den vollen Umfang von UMTS auch 460800 baud
angeben
• noipdefault gibt an, dass der PPP-Daemon dem Einwahl-Kommunikationspartner keine IP-Adresse vorschlägt. Diese Vorgehensweise ist Standard für die
Kommunikation per GPRS.
• usepeerdns gibt an, dass zur Namensauflösung die vom Einwahl-Kommunikationspartner
übergebenen IP-Adressen zu nutzen sind.
• defaultroute bewirkt, dass die Verbindung über das Handy als default-Route
gesetzt wird, also jede Internetkommunikation über die GPRS-Verbindung abgewickelt wird.
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
16
• persist ist eine Einstellung des PPP-Daemons, die dafür sorgt, dass eine einmalig zusammengebrochene Verbindung nicht zu einem Terminieren des PPPDaemons führt, sondern dass dann versucht wird, die Verbindung erneut aufzubauen, bis diese Verbindung explizit abgebaut wird. Für die Verwendung im
kabellosen Kommunikationsbereich bietet sich diese Option logischerweise an
• noauth gibt an, dass sich das Handy beim Anbieter nicht weiter authentifizieren
soll. Diese Vorgehensweise ist auch üblich.
• connect gibt das Kommunikations-Skript an, dass gegebenenfalls das Modem initialisiert und eine Verbindung zum passenden Kommunikationspartner aufbaut.
Es gibt noch viele weitere Einstellungen, die der PPP-Daemon bietet. Dem Interressierten Leser seien hier die entsprechenden Linux-man-pages empfohlen ([Manu08c]).
Zum Debuggen bietet es sich an, zusätzlich noch die Einträge nodetach und debug am
Anfang der Konfiguration einzutragen. nodetach bewirkt, dass der PPP-Daemon im
Vordergrund läuft und debug sorgt für zusätzliche Informationen zu jedem Arbeitsschritt.
4.3.2 Chatscript
Für die Modemkommunikation ist das Programm chat zuständig, dass standardmäßig
unter /usr/sbin/chat liegt (vergleich pppd-Konfiguration Seite 15). Die verwendete
Aufruf-Option -v bewirkt ein loggen der Ausgaben ins Systemlog und die Option -f
benutzt das ihr nachfolgende Skript zur Kommunikation. Das zugehörige Chatscript,
das unter /etc/ppp/chat-fonic abzulegen ist, sieht wie folgt aus:
TIMEOUT
ECHO
ABORT
ABORT
ABORT
ABORT
ABORT
’’
TIMEOUT
OK
OK
OK
5
ON
’\nBUSY\r’
’\nERROR\r’
’\nNO ANSWER\r’
’\nNO DIALTONE\r’
’\nRINGING\r\n\r\nRINGING\r’
\rAT
30
ATE1
AT+CGDCONT=1,"IP","pinternet.interkom.de"
ATDT*99#
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
TIMEOUT
CONNECT
17
30
""
Das Programm chat nimmt Befehle nach dem Schema <erwarteter Wert/Schlüsselwort>
<zu sendender Wert/Einstellung> an. Die notwendigen Befehle sind hier kurz aufgelistet und erklärt:
• Der Befehl TIMEOUT 5 bewirkt, dass das Timeout für alle nachfolgenden Befehle
auf 5 Sekunden gesetzt wird.
• ECHO ON bewirkt eine Ausgabe aller Modemantworten.
• Mit ABORT kann man sich auf verschiedene mögliche Fehlerzustände des Modems
einstellen.
• ‘ ‘ \rAT sendet den AT-Befehl AT“ an das Handy. Hiermit wird überprüft, ob
”
das Handy als virtuelles Modem AT-Befehle annehmen kann.
• TIMEOUT 30 setzt alle Timeouts für nachfolgende Befehle auf 30 Sekunden
• OK ATE1 schaltet das Modem-Echo an. Alle Eingaben, die zum Modem geschickt
werden, werden reflektiert“ und lokal wieder ausgegeben.
”
• OK AT+CGDCONT=1,“IP“,“pinternet.interkom.de“ wählt beim Handy das Verbindungskonto mit dem Anbieter pinternet.interkom.de“ (im Beispiel der Ein”
wahlserver von FONIC-O2) an.
• ATDT*99# beginnt die Einwahl
• CONNECT wird vom Modem zurückgegeben, wenn die Einwahl geklappt hat. Nun
terminiert das Programm chat erfolgreich und die Verbindung ist aufgebaut.
Für weitere Hilfen sind die Hilfeseiten zum Programm chat ([Manu08a]) und eine
Übersicht über AT-Befehle (zum Beispiel [MCCA08]) nützlich.
4.4 Starten der Internetverbindung
Wenn alle vorherigen Punkte ordnungsgemäß abgearbeitet wurden, lässt sich nun die
Verbindung ins Internet einfach mit Hilfe des Befehls pon fonic anstarten. Wenn in
der Konfigurationsdatei des PPP-Daemons die Optionen nodetach und debug gesetzt
Hauptseminararbeit Danilo Hoffmann
4 Das HowTo
18
sind, erhält man eine detaillierte Übersicht über den Ablauf des Verbindungsaufbaus,
der beispielhaft im Anhang auf Seite 26 liegt.
Man sieht, dass zuerst die Verbindung zum Handy mit Hilfe der RFCOMM-Schnittstelle aufgebaut wird. Danach werden verschiedene Verbindungsparameter mit Hilfe
des Link Control Protocol (LCP) und des Compression Control Protocol (CCP) ausgehandelt. Anschließend wird eine IP-Adresszuweisung mit Hilfe des Internet Protocol
Control Protocol durchgeführt. Dabei werden die Adressen für den Gateway und für
die DNS-Server zur Namensauflösung empfangen. Zum Schluss werden mit Hilfe der
Skripte in /etc/ppp/ip-up lokale Routen in den IP-Tabellen gesetzt, damit alle Programme ihre Internetverbindungen über die GPRS-Verbindung abwickeln.
Der PPP-Daemon fügt auch ein neues virtuelles Netzwerk-Interface zur Kommunikation benutzt. Dieses Interface kann man sich durch einen Aufruf von ifconfig
anschauen:
user@host:~$ ifconfig
[...]
ppp0
Protokoll:Punkt-zu-Punkt Verbindung
inet Adresse:10.40.69.169 P-z-P:10.64.64.64 Maske:255.255.255.255
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:3
RX bytes:58 (58.0 b) TX bytes:245 (245.0 b)
[...]
4.5 Stoppen der Internetverbindung
Wenn die Option nodetach in der Konfiguration hinterlegt wurde, lässt sich die Verbindung einfach per <CTRL> + <C> beenden. Hierbei werden die IP-Routen durch
das Skript /etc/ppp/ip-down wieder zurückgesetzt, und auch das Link Control Protocol wird dazu aufgefordert, die Verbindung zu beenden. (Ausgabe im Anhang auf
Seite 27)
Ist nodetach nicht in der Konfiguration eingetragen, so daemonisiert“ sich der PPP”
Daemon, und er kann nur mit Hilfe eines Aufrufs von poff fonic oder mit dem manuellen Senden des Signals 2 (SIGINT) mit Hilfe des Programms kill beendet werden.
Hauptseminararbeit Danilo Hoffmann
5 Fazit
19
5 Fazit
Wie man sieht, ist es mit ein wenig Grundwissen zum Thema Bluetooth gar nicht mal
so schwer, eine funktionierende Verbindung ins Internet herzustellen. Dass diese Form
der Internetanbindung nicht sonderlich schnell ist, liegt auf der Hand:
user@host:~$ ping google.de
PING google.de (66.249.93.104) 56(84) bytes of data.
64 bytes from ug-in-f104.google.com (66.249.93.104):
64 bytes from ug-in-f104.google.com (66.249.93.104):
64 bytes from ug-in-f104.google.com (66.249.93.104):
64 bytes from ug-in-f104.google.com (66.249.93.104):
64 bytes from ug-in-f104.google.com (66.249.93.104):
[...]
icmp_seq=1
icmp_seq=2
icmp_seq=3
icmp_seq=4
icmp_seq=5
ttl=245
ttl=245
ttl=245
ttl=245
ttl=245
time=699 ms
time=707 ms
time=1675 ms
time=860 ms
time=675 ms
--- google.de ping statistics --11 packets transmitted, 11 received, 0% packet loss, time 25559ms
rtt min/avg/max/mdev = 675.991/1113.499/2719.733/629.806 ms, pipe 3
Durchschnittliche Ping-Zeiten von einer Sekunde rechtfertigen die immer noch relativ teueren Verbindungskosten über GPRS auf keinen Fall. Andererseits hat man
mit GPRS die Möglichkeit, immer und überall - Netzverfügbarkeit vorausgesetzt - ins
Internet zu kommen, um seine Arbeiten zu erledigen.
Sicherlich wird der Trend dahin gehen, dass man eines Tages durch schnellere und
leistungsfähigere Übertragungsnetze das Internet auf jedem Punkt der Erde nutzen
kann, GPRS ist da nur ein Anfang. Man wird sehen, was UMTS bringt, und vor allem,
wie es vom Endkunden genutzt werden wird.
Hauptseminararbeit Danilo Hoffmann
20
Anhang
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
21
A Die verwendeten Programme
A.1 Paketliste bluez-utils
/etc/bluetooth/hcid.conf
/etc/bluetooth/rfcomm.conf
/etc/dbus-1/system.d/bluez-hcid.conf
/etc/default/bluetooth
/etc/init.d/bluetooth
/etc/modprobe.d/bluez
/etc/modutils/bluez
/usr/bin/ciptool
/usr/bin/dund
/usr/bin/hcitool
/usr/bin/hidd
/usr/bin/l2ping
/usr/bin/pand
/usr/bin/rfcomm
/usr/bin/sdptool
/usr/sbin/hciattach
/usr/sbin/hciconfig
/usr/sbin/hcid
/usr/sbin/hid2hci
/usr/sbin/sdpd
/usr/share/doc/bluez-utils/AUTHORS
/usr/share/doc/bluez-utils/FAQ.gz
/usr/share/doc/bluez-utils/NEWS.Debian.gz
/usr/share/doc/bluez-utils/README
/usr/share/doc/bluez-utils/README.Debian.gz
/usr/share/doc/bluez-utils/TODO.Debian
/usr/share/doc/bluez-utils/changelog.Debian.gz
/usr/share/doc/bluez-utils/changelog.gz
/usr/share/doc/bluez-utils/copyright
/usr/share/doc/bluez-utils/devfs-devices.gz
/usr/share/doc/bluez-utils/examples/Makefile
/usr/share/doc/bluez-utils/examples/passkey-agent.c.gz
/usr/share/man/man1/ciptool.1.gz
/usr/share/man/man1/dund.1.gz
/usr/share/man/man1/hcitool.1.gz
/usr/share/man/man1/hidd.1.gz
/usr/share/man/man1/pand.1.gz
/usr/share/man/man1/rfcomm.1.gz
/usr/share/man/man1/sdptool.1.gz
/usr/share/man/man5/hcid.conf.5.gz
/usr/share/man/man8/hciattach.8.gz
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
22
/usr/share/man/man8/hciconfig.8.gz
/usr/share/man/man8/hcid.8.gz
/usr/share/man/man8/hid2hci.8.gz
/usr/share/man/man8/l2ping.8.gz
/usr/share/man/man8/sdpd.8.gz
A.2 hcitool
hcitool - HCI Tool ver 3.7
Usage:
hcitool [options] <command> [command parameters]
Options:
--help Display help
-i dev HCI device
Commands:
dev
Display local devices
inq
Inquire remote devices
scan
Scan for remote devices
name
Get name from remote device
info
Get information from remote device
spinq
Start periodic inquiry
epinq
Exit periodic inquiry
cmd
Submit arbitrary HCI commands
con
Display active connections
cc
Create connection to remote device
dc
Disconnect from remote device
sr
Switch master/slave role
cpt
Change connection packet type
rssi
Display connection RSSI
lq
Display link quality
tpl
Display transmit power level
afh
Display AFH channel map
lst
Set/display link supervision timeout
auth
Request authentication
enc
Set connection encryption
key
Change connection link key
clkoff Read clock offset
clock
Read local or remote clock
For more information on the usage of each command use:
hcitool <command> --help
A.3 sdptool
sdptool - SDP tool v3.32
Usage:
sdptool [options] <command> [command parameters]
Options:
-h
Display help
-i
Specify source interface
Commands:
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
search
browse
records
add
del
get
setattr
setseq
23
Search for a service
Browse all available services
Request all records
Add local service
Delete local service
Get local service
Set/Add attribute to a SDP record
Set/Add attribute sequence to a SDP record
Services:
DID SP DUN LAN FAX OPUSH FTP PRINT HS HF HFAG SAP NAP GN PANU
HCRP HID KEYB WIIMOTE CIP CTP A2SRC A2SNK AVRCT AVRTG UDIUE UDITE
SEMCHLA SR1 SYNCML SYNCMLSERV ACTIVESYNC HOTSYNC PALMOS NOKID
PCSUITE NFTP NSYNCML NGAGE APPLE ISYNC
A.4 sdptool Ausgabe
user@host:~$ sdptool browse 00:12:62:D6:C8:4B
Browsing 00:12:62:D6:C8:4B ...
Service Name: OBEX Object Push
Service RecHandle: 0x10046
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100
Service Name: OBEX File Transfer
Service RecHandle: 0x10047
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 10
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
24
Service Name: Dial-up networking
Service RecHandle: 0x10048
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Service Name: Nokia PC Suite
Service RecHandle: 0x10049
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 15
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Service Name: COM 1
Service RecHandle: 0x1004a
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Service Name: Voice Gateway
Service RecHandle: 0x1004b
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 13
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
25
base_offset: 0x100
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0101
Service Name: Audio Gateway
Service RecHandle: 0x1004c
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 12
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100
Service Name: SyncML Client
Service RecHandle: 0x1004e
Service Class ID List:
UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 11
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Service Name: SIM ACCESS
Service RecHandle: 0x10052
Service Class ID List:
"SIM Access" (0x112d)
"Generic Telephony" (0x1204)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
Language Base Attr List:
code_ISO639: 0x656e
encoding:
0x6a
base_offset: 0x100
Profile Descriptor List:
"SIM Access" (0x112d)
Version: 0x0100
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
26
A.5 rfcomm
RFCOMM configuration utility ver 3.32
Usage:
rfcomm [options] <command> <dev>
Options:
-i [hciX|bdaddr]
-h, --help
-r, --raw
-A, --auth
-E, --encrypt
-S, --secure
-M, --master
-f, --config [file]
-a
Commands:
bind
release
show
connect
listen
watch
<dev>
<dev>
<dev>
<dev>
<dev>
<dev>
Local HCI device or BD Address
Display help
Switch TTY into raw mode
Enable authentication
Enable encryption
Secure connection
Become the master of a piconet
Specify alternate config file
Show all devices (default)
<bdaddr> [channel]
<bdaddr> [channel]
[channel [cmd]]
[channel [cmd]]
Bind device
Release device
Show device
Connect device
Listen
Watch
A.6 erfolgreicher pppd-Verbindungsaufbau
user@host:~$ sudo pon fonic
AT
OK
ATE1
OK
AT+CGDCONT=1,"IP","pinternet.interkom.de"
OK
ATDT*99#
CONNECT
Serial connection established.
using channel 8
Using interface ppp0
Connect: ppp0 <--> /dev/rfcomm0
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x6a982205> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x2 <accomp> <pcomp> <asyncmap 0x0> <magic 0x8f5ecfa8>]
sent [LCP ConfAck id=0x2 <accomp> <pcomp> <asyncmap 0x0> <magic 0x8f5ecfa8>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x6a982205> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0x6a982205]
sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <bsd v1 15>]
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [LCP EchoRep id=0x0 magic=0x8f5ecfa8]
rcvd [LCP ProtRej id=0x1 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
Protocol-Reject for ’Compression Control Protocol’ (0x80fd) received
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
rcvd [IPCP ConfNak id=0x1 <addr 10.40.144.11> <ms-dns1 195.182.110.132> <ms-dns3 62.134.11.4>]
Hauptseminararbeit Danilo Hoffmann
A Die verwendeten Programme
27
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 10.40.144.11> <ms-dns1 195.182.110.132>
<ms-dns3 62.134.11.4>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr 10.40.144.11> <ms-dns1 195.182.110.132>
<ms-dns3 62.134.11.4>]
Could not determine remote IP address: defaulting to 10.64.64.64
Cannot determine ethernet address for proxy ARP
local IP address 10.40.144.11
remote IP address 10.64.64.64
primary
DNS address 195.182.110.132
secondary DNS address 62.134.11.4
Script /etc/ppp/ip-up started (pid 25958)
Script /etc/ppp/ip-up finished (pid 25958), status = 0x0
A.7 Verbindungsabbau mit Ctrl+C
Terminating on signal 2
Connect time 1.0 minutes.
Sent 10733 bytes, received 5940 bytes.
Script /etc/ppp/ip-down started (pid 26010)
sent [LCP TermReq id=0x2 "User request"]
Script /etc/ppp/ip-down finished (pid 26010), status = 0x0
rcvd [LCP TermAck id=0x2]
Connection terminated.
Hauptseminararbeit Danilo Hoffmann
Literaturverzeichnis
28
Literaturverzeichnis
[Blue08]
Bluetooth SIG, http://www.bluetooth.com/Bluetooth/Technology/
Building/Specifications/. Böuetooth Core Specification, Juli 2008.
Bluetooth Spezifikation.
[Indi08]
Indivudual Network Berlin e.V., ftp://ftp.in-berlin.de/pub/
capi4linux/firmware/bluefusb/3-18-39/bfubase.frm.
Juni 2008.
Firmware für den BlueFRITZ! USB-Dongle.
[Komm04] Kommunikationsnetze,
http://zack1.e-technik.tu-ilmenau.de/
~webkn/Arbeiten/STUDREFERAT/hildebrandtholger-peinkay.html.
Bluetooth-Anwendungen, November 2004.
Link zur Studienarbeit
Bluetooth-Anwendungen am Fachgebiet Kommunikationsnetze der TU
Ilmenau.
[Manu08a] Manual Pages für Linux, http://linux.die.net/man/8/chat. chat(8),
Juni 2008.
[Manu08b] Manual Pages für Linux, http://linux.die.net/man/1/hcitool. hcitool(1), Juni 2008.
[Manu08c] Manual Pages für Linux, http://linux.die.net/man/8/pppd. pppd(8),
Juni 2008.
[MCCA08] MCCA, http://www.mcca.or.at/info/hayes.htm. Hayes-Befehle, Juni
2008.
[Sour08]
Sourceforge, http://www.bluez.org. Official Linux Bluetooth protocol
stack, Juni 2008. Tools zur Anbindung von Bluetooth-Geräten.
Hauptseminararbeit Danilo Hoffmann
Abkürzungsverzeichnis und Formelzeichen
29
Abkürzungsverzeichnis
APT . . . . . . . . . . . . . . . Advanced Packaging Tool, Paketmanager in debian-basierenden
Linux-Distributionen
AT . . . . . . . . . . . . . . . . . Attention, Zeichenkette zum Einleiten von AT-Befehlen zur Modeminitialisierung
CCP . . . . . . . . . . . . . . . Compression Control Protocol, Protokoll zur Kompression
DNS . . . . . . . . . . . . . . . Domain Name System, System zur Namensauflösung im Internet
GPRS . . . . . . . . . . . . . . General Packet Radio Service, paketorientierte Übertragung
von Daten im Mobilfunknetz
GSM . . . . . . . . . . . . . . . Global System for Mobile Communication, Mobilfunksystem,
auch bekannt als 2G
HCI . . . . . . . . . . . . . . . . Host Controller Interface
IPCP . . . . . . . . . . . . . . Internet Protocol Control Protocol
IrDA . . . . . . . . . . . . . . . Infrared Data Association, ‘Infrarot-Verbindung’
L2CAP . . . . . . . . . . . . . Logical Link Control and Adaption Protocol
LCP . . . . . . . . . . . . . . . Link Control Protocol, Protokoll auf unterster Ebene des BluetoothStacks
LMP . . . . . . . . . . . . . . . Link Management Protocol
Mac OS . . . . . . . . . . . . Macintosh Operating System
PIN . . . . . . . . . . . . . . . . Persönliche Identifikationsnummer
PPP . . . . . . . . . . . . . . . Point-to-Point Protocol
RFCOMM . . . . . . . . . Serial cable emulation protocol based on ETSI TS 07.10
RPM . . . . . . . . . . . . . . . Red Hat Package Manager, Paketmanagementsystem
RSSI . . . . . . . . . . . . . . . Received Signal Strength Indication
UMTS . . . . . . . . . . . . . Universal Mobile Telecommunications System, Mobilfunksystem, auch bekannt als 3G
USB . . . . . . . . . . . . . . . Universal Serial Bus
YaST . . . . . . . . . . . . . . Yet another Setup Tool, Konfigurationsassistent, vorwiegend
in Suse Linux verwendet
Hauptseminararbeit Danilo Hoffmann
Erklärung
30
Erklärung
Die vorliegende Arbeit habe ich selbstständig ohne Benutzung anderer als der angegebenen Quellen angefertigt. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten Quellen entnommen wurden, sind als solche kenntlich gemacht. Die Arbeit ist
in gleicher oder ähnlicher Form oder auszugsweise im Rahmen einer oder anderer Prüfungen noch nicht vorgelegt worden.
Ilmenau, den 31. 12. 2004
Danilo Hoffmann
Hauptseminararbeit Danilo Hoffmann