2010-11-25

eeepc + linux ARCH + nokia 6630 + bluetooth + tre.it

Il post odierno è su un tema originalissimo: utilizzare un cellulare Nokia 6630 per connettersi ad internet via bluetooth, sul solito eeePC con installato Arch Linux. In realtà il modello del computer è irrilevante.

PREMESSA: per realizzare quanto segue ho seguito scrupolosamente i passi indicati in questa pagina del wiki di Arch, che suggerisco al posto di questo post:

https://wiki.archlinux.org/index.php/Bluetooth_GPRS_Howto

Se avete difficoltà con l'inglese riporto in estrema sintesi i passi descritti (e come li ho realizzati); le frasi che iniziano in grassetto riguardano parti non presenti sulla pagina, quelli in corsivo sono passaggi che non sono stati necessari nel mio caso:

PRIMA PARTE: IL BLUETOOTH

La prima cosa da fare è installare bluez-utils, bluez-libs e dbus con pacman

# pacman -S bluez-utils bluez-libs dbus

ed avviare, nell'ordine:

# /etc/rc.d/dbus start
# /etc/rc.d/bluetooth start

Si può poi modificare il file /etc/rc.conf aggiungendo (in questo ordine) dbus e bluetooth alla riga DAEMONS=(... dbus ... bluetooth ...).

Si esegue una scansione dei dispositivi (il cellulare va messo in modalità visibile) con:

# hcitool scan
Scanning ...
00:11:22:33:44:55 NomeTelefono

00:11:22:33:44:55 è il mac del cellulare.

Poi con:

sdptool search --bdaddr 00:11:22:33:44:55 DUN
[...]
Channel 1
[...]

si trova il canale su cui il cellulare effettua il servizio DUN (dial-up network). Ovviamente al posto di 00:11:22:33:44:55 va messo il mac del proprio cellulare trovato in precedenza (la stessa cosa andrà fatta per ogni volta che si trova scritto 00:11:22:33:44:55).

Ora bisogna impostare il file /etc/bluetooth/rfcomm.conf, aggiungendo:

bind yes;
device 00:11:22:33:44:55;
channel 1;
comment "GPRS dialup";

Alla voce channel va messo il numero trovato prima, comment può essere quello che si vuole.

Quando ho fatto uno dei primi tentativi il canale era cambiato, ed al momento non ne capisco il motivo: in caso di malfunzionamenti potrebbe essere opportuno controllare che il proprio "channel" non sia diverso da quello trovato in precedenza.

Si modifica ora /etc/conf.d:

RFCOMM_ENABLE=true

e si riavvia il bluetooth:

# /etc/rc.d/bluetooth restart

Se il comando

# ls -l /dev/rfcomm0
crw-rw---- 1 root tty 216, 0 data e ora /dev/rfcomm0

dà una risposta simile a quella riportata, significa che il collegamento tra cellulare e il computer funziona (in particolare che il computer vede il servizio modem del cellulare, se non ho capito male).

Per connettere computer e modem è necessario un PIN condiviso, quindi si dà:

# bluez-simple-agent

quindi su un altro terminale si usa il comando:

# cat /dev/rfcomm0

A breve il telefono dovrebbe - ricordo che questa parte non è stata necessaria per me - chiedere un PIN; una volta inserito bluez-simple-agent richiederà lo stesso PIN per connettere i dispositivi.

SECONDA PARTE: IMPOSTARE LA CONNESSIONE

Di seguito è descritta la creazione di un file, /etc/ppp/peers/tre, che contiene i parametri per la connessione tramite un modem; in particolare fa riferimento ad altri due file, /etc/ppp/peers/tre-connect e /etc/ppp/peers/tre-disconnect. Questi ultimi due sono script che utilizzano il programma "chat", necessario per comunicare con il modem ma di cui non conosco nulla, come nulla so, al di là di ciò che è intuitivo, delle configurazioni contenute nel file "tre"; per impostare il mio computer li ho copiati pari pari dalla pagina wiki di riferimento e pertanto non so fornire chiarimenti se qualcosa non funziona.

Si inizia aggiungendo in fondo al file /etc/ppp/ip-up le seguenti due righe:

echo -e "#generated by ip-up\nsearch local\nnameserver $DNS1\nnameserver $DNS2" > /etc/resolv.conf
chmod a+r /etc/resolv.conf

Queste righe occorrono per impostare i DNS corretti. Ora bisogna creare il file /etc/ppp/peers/tre, che sarà del tipo:

show-password
noauth
/dev/rfcomm0
115200
connect /etc/ppp/peers/tre-connect
disconnect /etc/ppp/peers/tre-disconnect
defaultroute
noipdefault
nodetach
usepeerdns
crtscts
local
ipcp-accept-local
maxfail 10
lcp-echo-failure 0
lcp-echo-interval 0
novj
nobsdcomp
novjccomp
nopcomp
noaccomp
linkname saunalahti
mtu 1500
mru 1500

Quindi si crea /etc/ppp/peers/tre-connect

#!/bin/sh
exec /usr/sbin/chat -v \
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 at any stage!" \
SAY "\ndefining PDP context...\n" \
OK ATH \
OK ATE1 \
OK 'AT+CGDCONT=1,"IP","tre.it","",0,0' \
OK ATD*99# \
TIMEOUT 22 \
SAY "\nwaiting for connect...\n" \
CONNECT "" \
SAY "\nConnected." \
SAY "\nIf the following ppp negotiations fail,\n" \
SAY "try restarting the phone.\n"

*99# è il numero che il cellulare compone per collegarsi, e varia a seconda del cellulare. *99# è quello usato tipicamente da Nokia. Se si usa navigaTre il file dovrà contenere "naviga.tre.it" al posto di "tre.it", ma non garantisco che funzioni.

Se qualcosa non funziona il mio consiglio è di controllare attentamente di aver messo tutte le "\". Esatto, ne avevo dimenticata una.

Lo script di disconnessione, /etc/ppp/peers/tre-disconnect è abbastanza simile:

#!/bin/sh
exec /usr/sbin/chat -V -s -S \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO DIALTONE" \
SAY "\nSending break to the modem\n" \
"" "\K" \
"" "\K" \
"" "\K" \
"" "+++ATH" \
"" "+++ATH" \
"" "+++ATH" \
SAY "\nPDP context detached\n"

Dato che sono due script vanno cambiati i loro permessi in modo che siano eseguibili:

# chmod +x /etc/ppp/peers/tre-connect
# chmod +x /etc/ppp/peers/tre-disconnect

A questo punto si può far partire la connessione con:

# pon tre

Se è tutto impostato correttamente il computer utilizzerà il cellulare come modem per collegarsi ad internet. Si può chiudere la connessione con CTRL-C. Dopo aver verificato che la connessione funziona si può commentare l'opzione "# nodetach" nel file /etc/ppp/peers/tre. Ci si connette con:

# pon tre

e stavolta la disconnessione va fatta con:

# poff tre

Ecco il risultato (nulla di stupefacente, bisogna anche ricordare che il bluetooth fa da "collo di bottiglia"):



Per controllare il traffico effettuato il programma migliore che ho provato è:

# pacman -S vnstat

Infine il bluetooth sul cellulare va impostato in modalità "nascosta", se non altro per un fatto di privacy.

Una nota finale: una connessione 3G implica un consumo di energia notevole per il cellulare, quindi consiglio un occhio alla batteria quando lo si usa.

Nessun commento:

Posta un commento