1. Aufgabenstellung
Transcription
1. Aufgabenstellung
1. Aufgabenstellung Das vorhandene LAN-Integrierte Steuerungssystem (LISTIG) ist um eine Bluetooth-Schnittstelle zu erweitern. Dabei sind folgende Arbeitsschritte zu erledigen: – Einarbeitung in die vorgegebene Architektur des Basisgerätes – Konzipierung der Bluetooth-Schnittstelle – Inbetriebnahme der Bluetooth-Schnittstelle – Untersuchung und Bewertung der Kommunikation über Bluetooth Die Bluetooth-Technik ist dadurch gekennzeichnet, dass Profile die Eigenschaft der Geräte festlegen, sodass Geräte mit unterschiedlichen Profilen nicht mit einander kommunizieren können. Im Rahmen der Studienarbeit ist insbesondere die Profil-Problematik zu lösen. 1 2. Bluetooth – Eine Einführung 2.1 Bluetooth – Grundlagen Bluetooth ist ein mittlerweile etablierter Standard für die Übertragung von Daten und Sprache via Kurzstreckenfunk. Zukünftig soll diese Technologie Kabelverbindungen bei mobilen und stationären Geräten ersetzen. Charakteristische Merkmale dieses Standards sind seine Robustheit gegenüber Störungen, die geringe Komplexität der Geräte, der niedrige Energieverbrauch sowie die geringen Herstellungskosten. Bluetooth-Geräte sind z.Z. in 2 Leistungsklassen am Markt verfügbar. Die erste mit einer typischen Sendeleistung von 1 mW (Leistungsklasse 2) und einer Reichweite von ca. 10-15 m, die zweite mit einer typischen Sendeleistung von 100 mW (Leistungsklasse 1) und einer Reichweite von ca. 100 m. Unter Zuhilfenahme von zusätzlichen Leistungsverstärkern, Repeatern und/oder speziellen Antennen lässt sich die Reichweite weiter vergrößern. Der Name Bluetooth (Blauzahn) geht auf den vor rund 1000 Jahren in Dänemark herrschenden König Harald II (dessen Spitzname war Blauzahn) zurück. Wegen seiner fortschrittlichen Denkweise genießt er heute noch einen guten Ruf. Unter seiner Regentschaft wurde der erfolgreiche Zusammenschluss einzelner Gebietsteile zu einem einheitlichen Königreich eingeleitet. Ähnliches ist auch Ziel des Bluetooth-Standards. 1998 von Firmen wie Ericsson (daher auch der Name), Nokia, IBM, Intel und Toshiba begründet, sind heute mehr als 2000 Elektronik-Firmen weltweit am Einsatz und der Weiterentwicklung dieses Standards beteiligt. Die genannten Firmen haben sich im Rahmen der Bluetooth-SIG (Special Interest Group) zusammengeschlossen, um die KurzstreckenNetzwerk-Technologie in eigenen Designs einzusetzen oder Produkte darauf aufbauend zu entwickeln. In aktuellen Bluetooth-Geräten finden sich Chipsätze verschiedenster Hersteller, die alle dem Bluetooth-Standard entsprechen und zumindest grundsätzlich (Stichwort: Profile) mit einander kommunizieren können. Bluetooth-Geräte arbeiten im lizenzfreien 2,4 GHz ISM-Band (Industrial Scientific Medicine). In den meisten Ländern umfasst dies die Bandbreite von 2.402 MHz bis 2.480 MHz. In einigen Ländern z.B. Spanien, Japan und Frankreich (2.446,5 – 2.483,5 MHz) ist die zur Verfügung stehende Bandbreite weiter eingeschränkt. Geräte, die dieses reduzierte Frequenzband nutzen, arbeiten nicht mit Geräten zusammen, die für die volle ISM-Bandbreite entwickelt wurden. Eine Lösung dieses Problems ist im Rahmen der Bluetooth-SIG angestrebt. Innerhalb des Frequenzbandes für die Bluetooth-Kommunikation kommt ein Frequenz-Hopping2 Verfahren (FHSS; Frequency Hopping Spread Spectrum) in 79 Schritten mit einem Abstand von je 1 MHz zum Einsatz. Die Frequenzwechsel erfolgen 1.600 Mal pro Sekunde (Hops/s). Dieses Verfahren bietet neben der vorhandenen Verschlüsselung einen weiteren Schutz gegen unerlaubtes Abhören und Unterwandern eines Bluetooth-Netzwerkes. Weiter wird dadurch eine gewisse Robustheit gegenüber Störungen im Hochfrequenzbereich (HF) gewährleistet, da bei einer Störung nicht die gesamte Übertragung betroffen ist, sondern im „Idealfall“ nur ein Datenpaket verloren geht, welches dann auf einer anderen Frequenz wiederholt übertragen werden kann. In diesem Zusammenhang sollte nicht vernachlässigt werden, dass das lizenzfreie ISM-Band von zahlreichen Funkdiensten (u.a. WLAN 802.11b) genutzt wird und überdies Mikrowellenherde frequenzmäßig eng benachbart sind. Die Reihenfolge, mit der die Frequenzwechsel erfolgen, wird als Hop-Sequenz (FHS; Frequency Hopping Sequence) bezeichnet und vom Master (die Station, über die in einem Pico-Netz alle Verbindungen laufen) festgelegt. Die Geräte innerhalb eines Pico-Netzwerkes lassen sich anhand einer 48 Bit langen unverwechselbaren Seriennummer eindeutig identifizieren. In Pico-Netzwerken mit 2 oder mehr Teilnehmern muss ein Gerät und kann auch nur ein Gerät die Funktion des Masters übernehmen. Bei der Bluetooth-Technologie kommt als Modulationsverfahren Gaussian-(shaped)-FrequencyShift-Keying (GFSK) zum Einsatz. Eine binäre Eins wird dabei durch einen positiven und eine binäre Null durch einen negativen Frequenzhub dargestellt. Die Datenübertragung in Vorwärts- und Rückwärtsrichtung erfolgt zeitlich getrennt (Time Division Duplex; TDD) im Halbduplex-Betrieb (HDX; Half Duplex). Sender und Empfänger tauschen dabei ihre Daten abwechselnd in festgelegten Zeit-Slots aus. Eine Slot-Länge beträgt 625 µs. Für jeden Slot wird eine andere Frequenz verwendet. Die maximal erreichbare Datenrate inkl. Header ist dabei 1 MBit/s. 3 2.2 Bluetooth – System 2,4 G Hz Bluetooth Radio Bluetooth Link Controller Bluetooth Linkm anager & IO HCI Bluetooth Controller HCI Host Layer Anw endung Host System Abbildung 2.2.1: Aufbau eines Bluetooth-Systems (Quelle: /4/ S.57) 2.2.1 Bluetooth-Radio Das Bluetooth-Radio bildet die Sende-Empfangseinheit, ist somit für die HF und die Luftschnittstelle verantwortlich. Der HF-Träger wird innerhalb dieser Baugruppe erzeugt, respektive empfangen und es wird dessen Modulation bzw. Demodulation vorgenommen. Diese Komponente wird meist skalierbar ausgelegt, so dass Sendeleistungen zwischen 0 und 20 dBm zur Verfügung stehen. 2.2.2 Bluetooth-Link Controller Auf dem Bluetooth-Link Controller sind die Funktionen des Basisbandes implementiert, er stellt somit die Bluetooth-Funktionalität bereit. Er ist u.a. verantwortlich für Datenpakete, Kanalverwaltung (physikalische und logische), Frequenz-Hopping, Adressierung, Sicherheit, Empfangsund Sendetiming und Fehlerkorrektur. 2.2.3 Bluetooth-Linkmanager & IO Der Bluetooth-Linkmanager verwaltet alle anfallenden Telegramme über virtuelle logische Kanäle und ermöglicht die Definition von Dienstgüten (QoS Quality of Service), Schlüsselverwaltung für die Authentifizierung und Power-Management. Er stellt alle wesentlichen Funktionen zur Verfügung um den höheren Schichten ein einfaches Kommunikationsmodell anbieten zu können. Sämtliche Leistungen zum Verbindungsaufbau, Verbindungsabbau und zur Pico-Netzverwaltung werden von ihm erbracht. Hierzu werden alle Datenpakete, welche durch die Basisband-Schicht den Controller erreichen, gefiltert und die Steuersignale herausgezogen. Bluetooth-Geräte können auf der Link-Manager-Ebene miteinander kommunizieren, ohne dass das Host-System irgendetwas davon mitbekommt. D.h., es wird eine vollkommene Transparenz zu höheren Protokollschichten erreicht. 4 Die zuvor genannten Bestandteile eines Bluetooth-Systems entsprechen der Hard- und Firmware eines Bluetooth-Moduls und werden in der Regel als eine fertige Komponente zugekauft. Bluetooth-Module zur Erweiterung eines Host-Systems stehen z.B. für USB-, UART-, PCCardoder PCMCIA-Schnittstellen zur Verfügung. Damit das Host-System und der Bluetooth-Controller miteinander kommunizieren können, muss es eine Zwischenschicht geben, welche die physikalische Ankopplung beider Rechnersysteme ermöglicht. Diese damit verbundenen Aufgaben werden vom Host Controller Interface übernommen. 2.2.4 Host Controller Interface (HCI) Das Host Controller Interface definiert den Übergang des controllerseitigen Link-Protokolls und des hostseitigen Link-Protokolls über die o.g. Schnittstellen. Auf dem Host-System läuft das Logical Link Control and Adaption Protocol (L2CAP), darauf setzt der Rest des Bluetooth-Protokollstacks auf. Die spezifizierten Bluetooth-Protokolle sind also mehr oder weniger direkt mit der gesamten Hardware verbunden. In der Bluetooth-Spezifikation sind verschiedene HCI-Protokolle für unterschiedliche Schnittstellen definiert. Eine Gliederung ist wie folgt möglich: - in eine allgemeine Beschreibung des Host Controller Interfaces - in eine Beschreibung der schnittstellenspezifischen Transportschicht (z.B. HCI USB, HCI RS232, HCI UART) - in eine zugehörige HCI-Schnittstellen Beschreibung Die spezifische HCI-Schnittstellen Beschreibung betrifft die entsprechende Implementation in einem z.B. USB-Bluetooth-Modul. Bluetooth-Module kommunizieren in jedem Falle über diese Interface mit ihrem Host, dabei ist es nicht von Bedeutung, welche physikalische Schnittstelle die Daten überträgt. (Abbildung 2.2.2) Die Kommunikation erfolgt also völlig transparent. Zum physikalischen Bus existiert auf dem HostSystem ein geeigneter Treiber. Oberhalb des Bustreibers setz der HCI-Treiber auf, der die Schnittstellendaten aufnimmt und an die darüber liegenden Host-Layer-Protokolle weiterleitet. 2.2.5 Host Layer Der Host-Layer stellt schließlich der jeweiligen Anwendung die Daten zur Verfügung. Zu den Host-Layer-Protokollen, also zur Software, die als Treiber auf dem jeweiligen Host implementiert ist, gehören die Bluetooth-Core-Protokolle (L2CAP, SDP), das Kabelersatzprotokoll (RFCOMM) und der Telephony-API. Die unter 2.2.1 bis 2.2.5 aufgeführten Komponenten gehören zu einem vollständigen BluetoothProtokollstack. 5 Auf allen korrespondierenden Hosts (min. 1, max. 7) ist eine vergleichbare Hardware-FirmwareProtokoll-Struktur implementiert. Host (A) Host (B) Anwendung Bluetooth Funkstrecke Bluetooth Funkstrecke High-Level-Treiber High-Level-Treiber Basisband Controller HCI-Treiber HCI Bus-Treiber Physik HCI Firmware Link Manager Firmware Basisband Controller Link Manager Firmware Bus-Firmware HCI Firmware Bus-Firmware USB, PCI, PCMCIA, UART... HCI HCI-Treiber Physik Bus-Treiber USB, PCI, PCMCIA, UART... Abbildung 2.2.2: Bluetooth Treiber (Quelle: /4/ S.122) 2.2.6 Anwendung Als letzte Stufe eines Bluetooth-Systems folgt schließlich die jeweilige Anwendung. Hierfür sind entsprechende Anwendungsprotokolle, die so genannten Adopted Protocols erforderlich. Sie gewährleisten eine Interoperabilität mit bisherigen Systemen, wurden in der Regel unverändert übernommen und entsprechen damit dem Industriestandard. Wichtige angepasste Protokolle z.B. für mobiles Internet sind IP, TCP, UDP, PPP und WAP. Aber auch Protokolle für den Datei- oder Objektaustausch spielen eine wichtige Rolle. Hier sei beispielhaft das OBEX-Protokoll (Object Exchange Protocol) genannt. Die angepassten Protokolle bilden die Grundlage für die jeweilige Applikation. 2.3 Netztopolgie Der Bluetooth-Standard zeichnet sich dadurch aus, Adhoc-Netzwerke bilden zu können. D.h., es können zwei oder mehr Geräte mit einander kommunizieren ohne vorherige Kenntnis von einander zu haben. Allerdings bedarf es dazu einer ausgezeichneten Station, die den Zugriff auf die Luftschnittstelle regelt. Eine derartige Station wird als Master bezeichnet. Ein Bluetooth-Master ist in der Lage, mit bis zu sieben aktiven Slaves in Kommunikation zu treten. Slaves und Master bilden zusammen ein Pico-Netz. Gehören zu diesem Pico-Netz mehr als sieben Slaves müssen sich diese im so genannten Park-Modus befinden. 6 Bezüglich der Netzwerkeigenschaften des Pico-Netzes ist der Master das bestimmende Element. Er legt die Hop-Sequenz (FHS) fest. Alle Slaves im jeweiligen Pico-Netz müssen sich mit dem Master synchronisieren, um an der Kommunikation teilnehmen zu können. Kein Slave darf dem Master unaufgefordert ein Telegramm übermitteln. Nur auf Anfrage des Masters ist er berechtigt, Daten auszutauschen. Durch diesen Mechanismus ist gewährleistet, dass mit verhältnismäßig wenig Aufwand eine Kommunikation zwischen mehreren Teilnehmern störungsfrei erfolgen kann. Dabei ist anzumerken, dass ein Datenaustausch zwischen zwei Slaves immer zwangsläufig über den Master erfolgt, welcher dabei das in erster Linie limitierenden Element bei einem solchen Übertragungsweg darstellt. Eine Besonderheit des Bluetooth-Standard besteht darin, dass ein Bluetooth-Device, wenn es in ein bestehendes System eingebunden wird, gleichzeitig Master und Slave ist. Erst während des Kommunikationsaufbaus, beispielsweise aufgrund einer Anwendung, entscheidet sich, welche Rolle das Gerät einnimmt. Diese Rolle kann auch während der Kommunikation gewechselt werden. Üblicherweise ist bei Bluetooth-Systemen das Gerät Master, welches das Rufverfahren (Paging) einleitet. Der Bluetooth-Standard lässt zu, dass mehrere Pico-Netze innerhalb der Reichweite nebeneinander parallel existieren. Dies ist möglich, da jeder Master die Kommunikation in seinem Pico-Netz durch eine individuelle Hop-Sequenz steuert. Die verschiedenen Hopping-Schemata sind so definiert worden, dass es möglichst zu keinen Überschneidungen und Interferenzen kommt. Besteht eine Kommunikationsbeziehung zwischen zwei Pico-Netzen über z.B. einen gemeinsamen Slave, spricht man von einem Scatter-Netz. Die Bluetooth-Spezifikation sieht vor, dass ein Device in einem Netz Master und in einem anderen gleichzeitig Slave sein kann. Theoretisch ist es möglich, Nachrichten über eine Scatter-Netz-Struktur weiterzuleiten, jedoch gibt es z.Z. noch keine Musterapplikationen, die diese Funktionalität implementiert haben. Scatter-Netz Pico-Netz Stand by Slave Stand by Master Master Slave Master Stand by Slave Slave Slave Abbildung 2.3.1: Pico- und Scatter-Netze 7 Slave Slave 2.4 Verbindungsarten Prinzipiell stellt der Bluetooth-Standard zwei unterschiedliche Datenkanäle zur Verfügung. Für synchrone Übertragung gibt es die so genannte SCO-Verbindung (Synchronous Connection Oriented), für die asynchrone Kommunikation die ACL-Verbindung (Asynchronous Connectionless Link). Erstere stellt eine leitungsvermittelte synchrone Kommunikation, letztere eine paketvermittelte asynchrone Kommunikation dar. 433,9 kBit/s 732,2 kBit/s Daten symmetrisch 64 kBit/s Daten asymmetrisch Sprache 64 kBit/s 57,6 kBit/s 433,9 kBit/s 64 kBit/s Asynchrone Kommunikation (paketvermittelt) Synchrone Kommunikation (leitungsvermittelt) Abbildung 2.4.1: Bluetooth-Kommunikationsarten (Quelle: /4/ S.58) 2.4.1 SCO-Verbindung SCO-Verbindungen werden nach der aktuellen Bluetooth-Spezifikation nur für die Übertragung von Sprachdiensten verwendet, da Sprachdaten wirklich synchron, d.h. deterministisch übertragen werden müssen. Abweichungen wie z.B. Laufzeitverzögerungen wären sofort als Hall, Echo oder sonstige Störgeräusche hörbar. Bei der synchronen Kommunikation wird vom Master eine Punkt-zu-Punkt-Verbindung aufgebaut. Es werden eine bestimmte Menge an Zeitslots in einem genau definierten Abstand reserviert und bilden somit einen synchronen Datenkanal. Ist dieser einmal eingerichtet, bleibt bis zum Abbau der Verbindung zwischen Master und Slave die reservierte Bandbreite erhalten, egal ob sie benötigt wird oder nicht. Ein Master ist in der Lage mehrere SCO-Verbindungen gleichzeitig aufzubauen und zu verwalten. Im Rahmen einer Master-Slave-Verbindung können gleichzeitig 3 SCO-Links etabliert werden. Dadurch ist z.B. die Übertragung eines Stereo-Signals und eines weiteren Sprachkanals zeitgleich möglich. SCO-Links sind immer bidirektional, d.h. es können gleichzeitig 3-kanalige Signale mit 8 einer Datenrate von 64 kBit/s synchron versendet werden. Synchrone Verbindungen von einem Master zu mehreren Slaves sind ebenfalls möglich. Hierfür stehen allerdings nur maximal zwei parallele SCO-Links zur Verfügung. Ein SCO-Kanal ist immer symmetrisch, für Hin- und Rückkanal ist in jedem Fall die gleiche Bandbreite reserviert. 2.4.2 ACL-Verbindung Für alle Datenpakete, die keine Sprachdaten enthalten, verwendet Bluetooth einen asynchronen Kommunikationskanal. Eine Datenübertragung ist dabei sowohl symmetrisch, als auch asymmetrisch möglich. Bei einer symmetrischen ACL-Verbindung können zwischen Master und Slave maximal 433,9 kBit/s quasi gleichzeitig übertragen werden, asymmetrische Kommunikation ermöglicht sogar auf dem Hin- oder Rückkanal bis zu 732,2 kBit/s. Für den jeweils anderen stehen dann allerdings nur noch 57,6 kBit/s zur Verfügung. Eine ACL-Verbindung beruht auf Paketvermittlung. Das setzt ein speicherndes Verhalten der Übertragungsgeräte voraus und stellt eine besonders effiziente Möglichkeit der Übermittlung von Daten dar. Allerdings ist dabei zu beachten, dass im Gegensatz zur Leitungsvermittlung keine definierte Zeit angegeben werden kann, innerhalb derer die Daten den Empfänger erreichen. Die Übertragung erfolgt asynchron. Es sei nochmals darauf hingewiesen, dass jedes Bluetooth-Gerät nur genau einen asynchronen Datenkanal besitzt und über diesen alle Dienste, sowohl das Versenden von Nutzpaketen als auch der Austausch von Steuerinformationen erfolgen, was je nach Anzahl der Steuerinformationen zu Einschränkungen führen kann. Auf der Basis von ACL-Datenpaketen ist eine Gruppenkommunikation innerhalb eines Pico-Netzes möglich. Die Adressierung erfolgt durch eindeutige Stationsadressen, die während des Konfigurationsvorgangs ermittelt werden. Der Master ist in der Lage, im Sinne einer Punkt-zu-Multipunkt-Verbindung, jedem Slave eine Nachricht zu zusenden. Dazu müssen die entsprechenden Datenpakte nur seine Masteradresse erhalten. 2.4.3 Kombination von SCO- und ACL-Verbindungen Ein Bluetooth-Master kann gleichzeitig mehrere unterschiedliche Datenkanäle zu seinen Slaves aufrechterhalten. Die Begrenzung liegt hier bei maximal zwei bzw. drei SCO-Links und der maximal über einen Bluetooth-Kanal übertragbaren Symbolrate. Zwischen den reservierten SCOSlots wird die übrige Bandbreite nach dem Best-Effort-Prinzip auf die ACL-Datenpakete verteilt, wobei die Steuerpakete wiederum priorisiert übertragen werden. Nicht zuletzt haben die Art der verwendeten Datenpakte und somit die entsprechende Fehlerkodierung und damit wiederum die Nettodatenrate einen ganz wesentlichen Einfluss auf die Menge der möglichen logischen Verbindungen. 9 2.5 Bluetooth-Protokollstack 2.5.1 Übersicht Bluetooth-Protokollstack vCard/vCal ATBefehle W AE SDP TCS BIN W AP OBEX UDP TCP IP PPP BNEP Audio RFCOM M L2CAP Hostcontroller Schnittstelle LM P Basisband Bluetooth-Funk Abbildung 2.5.1: Bluetooth-Protokollstack 2.5.2 Bluetooth im ISO-OSI-Schichtenmodell ISO-OSI-Schichtenmodell 7 Bluetooth-Schichtenmodell Verarbeitung Application 6 Darstellung 5 Sitzung TCP UDP IP 4 Transport PPP BNEP 3 RFCOMM Vermittlung L2CAP LLC 2 Sicherung LM MAC Baseband 1 SDP Bitübertragung RF Abbildung 2.5.2: ISO-OSI-Schichtenmodell vs. Bluetooth-Schichtenmodell 10 Die Bluetooth-Kernprotokolle entsprechen im wesentlichen der Schicht 1 und 2 im ISO-OSIReferenzmodell. Darüber liegende Schichten werden von den anwendungsspezifischen Protokollen, den angepassten Protokollen (Adopted Protocols), repräsentiert. 2.5.3 Die Kernprotokolle Um eine reibungslose Zusammenarbeit der verschiedenen Bluetooth-Geräte zu gewährleisten, werden von der Bluetooth-Spezifikation die Kernprotokolle und das Protokoll des Bluetooth-Funks vorgeschrieben. Diese Protokolle wurden im Rahmen der Bluetooth-SIG definiert. Teilweise wurde dabei auch auf vorhandene Standards zurückgegriffen und diese an die Bluetooth Umgebung angepasst (z.B. bei RFCOMM und TCS BIN). Die anwendungsspezifischen Protokolle sind kein Muss und können je nach Bedarf und Verwendungszweck implementiert werden. 2.5.3.1 Basisband Im Basisband sind fast alle wichtigen Technologien implementiert, wie z.B. der Aufbau von PicoNetzen, die Verwaltung der Datenkanäle (SCO- und ACL-Verbindungen), das Frequenzhopping, das Time-Division-Duplexing, die Datenpakete, die Adressierung von Bluetooth-Geräten, die Abfrage- und Paging-Mechanismen zur Synchronisation und die Systemsicherheit. 2.5.3.2 Link Manager Protocol (LMP) Das Link-Manager-Protokoll wickelt ausschließlich die Kommunikation zwischen den LinkManagern von zwei Bluetooth-Geräten ab. Es umfasst die Mechanismen zum Auf- und Abbau sowie der Kontrolle von Verbindungen zwischen den Geräten und ermöglicht die Definition von Dienstgüten (QoS Quality of Service), die Kontrolle der Betriebszyklen der Funkeinheit, des Verbindungsstatus und der Energiemodi. Außerdem wird die Funktionalität für die Schlüsselgenerierung, -verwaltung und -überprüfung für die Authentifizierung zur Verfügung gestellt. Die LMP-Nachrichten werden auf der Empfängerseite aus den vom Basisband übergebenen Datenpaketen herausgefiltert und vom Link-Manager verarbeitet. Diese Nachrichten haben immer eine höhere Priorität als Benutzerdaten und erreichen niemals höhere Schichten. 11 Bluetooth-Protokoll-Schicht Komponenten des Protokollstacks Bluetooth-Kernprotokolle Basisband LMP (Link Manager Protocol) L2CAP (Logical Link Control and Adaption Layer) SDP (Service Discovery Protocol) Bluetooth spezifische Protokolle BNEP (Bluetooth Network Encapsulation Protocol) Kabelersatzprotokoll RFCOMM (Radio Frequency Communication) Telefonieprotokolle TCS BIN (Telephony Control Specification Binary) AT-Befehle Adaptierte Protokolle PPP (Point-to-Point Protocol) UDP (User Datagram Protocol) TCP (Transmission Control Protocol) IP (Internet Protocol) OBEX (Object Exchange Protocol) WAP (Wireless Application Protocol) vCard (Visitenkartenaustausch zw. Bluetooth-Geräten) vCalendar (Terminabgleich über Bluetooth) IrMC (Infrared Mobile Communications) WAE (Wireless Application Environment) Tabelle 2.5.1: Komponenten des Bluetooth-Protokollstacks 2.5.3.3 Logical Link Control and Adaption Layer Protocol (L2CAP) Das L2CAP ist das zweite Linkmanager-Protokoll oberhalb des Basisbandes. Im Gegensatz zum LMP, was sich um die controllerseitige Kommunikation kümmert, bildet das L2CAP die hostseitige Programmierschnittstelle. Die Hauptaufgaben des L2CAP sind: - die zeitgleiche und völlig transparente Übertragung von Datenpaketen verschiedener höherer Protokollschichten - das Segmentieren großer Datenpakete - die Bereitstellung definierter Dienstgüten - die Gruppenverwaltung Obere Protokollschichten können auf ein Kanalkonzept seitens des L2CAP zurückgreifen, welches ermöglicht über eine asynchrone Verbindung quasi zeitgleich mehrere Protokolle zu übertragen. Dabei werden sowohl verbindungsorientierte als auch verbindungslose Datendienste unterstützt. Das L2CAP unterstützt Datenpakete bis zu einer Größe von 64kByte und setzt diese in entsprechende Basisband-Pakte um. Diese Paketgröße ist von besonderer Bedeutung, da sich oberhalb des L2CAP der Network-Layer befindet und 64kByte eine Kompatibilität zu IP-Paketen gewährleisten. Die logische Link-Schicht unterstützt ausschließlich die Kommunikation über den asynchronen Kanal (ACL). Der SCO-Kanal wird nicht unterstützt. Daraus ergeben sich folgende Einschränkungen: Es wird kein Transport von Audiosignalen ermöglicht und auch kein Kanal für 12 eine sichere Übertragung zur Verfügung gestellt. Die Kommunikation mit Gruppen ist nur via Broadcast möglich. Eine zuverlässige Multicast-Verbindung ist nicht implementierbar. 2.5.3.4 Service Discovery Protocol (SDP) Das SDP ist ein weiteres hostseitiges Bluetooth-Protokoll und verwaltet in einer Service-Datenbank die auf dem Gerät verfügbaren Dienste. Diese können dann von einem dienstsuchenden Gerät abgefragt bzw. genutzt werden. Alle Einträge in der Dienst-Datenbank sind kategorisch hierarchisch gegliedert und mit den notwendigen Informationen versehen, wie der gesuchte Dienst erreicht werden kann. SDP liefert nur die Information über die von einem Bluetooth-Gerät angebotenen Dienste. Eine Vermittlung zwischen den einzelnen Geräten und Diensten erfolgt nicht. 2.5.4 Das Kabelersatzprotokoll – Radio Frequency Communication (RFCOMM) Das RFCOMM-Protokoll ist das erste Protokoll oberhalb der Kernprotokolle. Es ist auf dem HostSystem implementiert und stellt dem Betriebsystem die jeweiligen Cabel-Replacement-Dienste zur Verfügung. Wegen seiner RS232-Schnittstellen-Emulation spielt es eine zentrale Rolle im Bluetooth-Protokollstack. Es kann bis zu 60 virtuelle serielle Schnittstellen mit einer maximalen Datenrate von je 115 kBit/s simulieren und basiert auf dem ETSI (European Telecommunication Standard Institute) Standard TS (Technical Standard) 07.10, wobei nur ein Teil der dort beschriebenen Funktionen von Bluetooth verwendet wird. Das RFCOMM-Protokoll wird u.a. für den Aufbau einer PPP-Verbindung über Bluetooth benötigt. Diese Verbindung ist Grundlage für das DUN-Profil (Dial Up Networking), welches eine Möglichkeit darstellt, das IP (Internet Protocol) über Bluetooth zu realisieren. 2.5.5 Bluetooth Network Encapsulation Protocol (BNEP) Das BNEP definiert den einheitlichen Transport von Netzwerkpaketen über eine BluetoothVerbindung. Für Adhoc-Netzwerke ist ein einheitliches Paketformat Grundvoraussetzung. BNEP übernimmt in Bluetooth-Netzwerken bezüglich des Internetprotokolls (IP) dieselbe Funktion, die in lokalen Netzwerken das Netzwerkprotokoll Ethernet ausübt. D.h. es kapselt diverse Netzprotokolle (IPv4, IPv6, IPX) und leitet die Datenpakte direkt an L2CAP weiter. 13 Das BNEP wird u.a. für Verbindungen zwischen Bluetooth-Geräten unter Verwendung des PANProfils (Private Area Networking) benötigt. Dies stellt die einzige Möglichkeit dar IP over Bluetooth in Bluetooth-Adhoc-Netzwerken zu realisieren. 2.5.6 Adaptierte Protokolle (Adopted Protocols) Die letzte Stufe des Bluetooth-Protokollstacks umfasst die jeweiligen Anwendungen. Hierfür wurden bereits existierende Protokolle übernommen und gegebenenfalls an die BluetoothUmgebung angepasst. Dies sichert eine Zusammenarbeit mit bereits bestehenden Anwendungen, die bisher auf anderen Übertragungsstandards aufsetzen. Eine Kooperation mit zukünftigen Anwendungen ist dadurch einfacher und relativ unproblematisch zu realisieren. Die adopded Protocols wurden zum Großteil unverändert übernommen und entsprechen somit dem Industriestandard. 2.5.6.1 Point-to-Point Protocol (PPP) PPP ist das Sicherungsprotokoll im Internet unterhalb vom IP. Es definiert, wie IP-Datagramme über eine serielle Punkt-zu-Punkt-Verbindung übertragen werden. Es kommt beispielsweise zur Anwendung, wenn man sich mit einem Modem ins Internet einwählt. In diesem Fall wird über die serielle Modemverbindung eine Punkt-zu-Punkt-Verbindung aufgebaut. Das PPP bietet im wesentlichen folgende Funktionalitäten: Eine Methode zur Erstellung von Datenrahmen, ein Protokoll zur Verbindungssteuerung (LCP; Link-Control-Protocol) und das Aushandeln von Funktionen der Vermittlungsschicht, unabhängig vom verwendeten Schicht 3 Protokoll (NCP; Network-Control-Protocol). Auf Basis des LCP-Protokolls von PPP werden Verbindungsdaten zwischen den beiden miteinander kommunizierenden Rechnern hinsichtlich Rahmenlänge, Übertragungsgeschwindigkeit und einer Vielzahl weiterer Parameter ausgetauscht. Bei erfolgreichem Verbindungsaufbau wird die Konfiguration der Vermittlungsschicht über NCP-Pakete realisiert, die innerhalb eines PPPRahmens versendet werden. Mit Hilfe des NCP ist z.B. die Zuweisung von dynamischen IPAdressen möglich. Der Verbindungsabbau erfolgt ebenfalls über LCP-Pakete. Der PPP-Rahmen weicht nur unwesentlich vom HDLC-Protokoll-Standard (High-Level Data Link Control Protocol) ab. Er arbeitet allerdings Zeichen- und nicht Bit-orientiert und kommt mit relativ wenig Protokoll-Overhead aus. 14 2.5.6.2 Internet Protocol (IP) Wie der Name schon sagt, ist IP das Protokoll auf dem der Grossteil der Funktionsweise des Internets beruht. Es ist für die richtige Zustellung und Wegewahl der Datenpakte (Routing) verantwortlich und kümmert sich um die Überlastüberwachung (Traffic-Shaping) der Datenkanäle. Ein geeigneter Routing-Algorithmus vorausgesetzt, können alternative Routen für besonders wichtige Daten oder auch bei Überlast bestimmter Kanäle berechnet werden. IP unterstützt einen verbindungslosen Dienst. Die Datagramm-Übertragung erfolgt in IP-Rahmen, die ohne Nutzdaten eine Mindestlänge von 20 Bytes aufweisen. Typische IP-Datagramme haben Größen zwischen 1.500 Bytes und 64 kBytes. Quell- und Zieladresse müssen weltweit eindeutig definiert sein. Daraus resultieren die IP-Adressen, die durch das NIC (Network Information Center) weltweit verwaltet werden. Der aktuell verwendete Standard IPv4 (IP Version 4) soll zukünftige durch IPv6 (IP Version 6) abgelöst werden. 2.5.6.3 Transmission Control Protocol (TCP) Das TCP realisiert einen zuverlässigen, verbindungsorientierten Dienst oberhalb des unzuverlässigen, verbindungslosen Internet Protokolls. Es gehört zur Transportschicht und kümmert sich um den Kommunikationsaufbau, die Flusssteuerung und –kontrolle und die Durchnummerierung der Datenpakete. Der Datenaustausch zwischen zwei Geräten erfolgt über TCP-Datagramme. Mit Hilfe des TCP kann gewährleistet werden, dass ein beliebiger Bytestrom von einem Gerät zu einem anderen zuverlässig übertragen wird. Da IP die Datenpakete über beliebige Kanäle mit unterschiedlichen Laufzeiten und Auslastungen versendet, muss das TCP auf der Empfängerseite dafür sorgen, dass die Pakete auch wieder in der richtigen Reihenfolge zusammen gesetzt und eventuell verlorene Daten erneut übertragen werden. Um zu vermeiden das schnelle Sender langsame Empfänger überlasten, wurde eine Flusssteuerung im TCP implementiert. Die Kommunikation zur darüber liegenden Anwendungsschicht erfolgt über Ports (TSAP; Transport Service Access Ports). Dadurch wird es möglich, ein ganzes Spektrum von Diensten auf einem einzigen Host zu verwalten. IP-Adresse + Port ermöglichen eine weltweit eindeutige Adressierung eines Dienstes auf einem Rechner. Eine Vielzahl von so genannten „Wellknown Ports“ sind in den RFC’s (Request for Comments) bereits definiert (z.B. FTP; File Transfer Protocol – 21, Telnet – 23, http; Hyper Text Transfer Protocol – 80). Darüber hinaus können weitere Ports vereinbart und individuelle Dienste angesprochen werden. 15 2.5.6.4 User Datagram Protocol (UDP) Das UDP bietet einen unzuverlässigen, verbindungslosen Dienst auf der Grundlage des IP an. Daten werden nach dem Best-Effort-Prinzip über eine Ende-zu-Ende-Verbindung übertragen. UDP bietet keinerlei Garantie für ordnungsgemäße Datenübermittlung. Soll dennoch eine sichere Übertragung realisiert werden, muss eine Telegrammsicherung in der Applikation erfolgen. Wie auch TCP wird UDP ebenfalls über Ports abgewickelt. UDP eignet sich besonders für Client-Server-Anfragen (z.B. Ping), das Versenden von Broadcast-Nachrichten und Telegrammen mit verhältnismäßig wenig Overhead. Auf weitere Protokolle soll an dieser Stelle nicht eingegangen werden, da sie für das Thema der vorliegenden Studienarbeit nur eine untergeordnete Rolle spielen. Im Rahmen des LISTIGProjektes erfolgt die Datenübertragung mit Hilfe von TCP/IP bzw. UDP, deshalb wurde sich hier auf die möglichen Realisierungen dieser Protokolle beschränkt. 2.6 Bluetooth-Profile 2.6.1 Übersicht – grundlegende Bluetooth-Profile Generic Access Profile (GAP) Service Discovery Application Profile (SDAP) Private Area Network Profile (PAN) Telephony Profile Intercom Profile (IntP) Cordless Telephon Profile (CTP) Dial Up Network Profile (DUNP) LAN Access Profile (LAP) Serial Port Profile (SPP) FAX Profile (FaxP) Headset Profile (HSP) Generic Object Exchange Profile (GOEP) File Transfer Profile (FP) Object Push Profile (OPP) Abbildung 2.6.1: Bluetooth-Profile 16 Synchronisation Profile (SP) Von der Bluetooth-SIG sind verschiedene Einsatzmodelle für Bluetooth-Geräte spezifiziert worden. Jeder Einsatzbereich spiegelt sich in einem Bluetooth-Profil wieder. Ein solches beschreibt, welche Protokolle und Funktionen unterstützt werden müssen, damit ein Gerät dem Einsatzmodell entsprechen. Es beschreibt die vertikale Sicht im Protokollstack. Dabei müssen nicht immer zwingend alle Funktionen einer Schicht implementiert sein. Innerhalb der Profile sind die verschiedenen notwendigen und optionalen Funktionen definiert. Anhand der Profile wird im Qualifizierungsprozess die Interoperabilität von Geräten sicher gestellt. Die Bluetooth-Spezifikation definiert vier grundlegende Profile und mehrere darauf aufbauende Einsatzmodelle. Unterschiedliche Arbeitsgruppen arbeiten im Rahmen der SIG daran diese um weitere Einsatzgebiete zu ergänzen. Die vier grundlegenden Profile sind (Quelle: /4/ S.224): 1. GAP – Generic Access Point GAP definiert die allgemeinen Prozeduren für die Erkennung von Geräten, den Verbindungsaufbau sowie das Verbindungsmanagement. 2. SDAP – Service Discovery Application Profile Das SDAP beschreibt die grundlegende Funktionalität von Service-Discovery- Anwendungen. Es nutzt das SDP, um Dienste anbieten zu können und einem Gerät mitzuteilen, welche Protokolle bzw. Profile unterstützt werden. 3. SPP – Serial Port Profile Das SPP wird immer dann verwendet, wenn Bluetooth als Kabelersatz zum Einsatz kommt. Auf SPP basieren die Profile für Fax- und LAN-Dienste. 4. GOEP – Generic Object Exchange Profile Immer dann, wenn komplexe Datenobjekte ausgetauscht werden, kommt das GOEP zum Einsatz. Es definiert die Verwendung des OBEX-Protokolls innerhalb von Bluetooth und hierbei im Besonderen den Dateitransfer, aktives Pushen von Objekten sowie die Synchronisation von Datenobjekten. 2.6.2 Möglichkeiten eine IP-Verbindung über Bluetooth zu realisieren Lediglich drei Profile sind in der Lage, ein IP-Netzwerk zu realisieren und damit die in der Aufgabenstellung der Studienarbeit geforderte Funktionalität zu liefern. Im folgenden soll nur auf diese drei eingegangen werden. Informationen über weitere Profile sind der Literatur (/4/,/5/) zu entnehmen. 17 2.6.2.1 Local Area Network Access Profile (LAP) Das LAP realisiert einen LAN-Zugriff über das serielle Kabelersatz-Protokoll (RFCOMM). Es definiert die verschiedenen Geräterollen und wie eine PPP-Verbindung in verschiedenen Szenarien verwendet wird. Eine Geräterolle ist die des LAN-Zugriffspunktes (LAP; LAN Access Point). Über ihn erfolgt der Zugriff aus das kabelgebundene Netzwerk. Die zweite Geräterolle ist das Datenterminal (DT), welches die Dienste des LAP nutzt und beispielsweise ein PC, Laptop, PDA oder Mobiltelefon sein kann. Dabei sind 3 verschiedene Szenarien vorgesehen: 1. Ein Datenterminal nutzt einen LAP für den drahtlosen Zugang zu einem bestehenden LAN. Nachdem eine Verbindung erfolgreich aufgebaut wurde, arbeitet das DT so, als wäre es direkt am LAN per Kabelverbindung angeschlossen wurde. 2. Der LAN-Access-Point kann auch als Gateway für mehrere Datenterminals fungieren. In diesem Fall verwaltet der LAP die verschiedenen Datenterminals, gerade so, als wären sie direkt per Kabel mit dem Netzwerk verbunden. Die Datenterminals können dann sowohl mit dem Netzwerk, als auch untereinander über den LAP kommunizieren. 3. Zwei Bluetooth Geräte können auch direkt untereinander über das LAN-Access-Profile verbunden werden. Jeweils ein Gerät muss dabei die Rolle des LAN-Access-Points oder die des Datenterminals übernehmen. Dieses entspricht in etwa einer Kabelverbindung in einem Punkt-zu-Punkt-Netzwerk. Der Verbindungsaufbau wird grundsätzlich durch das Datenterminal initiiert. Das DT sucht nach dem LAP und versucht anhand der Dienstparameter eine Kommunikation aufzubauen. Dabei kann eine Verschlüsselung und Authentifizierung auf der Link-Manager-Ebene erfolgen. Hierzu wird im so genannten Pairing-Prozess eine Bluetooth-PIN für den Verbindungscode ausgetauscht. Oberhalb der Link-Manager-Ebene kann ebenfalls noch mal eine PPP-Authentifizierung erfolgen. Kann sich das DT nicht authentifizieren, wird die PPP-Verbindung abgebaut. Andernfalls wird dem DT durch den LAP eine IP-Adresse zugewiesen. Damit diese Dienste erfolgreich genutzt werden können, ist ein entsprechender Eintrag in der SDP-Datenbank nötig. 18 2.6.2.2 Dial Up Networking Profile (DUNP) Das Dial-Up-Networking Profil beschreibt die Protokolle und Dienste für die Implementierung eines Einwahlzuganges über ein Modem oder Mobiltelefon. Es setzt ebenfalls auf dem Serial-PortProfile (nutzt RFCOMM) auf und etabliert oberhalb dessen eine PPP-Verbindung als Sicherungsschicht. Datenpakte höherer Protokollschichten werden transparent verarbeitet und der AT-Befehlssatz für die Steuerung der Modem-Befehle ist ebenfalls integriert. Innerhalb des Profils werden zwei verschiedene Geräterollen definiert (Quelle: /4/ S.242): 1. Das Gateway (GW) beschreibt ein Gerät (Mobiltelefon, Modem), das eine Verbindung zu einem öffentlichen Netzwerk aufbauen kann. 2. Das Data-Terminal (DT) verwendet die Dienstleistungen des Gateways. Typische Geräte sind z.B. Laptops, PC und PDAs. In diesem Profil, werden zwei typische Anwendungsszenarien behandelt, zum einen die Verwendung des GW vom DT aus als kabelloses Modem und zum anderen die Verwendung des GW durch ein DT für den Empfang von Datenrufen. Das DUN-Profil bringt folgende generelle Einschränkungen mit sich (Quelle: /4/ S.244): - Das Modem muss nicht in der Lage sein, zwischen unterschiedlichen Anrufarten zu unterscheiden - Nur die Verwendung von 1-Slot-Datenpaketen ist notwendigerweise vorgeschrieben. Hierdurch wird die Datenrate auf 128 kBit/s begrenzt. Optional können höhere Datenraten mit Mehr-Slot-Paketen erreicht werden. - Es wird immer nur ein Anruf verwaltet. - Es gibt keine Möglichkeit zwischen zwei SCO-Kanälen, die von ein und dem selben Gerät stammen, zu unterscheiden. Die Verwaltung der simultanen Sprachkanäle ist nicht standardisiert und wird herstellerspezifisch umgesetzt. - Eine Initialisierung von GW und DT ist vor der ersten Benutzung zwingend nötig. Meist erfolgt dies durch eine manuelle Aktivierung in Verbindung mit der Eingabe der BluetoothPIN. Dadurch ist die Realisierung von Adhoc-Netzwerken mit Hilfe des DUN-Profils nur eingeschränkt möglich. - Es werden nicht mehrere Instanzen von diesem Profil auf einem Gerät unterstützt. 19 Authentifizierung und Verschlüsselung erfolgen entsprechend den zugrunde liegenden Protokollen. Innerhalb des DUN-Profils sind verschiedene Dienste definiert, wobei z.B. der Fax-Dienst ausschließlich dem Fax-Profil vorenthalten ist und nicht vom Dial-Up-Networking-Profile unterstützt wird. Die unterstützten Dienste müssen auch hier in die SDP-Datenbank auf dem Server eingetragen und somit den Clients zur Verfügung gestellt werden. Abbildung 2.6.2: Realisierung PAN- und DUN-Profil (Quelle: /7/) 2.6.2.3 Privat Area Networking Profile (PAN) Das PAN-Profil nutzt das BNEP und setzt damit direkt auf dem L2CAP auf. Es stellt somit die eleganteste Möglichkeit dar, das IP über Bluetooth zu realisieren. Adhoc-Netzwerk-Funktionalität wird bei Bedarf ebenso bereitgestellt, wie Verschlüsselung und Authentifizierung. Die bei den unter 2.6.2.1 und 2.6.2.2 beschriebenen Profilen benötigten „Zwischenprotokolle“ (RFCOMM, PPP) sind nicht erforderlich. Damit ist der Implementations- und Konfigurationsaufwand deutlich geringer. Im Rahmen des PAN-Profils sind drei mögliche Geräterollen definiert. 1. Der PAN-User (Private Area Network User), ist Client eines Network Access Points (NAP) oder Client Mitglied eines Group Adhoc Networks. 2. Der Group Adhoc Network Controller (GN) ist der zentrale Vermittlungsknoten in einem Peer-to-Peer-Netzwerk (Bluetooth Pico-Netz). Er kann Peer-to-Peer-Netzwerke mit bis zu sieben gleichzeitig aktiven drahtlosen Clients (PANUs) verwalten. 20 Dies entspricht in etwa der Infrastruktur, die sich mit Hilfe des DUN-Profils oberhalb von RFCOMM und PPP ebenfalls realisieren lässt. 3. Der Network Access Point (NAP), agiert als Proxy-Server, als Router oder als Bridge zwischen einem existierenden Netzwerk (z.B. LAN) und bis zu sieben gleichzeitig aktiven drahtlosen Clients (PANUs). Dies entspricht in etwa der Infrastruktur, die sich mit Hilfe des LAN-Profils oberhalb von RFCOMM und PPP ebenfalls realisieren lässt. Entweder die Rolle des GN oder die des NAP kann von einem Bluetooth-Gerät, dem Master im entsprechenden Pico-Netz, wahrgenommen werden. Der GN bzw. NAP befindet sich typischerweise im Listen-Mode und wartet auf einen Verbindungsaufbau von Seiten der Clients. Die zur Verfügung stehenden Dienste (GN oder NAP) müssen ebenfalls in der SDP-Datenbank auf dem Master eingetragen werden und sind somit für die Clients erkenn- und nutzbar. PANU PANU PANU Stand by GN PANU PANU LAN Infrastructure PANU NAP PANU PANU PANU PANU Abbildung 2.6.3: PAN-Profil, Master als Group Network Controller vs. Network Access Point 21 2.7 Bluetooth Hard- und Software Aktuell sind auf dem Markt Bluetooth-Geräte mit unterschiedlichen Schnittstellen verfügbar. In einigen Laptops (z.B. Sony VAIO PCG-TR1MP) und PDAs (z.B. HP iPAQ Pocket-PC h5550) ist Bluetooth bereits serienmäßig integriert. Auch das Nachrüsten eines Rechners ist möglich. Dafür stehen verschiedene Schnittstellen zur Wahl. Zum Ersten die serielle RS232-Schnittstelle, allerdings gibt es hierfür nur sehr wenig Geräte. Am weitesten verbreitet bei den Bluetooth-Geräten ist die zweite Variante, die USB-Schnittstelle. In diesem Zusammenhang spricht man von so genannten USB-Bluetooth-Dongles. Für diese Schnittstelle sind eine Vielzahl von Geräten unterschiedlicher Herstellern (z.B. Acer, AVM Fritz!, Yakumo, Anycom, Epox) verfügbar. Für die Erweiterung von Laptops oder entsprechenden PDAs stehen neben USB weitere Lösungen zur Verfügung, die auf der PCMCIA- oder CF-Card-Schnittstelle aufsetzen. Welche Protokolle, Profile und somit Dienste unterstützt werden ist vom Treiber des jeweiligen Betriebssystems abhängig. Zum Beispiel liefert der Windows-Treiber für das im Rahmen dieser Studienarbeit verwendete Acer BT-500 Bluetooth-Dongel keinen PAN-Support, da das BNEP nicht unterstützt wird. Unter Linux besteht dieses Defizit nicht. Die Linux-Treiber bieten auch in Zusammenarbeit mit dem Acer-Dongel das PAN-Profil an. Die Unterstützung des PAN-Profils unter Windows stellt bei vielen Geräten ein Problem dar. Eines der wenigen Geräte, die dieses unterstützen, ist das AVM BlueFritz! USB-Dongle. Aus diesem Grunde kam dieses Dongle auch auf der Client-Seite im Versuchsaufbau dieser Studienarbeit zum Einsatz. 22 3. Bluetooth-Schnittstelle des LISTIG-Systems 3.1 Beschreibung des LISTIG-Systems Abbildung 3.1.1: Hauptplatine des LISTIG-Basisgeräts Den Kern des LISTIG-Basisgerät bildet das 120 mm x 124 mm große Mainbord (Abbildung 3.1.1). Dieses ist bestückt mit einem STPC-Atlas-Prozessor, der passiv gekühlt wird. Der Speicherausbau beläuft sich auf 128 MB SDRAM, 128 kByte BIOS-Flash-RAM und 8MB Flash-RAM für das Betriebssystem und andere Programme. Als Massenspeicher kann für die Inbetriebnahme und das Debugging eine Standard–ATA-Festplatte (IDE) angeschlossen werden. In der verwendeten Ausbaustufe war dies eine 20 GByte Festplatte der Firma Seagate. Als serielle Schnittstelle steht eine COM-Anschluß mit LVTTL-Pegel zur Verfügung. Weitere verwendbare Schnittstellen sind ein PS/2 Anschluss für ein Keyboard, eine 15-polige HDSUB-Buchse für den Anschluss eines VGA-Monitors, ein 18 Bit breites LVTTL-Interface für den digitalen Anschluss eines TFTDisplays und eine 4-polige Stiftleiste für das Nachaußenführen eines USB-Ports. Zusätzliche Erweiterungen sind über zwei PCI-Steckplätze (32 Bit, 5V) möglich. Die Spannungsversorgung kann über ein steckerseitig modifiziertes Standard-PC-Netzteil erfolgen. Das PC-Bios basiert auf dem General Software Embedde BIOS 4.3 und unterstützt das Booten aus einem linearem Flash-Speicher. Als lokales Betriebssystem kommen DOS/Embedded DOS und 23 Linux in Frage. Für Debugging Zwecke kann in Verbindung mit der optionalen Festplatte MS Windows 98 oder MS Windows NT 4.0 SP3 oder höher eingesetzt werden. Auf weitere technische Details soll an dieser Stelle verzichtet werden. Diese und noch eine Vielzahl zusätzlicher Informationen sind in der mitgelieferte „HFWK STPC-Board Kurzbeschreibung“ ein zu sehen. Abbildung 3.1.2: Das LISTIG-Versuchssystem 3.2 Konzeption der Bluetooth-Schnittstelle am LISTIG-System 3.2.1 Hardware Das LISTIG-Basisgerät bietet folgende infrage kommende Busschnittstellen zur Erweiterung um eine Bluetooth-Schnittstelle: - 2 PCI Slots - 1 serielle RS232-Schnittstelle - 1 USB-Schnittstelle mit nur einem USB-Port 24 3.2.1.1 PCI-Bus: Da aktuell auf dem Markt keine PCI-Karten verfügbar sind, die eine Bluetooth-Schnittstelle direkt aufsetzend auf dem PCI-Bus realisieren, scheidet diese Schnittstelle für die Bluetooth-Erweiterung in erster Näherung aus. Theoretisch wäre aber eine PCI-PCMCIA-Adapterkarte mit entsprechendem PCMCIA-BluetoothModul als eine mögliche Realisierung denkbar. Dabei ist aber zu beachten, dass das LISTIGSystem unter Linux läuft und dafür dann entsprechende Treiber sowohl für den PCI-PCMCIAAdapter, als auch die PCMCIA-Bluetooth-Karte nötig sind. Im Zuge einer ausführlichen Recherche im Internet und entsprechender Literatur stellte sich heraus, dass dafür z.Z. unter Linux (noch) kein ausreichender Treiber-Support besteht. Der PCI-Bus scheidet also als mögliche Schnittstelle für eine Bluetooth-Erweiterung aus. 3.2.1.2 Serielle Schnittstelle: Die Anzahl der verfügbaren USB-Geräte für die serielle Schnittstelle ist sehr begrenzt. Durch die Treiberunterstützung vor allem unter Linux wird diese Zahl noch weiter eingeschränkt. Für die Infrarot-Schnittstelle, die ebenfalls im Zuge des LISTIG-Projekts realisiert werden soll, stellt die RS232-Schnittstelle den quasi Standard für eine Erweiterung dar. Aus diesen Gründen wurde von einer Bluetooth-Erweiterung auf Basis der seriellen Schnittstelle Abstand genommen. 3.2.1.3 USB-Schnittstelle: USB ist die Schnittstelle, für die eine Vielzahl von Bluetooth-Modulen von unterschiedlichen Herstellern aktuell am Markt verfügbar sind. Die Treiberunterstützung ist sowohl unter Windows als auch unter Linux sehr gut. Sie stellt den quasi Standard für eine Bluetooth-Schnittstelle dar. Deshalb wurde bei der Erweiterung des LISTIG-Systems eine USB-Bluetooth-Lösung gewählt. Zum Einsatz kamen dabei auf der Seite des LISTIG-Basis-Gerätes das Acer BT-500 USB-Dongle und auf der Seite des Clients (zu Testzwecken ein Laptop mit MS Windows 98) das AVM BlueFritz! USB-Dongle. Auf das AVM-Dongle wurde deshalb zurückgegriffen, da die mitgelieferten Windows-Treiber ebenfalls das benötigte BNEP und somit das PAN-Profil unterstützen. Dies ist nur bei einer geringen Zahl von Herstellern der Fall. 3.2.2 Software Auf dem LISTIG-Basisgerät ist standardmäßig als Betriebssystem Debian Linux (Woody) mit einer Kernelversion 2.4.18 installiert. Dieser Kernel stellt die niedrigste Version dar, auf dem sich theoretisch eine Bluetooth-Schnittstelle realisieren ließe. Dafür sind allerdings eine Vielzahl von 25 zusätzlich zu installierenden Kernel-Patches nötig. In verschiedenen Newsgroups im Internet wird für eine Bluetooth-Implementation zu einem Kernel 2.4.20 oder höher geraten. Zu Testzwecken wurde im Laufe der Studienarbeit eine Bluetooth-Schnittstelle auf Basis des 2.4.22 Kernels realisiert. Dies stellt eine gut funktionierende und sehr stabile Lösungsmöglichkeit dar. Der 2.4.22 Kernel ist eine der letzten Kernelversionen, die für den 2.4.X Kernel-Core entwickelt wurden. Da für die WLAN-802.11g-Schnittstelle, die ebenfalls im Rahmen des LISTIG-Projektes zu realisieren war, Mindestvoraussetzung der Kernel 2.6.0 ist, wurde im weiteren Verlauf eine Implementierung auf Basis des 2.6.4 Kernels vorgenommen. Die Unterschiede zwischen den beiden Kernelversionen hinsichtlich Installation, Konfiguration und Inbetriebnahme der USB-Bluetooth-Schnittstelle sind minimal. Darauf wird an den entsprechenden Stellen dieser Studienarbeit noch einmal gesondert hingewiesen. Als Client für eine Bluetooth-Teststrecke sollte ein Laptop o.ä. mit einem MS Windows Betriebssystem zum Einsatz kommen. Wie bereits erwähnt, ist dabei zu beachten, dass die Windows-Treiber für das entsprechende Bluetooth-Dongle das PAN-Profil unterstützen müssen. Dies ist z.Z. nur bei einer sehr geringen Zahl von Bluetooth-USB-Geräten der Fall. Aus diesem Grund wurde für den Client ein USB-Dongle der Firma AVM gewählt. Die beiliegenden Treiber unterstützen das PAN-Profil. Zu Versuchszwecken wurde ebenfalls eine Testverbindung mit einem HP iPAQ Pocket-PC h5550 aufgebaut. Die dort integrierte Bluetooth-Schnittstelle in Zusammenarbeit mit dem verwendeten Betriebssystem Windows CE bietet ebenfalls PAN-ProfilUnterstützung. Ein Aufsetzen der clientseitigen Testapplikation war nicht, in erster Linie aufgrund nicht vorhandener Laufwerke oder anderer einfacher Möglichkeiten für Software-Updates, möglich. 3.3 Aufbau und Inbetriebnahme einer Bluetooth Teststrecke 3.3.1 Aufbau IP over Bluetooth via BNEP and PAN-Profile Bluetooth Funkstrecke ca. 1-15 m Abstand LISTIG-Basisgerät Acer USB Bluetooth Dongle IP-Adresse: 10.0.0.1 Subnetzmaske: 255.255.255.0 Debian Linux Kernel 2.6.4 Client-Laptop AVM BlueFRITZ! USB Dongle IP-Adresse: 10.0.0.2 Subnetzmaske: 255.255.255.0 MS Windows 98 SE Abbildung 3.3.1a: Aufbau Bluethooth-Testumgebung 26 3.3.2 Inbetriebnahme Zur Inbetriebnahme wird zu erst das LISTIG-Basisgerät mit dem 2.6.4 Kernel gebootet und dann das Acer-USB-Bluetooth-Dongle an den USB-Port angeschlossen. Auf dem Bildschirm sollte nun folgende Meldung zu lesen sein: usb 1-1: new full speed USB device using address 2 D.h. das ein neues USB-Gerät (Version 1.1) gefunden und diesem die Adresse 2 zugewiesen wurde. Wiederholt man den Vorgang, erscheint die gleiche Meldung, lediglich die Adresse erhöht sich jeweils um 1. Danach muss das Kernel-Modul für das USB-Host-Controler-Interface (HCI) geladen werden. Dies erfolgt in der Kommandozeile mit: # modprobe hci_usb Folgende Meldungen sollten nun so oder in ähnlicher Form auf dem Bildschirm erscheinen und damit die Implementierung der HCI-Protokollschicht bestätigen: Bluetooth: HCI device an connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: HCI USB driver ver 2.5 drivers/usb/core/usb.c: registered new driver hci_usb Als nächstes muss das Bluetooth-Dongle in das System eingebunden werden. # hciconfig hci0 up Darauf sollte folgende Ausgabe erscheinen: Kernel driver hci_usb already loaded Ob das Einbinden erfolgreich verlaufen ist, kann man überprüfen, in dem man nochmals 27 # hciconfig eingibt. Der folgende Bildschirm sollte in etwa so aussehen: Abbildung 3.3.1b: hciconfig Nun kann nach Bluetooth-Geräten in der Umgebung gescannt werden. Dazu gibt man # hcitool scan ein und erhält folgenden Bildschirm-Ausdruck. Abbildung 3.3.2: hcitool scan Dem kann man nun den Namen der erreichbaren USB-Bluetooth-Devices (hier: AVM BlueFRITZ! USB) und die zugehörige Hardware-Adresse (hier: 00:04:0E:81:F8:D4) entnehmen. Ob auch 28 tatsächlich eine Schicht-2-Verbindung besteht, kann man mit einem Layer-2-Ping (l2ping) überprüfen. Dazu gibt man ein: # l2ping 00:04:0E:81:F8:D4 und erhält folgenden Bildschirmausdruck: Abbildung 3.3.3: l2ping Nun muss noch der Daemon für das Service-Discovery-Protocol (SDP) gestartet werden, damit der entsprechende Client auch erkennen kann, welche Services auf dem Master (LISTIG-Basisgerät) zur Verfügung stehen. # sdpd Bei der 2.4.22 Kernelversion muss nun noch das Kernel-Modul für den BNEP-Support geladen werden. Dies geschieht wie folgt: # modprobe bnep Bei der Kernelversion 2.6.4 erfolgt dies automatisch durch Aufrufen des nächsten Befehls, der gleichzeitig den Daemon für das Privat-Area-Network-Profil (PAN) startet. # pand --listen --role GN Das LISTIG-Basisgerät tritt somit in die Rolle (--role) des Group-Adhoc-Network-Controlers 29 (GN) und wartet mit --listen auf einen Verbindungsaufbau von Seiten des Clients. Wird der pand-Befehl erfolgreich ausgeführt, erscheinen auf dem Bildschirm folgende Meldungen zur Bestätigung der Implementierung der verschiedenen Protokollschichten. Bluetooth: L2CAP ver 2.1 Bluetooth: L2CAP socket layer initialized Bluetooth: BNEP (Ethernet Emulation) ver 1.0 Bluetooth: BNEP filters: Protocol multicast Der Client-Laptop kann jetzt mit eingestecktem AVM-USB-Bluetooth-Dongle gebootet werden. In der Netzwerkumgebung sind eine entsprechende IP-Adresse und Subnetzmaske einzutragen. Abbildung 3.3.4: Netzwerkumgebung Abbildung 3.3.5: IP-Adresse und Subnetzmaske Mit Doppelklicken auf das AVM-Bluetooth-Symbol neben der Systemuhr öffnet sich das Übersichtsfenster über die Bluetooth-Umgebung. Dort findet man eine Auflistung von BluetoothGeräten, mit denen sich schon einmal verbunden wurde (unter: „Meine Bluetooth-Umgebung“) und die zugehörige Signalstärke (unter: „Verbindung“) für die jeweilige Verbindung bzw. ob gerade eine Verbindung besteht wird angezeigt. Auf der linken Seite des Fensters, unter „Eigene Bluetooth-Geräte“ ist das AVM-BlueFritz!-USB-Dongle 30 mit Hardware-Adresse (00:04:0E:81:F8:D4) und Namen aufgeführt. Für das Hinzufügen neuer Bluetooth-Geräte klickt man mit der linken Maustaste auf das Logo des Dongles und im sich öffnenden Menüfenster auf „Neue Bluetooth-Geräte“ suchen (siehe Abbildung 3.3.6). Abbildung 3.3.6: BlueFRITZ! – Meine Bluetooth-Umgebung Nun wird automatisch nach, sich in der Nachbarschaft befindlichen, Bluetooth-Geräten gescannt und folgendes Fenster informiert über das Ergebnis: Abbildung 3.3.7: Bluetooth-Geräte suchen und auswählen Um nun mit einem Bluetooth-Gerät in Verbindung zu treten, wird dieses in der Liste ausgewählt und dann auf den Button „Bluetooth-Gerät übernehmen“ geklickt. 31 Die Tabelle in Abbildung 3.3.7 zeigt den Gerätenamen des HP iPAQ Pocket-PC h5550 „POCKET_PC“ und dessen zugehörige Bluetooth-Adresse „08:00:17:1B:53:C6“, sowie die zur Verfügung stehenden Services (Networking, Object transfer, Audio…). Die zweite Zeile symbolisiert das Acer-USB-Bluetooth-Dongle des LISTIG-Basisgeräts mit dem Gerätenamen „BlueZ (0)“ (BlueZ ist der Name für den gesamten Bluetooth-Treiber-Stack unter Linux) und der Hardware-Adresse „00:60:57:0B:4F:D8“. Zur Verfügung stehende Services werden nicht ausgewiesen, dieses deutet auf Probleme mit dem Service-Discovery-Protocol (SDP) auf dem LISTIG-System hin (Siehe dazu auch 3.5.2.2). Der Aufbau einer PAN-Verbindung wird dadurch aber nicht behindert. Der Verbindungsaufbau erfolgt in dem man wieder zurück im Fenster „BlueFRITZ! – Meine Bluetooth-Umgebung“ mit der rechten Maustaste auf das Symbol für die entsprechende Verbindung klickt und „Verbinden mit…“ und anschließend „Netzwerk (PAN) – Group Network Service“ auswählt (Abbildung 3.3.8). Die PAN-Verbindung wird nun aufgebaut und in der Grafik grün hinterlegt (Abbildung 3.3.9). Abbildung 3.3.8: PAN-Verbindung aufbauen 32 Abbildung 3.3.9: Aktive PAN-Verbindung Auf dem LISTIG-Basis Gerät erfolgt jetzt eine Bildschirmausgabe, dass eine BNEP-Verbindung aufgebaut und ein neues Netzwerk-Gerät (bnep0) hinzugefügt wurde. Dessen Konfiguartion wird wie folgt vorgenommen. Für die IP-Adresse (10.0.0.1): # ifconfig bnep0 10.0.0.1 Und für die Subnetzmaske (255.255.255.0): # ifconfig bnep0 netmask 255.255.255.0 Ob die Einstellungen korrekt übernommen wurden, kann mit # ifconfig bnep0 überprüft werden. Dabei sollten folgende Meldungen auf dem Bildschirm erscheinen: 33 Abbildung: 3.3.10: ifconfig bnep0 Zu Testzwecken kann nun sowohl vom Client unter Windows das LISTIG-Basisgerät angepingt werden: C:\ping 10.0.0.1 Abbildung 3.3.11: Ping unter MS Windows Als auch ein Ping vom LISTIG-Basisgerät zum Client erfolgen: # ping 10.0.0.2 34 Abbildung 3.3.12: Ping unter Linux Damit die Testapplikation für die IP-Kommunikation erfolgreich aufgesetzt werden kann muss noch die Datei hosts im Verzeichnis /etc editiert und wie in Abbildung 3.3.13 ersichtlich, ergänzt werden. Abbildung 3.3.13: Die Datei /etc/hosts Hier wurden die IP-Adressen für das BNEP-Gerät (10.0.0.1) auf dem LISTIG-Basissystem und dessen Rechnername (listig1), sowie die IP-Adresse des Clients (10.0.0.2) und dessen Rechnername (schleppi) eingetragen. Vor dem Starten der IP-Kommunikations-Testapplikation ist noch ein dafür benötigtes DebianPaket (libstdc++2.10_2.95.2-14_i386.deb; siehe auch beiliegende CD) von www.debian.org herunter zu laden und zu installieren. Dies erfolgt aus dem entsprechenden Unterverzeichnis per: # dpkg -i libstdc++2.10_2.95.2-14_i386.deb 35 Nun kann die IP-Kommunikations-Tespapplikation auf dem LISTIG-Basisgerät gestartet werden. Dazu muss ins Verzeichnis /home/ben bzw. dort hin gewechselt werden, wo das Testprogramm (listig) gespeichert wurde. Das Programm listig wird wie folgt gestartet: # ./listig listig1 3353 Dabei startet ./listig das Programm. listig1 ist der Rechnername des LISTIG-Basisgerätes und 3353 ist ein freiwählbarer Port (siehe Abbildung 3.3.1.4 Zeile 1 bis 5). Die Testapplikation wartet nun auf eine entsprechende Verbindung vom Client: Abbildung 3.3.14: Testapplikation Nun muss die Testapplikation („Client_Listig)“ auf dem Client aufgerufen und konfiguriert werden. Dies geschieht durch Doppelklick auf die Datei listig.jar. (Vorher ist, wenn noch nicht vorhanden, das Java 2 Runtime Environment von http://java.sun.com/j2se/1.4.2/download.html zu installieren bzw. sind beide Programme auf der beiliegenden CD enthalten). Abbildung 3.3.15: Client-Testapplikation 36 Unter „Hostname or IP“ ist die IP-Adresse des LISTIG-Basisgerätes (10.0.0.1) einzutragen und unter „Port“ ein beliebiger freier Port z.B. 3353. Nun kann im Feld „Send a message“ eine beliebige Nachricht an das LISTIG-System geschickt werden. Diese erscheint dann bei erfolgreicher Hinund Rückübermittlung wieder im Feld „Receive a message“ mit voran gestelltem Ausdruck „You have sent:“ Siehe dazu auch Abbildung 3.3.16. Abbildung 3.3.16 Hello world… Die Funktionsweise der Testsoftware auf dem LISTIG-Gerät wird durch den Bildschirmausdruck in Abbildung 3.3.17 (unteren 8 Zeilen) deutlich. Abbildung 3.3.17: Requests from Schleppi Die Ausgabe erfolgt zwei mal, da die Daten zuerst vom Server empfangen und dann wieder zurück an den Client verschickt werden. Die Ausdrücke, die dieses quittieren, sind Abbildung 3.3.17 zu entnehmen. 37 3.4 Untersuchung und Bewertung der Bluetooth-Kommunikation 3.4.1 Reichweitenmessung Die Reichweitenmessungen wurden mit dem im AVM-Treiber integrierten Tool „Verbindungsmonitor“ vom Client aus durchgeführt. Diese Tool ruft man auf, in dem man auf die PAN-Verbindung im Fenster „BlueFRITZ! – Meine Bluetooth-Umgebung“ mit der rechten Maustaste klickt. (Abbildung 3.4.1) Im sich dann öffnenden Fenster wird „Eigenschaften“ ausgewählt und unter der nun erscheinenden Grafik der Button „Details“ gedrückt. Die sich danach ergebende Darstellung ist in Abbildung 3.4.2 gezeigt. Abbildung 3.4.1: PAN-Verbindung aufbauen Abbildung 3.4.1: Verbindungsmonitor AVM-Treiber 38 Die Messwerte für unterschiedliche Entfernungen zwischen Client-Laptop und LISTIG-Basisgerät sind der Tabelle 3.4.1 zu entnehmen. Dabei war festzustellen, dass die 10 m spezifizierte Reichweite für ein Bluetooth-Gerät der Leistungsklasse 2 (1 mW max. Sendeleistung) relativ gut und zuverlässig erreicht werden. Die Sendeleistung des AVM-Dongles am Client wird der jeweiligen Verbindungsqualität dynamisch zwischen –4 und 16 dBm angepasst. Das lässt den Schluss zu, dass es sich bei dem AVM-Dongle um ein Gerät der Leistungsklasse 1 (100 mW max. Sendeleistung) handelt. Das am LISTIG-Basisgerät verwendete Acer-Dongle gehört der Leistungsklasse 2 an. Distanz zw. Host und Client Sendeleistung in dBm Empfangsfeldstärke in dBm SNR in dB Empfangspaketfehlerrat in % <1m (direkt gegenüber) -4 -61 bis -63 16 bis 23 0 ca. 4m Luftlinie 6 bis 9 -68 bis -72 8 bis 14 0 bis 7 ca. 10m Luftline 16 -77 bis -80 0 bis 4 11 bis 52 ca. 5m Luftline (1 Wand) 12 bis 16 -75 bis -78 3 bis 11 40 bis 60 ca. 10m Luftlinie (1Wand) 16 -75 bis -79 2 bis 3 0 bis 55 Tabelle 3.4.1: Reichweitenmessung 3.5 Aufgetretene Probleme 3.5.1 Hardware 3.5.1.1 USB-Stiftleiste Auf dem STPC-Mainboard des LISTIG-Basisgerätes liegt ein Layoutfehler innerhalb der vierpoligen Stiftleiste für die Nachaußenführung des USB-Ports vor. Die inneren beiden Pins sind, gegenüber dem standardisierten Pfostenstecker für den Anschluss einer USB-Buchse, vertauscht. D.h. die Daten-Plus- (D+) und die Daten-Minus-Leitung (D-) müssen im Pfostenstecker gedreht werden, damit die USB-Schnittstelle genutzt werden kann. 39 3.5.1.2 PCI-Slot Der innere PCI-Slot des STPC-Mainboard teilt sich grundsätzlich den Interrupt 11 mit dem USBPort, der ISA-Bridge und dem IDE-Controller. Dies führte dazu, dass keine gleichzeitige Nutzung von diesem Slot durch z.B. eine Ethernetkarte und dem USB-Port möglich war. Wobei dabei der USB-Port Priorität genießt, d.h. im konkreten Fall, USB funktionierte ordnungsgemäß, die PCIKarte im genannten Slot nicht. Der Fehler liegt in der Interruptverwaltung und ist eventuell mit einem entsprechenden BIOSUpdate zu beheben (siehe dazu auch nächsten Absatz 3.5.1.3). 3.5.1.3 BIOS Das Bios bietet leider keinerlei Einstellung für die Interruptverwaltung, daraus resultierend werden dem äußeren PCI-Slot immer der IRQ 10 und dem inneren PCI-Slot der IRQ 11 fest zugewiesen. Dies kann führt u.a. zu den unter 3.5.1.2 beschriebenen Problemen. Auch ist sich beim Booten unbedingt an die unter 7.1 beschriebenen Einstellungen zu halten. Es kommt zu Bootproblemen, wenn bereits ein Betriebsystem (Linux) installiert ist und noch eine startfähige CD-ROM beim Starten im Laufwerk liegt. Der Rechner blieb bei solch einer Konfiguration gelegentlich schon während des Initialisierens der Hardware hängen. Abhilfe ist dadurch möglich, vorher ins Bios zu wechseln, mit oder ohne erfolgte Änderungen noch mal zu speichern, dann das Bios wieder zu verlassen und den automatisch eingeleiteten Startvorgang abzuwarten. Diese Verfahrensweise stellt aber nur ein Provisorium dar, eine endgültige Lösung ist dringend erforderlich. 3.5.1.4 Netzteil Als Netzteil für das LISTIG-Basisgerät kommt ein steckerseitig modifiziertes Standard-PC-Netzteil zum Einsatz. Im Rahmen der Studienarbeit kam es zu Problemen mit einem der beiden Basisgeräte, die sich auf das dort verwendete Netzteil zurückführen ließen. Obwohl alle Spannungen wie vorgeschrieben anlagen, war in diesem System kein Betreiben einer PCI-Ethernetkarte möglich. Der Wechsel zu einem etwas höherwertigen Standard-PC-Netzteil behob dieses Problem. Es wurden keine Untersuchungen mit einem Oszilloskop durchgeführt, aber die Vermutung liegt nahe, dass das STPC-Board sehr empfindlich gegenüber „unsauberen“ Spannungen (Oberwellen) ist. Dies sollte bei weiteren Versuchen unbedingt beachtet werden. 40 3.5.2 Software 3.5.2.1 Probleme beim Aufruf des Host Controller Interface Daemons (hcid) Mir dem Aufruf des hcid könnte der Initialisierungsvorgang des Bluetooth-Dongles auf dem LISTIG-Basisgerät vereinfacht und beschleunigt werden. Die eigentlich nicht vollständige Konfiguration mit dem Befehl # hciconfig hci0 up sollte besser durch den Aufruf von # hcid ersetzt werden. Im Zusammenhang mit dem Start dieses Daemons wird die Datei /etc/bluetooth/hcid.conf eingelesen. Dadurch wird u.a. in dem USB-Dongle der in der Datei hinterlegte Name und die Geräteklasse abgespeichert und noch eine Vielzahl von Authentifizierungs- und Verschlüsselungseinstellungen vorgenommen. Aus nicht geklärten Gründen stürzt der gesamte Bluetooth-Treiber unter Linux auf dem LISTIG-Basisgerät bei diesem Daemonaufruf ab. Die manuelle Initialisierung kann lediglich durch den o.g. hciconfig-Aufruf stabil und reproduzierbar erfolgen. Diese Vorgehensweise ist unvollständig, aber für den Aufbau eines PAN ausreichend. Ein manuelles Setzen von z.B. dem Bluetooth-Dongle-Namen (test) mit # hciconfig hci0 name test bringt ebenfalls den Linux-Treiber zum Absturz. Gleiches gilt für das manuelle Setzen der Geräteklasse mit: # hciconfig hci0 class 0x100 Das LISTIG-Basisgerät muss nach Auftreten dieses Fehlers neu gestartet werden um wieder mit der Bluetooth-Schnittstelle arbeiten zu können. 41 3.5.2.2 Probleme beim Aufruf des Service Discovery Protocol Daemons (sdpd) Wird auf dem LISTIG-Basisgerät unter Linux durch Eingabe von # sdpd der Service-Discovery-Protocol-Daemon gestartet, scheint alles problemlos zu funktionieren. Auf der Gegensteite (Client-Laptop oder HP iPAQ Pocket-PC h5550) werden allerdings keine angebotenen Dienste Seitens des LISTIG-Systems angezeigt. Dies deutet auf ein unvollständiges Abarbeiten des SDPs hin, ist aber für den Aufbau der PAN-Verbindung nicht zwingend von Bedeutung. Ein Zusammenhang mit dem unter 3.5.2.1 geschilderten Problem konnte nicht ausgeschlossen werden. Bei einer identischen Linux-Installation und –Konfiguration auf einem Laptop traten die unter 3.5.2.1 und unter 3.5.2.2 beschriebenen Fehler nicht auf. Es ist deshalb zu vermuten, dass die Ursache entweder in der LISTIG-Hardware selbst zu suchen ist oder dass das Zusammenspiel zwischen Bluetooth-Treiber und LISTIG-Basisgerät noch nicht vollständig funktioniert. Abhilfe hiefür könnten neue Kernel- und/oder Treiberversionen bzw. entsprechende Patches schaffen. Eventuell ist auch der Einsatz eines anderen USB-Dongles am LISTIG-System zu prüfen. 3.5.2.3 Nutzung des DUN-Profils Eine zweite Möglichkeit für das Aufsetzen des IP auf eine Bluetooth-Verbindung stellt das DUNProfil dar. Genaue Anleitungen dafür sind im Internet verfügbar, zum Beispiel unter http://iserver.hta.fhz.ch/~iathalma/projects/bluetooth/Linux_Bluetooth_Lan_Gateway/Linux_Blueto oth_Lan_Gateway.html oder www.bluez.org . Es ist aber nicht gelungen im Rahmen dieser Studienarbeit eine DUN-Verbindung aufzubauen. Spätestens bei der Authentifizierung auf PPP-Ebene traten nicht genau zu lokalisierende Fehler auf und der Verbindungsaufbau wurde abgebrochen. Es ist zu vermuten, dass dies in Zusammenhang mit den unter 3.5.2.1 und 3.5.2.2 geschilderten Problemen steht. Eine einwandfreie Implementierung aller benötigten Protokolle und Funktionen ist für die Nutzung des DUN-Profils dringend notwendig, da dafür zwei Authentifizierungsebenen, eine im Core-Protocol-Stack und eine für die PPP-Verbindung, einwandfrei durchlaufen werden müssen. 42 3.5.2.4 Nutzung einer Adhoc-Netzwerkverbindung Für den bei der Bluetooth-Verbindung angestrebten Funktionsumfang, erscheint es als sinnvoll diese durch eine Adhoc-Netzwerkverbindung aufsetzend auf dem PAN- oder DUN-Profil zu realisieren. Bei Nutzung des PAN-Profils müsste dazu, abweichend von der unter 3.3 beschriebenen Vorgehensweise, nach dem Aufruf von # pand --listen --role GN eine automatische Konfiguration des BNEPs erfolgen. Die IP-Adresse und Subnetzmaske müssten selbständig vom LISTIG-Basisgerät zugewiesen und verwaltet werden. Eine prinzipielle Konfigurationsmöglichkeit für die RedHat- bzw. SuSe-Linux-Distribution ist unter http://bluez.sourceforge.net/contrib/HOWTO-PAN nachzulesen. Für Debian-Linux müsste eine Portierung erfolgen. 3.5.3 Allgemeine Bemerkungen Ein Support-Anfrage an den Boardhersteller (Marek Micro; www.marekmicro.com ) bezüglich der aufgetretenen Bios- und USB-Probleme, blieb erfolglos. Da, nach Aussage von Marek Micro, das Layout des STPC-Mainboards der Geheimhaltung unterliegt und eine entsprechende Autorisierung von Seiten des Auftraggebers erfolgen muss. Eine ähnliche Anfrage an die am LISTIG-Projekt beteiligte Firma Hör- und Funkwerke Kölleda (HFWK) blieb gänzlich unbeantwortet. Dies ist besonders von Nachteil, weil das bei dem LISTIG-System mitgelieferte Datenblatt starke Abweichung in u.a. dem Layout und weiteren Punkt, zu dem vorliegenden STPC-Mainboard aufweist. Bei hardwarenahen Linux-Treiber-Problemen ist für eine qualifizierte Anfrage in den entsprechenden Foren im Internet eine genau Hardwarebeschreibung nötig. So ein Posting, mit der Aussicht auf kompetente Hilfe, ist aus den genannten Gründen nur sehr schwer bzw. gar nicht möglich. Weiter war auffällig, dass im Zusammenhang mit dem verwendeten Linux-Kernel 2.6.4 und der installierten Hotplug-Umgebung die verwendete Basishardware bis an ihre Leistungsgrenzen ausgereizt wird. Beide Features sind allerdings für die Realisierung der WLAN-802.11gSchnittstelle zwingend nötig. Es treten in diesem Zusammenhang teilweise schon merkliche Verzögerungen auf, wenn im normalen Kommandozeilen-Modus eine Taste auf der Tastatur gedrückt wird, bis zur entsprechend Darstellung auf dem Bildschirm. Auch sind Bootzeiten von ca. 10-15 min, bis die erste Eingabe erfolgen kann, deutlich zu hoch. 43 4. Fazit Bluetooth ist mittlerweile ein etablierter Standard, der in immer mehr Geräten wie Mobiltelefonen, Laptops, PDAs und PCs bereits ab Werk integriert wird. Aufgrund seiner ständig steigenden Verbreitung stellt er zukünftig eine kostengünstige Variante für Kurzstrecken- Fernsteuerungsdienste dar. Das in der vorliegenden Studienarbeit untersuchte Szenario kann dafür als Beispiel dienen. Das LISTIG-Basisgerät bildet die zentrale Steuereinheit und seine integrierten Standardschnittstellen (LAN, Bluetooth, IrDa, WLAN, GPRS) verbunden mit der einfachen Hardwarearchitektur sowie das verwendet Linux-Betriebsystem zielen auf eine preisgünstige Positionierung am Markt für Hausautomationssysteme ab. Für ein anwenderfreundliches Konzept sind Stabilität und Geschwindigkeit der Anwendung, eine einfache Bedienung und eine ausreichende Fernsteuerungs-Reichweite von zentraler Bedeutung. Um eine akzeptable Stabilität und vor allem Geschwindigkeit auf dem LISTIG-Basisgerät zu erreichen, gilt es zu überdenken, ob zwingend der Linux-Kernel 2.6.4 verbunden mit der HotplugUmgebung eingesetzt werden soll. Der Linux-Kernel 2.4.22 bildet zumindest auf der vorliegenden Basis-Hardware eine schnellere und stabilere Realisierung. Im weiteren sind zumindest die unter 3.5.2.1 und 3.5.2.2 geschilderten Probleme zu lösen. Dabei ist die ständig fortschreitende Treiberund Kernel-Entwicklung unter Linux zu berücksichtigen. Auch ist die Implementierung von Adhoc-Netzwerkfunktionalität (3.5.2.4) sicherlich im Sinne einfacherer Bedienung anzustreben. Um eine auf allen Schnittstellen einheitliche Kommunikationsebene zu schaffen, wurden die Protokolle TCP/IP im Rahmen des LISTIG-Projektes gewählt. Die effizienteste Realisierung hierfür auf Basis von Bluetooth ist sicherlich das Protokoll BNEP und darauf aufsetzend das PAN-Profil. Für eine größere Kompatibilität, da nicht alle Geräte PAN unterstützen, ist eventuell das weiter verbreitete DUN-Profil (2.6.2.2; 3.5.2.3) mit einzubeziehen. Die bei der unter 3.3 aufgebauten Bluetooth-Teststrecke erzielte Maximalreichweite von ca. 10 m ist sicher im Eigenheimbereich zu gering. Eine deutliche Vergrößerung könnte durch den Einsatz von USB-Geräten der Leistungsklasse 1 mit einer Reichweite von bis zu 100 m erfolgen. 44 5. Literaturverzeichnis Lehrbücher: /1/ Bramer, M.; Goerzen, J.; Othman, O.: Debian GNU/Linux Guide; Software in the Public Interest, Inc. and LinuxLand International, München 2002; ISBN: 3-936759-00-6 /2/ McCarty, B.: Learning Debian/GNU Linux; Oreilly & Associates, 1999 ISBN: 1-565-92705-2 /3/ Tacket, J.; Gunter, D.; Brown, L.: Linux – das Kompendium [leichte Installation, alles zur Hardware-Kompatibilität, HTML-Dokumente mit Linux]; Markt & Technik, Buch- und Software-Verlag, Haar bei München 1996 ISBN: 3-8272-5181-8 /4/ Wollert, J.F.: Das Bluetooth Handbuch; Franzis Verlag, Poing 2002 ISBN: 3-7723-5323-1 Seminararbeiten: /5/ Grenzendörfer, L.: Untersuchungen zu Bluetooth; TU Ilmenau, Fakultät Elektro- und Informationstechnik, Institut Kommunikationsund Messtechnik, Fachgebiet Kommunikationsnetze, Seminararbeit 2002 Webseiten: /6/ www.debian.org - Webseite für Debian-Linux /7/ www.bluez.org - Webseite für den Linux-Bluetooth-Protokollstack /8/ www.kernel.org - Webseite für Linux-Kernels /9/ www.avm.de - Webseite für AVM-Produkte (AVM-BlueFRITZ!-Bluetooth-USB-Dongle) /10/ www.acer.de - Webseite für Acer-Produkte (Acer-Bluetooth-USB-Dongle) 45 6. Verwendete Bluetooth-Hardware LISTIG-Basisgerät Client-Laptop Acer Bluetooth mini AVM BlueFRITZ! USB USB Adapter (BT500) Adapter Host-Schnittstelle USB Ver.1.1 USB Ver.1.1 Eingangsspannung / Strom DC5V / 150 mA (typisch) Keine Angaben Stromverbrauch (typisch) Standby Modus: 30 mA Keine Angaben Model Übertragungsmodus: 120 mA Datenübertragungsrate 1,0 MBit/s (max.) 1,0 MBit/s (max.) Frequenzbereich 2,402 GHz – 2,480 GHz 2,402 GHz – 2,480 GHz Kanalabstand 1 MHz 1 MHz Leistungsklasse Klasse 2 Klasse 1 Typische Reichweite 10 m 100 m Tx-Leistung 0 dBm 20 dBm Rx Empfindlichkeit 0,1% BER/PIN: -70dBm Kein Angaben Antennenimpedanz 50 Ohm 50 Ohm Betriebssystemunterstützung MS Windows98SE, ME; MS MS Windows98SE, ME; MS (v. mitgelieferten Standard- WINDOWS 2000, XP WINDOWS 2000, XP treiber) Unterstützte Core Protocols (v. mitgelieferten HCI, L2CAP, RFCOMM, SDP, SDP, CMTP, BNEP, L2CAP, Standard- OBEX TCS, RFCOMM treiber) Unterstützte Profile (v. mitgelieferten GAP; SDGP, SPP, LAN, DUN, SDAP, GAP, CIP, PAN, SPP; Standard- FAX, GOEP, FTP, OPP, SYNC DUN, CTP treiber) Tabelle 6.1.1: Bluetooth-Hardware 46 7. Anhang 7.1 Bootkonfiguration des LISTIG-Basisgeräts In der BIOS-Bootkonfiguration sind unbedingt folgende Einstellungen vorzunehmen. Dabei scheint es nicht von Bedeutung zu sein, wie das CD-ROM bzw. die Festplatte an dem einen vorhandenen IDE-Kanal hardware-mäßig gejumpert ist. Im LISTIG-Versuchssystem war die Festplatte als Primary Master gejumpert und das CD-ROM als Primary Slave konfiguriert. Man sollte sich bei der Konfiguration keines Falls von eventuellen Erfahrungen mit den Boot-Einstellungen aus dem PCBereich leiten lassen, sondern die Einstellungen wie folgt beschrieben vornehmen. Bios-Einstellungen: Relevanter Eintrag Zu wählender „Wert“ C CD Hd/Pri Slave D Primary Master Boot 1st Drive C Drive D IDE 0 Auto, LBA IDE 1 Auto, phys. Tabelle 7.1.1 Bios-Boot-Einstellungen Nach erfolgreicher Installation kann die Boot-Reihenfolge unter “Boot 1st” auch umgestellt werden. Dann wird zu erst versucht von der Festplatte zu booten, sollte dies aus irgendwelchen Gründen nicht möglich sein, wird auf das CD-ROM zurückgegriffen. Für eine Neuinstallation sollte die Bootkonfiguration, wie in Tabelle 7.1.1 beschrieben, vorgenommen werden. Als erstes ist die „MiniWood-CD“ der beiliegenden Debian Linux Distribution einzulegen. Sollt es beim Booten von CD Schwierigkeiten geben, kann es hilfreich sein, vor dem Booten ins Bios zu wechseln, dieses mit oder ohne Änderungen abzuspeichern und wieder zu verlassen.. 47 7.2 Linux-Installation auf dem LISTIG-Basisgerät Für die Grundinstalltion von Debian-Linux auf dem LISTIG-Basisgerät ist von der „MiniWoodCD“ zu booten. Danach ist der, sich in weiten Teilen selbsterklärenden, interaktiven Menüführung zu folgen. Bei Unklarheiten kann auf die sehr gute und ausführliche Hilfefunktion zurückgegriffen werden. Eine ausführliche Installationsanleitung für Debian-Linux liefert das Buch „Debian Guide –GNU/Linux 3.0“ (/1/) in seinen ersten Kapiteln. Eine ähnliche Vorgehensweise ist auch im Internet unter z.B. www.debian.org nachzulesen. Die wichtigsten Schritte und Einstellungen sind auch noch mal in der dem LISTIG-Basisgerät beiliegenden „HFWK STPC-Board Kurzbeschreibung“ dokumentiert. Davon abweichend sind für den Testbetrieb ein anderer Rechnername (listig1 bzw. listig2) und eine andere IP-Adresse (141.24.93.159 bzw. 141.24.93.160) für die LAN-Karte vergeben worden. Diese Einstellungen können aber auch noch nachträglich nach der Installation mit Hilfe des Linux-Kommandos ifconfig geändert werden. Es ist unbedingt darauf zu achten, dass während der Installation tasksel (Task select) aufgerufen wird. Dort muss das C/C++-Entwicklungspaket installiert werden. Dieses ist unbedingt notwendig für das Kompilieren anderer Kernel, Kernelpatches oder noch einzubindender Treiber. Auf eine detailliertere Installationsanleitung soll an dieser Stelle verzichtet werden, da diese den Rahmen der Studienarbeit sprengen würde. 7.3 Kernel konfigurieren und installieren Als erstes muss die entsprechende Kernel-Quelldatei (linux-2.6.4.tar.bz2) von z.B. www.kernel.org herunter geladen und am besten im Verzeichnis /usr/src/ abgespeichert werden. Danach ist die Archiv-Datei mit folgendem Befehl zu entpacken: # tar xvfj linux-2.6.4.tar.bz2 Damit die Kernelsource vom Compiler zuverlässig gefunden wird lässt man einen Link von /usr/scr/linux darauf zeigen. Das erreicht man durch folgendes Kommando: # ln –s /usr/src/linux /usr/src/linux-2.6.4 Nun geht man mit 48 # cd linux in das Verzeichnis der entpackten Kernel-Quelldatei. Damit die Konfiguration des Kernels erfolgen kann, ist vorher noch die Bibliothek libncurses – dev mit folgender Eingabe zu installieren: # apt-get install libncurses –dev Um nicht alle Basis-Hardwareeinstellungen für den Rechner noch einmal neu eingeben zu müssen, kann die Kernel-Module-Konfigurationsdatei /boot/config-2.4.18-bf2.4 in das Verzeichnis mit der Kernelsource /usr/src/linux-2.6.4/ kopiert und dort später im menuconfig-Menü eingelesen werden. Das stellt sicher, dass alle Grundeinstellungen (z.B. Prozessortyp, Registersatz…), die bei der Linux-Installation automatisch erkannt und vorgenommen wurden, übernommen werden und dort dann keine Konflikte zwischen tatsächlich vorhandener Hardware und eventuell falsch angegebener Hardware auftreten. Solche Konflikte hätten beim ersten Booten des neuen Kernels eine „Kernelpanic“ zur Folge bzw. würde sich das System ohne jegliche Fehlermeldung beim Booten aufhängen. Es sollte also mit # cp /boot/config-2.4.18-bf2.4 /usr/src/linux-2.6.4/config.old die Konfigurationsdatei kopiert werden. Als nächstes ist das Programm menuconfig aus dem Verzeichnis mit der Kernelsource zu starten # make menuconfig und die Datei config.old einzulesen. Nun kann die weitere Konfiguration der Kernelmodule erfolgen. Nach dem Starten von menuconfig erhält man folgenden oder ähnlichen Bildschirm: 49 Abbildung 7.3.1: menuconfig Main-Fenster In der Sektion USB Support muss der Punkt USB Bluetooth support (EXPERIMENTAL) unbedingt deaktiviert werden, sofern er angezeigt wird. Diese Modul verwendet den nicht mehr aktuellen Axix-Bluetooth-Stack, es ist aber unbedingt der Bluetooth-Stack des Kernels zu verwenden. Das Modul bluetooth.o darf nicht im Modul-Verzeichnis des Kernels auftauchen. In der Sektion Bluetooth Support sollten der Einfachheit halber alle Einträge als Module (M) eingebunden werden, auch die im Untermenü Bluetooth device drivers. So können sie später bei Bedarf mit # modprobe <Modulname> geladen und sich mit # lsmod über schon geladenen Module informiert werden. Sind alle weiteren Einstellungen erfolgt ist die Konfiguration abzuspeichern und menuconfig zu beenden. 50 Als nächstes wird der Kernel kompiliert. Das erledigt man unter Debian-Linux am besten über Skripte im kernel-package. Die bei allen Linux-Distributionen mögliche manuelle KernelKompilation ist ebenfalls möglich, wird aber unter Debian explizit nicht empfohlen. Für das Erzeugen eines kompilierten Kernel-Packages geht man wie folgt vor. Die Kernel-Sourcen müssen zu erst gesäubert und die Parameter von kernel-package zurückgesetzt werden. Dazu gibt man im Verzeichnis der Kernelsource folgende Kommandos ein: # make-kpkg clean Das Komplieren wird mit # fakeroot make-kpkg –revision=custom.1.0 kernel_image modules_image gestartet. Die Revisionsnummer “1.0” kann natürlich nach Belieben geändert werden. Sie dient nur dazu, die verschiedenen Versionen des kompilierten Kernels zu unterscheiden. Das Komplieren kann eine ganze Weile dauern. Auf dem LISTIG-Basisgerät nahm der Vorgang 4-5 Stunden in Anspruch. Zum Vergleich, auf einer 600 MHz CPU ist mit ca. 15-20 min zu rechnen. Nach dem Ende des Kompiliervorganges liegt der fertige Kernel in der Datei bzImage (ca. 20 MB) im Verzeichnis /usr/src/linux-2.6.4/arch/i386/boot/ und kann nun mit # cp /usr/src/linux-2.6.4/arch/i386/boot/bzImage /boot/2.6.4 ins Standard-Kernelverzeichnis /boot/ kopiert werden. Die nicht fest mit in den Kernel hinein kompilierten Module liegen im Verzeichnis /usr/src/linux-2.6.4/debian/tmp-image/lib/modules/2.6.4/. Das gesamte Verzeichnis muss nun noch in das Standard-Moduleverzeichnis /lib/modules/ kopiert werden. # cp –a /usr/src/linux-2.6.4/debian/tmp-image/lib/modules/2.6.4 <Leerzeichen>/lib/modules Jetzt ist noch der Bootmanager LiLo (Linux Loader) zu konfigurieren. Dazu editiert man die Datei /etc/lilo.conf und sucht folgenden Eintrag: 51 Image=/vxlinuz Label=Linux read-only Unterhalb ist folgender Code einzutragen: Image=/boot/2.6.4 Label=Linux_2.6.4 read-only Mit default=LABEL kann man den Kernel wählen, der beim Booten nach Ablauf einer Wartezeit automatisch gestartet werden soll. Jetzt ist die Datei lilo.conf abzuspeichern und mit # lilo zu starten. Damit werden die eben gemacht Änderungen übernommen. Nun kann der Rechner mit # shutdown –r now neu gebootet werden. Treten keine Fehler auf, kann im LiLo-Bootmenü nun der Eintrag Linux_2.6.4 ausgewählt und damit der neue Kernel gebootet werden. 7.4 Linux-Bluetooth-Treiber installieren und konfigurieren Nach erfolgtem Kernelupdate sind nun noch vier Treiberpakete zu installieren, damit das PANProfil unter Linux nutzbar ist. Die entsprechenden, gepackten Archive können unter www.bluez.org herunter geladen und in ein beliebiges Verzeichnis gespeichert werden. Standard ist hier für alle Kernel-, Patch- und Treiberquelldateien das Verzeichnis /usr/src/. Dies ist aber nur eine Empfehlung. Folgende Dateien sind nötig (siehe auch beiliegende CD): 52 Reihenfolge Paketname Archiv-Dateiname Beschreibung 1. BlueZ-Libs bluez-libs-2.4.tar.gz Bluetooth-Bibliotheken 2. BlueZ-Utils bluez-utils-2.3.tar.gz Bluetooth-Utilities 3. BlueZ-SDP bluez-sdpd-1.1.tar.gz Treiber für das ServiceDiscovery-Protocol (SDP) 4. BlueZ-PAN bluez-pan-1.1.tar.gz Treiber für das PrivatArea-Network-Profil (PAN) Tabelle 7.4.1: Bluetooth-Treiber Die Installation sollte zwingend in der angegebenen Reihenfolge (Tabelle 7.4.1) erfolgen, da Abhängigkeiten der verschiedenen Treiberpakete untereinander bestehen und diese in der Reihenfolge Berücksichtigung finden. Vor der Installation müssen die Archive noch im gewählten Unterverzeichnis entpackt werden, dies erreicht man durch folgendes Linux-Kommando: # tar –xzvf bluez-libs-2.4.tar.gz Danach wechselt man in das eben entstandene Unterverzeichnis # cd bluez-libs-2.4 und führt nacheinander folgende drei Befehle (Reihenfolge beachten!) aus. # ./configure # make # make install Dies erfolgt für die anderen drei Treiberpakete analog. Die jeweiligen Datei- bzw. Verzeichnisnamen sind aus der Tabelle 7.4.1 ersichtlich. Damit die Treiber-Module automatisch geladen werden, sind in der Datei /etc/modules.conf noch folgende Zeilen zu ergänzen: 53 alias net-pf-31 bluez alias bt-proto-0 l2cap alias bt-proto-2 sco alias bt-proto-4 bnep alias tty-ldisc-15 hci_uart alias char-major-10-250 hci_vhci Nun sollte alle benötigte Software unter Linux installiert sein. 7.5 Installtion der AVM-Bluetooth-Treibersoftware unter MS Windows Die Installation der Treibersoftware für das BlueFRITZ!-USB-Dongle erfolgt wie unter MS Windows üblich. Der Client-Laptop wird gebootet und das Bluetooth-USB-Gerät an einen USB-Port angeschlossen. Die Plug-and-Play-Funktion erkennt ein neues USB-Gerät und fordert auf eine Treiber-CD einzulegen (siehe auch beiliegende CD). Dieser Aufforderung wird nachgekommen und der Rest der Software-Installation läuft automatisch durch. Nun erscheint neben der Systemuhr das AVMBluetooth-Icon, durch doppelklicken darauf öffnet sich das Fenster „BlueFRITZ! – Meine Bluetooth-Umgebung“. Die weiterführende Konfiguration ist unter 3.3 beschrieben. 7.6 Nützliche Linux-Befehle und –Packages 7.6.1. Hilfe zu Linux-Befehlen und Manual Will man mehr über den Funktionsumfang eines bestimmten Linux-Befehls erfahren, ist es sinnvoll die integrierte Hilfefunktion zu nutzen. Dazu gibt man ein: # <Befehl> --help Als Beispiel: # hciconfig --help 54 Für bestimmte (nicht alle) Befehle sind Manual-Pages hinterlegt und können mit # man <Befehl> aufgerufen werden. Als Beispiel: # man lsmod 7.6.2. Mounten und Unmounten einer CD-ROM Für das Einbinden einer CD-ROM ins Linux-System gibt man folgendes ein: # mount /cdrom Der Inhalt der CD-ROM ist jetzt im Verzeichnis /cdrom/ zu finden, solange bis das CD-ROMLaufwerk wieder ge-unmountet wird. Dies erfolgt mit: # umount /cdrom 7.6.3. Midnight Commander installieren Der Midnight Commader stellt einen intuitiv bedienbaren Dateimanager auf Basis der LinuxKommandozeile dar und ist dem vom DOS bekannten Norton Commander nachempfunden. Er kann mit folgendem Befehl installiert werden # apt-get install mc und wird dann mit # mc aufgerufen. 55 7.6.4. Debian-Packages Für Debian-Distributionen sind eine Vielzahl von Programm-Packages verfügbar um den Funktionsumfang der jeweiligen Linux-Installation zu erweitern bzw. zu aktualisieren. Diese können unter www.debian.org herunter geladen und mit folgendem Befehl installiert werden: # dpkg –i <Packagename> 7.6.5 Packages für Packen und Entpacken Installieren des Bzip2-Packers mit: # apt-get install bzip2 7.6.6 Hilfsprogramme zum Einbinden und Verwalten von Packages Zum etwas komfortableren Installieren und Deinstallieren von Programm-Modulen gibt es das Programm dselect. Es ist standardmäßig bei der Linux-Grundinstallation mit installiert und wird mit # dselect aufgerufen. Es hat eine etwas kryptische Bedienung, weißt aber deutlicher auf die verschiedenen Abhängigkeiten der Programmpakete untereinander hin und kann solche Dependencies-Fehler anzeigen und auch mehr oder weniger gut beheben. Den gleichen Funktionsumfang liefert das Programm aptitude. Es lässt sich intuitiver bedienen, wird mit # apt-get install aptitude installiert und mit # aptitude gestartet. 56 7.6.7 Laden, Entladen und Auflisten von Kernel-Modulen Das Laden von Kernel-Modulen, die bei der Kernel-Konfiguration als Module mit eingebunden wurden, erfolgt in den laufenden Kernel per: # modprobe <Modulname> Das Entladen mit: # rmmod <Modulname> Eine Auflistung über die aktuell geladenen Module erhält man mit: # lsmod 7.6.8 Herunterfahren bzw. Neustarten eines Linux-Systems Herunterfahren mit: # shutdown –h now oder: # halt Ein Neustart erfolgt mit: # reboot 57