[aha] kit per guerrilla BlueTooth

xDxD.vs.xDxD xdxd.vs.xdxd a gmail.com
Ven 4 Set 2009 20:04:20 CEST


Eccolo qui.

scaricate il file

http://www.artisopensource.net/BT.zip

e scompattatelo da qualche parte su un sistema Linux

vi troverete una directory con i file che corrispondono ad una
distribuzioncina live del linux che usiamo per fare la comunicazione
bluetooth.
per i più tecnici: è un isolinux (quindi una immagine binaria di un
filesystem linux) con un kernel vmlinuz su cui sono stati configurati dei
moduli bluetooth abbastanza generali da non dare troppi problemi con le
antennine più comuni. Se serve vi racconto come si installano altri moduli
se avete hardware problematici.

a questo punto vogliamo guardare cose c'è dentro il filesystem, quindi
dobbiamo "montarlo" da qualche parte.

aprite una shell andate nella directory in cui avete scompattato il file e
date questi comandi:

su -
(così diventate root del sistema, vi viene richiesta una password)

mkdir -p mtpoint
(create una directory "mtpoint")

mount -o loop ccbtdemo mtpoint/
(montate il file "ccbtdemo", che contiene l'immagine binaria del filesystem,
usando il device "loop")

chmod 777 mtpoint
(così potete anche scriverci sopra)

a questo punto potete andare a curiosare dentro la directory "mtpoint" per
vedere cosa c'è nel filesystem.
Troverete la gerarchia di directory tipica di un sistema unix (bin, dev,
etc, lib...). Questo è il sistema linux di cui farete il boot per il vostro
media server bluetooth.

di tutti file e directory vi interessano un paio di cose.

1) i contenuti

i contenuti da distribuire li trovate nella directory:

/var/opt/ccobex
(ccobex è un insieme di protocolli e standard che descrivono il
trasferimento di file e applicazioni su bluetooth)

dentro questa directory trovate una serie di cartelle che sono preimpostate
su una serie di contenuti che avevo usato io per un paio di applicazioni.
Lo script che parte in automatico al boot del sistema usa queste directory
per distribuire i contenuti.
Chi è capace può modificare lo script (che è anche abbastanza semplice) e
usare una struttura propria.
Chi non è capace può usare le directory come le ho impostate io, sostituendo
i propri file, che verranno gestiti automaticamente dal sistema.

dentro questa directory ci sono le cartelle

"coupons"
"download"
"inbox"
"selfile"

dentro "coupons" ci sono dei file di testo che vengono mandati con un certo
ritmo ai cellulari bluetooth che capitino a portata di antenna.
I messaggi sono pensati per essere brevi-brevi, così da arrivare rapidamente
ai cellulari.
Se voi aggiungete o modificate altri file in questa directory, verranno
aggiunti a quelli inviati.

dentro la directory "download" ci sono i contenuti principali, divisi in
cartelle, per tipo.
Nella configurazione standard, i contenuti vengono distribuiti in 2
modalità: push e on demand.
La modalità push seleziona secondo una certa politica un file per volta (ad
esempio casualmente) e lo invia ad un cellulare a portata di antenna, senza
che questo abbia richiesto nulla.
La modalità on-demand si attiva quando un cellulare invia un messaggio al
nostro media server. Questa modalità si attiva quando da un cellulare si
invia una parola chiave attraverso una vcard (come quando mandi un contatto
dalla tua rubrica ad un altro telefono). Nel servizio standard, se mando
"video", mi viene rimandato indietro uno dei video contenuti nella cartella
"video", se mando "image", una immagine, e così via.
Se mando una parola chiave non riconosciuta, mi viene mandato indietro un
messaggio di aiuto, che si trova nel file di testo "Help.txt"

le persone possono anche inviare file al nostro mediaserver. Questi file
saranno messi nella directory "inbox".

la directory "selfile" contiene alcuni script che implementano le politiche
di selezione dei file da inviare. Ad esempio "random" sceglie un file
casualmente, "hour" lo seleziona in base all'ora del giorno, e così via. Se
configurate altre politiche di selezione le potrete usare negli script che
fanno l'invio.

Nelle cartelle download trovate un po' di file che avevo usato in una
performance della Biodoll con Angel_F. Sostituiteci i vostri file e siete gi
a buon punto.
Nella directory dei video ci trovate dei file ".rm", come RealMedia, che
fino a un certo tempo fa erano quelli più sicuri da mandare sui cellulari,
per essere abbastanza certi che poi le persone potessero effettivamente
vederli. Ora i tipi di video accettati dai cellulari sono aumentati di
molto: potete provare con degli mp4 o con dei 3gp... insomma, fate le prove.

2) i servizi

qui si inizia ad andare sul tecnico. Per chi non ha già le competenze o il
modo di studiare da sè, consiglio di usare la piattaforma così com'è:
sostituite i vosti contenuti come spiegato sopra, e andate al punto
successivo, così potrete preparare il vostro mediaserver. Poi magari
facciamo un workshoppetto anche per questo.

l'invio dei contenuti è gestito tramite alcuni script.

la configurazione generale la trovate in alcuni file della directory /etc

se entrate nella directory "/etc/bluetooth" troverete un paio di file.

in particolare il file "hcid.cof" provvede alla configurazione del servizio
bluetooth che, tra le altre cose, vi consente di configurare se accettare
connessioni in ingresso, magari abilitate da un codice PIN

nella directory "/etc/opt/ccobex" trovate la configurazione vera e propria
del servizio di distribuzione contenuti.

il file "obexfile.conf" descrive le directory dove sono messi i contenuti e
la posizione nel filesystem degli script di base per la comunicazione
bluetooth

il file "obexpush.cfg" descrive la posizione dello script di invio dei
contenuti in modalità push

l file "obexscan.conf" descrive alcuni parametri che vengono usati per fare
lo scan della rete bluetooth, per "accorgersi" di altri terminali presenti

Configurati i parametri, passiamo a dare un occhio ai file che eseguino il
servizio (almeno nella versione standard che vi ho linkato). Questi si
trovano nella directory "/opt/checkcom/ccobex/bin"

come vedrete, sono tutti script più o meno semplici che invocano i tre file
binari (eseguibili compilati) che forniscono i servizi di base
(indirizzamento, gestione dei file su canale bluetooth, gestione di
transazioni/trasmissioni)

provate a giocarci e poi magari in un workshop ci giochiamo assieme.


3) mettere tutto insieme e spammare :)

siamo arrivati qui:

- scompattare il file
- montare il filesystem con i comandi descritti all'inizio
- mettere nelle directory dei contenuti i propri file (testi, immagini,
video, suoni)

a questo punto si può rimettere tutto insieme.

per farlo bisogna compattare in un file gzip il filesystem binario.
Visto che lo abbiamo montato sul disco, ogni modifica che abbiamo apportato
sarà riflessa anche sul binario (stiamo copiando/modificando/eliminando
files dall'immagine).

se nella directory su cui avete montato il filesystem è presente il file
"ccbtdemo.gz", cancellatelo, che è quello vecchio.

compattate il tutto con un bel

gzip ccbtdemo

A questo punto avete tutto.

Se avete un PC che fa il boot da una pennetta USB, mettete i seguenti file
sulla pennetta medesima:

boot.cat
ccbtdemo.gz
isolinux.bin
isolinux.cfg
vmlinuz

sennò masterizzateli su un CD (assicuratevi che ci si possa fare il boot.. a
volte dovete chiudere la sessione, sennò dà problemi).

ora spegnete il PC, collegate l'antennina bluetooth, fate il boot dalla
pennetta o CD e il tutto dovrebbe partire.

Il computer non va in modalità grafca (rimane il terminale di testo) e
potete seguire sullo schermo quello che avviene (appena rilevate altri
telefoni bluetooth, quando viene inviato o ricevuto un file, e così via)

il software e il sistema linux sono leggeri leggeri e sfoltiti di tutto,
tranne quello che serve al servizio bluetooth, quindi potete usarlo su pc
anche vecchi ed economici.

daje. :)

xDxD
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ecn.org/pipermail/aha/attachments/20090904/87326a83/attachment-0001.html 


Maggiori informazioni sulla lista AHA