bluetooth

  • Collegare lo smartphone a Linux via Bluetooth

    In alcuni casi si vorrà trasferire i file dallo smartphone al PC senza voler usare cavi e cavetti, per questo si può usare il Bluetooth che si trova spesso nei portatili.

    Qui cercherò di mostrare una strada per farlo sui sistemi GNU\Linux.

     

    Configurazione delle impostazioni Bluetooth

     

    Se abbiamo GNOME come desktop environment, andiamo in Impostazioni di sistema e scegliamo Bluetooth o impostazioni Bluetooth

     

    Impostazioni Bluetooth

  • 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 ex.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

     

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