Необходимо:
Включаем устройство IrDA (в моем случае это MosChip USB IrDA Adapter 7780)
modprobe mcs7780
Включаем поиск ИК-устройств
irattach irda0 -s
Наблюдаем за тем, как устройства обнаруживаются
watch cat /proc/net/irda/discovery
Подносим телефон на расстоянии 20-30 сантиметров (оптимальное растояние для ИК связи)
Every 2,0s: cat /proc/net/irda/discovery Mon Nov 20 01:58:24 2006 IrLMP: Discovery log: nickname: SIEMENS CX65, hint: 0xb124, saddr: 0xd56f424a, daddr: 0x00616000
Вот и мобильный телефон обнаружился.
Следите за тем, чтобы сам телефон не отключал в течении некого времени (обычно одна минута) ИК порт для экономии батареи.
Можем поиграть с ним в пинг/понг (попинговать)
irdaping -i irda0
Надоело, нажимаем Ctrl+C и читаем, сколько пакетов ответа получили от устройства.
IrDA ping (0x00000000 on irda0): 32 bytes
5 packets received by filter
Если хочется более глубже копнуть, можно использовать irdadump
irdadump -i irda0
Жмем Ctrl+C, и видим
Using interface: irda0 23:36:43.779656 xid:cmd d56f424a > ffffffff S=6 s=0 (14) 23:36:43.879613 xid:cmd d56f424a > ffffffff S=6 s=1 (14) 23:36:43.979617 xid:cmd d56f424a > ffffffff S=6 s=2 (14) 23:36:44.061115 xid:rsp d56f424a < 00616000 S=6 s=2 SIEMENS CX65 hint=b124 [ PnP Modem Fax IrCOMM IrOBEX ] (29) 23:36:44.079625 xid:cmd d56f424a > ffffffff S=6 s=3 (14) 23:36:44.179630 xid:cmd d56f424a > ffffffff S=6 s=4 (14) 23:36:44.279639 xid:cmd d56f424a < ffffffff S=6 s=5 (14) 23:36:44.379643 xid:cmd d56f424a > ffffffff S=6 s=* Arnie hint=0400 [ Computer ] (21) 8 packets received by filter
Для тех, кто не гуру
ау, есть кто живой, спрашиваю раз?
ау, есть кто живой, спрашиваю два?
ау, есть кто живой, спрашиваю три?
на третий отвечаю - Я тут, Siemens CX65
ау, есть кто живой, спрашиваю четыре?
ау, есть кто живой, спрашиваю пять?
ау, есть кто живой, спрашиваю шесть?
ау, есть кто живой, опрос окончен, все вопросы к компьютеру
Готовим файл устройства ИК связи, если не существует
mknod /dev/ircomm0 c 161 0
Разрешаем работу с ним
chmod 755 /dev/ircomm0
Готовим точку монтирования, если не существует
mkdir /mnt/mobile
mkdir /mnt/mobile/Siemens
Монтируем файловую систему
mount -t siefs -o ro,umask=000 /dev/ircomm0 /mnt/mobile/Siemens/
параметр ro - только для чтения (во избежание повреждений файловой системы,
пока будем ее изучать, если Вы готовы к ее редактированию ее содержимого - включайте опцию rw).
параметр umask накладывает маску прав доступа в восьмеричном формате.
Ее вычитают из 777 (7 = 4[Read] + 2[Write] + 1[eXecute])
Так что, если наложить маску 022, то пользователь root сможет выполнять все операции с файлом,
в то время, как пользователи только читать и выполнять (777 - 022 = 755 / 5 = 4[Read] + 1[eXecute]).
Если наложить маску 133, то все пользователи, в том числе и root, потеряют право на выполнение файла,
777 - 133 = 644 / root(6 = 4[Read] + 2[Write]) / пользователи(4 = 4[Read] + 0[Only])
В данном случае, пользователю будет разрешено даже записывать, но надо помнить,
что опция ro запрещает ВСЕМ, в том числе и системе запись на монтируемое устройство.
Это для удобства, когда опция ro будет заменена на rw.
Перемещаемся в каталог файловой системы мобильного телефона и читаем его
cd /mnt/mobile/Siemens
ls -1a
Получаем
Data
Еще
cd Data/
ls -1a
Получаем
Animations Config Java Misc Pictures Skins Sms archive Sounds System Text module Themes Videos Voice memo
На самом деле, у кого как, это лишь показательный пример.
Заметим, что после такого монтирования, сессия будет постоянно занимать устройство "чтением".
Завершаем пример, не будем забивать канал ИК
cd /mnt umount -f /mnt/mobile/Siemens/
Теперь поиграем с ftp, о котором нам так ясно сказал телефон
obexftp -i -H -l /Data/
получаем
Connecting...done Receiving "/Data/"... Sending ""... Sending "Data"... done |<?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="Java" modified="20040101T030000" user-perm="RWD" group-perm="W" /> <folder name="Videos" modified="20040401T040000" user-perm="RWD" group-perm="W" /> <folder name="Skins" modified="20050315T025322" user-perm="RWD" group-perm="W" /> <folder name="Sms archive" modified="20050315T111112" user-perm="RWD" group-perm="W" /> <folder name="Text module" modified="20050315T112004" user-perm="RWD" group-perm="W" /> <folder name="Voice memo" modified="20050703T170708" user-perm="RWD" group-perm="W" /> <folder name="Config" modified="20051231T160300" user-perm="RWD" group-perm="W" /> </folder-listing> done Disconnecting...done
Это обычный XML, кто знает, может еще и скрипт распарсинга написать.