Modem cellulare via bluetooth su Slackware 14.0

Premessa

Il presente documento vuole descrive la procedura che ho adottato per impostare il bluetooth su slackware-14.0 al fine di far comunicare una comune pennetta bluetooth collegata al portatile via usb e il mio cellulare in modo da poterlo utilizzare come modem per collegarmi ad internet.

Ci sono varie modalità di comunicare via bluetooth dal computer al cellulare al fine di ottenere una connessione ad internet. Questo documento per il momento si limita a spiegare unicamente come associare al telefono un collegamento via porta COM. Questo si traduce in pratica nella creazione di un file speciale del tipo /dev/rfcomm0 che potrà poi essere utilizzato come modem ed essere quindi selezionato nell'impostazione di una connessione dial-up.

Per ottenere lo scopo ci sono diversi metodi. Mi limiterò a trattare la configurazione senza l'utilizzo di applicazioni grafiche che tentano di automatizzare diversi passaggi.

Sommario

Le operazioni da eseguire si possono riassumere come segue:

  • Avvio del servizio bluetooth
  • Controllo funzionameto dell'adapter bluetooth locale
  • Ricerca e identificazione del device bluetooth remoto
  • Pairing tra i dispositivi
  • Configurazione file /etc/bluetooth/rfcomm.conf
  • Test attivazione della porta COM (/dev/rfcomm0)
  • Automatizzazione della configurazione all'avvio

Operazioni

1. Avviamo il servizio bluetooth attraverso lo script presente in Slackware /etc/rc.d/rc.bluetooth. Per farlo dobbiamo però renderlo eseguibile:
root@darkstar:~# chmod +x /etc/rc.d/rc.bluetooth
root@darkstar:~# /etc/rc.d/rc.bluetooth start


2. Verifichiamo il riconoscimento dell'adapter locale ovvero, nel mio caso, della pennina bluetooth collegata al computer via usb.
 root@darkstar:~# hciconfig
 hci0:   Type: BR/EDR  Bus: USB
         BD Address: 00:09:DD:50:2F:9C  ACL MTU: 310:10  SCO MTU: 64:8
         UP RUNNING PSCAN ISCAN
         RX bytes:961 acl:0 sco:0 events:27 errors:0
         TX bytes:361 acl:0 sco:0 commands:27 errors:0


3. Ricerca del cellulare (assicurarsi di avere acceso il bluetooth sul cellulare e che non sia "nascosto"):
 root@darkstar:~# hcitool scan
 Scanning ...
         00:21:AA:A4:F2:AD       Nokia 5000d-2
Questo ci riporta il "Bluetooth ID" del cellulare e ifo sul modello. Ai nostri fini basta annotare L'ID, che nel mio caso è 00:21:AA:A4:F2:AD e servirà nella configurazione nel file rfcomm0.conf.


4. Pairing
Al momento non ho ancora capito come eseguire l'operazione senza ricorrere a tool terzi non compresi nel pacchetto bluez.
Su Slackware-14.0 ho utilizzato Blueman dall'ambiente grafico. Su Slackware-13.1 avevo installato uno script in python chiamato "simple-agent".
Pertanto lascio in sospeso questo punto invitandovi anche a modificare la guida nel caso in cui riusciste ad effettuare il pairing senza ricorrere a software grafici o non inclusi di default in Slackware-14.0.
I punti che seguono presuppongono che sia stato effettuato il pairing e che il cellulare sia stato configurato in modo da accettare automaticamente la connessione BT da parte del nostro sistema.


5. Andiamo ora a modificare il file:
 /etc/bluetooth/rfcomm.conf
Ecco il mio:
 rfcomm0 {
         # Automatically bind the device at startup
         bind yes;

         # Bluetooth address of the device
         device 00:21:AA:A4:F2:AD;

         # RFCOMM channel for the connection
         channel 1;

         # Description of the connection
         comment "Nokia 5000d-2";
 }
Riavviamo a questo punto il bluetooth in modo che le nostre modifiche alla configurazione siano applicate:
 /etc/rc.d/rc.bluetooth restart


6. Attivazione del device /dev/rfcomm0.
Per attivare al volo la porta COM ed ottenere il file /dev/rfcomm0 da testare come modem possiamo semplicemente lanciare il seguente comando:
 root@darkstar:~# rfcomm bind 0
 root@darkstar:~# ls /dev/rfcomm*
 /dev/rfcomm0
A questopunto possiamo testare il modem, per esempio con un programma come minicom che permette di interrogarlo con comandi AT, tipo ATZ. Se riceviamo come risposta OK allora la comunicazione col modem è apposto e possiamo anche impostare la connessione ad internet selezionando /dev/rfcomm0 come modem.
Ok, però si vuole rendere questa operazione automatica all'avvio: cioè vogliamo che avviato il sistema sia già stato creato automaticamente il file speciale /dev/rfcomm0.
Pertanto aggiungiamo al file /etc/rc.d/rc.local la riga:
 rfcomm bind 0
Questo comando fà si che se il cellulare è nel raggio di azione del bluetooth del dongle usb e ha il bluetooth attivo, viene automaticamente visto e gli viene associato il file /dev/rfcomm0 che viene creato al volo. Mettendo in questo file il comando rfcomm, questo comportamento si ha automaticamente all'avvio del sistema.
A questo punto una domanda è d'obbligo:
abbiamo modificato il file /etc/bluetooth/rfcomm.conf impostando la voce bind a yes. Come dice anche il commento nel file in questione, si dovrebbe creare automaticamente all'avvio il nostro file speciale associandolo al cellulare come stabilito dalla configurazione.
Questo però non avviene. E ho letto in rete che dovrebbe essere colpa di un bug. Lascio a chi legge l'onere di ricercare eventuali informazioni in merito qualora fosse interessato.


7. Riavviare il sistema.
come riprova per vedere se tutto funziona automaticamente all'avvio ci può stare.