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