Guide Linux

 

Slackware Linux e il Bluetooth

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

 

Cerca altro su Linux

Interessato ai nostri corsi Linux?

corsi linux arduino android

Dona il tuo 5x1000 a Orvieto Linux

Ricevi aggiornamenti da Orvieto Linux

* campi obbligatori


Tratteremo i tuoi dati nel rispetto della normativa vigente. Potrai comunque cancellarti tramite le mail che riceverai o inviandoci una richiesta esplicita a info@orvietolinux.it.

Orvieto Linux User Group Associazione di Promozione Sociale
Sede legale: Largo Tevere 4 05018 Orvieto (TR) C.F. 90012070554
Copyleft © 2005 - 2024 - Privacy Policy e Cookie Policy
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.