|
|||||||
Подключение по USB-инфракрасному порту (IrDa) мобильного телефона
Время создания: 02.06.2010 15:29
Автор: Xintrea
Текстовые метки: irda, usb, debian
Раздел: Компьютер - Linux - IrDa (Инфракрасный порт)
Запись: xintrea/mytetra_syncro/master/base/0000001507/text.html на raw.github.com
|
|||||||
|
|||||||
Речь пойдет о инфракрасном приемо-передатчике SigmaTel STIr4200 и телефоне Siemens CX-65. Скажу сразу - заставить работать мобильник как AT модем через USB-шный инфракрасник мне не удалось. А вот как скачивать и закачивать файлы - разобрался. Вначале надо воткнуть USB-инфракрасник в USB-порт, и посмотреть, что появилось в выводе dmesg. Должно быть примерно следующее: [26607.434118] usb 7-1: new full speed USB device using uhci_hcd and address 3 [26607.602267] usb 7-1: configuration #1 chosen from 1 choice [26607.618267] usb 7-1: New USB device found, idVendor=066f, idProduct=4200 [26607.618267] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [26607.618267] usb 7-1: Product: IrDA/USB Bridge [26607.618267] usb 7-1: Manufacturer: Sigmatel Inc [26607.698137] NET: Registered protocol family 23 [26607.758636] SigmaTel STIr4200 IRDA/USB found at address 3, Vendor: 66f, Product: 4200 [26607.758636] stir4200: IrDA: Registered SigmaTel device irda0 [26607.758636] usbcore: registered new interface driver stir4200 Если инфракрасник был вставлен до загрузки компьютера, то понять, определило ли ядро это устройство можно командой: # dmesg | grep -i irda [ 4.211986] usb 6-1: Product: IrDA/USB Bridge [ 9.978524] SigmaTel STIr4200 IRDA/USB found at address 2, Vendor: 66f, Product: 4200 [ 9.978524] stir4200: IrDA: Registered SigmaTel device irda0 Эти строки означают, что ядро увидело инфракрасный порт как USB-устройство. Далее надо дать команду : # irattach irda0 -s которая создаст сетевое устройство irda0. В этот момент инфракрасник должен начать мигать светодиодом, если такой есть. В том, что в системе появилось сетевое устройство, можно убедиться через команду ifconfig: # ifconfig ... irda0 Link encap:IrLAP HWaddr 3a:08:38:0c UP RUNNING NOARP MTU:2048 Metric:1 RX packets:113 errors:0 dropped:0 overruns:0 frame:0 TX packets:798 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:8 RX bytes:3503 (3.4 KiB) TX bytes:12540 (12.2 KiB) ... Затем надо убедиться, что инфракрасник видится системой. Надо дать команду: # cat /proc/net/irda/irlap irlap0 state: LAP_NDM device name: irda0, hardware name: usb#3 caddr: 0x9e, saddr: 0x3a08380c, daddr: 0x000000 win size: 0, win: 0, line capacity: 0, bytes left: 0 tx queue len: 0 win queue len: 0 rbusy: FALSE mbusy: FALSE retrans: 0 vs: 0 vr: 0 va: 0 qos bps maxtt dsize winsize addbofs mintt ldisc comp tx 9600 0 64 1 12 0 0 rx 9600 0 64 1 12 0 0 После чего можно положить рядом с инфракрасником мобильник, на котором включен ИК-порт. Сначала надо проверить, увиделся ли мобильник:
# cat /proc/net/irda/discovery
IrLMP: Discovery log:
nickname: SIEMENS CX70, hint: 0xb124, saddr: 0xcc2a8d47, daddr: 0x03336090 Видим, что SIEMENS CX65 на самом деле говорит о себе, что он как CX70. Затем надо посмотреть, есть ли хоть какой-то обмен между мобльником и USB-инфракрасником. Для этого надо дать команду: # irdadump 11:27:18.805049 xid:cmd 3a08380c > ffffffff S=6 s=0 (14) 11:27:18.905026 xid:cmd 3a08380c > ffffffff S=6 s=1 (14) 11:27:19.005026 xid:cmd 3a08380c > ffffffff S=6 s=2 (14) 11:27:19.088326 xid:rsp 3a08380c < 03336090 S=6 s=2 SIEMENS CX70 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29) 11:27:19.105525 xid:cmd 3a08380c > ffffffff S=6 s=3 (14) 11:27:19.205026 xid:cmd 3a08380c > ffffffff S=6 s=4 (14) 11:27:19.305026 xid:cmd 3a08380c > ffffffff S=6 s=5 (14) 11:27:19.405026 xid:cmd 3a08380c > ffffffff S=6 s=* pangolinux hint=0400 [ Computer ] (26) 11:27:21.805303 xid:cmd 3a08380c > ffffffff S=6 s=0 (14) 11:27:21.889291 xid:rsp 3a08380c < 03336090 S=6 s=0 SIEMENS CX70 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29) Эта команда в реальном времени покажет, какие данные передаются по инфракрасному порту. Порт в режиме простоя постоянно опрашивает мобильник, и если мобильник отвечает, это видно в данном логе. Строки со скобкой ">" показывают что передает компьютер мобильнику, а со скобкой "<" показывается ответ мобильника. В информации, которую о себе говорит мобильник мы видим строку IrOBEX. Это значит, что можно обмениваться файлами через OBEX-протокол. Работать с ним можно с помощью утилиты obexftp. Основная идея в obexftp заключается в том, что надо задавать цепочку действий, которую нужно выполнить. Например, чтобы посмотреть содержимое каталога, надо в команде вначале прописать действие смены каталога (-c), а потом действие просмотра списка файлов (-l). Начнем по-порядку. Дадим простую команду: # obexftp -i -l Connecting...done Receiving "(null)"... <?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"> <folder-listing version="1.0"> <folder name="Data" modified="20040101T000000" user-perm="RWD" group-perm="W" /> </folder-listing> done Disconnecting...done Здесь не в самом удобном формате, но видно, что в корне есть каталог Data. Можно посмотреть, что находится внутри этого каталога: # obexftp -i -c /Data -l Connecting...done Sending ""... Sending "Data"... done Receiving "(null)"...|<?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"> <folder-listing version="1.0"> <folder name="Misc" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="Animations" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="Pictures" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="Sounds" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="Themes" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="System" modified="20040101T030000" user-perm="WD" group-perm="W" /> <folder name="PhonePilots" modified="20040101T030000" user-perm="WD" group-perm="W" /> <folder name="Java" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="Videos" modified="20050201T030000" user-perm="RWD" group-perm="W" /> <folder name="Skins" modified="20050201T030020" user-perm="RWD" group-perm="W" /> <folder name="Text module" modified="20051217T220920" user-perm="RWD" group-perm="W" /> <folder name="Voice memo" modified="20051217T221022" user-perm="RWD" group-perm="W" /> <folder name="Sms archive" modified="20051218T103724" user-perm="RWD" group-perm="W" /> </folder-listing> done Disconnecting...done Чтобы скачать файл, нужно использовать опцию -g. К примеру, чтобы взять фотографию лежащую в Pictures надо выполнить команду: # obexftp -i -g /Data/Pictures/041011_180642.jpg Для того, чтобы создать каталог, надо выполнить команду вида: # obexftp -i -C /Data/Java/jam/Games/Tux Для того чтобы передать на телефон какой-нибудь файл, надо выполнить такую команду: # obexftp -i -c /Data/Java/jam/Games/Tux -p tux.jar Всех этих сведений достаточно, чтобы выполнять любые файловые операции на телефоне.
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|