Portál AbcLinuxu, 2. května 2025 05:43
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, 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, 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, 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í.
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)
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
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.
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?
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á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.
Tiskni
Sdílej:
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)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.