Le informazioni in questo documento si applicano ai telefonini Sony Ericsson T610 e T630; vi sono anche informazioni che possono tornare utili per altri modelli. Ho deciso di scriverlo perché ho avuto non pochi problemi per far funzionare il telefonino con Linux e soprattutto per trovare sul web della documentazione completa; ovviamente, ora che tutto funziona ne trovo a tonnellate... Contattami liberamente per chiarimenti, correzioni, segnalazione di altri link o programmi.
Le informazioni nei box verdi sono solo per (alcuni) laptop Toshiba.
Per prima cosa occorre disabilitare qualsiasi porta seriale con setserial /dev/ttySx uart none; visto che su questo portatile non ho porte seriali non sono sicuro se sia davvero necessario, ma per sicurezza lo dico :P Questo perché il chip IrDA e i controller seriali potrebbero condividere indirizzi di memoria e quindi andare in conflitto.
È necessario il supporto per il controller IrDA e per IrCOMM nel kernel; queste opzioni si trovano, all'interno del menu di configurazione del kernel, in Device Drivers -> Networking support -> IrDA (infrared) subsystem support. Se il controller è sconosciuto lo si può identificare con findchip -v (incluso nelle IrDA-utils).
Se il chip è un SMC sarà necessario attivarlo tramite un software, visto che il BIOS non se ne occupa. Lo si può scaricare da http://www.janerob.com/rob/ts5100/irda.html o http://libxg.free.fr/irda/lib-irda.html. Bisogna lanciare il programma ad ogni reboot prima di caricare il modulo; affronteremo più sotto la sua configurazione.
Ora si possono caricare i moduli e impostare la connessione IrCOMM:
modprobe smsc-ircc2 modprobe ircomm-tty irattach irda0 -s
Naturalmente, occorre usare il modulo adeguato al posto di smsc-ircc2.
Ora si dovrebbe vedere l'interfaccia irda0 tramite ifconfig, nonché vari device ircomm# in /dev.
irda0 Link encap:IrLAP HWaddr 30:3a:30:38
UP RUNNING NOARP MTU:2048 Metric:1
RX packets:0 errors:238 dropped:238 overruns:0 frame:0
TX packets:240 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:8
RX bytes:0 (0.0 b) TX bytes:7446 (7.2 KiB)
Interrupt:3 Base address:0x130
|
Si può verificare se IrDA funziona con irdadump, che intercetterà tutti i pacchetti sull'interfaccia. Si dovrebbero leggere alcune righe riguardo il proprio computer, che informa gli altri dispositivi della sua presenza.
01:21:33.405394 xid:cmd 2ce874b7 > ffffffff S=6 s=0 (14) 01:21:33.495375 xid:cmd 2ce874b7 > ffffffff S=6 s=1 (14) 01:21:33.585363 xid:cmd 2ce874b7 > ffffffff S=6 s=2 (14) 01:21:33.675348 xid:cmd 2ce874b7 > ffffffff S=6 s=3 (14) 01:21:33.765337 xid:cmd 2ce874b7 > ffffffff S=6 s=4 (14) 01:21:33.855319 xid:cmd 2ce874b7 > ffffffff S=6 s=5 (14) 01:21:33.945309 xid:cmd 2ce874b7 > ffffffff S=6 s=* flyback hint=0400 [ Computer ] (23) |
Quando poi verrà attivata la porta IrDA del telefonino si dovrebbero vedere anche i suoi pacchetti, del tipo:
06:41:42.185505 xid:rsp 62f9eab1 < 4b51d3a2 S=6 s=0 T630-T628 hint=9124 [ PnP Modem IrCOMM IrOBEX ] (26) |
Ora l'ultimo passaggio. A causa di un bug nel T630 (e nel T610) bisogna eseguire echo 1 > /proc/sys/net/irda/max_tx_window per ridurre la finestra di trasmissione. C'è chi suggerisce di modificare anche max_baud_rate a 115200 e max_tx_data_size a 2000, ma personalmente non sembra che mi servano.
Ora dovrebbe funzionare! Andando all'ultima sezione si possono provare alcuni programmi per controllare se tutto è a posto, per poi procedere agli ultimi passi della configurazione, ossia memorizzarla.
Ovviamente i passi finora esposti dovrebbero essere eseguiti ad ogni reboot, il che non è decisamente desiderabile. Per automatizzare la procedura su un sistema Debian è sufficiente fare come segue (su altre distribuzioni potrebbero esserci delle differenze).
Innanzitutto occorre configurare i moduli, aprendo /etc/modprobe.d/irda col proprio editor di testo preferito e aggiungendo le linee
alias irda0 smsc-ircc2 install smsc-ircc2 /sbin/modprobe --ignore-install smsc-ircc2; \ /sbin/modprobe ircomm-tty; echo 1 > /proc/sys/net/irda/max_tx_window
usando, come sempre, il proprio modulo al posto di smsc-ircc2.
install smsc-ircc2 /usr/local/sbin/smcinit; /sbin/modprobe --ignore-install smsc-ircc2;\ /sbin/modprobe ircomm-tty; echo 1 > /proc/sys/net/irda/max_tx_windowper caricare automaticamente il programma di attivazione del chip prima di inserire il modulo. Attenzione ad utilizzare il path corretto del programma!
Infine, si deve configurare irda-utils. In Debian si può fare con dpkg-reconfigure irda-utils, impostando solo irda0 come device seriale (non /dev/irda0), attivando il "discovery mode" e scegliendo se lanciare il tutto all'avvio del sistema. Personalmente preferisco evitare quest'ultima opzione in modo da risparmiare batteria, visto che tanto basta un irattach irda0 per caricare i moduli (grazie all'alias impostato), IrCOMM e il resto.
Con questi programmi è possibile:
AGGIORNAMENTO: Ho scoperto che si può navigare nel filesystem del telefonino, o almeno in alcune sue parti. I dettagli giusto qui sotto nella sezione su obexftp.
Ci sono molti programmi per telefonini che supportano i comandi AT e lo standard OBEX.
| OpenOBEX tools |
|---|
Il pacchetto Debian è openobex-apps.Vi si trovano:
AGGIORNAMENTO obexftp mi funziona! (in parte) Ecco i dettagli.
|
| GSMlib |
|---|
Il pacchetto Debian è gsm-utils.Ci sono alcuni tool per ottenere informazioni sul telefonino, gestire e mandare SMS, gestire la rubrica. L'ultimo punto non mi funziona molto bene, è lentissimo e impiega a occhio 6-7 minuti. Se ad altri il problema non si ponesse mi farebbe piacere saperlo. |
| MultiSync |
|---|
Il pacchetto Debian è multisync, vari plug-in sono disponibili come libmultisync-plugin-*.Un meraviglioso programma per sincronizzare dati. Si possono scegliere due plug-in, uno per ogni estremità edl collegamento. Suggerisco IrMc Mobile plugin che si connette al telefonino, e per la controparte o Ximian Evolution plugin o Backup plugin, che sincronizzano rubrica e agenda. |
| btcid |
|---|
|
Pacchetti Debian non ufficiali a http://0x63.nu/deb/ Questo programma mostra un OSD (on screen display) col numero e il nome del chiamante. Può anche lanciare un comando in occorrenza di chiamate in entrata o in uscita. |
Devo menzionare anche gnokii e gammu, con le rispettive interfacce grafiche xgnokii e wammu Sfortunatamente non mi funzionano molto bene (gammu non può fare praticamente nulla).
| leif |
|---|
|
I pacchetti Debian non ufficiali sono a http://debian.severin.olloz.net/. Con leif si possono controllare lo stato di carica e la qualità del segnale, gestire le rubriche della SIM e interna, fare telefonate, gestire e mandare SMS, inviare file, sincronizzare l'orologio del telefonino. |
| tsemgr |
|---|
|
Pacchetto Debian non disponibile Ha caratteristiche simili a leif, in aggiunta può rendere il telefonino un telecomando per alcuni programmi (xmms e altri). |
| Myericsson |
|---|
|
Pacchetto Debian non disponibile. Non l'ho ancora provato. È scritto per l'Ericsson T39, ma magari qualcosa è compatibile. |
| MyT68 |
|---|
|
Pacchetto Debian non disponibile. Uno strumento per creare temi per T68i. Non l'ho ancora provato ma forse li può fare anche compatibili con T630. |
| Remote control |
|---|
|
Pacchetto Debian non disponibile. Uno strumento per usare il telefonino come telecomando. Non l'ho mai provato e forse funziona solo via Bluetooth. |
| K68 |
|---|
|
Pacchetto Debian non disponibile. Un altro gestore per T68i, T610, T630. È alle prime fasi di sviluppo, quindi può solo mostrare informazioni sul telefonino e mandare file. |
Il telefonino si comporta esattamente come un normale modem, quindi si può utilizzare qualsiasi strumento di connessione (wvdial, pppconfig...). Ovviamente serve una SIM abilitata al GPRS ed alcuni parametri dall'operatore: l'APN (Access Point Name) o una stringa di inizializzazione che lo contenga, e se la rete li richiede anche username, password, IP e indirizzo DNS.
Una volta raccolti i dati bisogna impostare un account nel telefonino, nella sezione Connettività (si può trovare la procedura sul manuale, o farsi mandare un SMS autoconfigurante dal proprio gestore). È bene ricordare il CID (Connection ID) della connessione, visto che servirà nello script di chat. Si può ora configurare il dialer: l'esempio che propongo è basato su pppconfig e Wind.
| /etc/chatscripts/gprs |
|---|
# Stringhe di annullamento ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED # Inizializzazione modem '' ATZ # Selezione del contesto PDP (ossia qui si sceglie a quale connessione del # telefonino fare riferimento). I parametri sono CID, protocollo (IP o PPP), # APN. Se l'operatore ha fornito una stringa è meglio usare quella (ovviamente # col CID corretto). '' 'AT+CGDCONT=3,"IP","internet.wind",,0,0' # Requisiti QoS: richiesto e minimo accettabile '' 'AT+CGQREQ=1,0,0,0,0,0' '' 'AT+CGQMIN=1,0,0,0,0,0' # "Stringa di connessione". Il 3 è il CID. '' 'ATD*99***3#' CONNECT \d\c |
| /etc/ppp/peers/gprs |
|---|
# Praticamente autoesplicativo. I dettagli sono nella manpage di pppd. # Da notare che con Wind non mi occorrono username e password. hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/gprs" debug /dev/ircomm0 115200 defaultroute noipdefault remotename gprs ipparam gprs usepeerdns /dev/ircomm0 # Impediamo il controllo di linea tramite pacchetti lcp, non funziona # col T630 e fa disconnettere dopo poco lcp-echo-interval 0 lcp-echo-failure 0 |
pon gprs.
Ecco una lista dei file noti sul T630 (dalla documentazione di OBEXftp).
| Nome file | Contenuto | Metodi |
|---|---|---|
| telecom/devinfo.txt | Information hardware | GET |
| telecom/rtc.txt | The Real Time Clock | GET/PUT |
| telecom/pb.vcf | Level 2 access (Access | GET/PUT |
| telecom/pb/luid/.vcf | Add new entry | PUT |
| telecom/pb/0.vcf | Own business card | GET/PUT |
| telecom/pb/###.vcf | Level 3 static index access | GET/P UT |
| telecom/pb/luid/*.vcf | Level 4 unique index access | GE T/PUT |
| telecom/pb/info.log | Supported properties and memory info | GET |
| telecom/pb/luid/###.log | Change log | GET |
| telecom/pb/luid/cc.log | Change counter | GET |
| telecom/cal.vcs | Calendar Level 2 access | GET/PUT |
| telecom/cal/luid/.vcs | Add new entry | PUT |
| telecom/cal/###.vcs | Level 3 static index access | GET/ PUT |
| Telecom/cal/luid/*.vcs | Level 4 unique index access | G ET/PUT |
| Telecom/cal/info.log | Supported properties and memory info | GET |
| Telecom/cal/luid/###.log | Change log | GET |
| Telecom/cal/luid/cc.log | Change counter | GET |
E la lista dei dispositivi di memorizzazione disponibili per SMS e rubrica (dalla pagina di manuale di gsmpb e alcuni tentativi AT):
| Codice | Significato | Rubrica/SMS |
|---|---|---|
| ME | Memoria interna del telefono | Rubrica e SMS |
| SM | Memoria SIM | Rubrica e SMS |
| DC | Chiamate in uscita | Rubrica |
| MC | Chiamate perse | Rubrica |
| RC | Chiamate ricevute | Rubrica |
| LD | Ultime chiamate SIM | Rubrica |
| FD | Sconosciuto | ? |
| MV | Sconosciuto | ? |
| HP | Sconosciuto | ? |
| BC | Sconosciuto | ? |
Ecco alcuni link che mi sono serviti. Vorrei ringraziare in particolar modo Emanuele Aina, grazie alla sua pagina ho scoperto del bug IrDA ;)
Alessandro Dalvit, ultima modifica mer 2004/08/18