Configuration d'un dongle USB bluetooth pour une connexion PPP avec un Palm Tungsten T3 sous Linux (Debian)

Cette opération a été réalisée sous Debian GNU/Linux (SID) avec le noyau 2.6.5.

Il faut avoir installer le paquet bluez-utils grâce à la commande : aptitude install bluez-utils (on peut utiliser apt-get à la place d'aptitude).

Configuration du noyau

Il faut charger le module suivant qui est le pilote standard pour les dongles bluetooth : hci_usb

sous root : modprobe hci_usb

Les modules suivants doivent être disponibles mais ils sont chargés automatiquement : rfcomm, l2cap

Fichiers de configuration

  1. PPP

    le fichier de configuration /etc/ppp/peers/dun
    debug
    115200
    noipdefault
    proxyarp
    # PC address:Remote Address
    10.10.1.1:10.10.1.2
    ms-dns 10.20.1.1
    ktune
    local
    noauth
    nodefaultroute
    noipx
    
    10.10.1.1 est l'adresse IP de l'interface PPP côté PC
    10.10.1.2 est l'adresse IP qui sera donné au Palm
    10.20.1.1 est l'adresse IP du serveur DNS
  2. Bluetooth - le fichier pin

    Pour que le chiffrement fonctionne, il faut mettre un code pin (le plus long c'est le mieux, prévoir au moins 10 caractères) dans le fichier /etc/bluetooth/pin.
  3. Bluetooth - le fichier hcid.conf

    Mon fichier /etc/bluetooth/hcid.conf qui active authentification et cryptage :
    #
    # HCI daemon configuration file.
    #
    # $Id: hcid.conf,v 1.4 2004/04/29 20:14:21 holtmann Exp $
    #
    
    # HCId options
    options {
    	# Automatically initialize new devices
    	autoinit yes;
    
    	# Security Manager mode
    	#   none - Security manager disabled
    	#   auto - Use local PIN for incoming connections
    	#   user - Always ask user for a PIN
    	#
    	security auto;
    
    	# Pairing mode
    	#   none  - Pairing disabled
    	#   multi - Allow pairing with already paired devices
    	#   once  - Pair once and deny successive attempts
    	pairing multi;
    
    	# PIN helper
    	pin_helper /usr/bin/bluez-pin;
    
    	# D-Bus PIN helper
    	#dbus_pin_helper;
    }
    
    # Default settings for HCI devices
    device {
    	# Local device name
    	#   %d - device id
    	#   %h - host name
    	name "%h-%d";
    
    	# Local device class
    	class 0x100;
    
    	# Default packet type
    	#pkt_type DH1,DM1,HV1;
    
    	# Inquiry and Page scan
    	iscan enable; pscan enable;
    
    	# Default link mode
    	#   none   - no specific policy 
    	#   accept - always accept incoming connections
    	#   master - become master on incoming connections,
    	#            deny role switch on outgoing connections
    	#
    	#lm accept,master;
    	#
    	lm accept;
    
    	# Default link policy
    	#   none    - no specific policy
    	#   rswitch - allow role switch
    	#   hold    - allow hold mode
    	#   sniff   - allow sniff mode
    	#   park    - allow park mode
    	#
    	#lp hold,sniff;
    	#
    	lp rswitch,hold,sniff,park;
    
    	# Authentication and Encryption
    	auth enable;
    	encrypt enable;
    }
    
  4. Bluetooth - le fichier /etc/default/bluez-utils

    Le fichier /etc/default/bluez-utils permet d'activer le lancement du démon dund qui sert à l'établissement de la connexion PPP

    il faut mettre : DUND_ENABLED=1 DUND_OPTIONS="--listen --persist --msdun call dun"

Connexion du Palm

Après avoir lancé en tant que root le script de démarrage des application sur la machine linux par la commande /etc/init.d/bluez-utils start, on doit pouvoir voir le PC depuis le Palm et inversement.
A partir de là il faut bien sûr que Bluetooth soit activé sur le Palm :-)

  1. Vérification que le PC voit bien le Palm

    La commande hciconfig -a va permettre de vérifier que l'interface hci0 est bien disponible, voici un exemple de sortie chez moi (on voit que ma machine s'appelant orelye, la connexion bluetooth va s'appeler orelye-0 comme défini dans le fichier hcid.conf).
    hci0:   Type: USB
            BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 192:8  SCO MTU: 64:8
            UP RUNNING PSCAN ISCAN AUTH ENCRYPT 
            RX bytes:1227 acl:32 sco:0 events:54 errors:0
            TX bytes:1137 acl:30 sco:0 commands:16 errors:0
            Features: 0xff 0xff 0x0f 0x00 0x00 0x00 0x00 0x00
            Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
            Link policy: RSWITCH HOLD SNIFF PARK 
            Link mode: SLAVE ACCEPT 
            Name: 'orelye-0'
            Class: 0x000100
            Service Classes: Unspecified
            Device Class: Computer, Uncategorized
            HCI Ver: 1.1 (0x1) HCI Rev: 0x20d LMP Ver: 1.1 (0x1) LMP Subver: 0x20d
            Manufacturer: Cambridge Silicon Radio (10)
    
    La commande hcitool scan va permettre de lancer une découverte des périphériques bluetooth, mon Palm s'appelant Philippe_Marzouk, en voici la sortie :
    Scanning ...
            XX:XX:XX:XX:XX:XX       Philippe_Marzouk
    
  2. Appariement du PC et du Palm

    Nous allons autoriser le PC et le Palm à se connecter entre eux, pour cela sur le Palm nous allons créer une nouvelle connexion dans les préférences/Connexion en mettant "PC" dans la section "se connecter au" et "Bluetooth" dans la section "se connecter via"
    Il faut ensuite cliquer sur le bouton "découvrir" et sélection "découverte actuelle" dans la combo "Afficher".
    Lorsque le petit symbole en bas à droite aura fini de clignoter, le PC doit apparaître dans la liste, il suffit alors de le sélectionner et de valider.
    Il faudra alors saisir le code pin choisi plus tôt qui se trouve dans le fichier /etc/bluetooth/pin.

  3. Création de la connexion PPP sur le Palm

    Il faut aller dans Préférences/Réseau pour créer une nouvelle connexion PPP en utilisant la connexion créée à l'étape précédente.
    Aucun mot de passe n'est utilisé, donc il est inutile d'en définir un.
    En cliquant sur le bouton "Détails", il faut vérifier que le type de connexion est bien "PPP", que la case "Interrogation DNS" est bien cochée et que la case "Adresse IP Automatique" est bien cochée.
    Il ne doit pas y avoir de script de défini, il doit juste contenir le mot "Fin:", il faut le vérifier en cliquant sur le bouton "Script...".

    On doit maintenant pouvoir se connecter grâce au bouton "Connecter" ou via le raccourci en cliquant sur l'icône bluetooth de la barre d'outils et utiliser WebPro pour surfer sur le serveur Web du PC par exemple.

Configuration du PC pour le partage de connexion internet

Pour que le Palm puisse accéder à Internet à travers le PC, il faut activer l'IP forwarding :

echo 1 > /proc/sys/net/ipv4/ip_forward en tant que root

et activer le NAT sur l'interface de connexion vers Internet (eth0 chez moi) 

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Ces pages sont très (trop) synthétiques, je vous invite à vous reporter aux sites traitant de la configuration de firewall sous Linux pour plus d'informations, notre ami http://www.google.com/linux/ est là pour vous y aider :-).

liens :


dernières modifications : 21 juin 2004
page sous licence GPL © Philippe Marzouk phil-at-ozigo-dot-org