Gprs en bluetooth

Op dit moment komen diverse mobile telefoon aanbieders met gprs abonementen met daarbij internet acces. Dit kan door middel van speciale pcmcia kaarten, een kabel, infrarood en bluetooth.

In dit document staat een beschrijving van het gebruik van internet via gprs en bluetooth.

  1. Hardware
  2. Software
  3. Aanpassingen
  4. Een eerste test
  5. de pppd configuratie voor gprs
  6. Alles in een script
  7. Alles automatisch opstarten
  8. Via irda
  9. gnokii
  10. links

Hardware

In deze beschrijving word gebruik gemaakt van een standaard laptop met infrarood en irda. Daarnaast wordt er gebruik gemaakt van een w-linx bluetooth usb module en een nokia 6310i gprs telefoon inclusief een gprs abonement met internet everywhere.

Software

Er wordt gebruik gemaakt van een redhat 9 systeem. Om het te laten werken moeten de volgende packages geinstaleerd worden.

Aanpassingen

Helaas werkt de software niet automatisch. Er zijn een aantal kleine doch sloridge fouten in de packages waardoor ze niet werken.

/dev/rfcomm0 ontbreekt
Dit file kan aangemaakt worden via het commando:
         mknod /dev/rfcomm0 c 216 0
Geef het device weg aan uucp:
         chown uucp /dev/rfcomm0
Het programma "bluepin" werkt niet
Het programma "bluepin" (een phyton script) werkt niet samen met de geinstaleerde phyton. Dit script is bedoeld om een popup te tonen met daarin een verzoek voor de bluetooth pin code.
Dit is makelijk te vervangen door een shell script dat een echo doet van de string "PIN:<code>".
Hieronder staat mijn "/root/bin/bluepin" dat een zeer bruikbare oplossing is:
        #!/bin/sh
        #
        # PIN:
        #       is de pincode om via bluetooth contact te leggen met
        #       het toestel. Zodra het eerste bluetooth verzoek binnen
        #       komt vraagt het toestel om deze pincode.
        #
        PIN=123456
        #
        echo PIN:${PIN}
In /etc/bluetooth/hcid.conf" staat de verkeerde lokatie voor "bluepin"
Deze lokatie moet in verband met de nieuwe bluepin commando toch aangepast worden.
Verander:
pin_helper /bin/bluebin;
in:
pin_helper /root/bin/bluebin;

Een eerste test

We gaan nu met de hand de software initialiseren en testen.

  1. Laat de benodigde modules:
  2. Initeer de bluetooth module:
             hciconfig hci0 up
  3. Scan na de telefoon:
            # hcitool scan
            Scanning ...
                    00:11:22:33:44:55       Mobiel Marceln
    
  4. Zet de serieele link op:
             rfcomm 0 00:11:22:33:44:55 1
  5. test de seriele link:
            # cu -l /dev/rfcomm0
            Connected.
            at
            OK
            ~.
            Disconnected.
    

    Uitleg:
    1. Met cu (uucp-1.06.1-47) leggen we een connectie over de serielle lijn "/dev/rfcomm0".
    2. We accepteren deze verbinding op de telefoon waarna in het scherm de Connected verschijnt.
    3. We tiepen het "at" commando in.
    4. Het gprs modem in de telefoon bevestigt het "at" commando met een OK.
    5. We stoppen via "~.".
    6. Het verbreken van de lijn wordt door Disconnected bevestigd.

de pppd configuratie voor gprs

We hebben nu via bluetooth een serielle lijn na het gprs modem. Over deze serielle lijn kunnen we vervolgens gewoon een "pppd" daemon opstarten om daarover een internet verbinding te krijgen.

Uitgaande van gprs en internet everywhere hebben we alleen een aangepaste configuratie nodig. Hierbij zitten de verschillen vooral in het chat script. De configuratie die ik gebruik:

Configuratie file pppd "/etc/ppp/gprs":
        /dev/rfcomm0 115200
        connect '/usr/sbin/chat -v -f /etc/ppp/chat-gprs'
        noauth
        noipdefault
        user KPN
        defaultroute
        debug
Chat script "/etc/ppp/chat-gprs":
        TIMEOUT         5
        ECHO            ON
        ABORT           '\nBUSY\r'
        ABORT           '\nERROR\r'
        ABORT           '\nNO ANSWER\r'
        ABORT           '\nNO CARRIER\r'
        ABORT           '\nNO DIALTONE\r'
        ABORT           '\nRINGING\r\n\r\nRINGING\r'
        ''              \rAT
        TIMEOUT         12
        OK              ATZ
        OK              'AT+cgdcont=1,"IP","internet"'
        OK              'AT+cgqmin=1'
        OK              'AT+cgqreq=1'
        OK              'ATD*99***1#'
Het passwoordfile "/etc/ppp/pap-secrets"
        # Secrets for authentication using PAP
        # client        server          secret          IP addresses
        "KPN"           *               "gprs"          *

Hierna is het mogenlijk om via "pppd file /etc/ppp/gprs" de gprs verbining op te starten.

Alles in een script

Dit alles kan uiteraard in een script geplaats worden. Daarvoor gebruik ik het volgende script:

        #!/bin/sh
        #
        # Note:
        #       Dit is een script om even alles handmatig te starten.
        #       Er zijn echter verbeteringen mogenlijk zoals aanpassen
        #       "/etc/modules.conf".
        # GPRS_ID:
        #       Bluetooth id van het toestel
        #
        GPRS_ID=00:11:22:33:44:55
        #
        modprobe bluez
        modprobe l2cap
        modprobe rfcomm
        modprobe hci_usb
        hciconfig hci0 up
        hcitool scan
        rfcomm bind 0 ${GPRS_ID} 1
        killall hcid
        hcid
        killall pppd
        pppd file /etc/ppp/gprs

Alles automatisch opstarten

Als nu alles werkt kan er een hoop automatisch opgestart worden. Hiertoe moeten de volgende aanpassingen gedaan worden.

Aanpassen "/etc/hotplug/usb.handmap".
Deze aanpassing is nodig om de usb bluetooth dongle te herkennen. Na de herkening worden automatisch de modules geladen. Hiertoe dient de volgende regel toegevoegt te worden (per type dongle verschillend):
        hci_usb  0x0003  0x07b8  0xb02a  0x0000  0x0000  0x00 0x00 0x00 0x00 0x00  0x00  0x00000000 
Laden overige modules via "/etc/modules.conf"
Voeg het volgende toe aan "/etc/modules.conf":
Het opstartscript "/etc/hotplug/bluetooth.agent" om bluetooth te activeren
        #!/bin/sh
        #
        PROG=${0##*/}
        #
        hciconfig hci0 up
        #
        if ! pidof hcid >/dev/null
        then
                hcid
        fi
De laatste handmatige stappen
Bij het inpluggen van de bluetooth module word nu automatisch de module geintieseerd. De overblijvende stappen zijn:
  1. rfcomm 0 00:11:22:33:44:55 1
  2. pppd file /etc/ppp/gprs

Via irda

Na het opzetten van irda is het opzetten van pppd identiek behalve dan dat je gebruik maakt van "/dev/ircomm0" als device.

gnokii

Gnokii is een aplicatie om vanuit de computor met je mobile telefoon te communiceren. Hiermee is het onder andere mogenlijk om telefoon lijsten aan te passen of backupen via je computor.

De belangrijke instellingen voor gnokii via bluetooth zijn:

bluez
De linux bluetooth stack
Irda howto
De infrarood howto
Internet everywhere
De algemene informatie over internet everywhere
Technische info internet everywhere
Op deze pagina's staat hoe je internet everywhere moet configureren. Helaas werken de diverse urls niet onder mozilla. De belangrijke documenten:
gnokii
Een programma om b.v. telefoon boeken te synchroniseren