Debian Bluetooth: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
==Allgemeines==
==Allgemeines==
Debian Linux bietet mit blue-z einen leistungsfähigen Bluetooth-Stack, der auch als Accesspoint dienen kann. Dabei spannt er ein sog. PAN (Personal Area Network) auf, bei dem der Linux-Server als NAP (Network Accesspoint) dient. Es gibt zahlreiche Handys, Smartphones und PDA's, die das PAN-Protokoll unterstützen und so eine Verbindung mit dem Accesspoint aufnehmen können. Mit diesen Endgeräten kann man dann im Internet surfen, Emails abrufen oder Termine und Kontakte synchronisieren (siehe auch [[Debian_Open-Xchange|Groupware Server Open-Xchange]]).
Debian Linux bietet mit blue-z einen leistungsfähigen Bluetooth-Stack, der auch als Accesspoint dienen kann. Dabei spannt er ein sog. PAN (Personal Area Network) auf, bei dem der Linux-Server als NAP (Network Accesspoint) dient. Es gibt zahlreiche Handys, Smartphones und PDA's, die das PAN-Protokoll unterstützen und so eine Verbindung mit dem Accesspoint aufnehmen können. Mit diesen Endgeräten kann man dann im Internet surfen, Emails abrufen oder Termine und Kontakte synchronisieren (siehe auch [[Debian_Funambol|Funambol]]).


Die Bluetooth-Geräte werden in eigenes IP-Subnetz - z.B. 192.168.1.0 - gelegt. Die IP-Adressen vergibt ein DHCP-Server für dieses Subnet.
Die Bluetooth-Geräte werden in eigenes IP-Subnetz - z.B. 192.168.1.0 - gelegt. Die IP-Adressen vergibt ein DHCP-Server für dieses Subnet.
Zeile 10: Zeile 10:
==Installation==
==Installation==
  apt-get install bluetooth bluez-utils
  apt-get install bluetooth bluez-utils
  apt-get install apt-get install libdbus-1-dev
  apt-get install libdbus-1-dev
  apt-get install dhcp-server3
apt-get install pkg-config
  apt-get install dhcp3-server
Um Bluetooth-Geräte zu koppeln ist noch ein sog. Key-Agent erforderlich. Für KDE und Gnome stehen dafür graphische Tools zur Verfügung. Für einen Server ist allerdings ein Kommandozeilen-Tool erforderlich, das allerdings nur als C-Source_Code mit installiert wurde. Dieses wird im Folgenden compiliert und installiert.
Um Bluetooth-Geräte zu koppeln ist noch ein sog. Key-Agent erforderlich. Für KDE und Gnome stehen dafür graphische Tools zur Verfügung. Für einen Server ist allerdings ein Kommandozeilen-Tool erforderlich, das allerdings nur als C-Source_Code mit installiert wurde. Dieses wird im Folgenden compiliert und installiert.
  cd /usr/share/doc/bluez-utils/examples
  cd /usr/share/doc/bluez-utils/examples
Zeile 17: Zeile 18:
  make
  make
  cp passkey-agent /usr/bin/
  cp passkey-agent /usr/bin/
Mit folgendem Befehl können Informationen zum erkannten Bluetooth-Gerät (z.B. USB-Stick) abgerufen werden:
hciconfig -a
Es sollte die Bluetooth-Hardware-Adresse (BD-Address), der logische Name (diesen zeigen später zu koppelnde Geräte an), der Hersteller des Sticks, und weitere Informationen.


==Konfiguration==
==Konfiguration==
Zeile 38: Zeile 44:
   
   
       post-up iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
       post-up iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
       post-up iptables -A FORWARD -i bnep0 -o eth0 -j ACCEPT
       post-up iptables -A FORWARD -i pan0 -o eth0 -j ACCEPT
       post-up iptables -A FORWARD -o bnep0 -i eth0 -j ACCEPT
       post-up iptables -A FORWARD -o pan0 -i eth0 -j ACCEPT
   
   
  iface bnep0 inet static
  iface bnep0 inet static
       address 0.0.0.0
       address 0.0.0.0
       netmask 255.255.255.240
       netmask 255.255.255.240
 
  iface bnep1 inet static
  iface bnep1 inet static
       address 0.0.0.0
       address 0.0.0.0
Zeile 50: Zeile 56:


Start/Stop-Script für Netzwerkbrücke:
Start/Stop-Script für Netzwerkbrücke:
  vi /etc/init.d/bridege_pan0
  vi /etc/init.d/bridge_pan0
Folgende Zeilen einfügen:
Folgende Zeilen einfügen (den Eintrag '''''IPADDR''''' auf die IP-Adresse des Servers setzen) :
  #! /bin/sh
  #! /bin/sh
   
   
Zeile 58: Zeile 64:
  NAME=pan0
  NAME=pan0
  DESC=bridge
  DESC=bridge
  IPADDR=192.168.0.219
  IPADDR='''''IP_des_Server'''''
   
   
  test -f $BRIDGECONTROL || exit 0
  test -f $BRIDGECONTROL || exit 0
Zeile 112: Zeile 118:
  vi /etc/dhcp3/dhcpd.conf
  vi /etc/dhcp3/dhcpd.conf
Folgende Zeilen einfügen:
Folgende Zeilen einfügen:
{{Rechteck3|'''Hinweis:'''
{{Hinweis|
*'''''option domain-name-servers''''' auf den DNS-Server des Internet Routers setzen (hier 192.168.0.1) und '''''option domain-name''''' anpassen.
*'''''option domain-name-servers''''' auf den DNS-Server des Internet Routers setzen (hier 192.168.0.1) und '''''option domain-name''''' anpassen.
*Hier wird das Subnet 192.168.1.0 für die Bluetooth Geräte verwendet. Falls dieses Subnet bereits anderweitig verwendet wird, entsprechend anpassen - z.B. 192.168.2.0. Dann alle folgenden Einträge, die mit 192.168.1 beginnen durch 192.168.2. ersetzen.}}
*Hier wird das Subnet 192.168.1.0 für die Bluetooth Geräte verwendet. Falls dieses Subnet bereits anderweitig verwendet wird, entsprechend anpassen - z.B. 192.168.2.0. Dann alle folgenden Einträge, die mit 192.168.1 beginnen durch 192.168.2. ersetzen.}}
Zeile 129: Zeile 135:
  /etc/init.d/bridge_pan0 start
  /etc/init.d/bridge_pan0 start
  /etc/init.d/bluetooth restart
  /etc/init.d/bluetooth restart
Autostart der Netzwerkbrücke beim booten:
update-rc.d bridge_pan0 defaults





Aktuelle Version vom 19. Oktober 2009, 22:27 Uhr

Allgemeines

Debian Linux bietet mit blue-z einen leistungsfähigen Bluetooth-Stack, der auch als Accesspoint dienen kann. Dabei spannt er ein sog. PAN (Personal Area Network) auf, bei dem der Linux-Server als NAP (Network Accesspoint) dient. Es gibt zahlreiche Handys, Smartphones und PDA's, die das PAN-Protokoll unterstützen und so eine Verbindung mit dem Accesspoint aufnehmen können. Mit diesen Endgeräten kann man dann im Internet surfen, Emails abrufen oder Termine und Kontakte synchronisieren (siehe auch Funambol).

Die Bluetooth-Geräte werden in eigenes IP-Subnetz - z.B. 192.168.1.0 - gelegt. Die IP-Adressen vergibt ein DHCP-Server für dieses Subnet.


Voraussetzung: C-Compiler


Installation

apt-get install bluetooth bluez-utils
apt-get install libdbus-1-dev
apt-get install pkg-config
apt-get install dhcp3-server

Um Bluetooth-Geräte zu koppeln ist noch ein sog. Key-Agent erforderlich. Für KDE und Gnome stehen dafür graphische Tools zur Verfügung. Für einen Server ist allerdings ein Kommandozeilen-Tool erforderlich, das allerdings nur als C-Source_Code mit installiert wurde. Dieses wird im Folgenden compiliert und installiert.

cd /usr/share/doc/bluez-utils/examples
gunzip passkey-agent.c.gz
make
cp passkey-agent /usr/bin/

Mit folgendem Befehl können Informationen zum erkannten Bluetooth-Gerät (z.B. USB-Stick) abgerufen werden:

hciconfig -a

Es sollte die Bluetooth-Hardware-Adresse (BD-Address), der logische Name (diesen zeigen später zu koppelnde Geräte an), der Hersteller des Sticks, und weitere Informationen.


Konfiguration

vi /etc/default/bluetooth

Folgende Änderungen durchführen:

PAND_ENABLED=1
PAND_OPTIONS="--listen --role NAP --devup /etc/bluetooth/pan/dev-up --devdown /etc/bluetooth/pan/dev-down"
vi /etc/bluetooth/hcid.conf

Den Eintrag

lm accept;

erweitern in:

lm accept,master;

Bluetooth Netzwerk-Interfaces bnep0, bnep1,... und die Netzwerkbrücke pan0 definieren, der die die einzelnen Bluetooth Devices bnep0, bnep1, ... hinzugefügt werden:

vi /etc/network/interfaces

Folgende Zeilen ans Ende anfügen:

iface pan0 inet static
      address 192.168.1.1
      netmask 255.255.255.240

      post-up iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
      post-up iptables -A FORWARD -i pan0 -o eth0 -j ACCEPT
      post-up iptables -A FORWARD -o pan0 -i eth0 -j ACCEPT

iface bnep0 inet static
      address 0.0.0.0
      netmask 255.255.255.240

iface bnep1 inet static
      address 0.0.0.0
      netmask 255.255.255.240

Start/Stop-Script für Netzwerkbrücke:

vi /etc/init.d/bridge_pan0

Folgende Zeilen einfügen (den Eintrag IPADDR auf die IP-Adresse des Servers setzen) :

#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin
BRIDGECONTROL=/usr/sbin/brctl
NAME=pan0
DESC=bridge
IPADDR=IP_des_Server

test -f $BRIDGECONTROL || exit 0
set -e

case "$1" in
  start)
       echo -n "Starting $DESC: "
       echo 1 > /proc/sys/net/ipv4/ip_forward
       $BRIDGECONTROL addbr $NAME >/dev/null 2>/dev/null
       ifconfig $NAME $IPADDR
       ifup $NAME
       /etc/init.d/dhcp3-server start >/dev/null
       echo "$NAME."
       ;;
  stop)
       echo -n "Stopping $DESC: "
       /etc/init.d/dhcp3-server stop >/dev/null
       ifdown $NAME
       $BRIDGECONTROL delbr $NAME
       echo "$NAME."
       ;;
  *)
       N=/etc/init.d/bridge_pan0
       echo "Usage: $N {start|stop}" >&2
       exit 1
       ;;
esac
exit 0

Anlegen der Bluetooth Interface dev-up und dev-down Scripte:

mkdir /etc/bluetooth/pan
vi /etc/bluetooth/pan/dev-up

Folgende Zeilen einfügen:

#!/bin/sh
ifup $1
brctl addif pan0 $1
vi /etc/bluetooth/pan/dev-down

Folgende Zeilen einfügen:

#!/bin/sh
brctl delif pan0 $1
ifdown $1


Scripte ausführbar machen:

chmod +x /etc/init.d/bridge_pan0
chmod +x /etc/bluetooth/pan/dev-up
chmod +x /etc/bluetooth/pan/dev-down


DHCP-Server:

vi /etc/dhcp3/dhcpd.conf

Folgende Zeilen einfügen:

Bulbgraph.png Hinweis:
  • option domain-name-servers auf den DNS-Server des Internet Routers setzen (hier 192.168.0.1) und option domain-name anpassen.
  • Hier wird das Subnet 192.168.1.0 für die Bluetooth Geräte verwendet. Falls dieses Subnet bereits anderweitig verwendet wird, entsprechend anpassen - z.B. 192.168.2.0. Dann alle folgenden Einträge, die mit 192.168.1 beginnen durch 192.168.2. ersetzen.
subnet 192.168.1.0 netmask 255.255.255.0 {
  interface pan0;
  range 192.168.1.10 192.168.1.25;
  option domain-name-servers 192.168.0.1;
  option domain-name "bluetooth.domain.org";
  option routers 192.168.1.1;
  option broadcast-address 192.168.1.255;
  default-lease-time 600;
  max-lease-time 7200;
}

Netzwerkbrücke und Bluetooth-Stack neu starten:

/etc/init.d/bridge_pan0 start
/etc/init.d/bluetooth restart

Autostart der Netzwerkbrücke beim booten:

update-rc.d bridge_pan0 defaults


Endgeräte Koppeln

Damit Bluetooth-Geräte Zugriff auf den Accesspoint erhalten, müssen diese erst gekoppelt (Pairing) werden. Zu diesem Zweck dient oben compilierter passkey-agent. Der Code blue_key (numerisch, 4-8 stellig) muß am Server und Endgerät identisch sein.

passkey-agent --default blue_key

Am Endgerät eine suche nach Bluetooth geräten durchführen und mit dem Server koppeln. Das Endgerät verlangt nach einem Code. Hier den Code blue_key eingeben. Der Verbindung einen aussagekräftigen Namen geben - z.B. Server


Engerät konfigurieren

Die Konfiguration der Endgeräte variiert sehr stark, sodass diese hier nicht allgemeingültig erläutert werden kann. Hier eine kurze Anleitung für neuere Sony Ericcson Handys:

  1. Menü Einstellungen/Verbindungen aufrufen
  2. Interneteinstellungen anwählen
  3. Lokale Verb. zulassen: ein
  4. Verbinden mit:
  5. Option/Neues Konto
  6. GPRS-Verbindung
  7. Name: z.B. Bluetooth
  8. APN: unbedingt leer lassen, damit Bluetooth verwendet wird!
  9. Speichern


Funktionstest

Die Bedienung der Endgeräte variiert sehr stark. Deshalb evtl. in der Bedienungsanleitung des Gerätes nachsehen. Bluetooth-Verbindung mit dem gekoppelten Server aufbauen. Internet Browser öffnen. Verifizieren, dass als Verbindung die eben angelegte Bluetooth-Verbindung verwendet wird. Eine Seite wie z.B. www.google.de öffnen. Die Seite sollte sich fehlerfrei öffnen.