ATTENZIONE: la seguente guida è stata realizzata nel 2008 per Slackware Linux.
Molte delle indicazioni potrebbero essere obsolete.
Introduzione
Questo “how to” spiega come configurare la propria linux box, in modo da sfruttare il modem del vostro smartphone, via Bluetooth, di trasferire i file tra cellulare e PC e di comandare la propria linuxbox dal telefono.
Come premessa non garantisco che la seguente guida sia compatibile con altre distribuzioni GNU/Linux e con altri accessori e periferiche, in quanto il test è limitato solo a un PC con le seguenti caratteristiche:
PC: Portatile Toshiba A60 Satellite P4
Sistema operativo: Slackware 10.2 con kernel 2.6.13-2
Adattatore: Bluetooth adapter USB “ROPER” class 2 (ROBTC2SW-USB)
Cellulare: Nokia 6600
Indice
-
Configurazione del kernel
-
Installazione del software (BlueZ)
-
Configurazione interfaccia Bluetooth
-
Configurazione degli script di connessione per il GPRS
-
Dati di accesso di provider italiani
-
Utilizzo del DNS
-
Trasferimento file con il Bluetooth
-
Comandare il PC con il Nokia 6600
-
Licenza e condizioni d'uso
-
Contatti
Configurazione del kernel
Da shell digitiamo:
# su
ed inseriamo la password di root, poi
# cd /usr/src/linux-2.6.13.2/
# make menuconfig
ci portiamo nella sezione “Networking” e abilitiamo nel seguente modo i moduli:
Abilitiamo come in figura qui sopra, il “Bluetooth Subsystem support” e entriamo (tasto INVIO) nella sottosezione:
Entriamo nella sezione Bluetooth device drivers e selezioniamo i seguenti moduli:
usciamo dal menu, selezionando exit, e alla domanda se salvare o no il config, diamo si.
Poi digitiamo dentro la cartella /usr/src/linux-2.6.13.2:
# make -j5 bzImage
# make -j5 modules
# make modules_install
# mv arch/i386/boot/bzImage /boot/vmlinuz-2.6.13.2
# mv .config /boot/config-2.6.13.2
# mv System.map /boot/System.map-2.6.13.2
# cd /usr/src
# rm linux
# ln -s /usr/src/linux-2.6.13.2 /usr/src/linux
# lilo
Riavviamo la nostra linux box!
Attenzione: al posto di 2.6.13.2 mettete la versione del vostro kernel! Se non la sapete digitate da shell:
# uname -r
Installazione del software (BlueZ)
Per interfacciare la nostra chiavetta Bluetooth abbiamo bisogno dei pacchetti BlueZ, cioe' di uno stack per le periferiche Bluetooth che consente loro, di comunicare col nostro pc.
Gli archivi dei sorgenti sono presenti sul sito http://www.bluez.org/ e sono i seguenti:
bluez-libs
bluez-utils
bluez-pin
bluez-firmware
bluez-hcidump
bluez-hciemu
bluez-sdp
scompattiamo tutti i pacchetti tranne bluez-pin e uno per uno in successione, digitiamo:
# tar xzvf bluez-$pacchetto.tar.gz
# cd bluez-$pacchetto
# ./configure
# make && make install
dove $pacchetto e' il nome dell'archivio (es.libs, utils, hciemu,...)
per bluez-pin, invece facciamo cosi:
# tar xzvf bluez-pin.tar.gz
# cd bluez-pin
# make install-program
Ora che abbiamo installato tutto il pacchetto software per il Bluetooth, passiamo a configurare il nostro PC!
Configurazione interfaccia Bluetooth
A questo punto, una volta installati i pacchetti necessari, configuriamo il nostro pinguino.
Prima di inserire il nostro Bluetooth adapter nella porta USB, avviamo (se gia' non lo è) il sistema di logging a messaggi istantaneo di Slack, digitando:
# su
inseriamo la pass di root, poi
# syslogd
# tail -f /var/log/messages
inseriamo il dongler USB. Quindi dovrebbe apparire la conferma che il sistema ha riconosciuto l'inserimento della chiavetta.
Altro metodo è digitare, dopo avere inserito la chiave Bluetooth:
# dmesg
dove apparira' il log di sistema
hub 1-0:1.0: over-current change on port 2
usb 2-3: new full speed USB device using ohci_hcd address 2
Ora carichiamo l'interfacciamento USB con
# modprobe hci_usb
Bluetooth: HCI USB driver ver 2.8
usbcore: registered new driver hci_usb
e controlliamo se è stato caricato con
# lsmod
Se tutto è andato a buon fine, cioè se appare una lista in cui è presente anche hci_usb, allora attiviamo il bluetooth sul nostro nokia e carichiamo l'interfaccia della chiave usb con
# hciconfig hci0 up
e facciamo uno scan dei dispositivi bluetooth con
# hcitool scan
il risultato dovrebbe essere questo
Scanning ...
00:0E:6T:62:F9:7E Nokia6600
dove 00:0E:6T:62:F9:7E è il MAC del cellulare, cioè il suo indirizzo fisico.
N.B. Ovviamente il MAC cambia da dispositivo a dispositivo!
Ora dobbiamo modificare il file del pin, che si trova in /etc/bluetooth/ e si chiama appunto pin.
# cd /etc/bluetooth
# pico pin
ed inseriamo una stringa numerica che sara' il nostro pin (sara' richiesto come autenticazione dal Nokia 6600)
Per quanto riguarda i permessi decidete voi se volete che il file sia condiviso con altri utenti;
il comando, comunque, è
# chmod PERMESSI pin
es. chmod 777 pin oppure chmod +x pin ...
Ora bisogna modificare il file di configurazione hcid.conf
# pico /etc/bluetooth/hcid.conf
e settarlo nel modo seguente:
options {
autoinit yes;
security auto;
pairing multi;
pin_helper /etc/bluetooth/pin;
}
device {
name “QuelloCheVolete”;
#lasciate la classe locale inalterata
class ...
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
}
ora attiviamo il servizio hcid con
# hcid
e creiamo un collegamento fra il nostro computer e il nokia, con
# rfcomm bind 0 MAC_DEL_CEL 1
Bluetooth: RFCOMM ver 1.5
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
dove bind 0 setta il numero del dispositivo e 1 è il canale di comunicazione.
Questo comando ha appena creato un link al nokia, che si trova in /dev/rfcomm0 .
Ora dobbiamo inserire il MAC del cellulare nel file di configurazione di rfcomm0:
# pico /etc/bluetooth/rfcomm.conf
rfcomm0 {
bind no;
device MAC_DEL_CEL;
channel 1;
comment “commento sulla connessione”;
}
Per sapere i servizi del cellulare che possiamo sfruttare digitiamo da riga di comando:
# sdpd
Bluetooth: L2CAP ver 2.7
Bluetooth: L2CAP socket layer initialized
# sdptool browse MAC_DEL_CEL
e apparira' una cosa del genere:
...
...
Service Name: Dial-up Networking
Service RecHandle: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
...
...
La parte che ci interessa è la sezione Dial-up Networking, che indica il canale del servizio e i protocolli utilizzati per eseguirlo: essi sono
Channel 1
Protocol “L2CAP”
Protocol “RFCOMM”
che abbiamo, infatti, appena utilizzato per l'interfacciamento del nostro device!
N.B. Quando il Nokia richiedera' un'autenticazione, inseriamo il codice numerico contenuto nel file del pin, quindi nel menu del Nokia nella cartella Connettivita' scegliamo Bluetooth e passando con il joystick verso destra associamo il nostro computer, in modo che non richieda piu l'autenticazione.
Configurazione degli Script di connessione per il GPRS
Ora che abbiamo installato e caricato tutti i servizi, demoni e moduli, passiamo alla parte di configurazione degli script di connessione.
Di seguito sono riportati esempi di file per avviare la connessione GPRS sul nostro Nokia (che svolgera' il ruolo di modem) attraverso il Bluetooth.
Abbiamo bisogno innanzitutto di uno script per ppp che richiami la chat col modem.
Quindi digitiamo:
# pico /etc/ppp/peers/gprs-connect
ed inseriamo:
nodetach
debug
show-password
connect /etc/ppp/chatscripts/chat-up
/dev/rfcomm0
#115200
57600
crtscts
local
:10.0.0.1
noipdefault
ipcp-accept-local
defaultroute
usepeerdns
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
noauth
Editiamo ora il file che invece svolge la fase di chat col modem:
# pico /etc/ppp/chatscripts/chat-up
ed inseriamo:
exec chat \
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 \
SAY "Press CTRL-C to close the connection" \
SAY "\ndefining PDP context...\n" \
OK ATH \
OK ATE1 \
OK 'AT+CGDCONT=1,"IP","internet.wind"' \
OK ATD*99# \
TIMEOUT 60 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"
Mettiamo down il link a eth0:
# ifconfig eth0 down
Per avviare la connessione, lanciamo da shell, dopo essere diventati root:
# pppd call gprs-connect
Il risultato dovrebbe essere simile a quello nella figura:
Per disconnetterci dovremo usare la combinazione di tasti CTRL+C per stoppare l'applicazione (ovviamente nella shell in cui è in esecuzione gprs-connect!).
Dati di accesso di provider italiani per il GPRS
WIND
apn: internet.wind
no nome utente
no pass
ip dinamico
dns 212.245.255.2
dns 212.141.84.12
TIM
apn: ibox.tim.it
nome utente: numero cel
pass: password di registrazione su tim.it
ip dinamico
dns 213.230.155.94
dns 213.230.130.222
dns 195.120.29.30
Utilizzo del DNS
Per utilizzare i dns dei diversi provider, dobbiamo inserire i loro IP nel file /etc/resolv.conf:
# echo nameserver dns >> /etc/resolv.conf
dove dns sara' per esempio 212.245.255.2
Trasferimento file con il Bluetooth
Per quanto riguarda, invece, il trasferimento di file dal pc al telefono e viceversa ci occorrono diversi programmi (oltre, ovviamente, a BlueZ) :
openobex
openobex-apps
obexserver.c
ussp-push
Possiamo scaricare i sorgenti di openobex e openobex-apps su http://openobex.sourceforge.net/ , di obexserver.c su http://www.frasunek.com/sources/unix/obexserver.c e di ussp-push all'indirizzo http://unrooted.net/hacking/ussp-push.tgz oppure cercarlo con Google.
Per utilizzare il trasferimento di file attraverso il nostro Smartphone, dobbiamo cercare il canale di utilizzo del nostro telefonino del servizio Object Push:
# sdpd
# sdptool browse MAC_CEL
...
...
Service Name: OBEX Object Push
Service RecHandle: 0x10003
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100
...
...
Per quanto riguarda il Nokia 6600, il canale e' il 9.
Quindi a questo punto dobbiamo editare il file /etc/bluetooth/rfcomm.conf per aggiungere un nuovo device che utilizzi il canale 9:
# pico /etc/bluetooth/rfcomm.conf
rfcomm0 {
bind no;
device MAC_CEL;
channel 1;
comment “GPRS”;
}
rfcomm1 {
device MAC_CEL;
channel 9;
comment “OPUSH”;
}
Abbiamo aggiunto al device per la connessione GPRS, un altro per il trasferimento file, quindi:
# sdptool add --channel=9 OPUSH
Ora estraiamo i file dagli archivi di openobex & co:
# tar xzvf $pacchetto-x.xx.tar.gz
# cd $pacchetto
# ./configure
# make && make install
dove $pacchetto sara' openobex, openobex-apps e ussp-push e x.xx la versione del programma.
Ora compiliamo obexserver.c :
# cp obexserver.c /openobex-apps-x.xx/src/
# cd openobex-appsx.xx/src/
# cc -o obexserver obexserver.c libmisc.a -lopenobex
Creiamo ora il device che sfruttera' il canale 9:
# rfcomm bind 1 MAC_CEL 9
e sempre all'interno della cartella /openobex-apps/src/ :
# cp obexserver /sbin/
Per quanto riguarda ussp-push, che ci permettera' di mandare file al cellulare, entriamo nella sua cartella:
# cd ussp-push-x.xx
# cp ussp-push /sbin/
Finalmente possiamo provare i programmi:
# ussp-push /dev/rfcomm1 nome_file_locale nome_file_remoto
Accettiamo sul cellulare (oppure aspettiamo il completamento del trasferimento se abbiamo associato il computer col Nokia) e avremo il nostro file nella sezione Messaggi.
Invece per ricevere file dal nostro cellulare dobbiamo avviare l'obexserver e inviare un file dal 6600:
# obexserver
Concluso il trasferimento, troveremo il file che il Nokia ci ha mandato nella cartella /tmp!
Comandare il PC con il Nokia 6600
Per l'ultimo capitolo dell'How to, viene descritta la procedura di controllo remoto del PC, da parte del Nokia.
Occorrente per la procedura:
btcid
bemusedlinuxserver
bemusedclient.sis
btcid è la sigla di Bluetooth Caller ID, che permette di visualizzare il numero del chiamante sul cellulare, nel nostro monitor; bemusedlinuxserver è la parte server di bemused che comanda il PC e bemused.sis è la sua parte client da installare sul nostro 6600.
Installiamo btcid che si puo' trovare anche in formato .tgz, googleando un po, e quindi è facilmente installabile da riga di comando con:
# installpkg btcid-x.xx.tgz
Per quanto riguarda il pacchetto di Bemused, possiamo trovare gli archivi all'indirizzo web http://bemused.sf.net/ e scaricare il server e il client. Decomprimiamo quindi il server:
# tar xzvf bemusedlinuxserver.tar.gz
Il client inviamolo al Nokia 6600 con ussp-push:
# ussp-push /dev/rfcomm1 bemused.sis bemused_client.sis
e nella sezione Messaggi, possiamo trovarlo e installarlo.
A questo punto dobbiamo decidere quale comando eseguire sul nostro PC, nel momento in cui arriva una chiamata verso il cellulare. Digitiamo quindi da shell:
# btcid -p /dev/rfcomm0 -c 'xmms –pause'
dove 'xmms -–pause' è un comando (in questo caso di esempio) che Bemused lancera' su Linux: xmms all'arrivo di una chiamata si mettera' in pausa, verra' mostrato l'ID del chiamante e potremo rispondere tranquillamente senza dover mettere mano alla tastiera o al mouse!
Quindi ci spostiamo nella cartella di bemusedlinuxserver e modifichiamo il file di configurazione:
# pico bemusedlinuxserver/bemused.conf
xmmsdir=xmms
mp3dir=directory-che-volete/
autostartxmms=1
e scegliamo la directory di xmms (che dovrebbe essere quella di default nel .conf) e la directory dove abbiamo i file musicali.
Poi compiliamo lanciando un:
# make && make install
e quindi lanciamo bemused:
# bemusedlinuxserver
ed eseguiamo bemused sul nostro 6600, scegliendo Opzioni poi Refresh List, con il quale si cercheranno le periferiche Bluetooth.
Selezioniamo il nostro PC e sull'interfaccia del client di Bemused verra' caricata tutta la lista dei file musicali presenti sul computer, che potranno essere scelti con la schermata dei controlli.
Licenza e condizioni d'uso
Questo How-to è rilasciato sotto licenza Creative Commons
Attribution-NonCommercial 2.0 Italy
(http://creativecommons.org/licenses/by-nc/2.0/it/).
In particolare, chiunque è libero di:
distribuire, comunicare al pubblico, rappresentare o esporre in pubblico l’opera;
di creare opere derivate alle seguenti condizioni:
deve riconoscere la paternità dell'opera all'autore originario (citando in modo
visibile nella prima e ultima pagina: "Versione originale di Marco Ciammella
(Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.). Questo libro, in tutte le sue versioni
per volontà dell'autore, può essere riprodotto anche integralmente senza
violare nessuna legge in quanto questo libro è rilasciato sotto licenza
Creative Commons Attribution-NonCommercial 2.0
Italy (http://creativecommons.org/licenses/by-nc/2.0/it/)”.
non può utilizzare quest'opera per scopi commerciali.
In particolare, questo libro potrà essere:
modificato parzialmente o integralmente creando manuali per persone;
distribuito sia in forma originale che in forma modificata, in formato elettronico come in formato cartaceo;
Contatti
Marco Ciammella, email: marco (at) orvietolug (dot) org
Orvietolug, sito web: www (dot) orvietolug (dot) org