Rendere Plug'n'Play gli adattatori USB-IrDA

Post imageL'attuale implementazione IrDA su Linux fa abbastanza pietà, forse perché è ormai una tecnologia in disuso e lo sprint che ha invece avuto il Bluetooth o i dispositivi mtp è mancato alle periferiche IrDA. Su Debian e Ubuntu, come nelle altre distribuzioni, il pacchetto che contiene tutto il necessario per far funzionare lo stack IrDA del kernel è irda-utils. In particolare il comando che ci interessa è irattach. Detto a grandi linee, con questo comando possiamo far comunicare la periferica con il kernel. Mentre questa azione avviene automaticamente all'avvio per le interfacce integrate alla scheda madre, con gli adattatori USB questo non avviene e bisogna dare il comando manualmente.

Per risolvere questo inconveniente occorre lanciare irattach con i giusti parametri ogni volta che si collega l'adattatore, mentre è necessario terminare irattach quando si scollega l'adattatore. Tutto questo è possibile farlo con udev.

Queste sono le regole per fare le azioni sopra descritte:

SUBSYSTEM=="net", SUBSYSTEMS=="usb", ACTION=="add", ATTR{type}=="783", RUN+="/sbin/start-stop-daemon --start --quiet --pidfile /var/run/irattach.pid --startas /usr/sbin/irattach -- $env{INTERFACE} -s"
SUBSYSTEM=="net", SUBSYSTEMS=="usb", ACTION=="remove", KERNEL=="irda*", RUN+="/sbin/start-stop-daemon --stop --quiet --oknodo --name irattach --pidfile /var/run/irattach.pid"


Queste regole andranno messe in un file chiamato 80-irda-usb.rules e salvato in /etc/udev/rules.d.

Possiamo farlo dal terminale o semplicemente premendo ALT+F2, basta digitare questo:

gksudo gedit /etc/udev/rules.d/80-irda-usb.rules

Quindi incollare le due regole scritte sopra e salvare.

Perché le modifiche abbiano effetto è necessario riavviare udev o riavviare il pc. Per quanto riguarda la prima scelta si fa così:

sudo /etc/init.d/udev restart

Per la seconda fate un po' voi!

Articoli correlati

Abbonati al feed RSS. Se non sai cos'è guarda qui.

Abbonati alla newsletter per ricevere via email ogni nuovo articolo pubblicato. L'indirizzo verrà gestito da FeedBurner.

Dai il tuo parere: Commenta questo articolo!
3 commenti su Rendere Plug'n'Play gli adattatori USB-IrDA
  1. Pasquale scrive —

    Ciao e complimenti per la chiarezza....sto per comprare un adattatore usb-irda per il mio telefonino che uso come modem ma non so di quale marca..... in pratica, a quanto mi pare di aver capito vanno tutti bene, posso comprare uno qualsiasi..poi basta seguire questi semplici procedure da te descritte e tutto va bene.....io ho ubuntu sul mio portatile.....
    .......posso comprare tranquillamente questo qui:

    http://cgi.ebay.it/Adaptateur-IrDA-Infra-Rouge-Port-USB-pour-mobile-gsm-pc_W0QQitemZ220423333697QQcmdZViewItemQQptZFR_JG_T%C3%A9l%C3%A9phonie_Accessoires_Mobiles?hash=item3352412741&_trksid=p3286.m63.l1177



    oppure no?

    Saluti!

  2. Pasquale scrive —

    E‘ passato qualche giorno dal precedente messaggio. Nel frattempo ho comperato l’adattatore USB-IRDA per il portatile che ho fatto funzionare con il mio telefonino Ericsson T39m come modem GPRS. Oltre a quello che indichi qui e‘ necessario caricari in memoria i moduli ircomm e ircomm_tty con il comando: "sudo modprobe ircomm" e "sudo modprobe ircomm_tty". Inoltre e‘ necessario conoscere il marca del chip dell’adattatore USB-IRDA (nel mio caso stir4200). Questo perche‘ alcuni chip sono supportati ad alta velocita‘ (FIR - 2/4 Mbs) altri a bassa velocita'(SIR - 57/115 Kbs). Nel mio caso c’e‘ il supporto a bassa velocita‘ (circa 115 Kbs) ma e‘ piu‘ che sufficiente per una connessione GPRS (che non supera i 70/80 Kbs). Una volta inserito l’adattatore usb nel computer il kernel dovrebbe caricare automaticamente il modulo appropriato, altrimenti bisogna ricompilarlo (se e‘ supportato, ovviamente ;-).....). Se c’e‘ supporto ad alta velocita‘ e‘ neccessario poter indicare nel file "/etc/modprobe.d/aliases" il driver da caricare, aggiungendo una riga del tipo: "alias irda0 nome-driver". Per poter vedere i chip che sono supportati bisogna leggere il manuale di irattach. In questo caso il device e‘ /dev/irda0 mentre per i SIR e‘ /dev/ircomm0. Arrivato a questo punto pero‘ ti chiedo: come mai una volta terminata la connessione e scollegato l’adattatore, "irattach" risulta ancora tra i processi attivi?
    Anche il modulo "stir4200" risulta ancora caricato in memoria anche se il device e‘ scollegato. Perche?


    Saluti!!

  3. DnaX scrive —

    Ciao, scusa se ti rispondo solo ora ma per via dell'università sto trascurando un po' il blog.

    Prima di passare alle domande vorrei precisare che la differenze tra irda0 e ircomm0 sta nel fatto che mentre irda0 è una periferica di rete e utilizzabile solo tramite irattach o altri programmi specifici, ircomm0 dà direttamente una porta seriale con cui comunicare con l'apparecchio IrDA che supporta il protocollo IrCOMM (praticamente tutti i cellulari).

    1) «come mai una volta terminata la connessione e scollegato l??adattatore, "irattach" risulta ancora tra i processi attivi?»

    Perché irattach serve solo per gestire il protocollo IrDA, con adattatore o meno. Infatti dovresti notare il modulo irda caricato e il fatto che finché non hai chiuso irattach (con un bel kill) non puoi disattivare il modulo irda.

    2) «Anche il modulo "stir4200" risulta ancora caricato in memoria anche se il device e?? scollegato. Perche?»

    Normale, i moduli non si disattivano automaticamente a meno che qualcuno non lo faccia per te (come udev).

Lascia un commento

CC BY-NC-SA 3.0 2004-2012 Daniele Napolitano — Per informazioni sulla licenza leggere le Note legali