Portál AbcLinuxu, 2. května 2025 05:43

IrDA port (USB dongles)

9.7.2007 19:33 | Přečteno: 7594× | Výběrový blog | poslední úprava: 17.7.2007 08:36

Motivací je umožnit přenos souborů mezi zařízením s IrDA (mobilním telefonem Sony Ericsson K300i) a počítačem s Ubuntu 7.04 GNU/Linux přes infračervený port. Počítačem je notebook HP Compaq nx6110, který není vybaven infračerveným portem. Problém je řešen pomocí USB-IrDA převodníku (tzv. dongle).

Soledo

Soledo, USB 2.0, USB A(M) interface, 1 m USB cable A(M)-A(F), mini CD, IrDA 1.3, SIR, MIR, FIR, 5 V dc, 440 mA, CE, FC, cena ~ 150 Kč.

Identifikace na počítači (zkrácené výpisy):

mermar@gati:~$ dmesg | tail -n 2
[  504.580000] usb 1-1: new low speed USB device using uhci_hcd and address 4
[  504.752000] usb 1-1: configuration #1 chosen from 1 choice

mermar@gati:~$ lsusb
Bus 001 Device 003: ID 0458:003a KYE Systems Corp. (Mouse Systems) 

mermar@gati:~$ cat /proc/bus/usb/devices
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=2102 ProdID=3046 Rev= 0.00
S:  Manufacturer=Usb DataMan   
S:  Product=Usb DataMan
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=55 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=1ms

Toto zařízení není funkční.

Equip

Equip, USB 2.0, USB A(M) interface, 1.2 m USB cable A(M)-A(F), mini CD, IrDA 1.4, SIR, MIR, FIR, "podpora" (mimo jiné) Linuxu, weight 0.008 kg, dimensions (adapter only): 50 x 20 x 10 mm, operating distance 1 m, integrated 5.0 V - 3.3 V and 3.3 V - 1.8 V linear voltage regulators provide power for typical configurations, supports communication of unframed raw data for remote control and proprietary applications, CE, FC, cena ~ 750 Kč.

Identifikace na počítači (zkrácené výpisy):

mermar@gati:~$ dmesg | tail -n 2
[  799.164000] usbcore: registered new interface driver irda-usb
[  799.164000] USB IrDA support registered

mermar@gati:~$ lsusb
Bus 005 Device 004: ID 066f:4210 SigmaTel, Inc. STIr4210 IrDA Bridge

mermar@gati:~$ cat /proc/bus/usb/devices
T:  Bus=05 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=066f ProdID=4210 Rev=10.02
S:  Manufacturer=SigmaTel, Inc.
S:  Product=STIr42xx      
S:  SerialNumber=0002F0F7260A9804
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=fe(app. ) Sub=02 Prot=00 Driver=ir-usb
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Výrobce sice inzeruje funkčnost pod Linuxem přímo v datasheetu, ale ve skutečnosti toto zařízení nefunguje. Přiložený driver je pro jádro Linuxu řady 2.4. Do zařízení je potřeba nahrát firmware, který není pod GPL, není distribuován se zařízením a je nutné jej stáhnout z internetu. Zařízení obsahuje čip SigmaTel STIR4220.

Delock

Delock, USB 1.1, USB A(M) interface, 1 m USB cable A(M)-A(F), mini CD, IrDA 1.3, SIR, MIR, FIR, RoHS compliant 2002/95/EC, SN:061000392, CE, FC, cena ~ 500 Kč.

Identifikace na počítači (zkrácené výpisy):

mermar@gati:~$ dmesg | tail -n 5
[ 2038.000000] usb 1-1: new full speed USB device using uhci_hcd and address 6
[ 2038.160000] usb 1-1: configuration #1 chosen from 1 choice
[ 2038.460000] SigmaTel STIr4200 IRDA/USB found at address 6, Vendor: 66f, Product: 4200
[ 2038.460000] drivers/net/irda/stir4200.c: IrDA: Registered SigmaTel device irda0
[ 2038.460000] usbcore: registered new interface driver stir4200

mermar@gati:~$ lsusb
Bus 001 Device 006: ID 066f:4200 SigmaTel, Inc. STIr4200 IrDA Bridge

mermar@gati:~$ cat /proc/bus/usb/devices
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=01 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=066f ProdID=4200 Rev= 0.08
S:  Manufacturer= Sigmatel Inc 
S:  Product= IrDA/USB Bridge
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=440mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=00(>ifc ) Sub=00 Prot=00 Driver=stir4200
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms

Tento převodník je plně funkční.

Postup zprovoznění

Na mobilním telefonu zapneme infračervený port. Zasuneme USB-IrDA převodník do USB. Obě zařízení umístíme IrDA konektory k sobě ve vzdálenosti asi 5 cm. Na počítač nainstalujeme obslužný software (potřebujeme irattach a irdadump, které jsou součástí balíku irda-utils a ircp, které je součástí balíku openobex-apps).

root@gati:~# apt-get install irda-utils openobex-apps

root@gati:~# irattach irda0 -s

root@gati:/home/mermar# irdadump
16:50:26.648546 xid:cmd 84c2c4fa > ffffffff S=6 s=0 (14) 
16:50:26.748505 xid:cmd 84c2c4fa > ffffffff S=6 s=1 (14) 
16:50:26.835053 xid:rsp 84c2c4fa < 00002e2e S=6 s=1 K300 series hint=9124 [ PnP Modem IrCOMM IrOBEX ] (28) 
16:50:26.848519 xid:cmd 84c2c4fa > ffffffff S=6 s=2 (14) 
16:50:26.948519 xid:cmd 84c2c4fa > ffffffff S=6 s=3 (14) 
16:50:27.048522 xid:cmd 84c2c4fa > ffffffff S=6 s=4 (14) 
16:50:27.148529 xid:cmd 84c2c4fa > ffffffff S=6 s=5 (14) 
16:50:27.248534 xid:cmd 84c2c4fa > ffffffff S=6 s=* gati hint=0400 [ Computer ] (20) 
## Výpis ukončíme stiskem ^c

root@gati:/home/mermar# cat /proc/net/irda/discovery
IrLMP: Discovery log:

nickname: K300 series, hint: 0x9124, saddr: 0x84c2c4fa, daddr: 0x00002e2e


root@gati:/home/mermar# irdaping 0x00002e2e
IrDA ping (0x00002e2e on irda0): 32 bytes
32 bytes from 0x00002e2e: irda_seq=0 time=108.01 ms.
32 bytes from 0x00002e2e: irda_seq=1 time=108.01 ms.
32 bytes from 0x00002e2e: irda_seq=2 time=108.98 ms.
32 bytes from 0x00002e2e: irda_seq=3 time=107.95 ms.

4 packets received by filter

root@gati:/home/mermar# ifconfig
irda0     Link encap:IrLAP  HWaddr b6:12:c5:ed  
          UP RUNNING NOARP  MTU:2048  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:116 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:8 
          RX bytes:616 (616.0 b)  TX bytes:1792 (1.7 KiB)

Ukázka přenosu souboru

root@gati:~# irattach irda0 -s

## Z PC do zařízení, které soubor nepřijme.
mermar@gati:~$ ircp file
Connecting...done
Sending file...failed
Disconnecting...done

## Z PC do zařízení.
mermar@gati:~$ ircp file
Connecting...done
Sending file...done
Disconnecting...done

## Z PC do zařízení, přenos dvou souborů. V zařízení se musí nahrání každého souboru potvrdit.
mermar@gati:~$ ircp file1 file2
Connecting...done
Sending file2...done
Sending file1...done
Disconnecting...done

## Ze zařízení do PC. Po spuštění ircp -r začneme ze zařízení kopírovat soubor.
mermar@gati:~$ ircp -r
Waiting for incoming connection
Incoming connection
Receiving file....done
Disconnecting

Práce v GUI

Abychom nemuseli vypisovat příkaz irattach přidáme na panel Custom Application Launcher a nastavíme jej podle čtvrtého obrázku. Po stisku tohoto launcheru se objeví konzole s výzvou k zadání hesla (pokud nevypršela přednastavená doba od minulého zadání hesla příkazem sudo). Po zadání hesla, je nahozen IrDA stack.

Pro stažení souboru přes irda přidáme na panel jiný Custom Application Launcher a nastavíme jej podle pátého obrázku. Po jeho stisku se objeví konzole a čeká se na příchozí soubor.

Pro snadné odeslání souboru(ů) přes irda nainstalujeme nautilus-actions a vytvoříme akci (podle šestého obrázku) pro odeslání přes IrDA. Výsledek je vidět na sedmém obrázku.

mermar@gati:~$ sudo apt-get install nautilus-actions

Na panel můžeme přidat i Network Monitor a spojení pojmenovat irda0. Při funkčním IrDA se pak bude zobrazovat stav tohoto připojení. Viz osmý obrázek.

Závěr

Bohužel neplatí, že většina levných USB-IrDA převodníků funguje pod Linuxem. Neplatí to ani pro převodníky, u kterých to výrobce uvádí. Při pojmu funguje si představuji, zapojit a přenášet data, rozhodně mi nepřijde normální shánět na internetu proprietární, binární firmware.

Vhodné by bylo, aby při stahování souboru nebylo nutné na straně PC nejprve zadávat příkaz ircp -r. Ale aby na uživatele v GUI vyskočilo okénko s žádostí o potvrzení stahování. Podobně je nesmyslné spouštět ručně příkaz irattach. Měl by se spustit automaticky při připojení IrDA dongle. Jak to zařídit? Při odpojení IrDA dongle se občas stane, že vytuhne celý počítač. Lze tomu nějak předejít?

Některé zkratky

IrDA = InfraRed Data Association
SIR = Standard IrDA (up to 115 kbps)
MIR = Medium Speed IrDA
FIR = Fast IrDA (4 Mbps)
VFIR = Very Fast IrDA (16 Mbps) (maybe future standard)
UFIR = Ultra Fast IrDA (up to 500 Mbps ?)

Obrázky

Obrázek 1 - USB-IrDA převodníky.
Obrázek 2 - Porovnání velikostí USB-IrDA převodníků a mince 1 €.
Obrázek 3 - Logo Infrared Data Association. Obrázek 4 - Nastavení Custom Application Launcher pro zprovoznění IrDA portu.
Obrázek 5 - Nastavení Custom Application Launcher pro stažení souboru přes IrDA.
Obrázek 6 - Nastavení akce Nautila pro odesílání souborů přes IrDA.
Obrázek 7 - Odeslání přes IrDA v kontextové nabídce.
Obrázek 8 - Nastavení Network Monitor pro IrDA.

Odkazy

Infrared Data Association

       

Hodnocení: 83 %

        špatnédobré        

Obrázky

IrDA port (USB dongles), obrázek 1 IrDA port (USB dongles), obrázek 2 IrDA port (USB dongles), obrázek 3 IrDA port (USB dongles), obrázek 4 IrDA port (USB dongles), obrázek 5 IrDA port (USB dongles), obrázek 6 IrDA port (USB dongles), obrázek 7 IrDA port (USB dongles), obrázek 8

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

9.7.2007 22:13 diverman | skóre: 32 | blog: život s tučňáčkem
Rozbalit Rozbalit vše Re: Infrared port (USB dongles)
Odpovědět | Sbalit | Link | Blokovat | Admin
Mame tu sekci "hardware"...
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
9.7.2007 22:45 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Infrared port (USB dongles)
Odpovědět | Sbalit | Link | Blokovat | Admin
Vypadá to dobře, nechtěl bys to vydat jako článek?
When your hammer is C++, everything begins to look like a thumb.
10.7.2007 03:30 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Infrared port (USB dongles)
Řekl bych, že jsou tu blogy, které by si uvěřejnění jako článek zasloužily víc, než tenhle. Tohle jsou akorát tři záznamy do sekce hardware a pár řádků doprovodného textu, které lze snadno vygooglit.
Quando omni flunkus moritati
21.12.2007 06:11 Gringo
Rozbalit Rozbalit vše Re: Infrared port (USB dongles)
Ja nevim jak ostatnim, ale me tenhle clanek pomohl vice, nez dvacitka jinych, vygooglenych..

Diky za nej!
GandY avatar 12.7.2007 10:07 GandY | skóre: 3 | blog: Zo života | Bratislava
Rozbalit Rozbalit vše Re: IrDA port (USB dongles)
Odpovědět | Sbalit | Link | Blokovat | Admin
Ja som na prenášanie súborov do môjho starého telefónu Sony Ericsson K310i cez infraport používal program obexftp.
môj fotoblog
2.1.2011 22:08 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: IrDA port (USB dongles)
Odpovědět | Sbalit | Link | Blokovat | Admin

Mám telefon SE K310i a z něho se mi podaří soubor poslat do PC, ale obráceně - na telefonu se neobjeví dotaz na potvrzení příjmu. Netušíte někdo proč?

U2-IRDA Infrared Adapter (Dazzle Kingsun SF-620 Infrared Adapter)

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.