![]() |
| ||||||||||||||||||
Настройка интерфейса IrDA в ASPLinux 9Автор: Леонид Кантер Содержание
1 ВведениеСемейство протоколов IrDA поддерживается некоммерческой организацией “The INFRARED DATA ASSOCIATION”. Эти протоколы предназначены для высокоскоростной передачи данных между устройствами, расположенными в прямой видимости на небольшом расстоянии друг от друга. Основным преимуществом инфракрасного протокола передачи данных является то, что это беспроводный протокол, то есть для установки связи между двумя устройствами, поддерживающими IrDA, достаточно расположить их в пределах видимости и направить окна приемопередатчиков друг на друга. Поэтому инфракрасными портами оборудуются подавляющее большинство портативных и карманных компьютеров, а так же такие устройства, как цифровые фотокамеры, сотовые телефоны, принтеры и другие. В настольный компьютер также может быть установлен инфракрасный порт, как расширение одного из COM-портов или как отдельное устройство USB. Протоколы IrDA являются открытыми протоколами (то есть их техническое описание опубликовано в открытых источниках), и это дало возможность реализовать поддержку IrDA в ядре и приложениях ОС Linux. Ниже мы рассмотрим настройку протокола IrDA в ОС Linux на примере ASPLinux 9. 2 SIR или FIRПриемопередатчики IrDA разделяются на два вида — SIR и FIR:
3 Настройка порта SIRНастройка адаптера IrDA в режиме SIR является наиболее простой процедурой, поскольку не требует загрузки дополнительных модулей. Достаточно только выяснить, какой из COM-портов использует адаптер, и указать правильное устройство в файле /etc/sysconfig/irda (этот файл входит в пакет irdautils, который для работы с портом IrDA должен быть обязательно установлен). Имя порта должно быть указано с учетом соответствия имен устройств в DOS/Windows и Linux:
То есть, если адаптер подключен к порту COM2, файл /etc/sysconfig/irda должен выглядеть так: IRDA=yes
DEVICE=/dev/ttyS1
#DONGLE=actisys+
DISCOVERY=yesПримечание
После изменения файлов конфигурации необходимо запустить службу irda. Для этого нужно в консоли набрать команду service irda start (от имени пользователя root) либо активировать службу при помощи графической утилиты управления службами serviceconf, которая находится в папке “Начать здесь” -> “Системные параметры” -> “Настройка сервера”. При помощи этой же утилиты можно настроить автоматический запуск службы irda при перезагрузке компьютера, который по умолчанию отключен. 3.1 ДиагностикаПосле запуска службы irda в системе должен появиться интерфейс irda0. Убедиться в его наличии можно следующей командой: $ /sbin/ip ad sh irda0
3: irda0: <NOARP,UP> mtu 2048 qdisc pfifo_fast qlen 8
link/irdaТеперь можно убедиться, что инфракрасная связь действительно работает. Для этого нужно расположить в зоне действия порта любое устройство, поддерживающее IrDA, и запустить команду irdadump. Если связь работает, вывод команды должен быть примерно таким: [root@omnibook root]# irdadump 09:27:50.616311 xid:rsp e4cc8809 < 52710000 S=6 s=1 Nokia 6210 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27) 09:27:50.624805 xid:cmd e4cc8809 > ffffffff S=6 s=2 (14) 09:27:50.714794 xid:cmd e4cc8809 > ffffffff S=6 s=3 (14) 09:27:50.804793 xid:cmd e4cc8809 > ffffffff S=6 s=4 (14) 09:27:50.894790 xid:cmd e4cc8809 > ffffffff S=6 s=5 (14) 09:27:50.984791 xid:cmd e4cc8809 > ffffffff S=6 s=* omnibook hint=0400 [ Computer ] (24) Как видно, в радиусе действия порта был успешно обнаружен телефон Nokia 6210. Настройка специализированной программы для работы с телефонами Nokia — gnokii — будет описана в отдельной статье. 4 Настройка порта FIR4.1 Подбор драйвера адаптера FIRНастроить IrDA-адаптер в режиме FIR возможно только в том случае, если в ядре Linux имеется драйвер этого контроллера. В таблице ниже приведен список поддерживаемых контроллеров FIR и соответствующих модулей ядра.
Определить, какой именно контроллер установлен, можно по документации компьютера либо при помощи утилиты findchip, которая входит в пакет irdautils. Ниже приведен расширенный вывод утилиты findchip на двух различных компьютерах. HP Omnibook 500: [root@omnibook irda]# findchip -v Found NSC PC87338 Controller at 0x398, DevID=0x0b, Rev. 2 SIR Base 0x2f8, FIR Base 0x2f8 IRQ = 3, DMA = 1 Enabled: yes, Suspended: no UART compatible: yes Half duplex delay = 0 us RoverBook Discovery KT6: [root@rover root]# findchip -v Found SMC FDC37N869 Controller at 0x3f0, DevID=0x02, Rev. 0 SIR Base 0x2f8, FIR Base 0x110 IRQ = 3, DMA = 3 Enabled: yes, Suspended: no UART compatible: yes Half duplex delay = 3 us Как видно из вывода findchip, на HP Omnibook 500 необходимо использовать драйвер nsc-ircc, а на RoverBook — smc-ircc, причем оба эти чипа поддерживают эмуляцию UART и могут также быть настроены в режиме SIR как /dev/ttyS1. 4.2 Изменение файла настройки модулей /etc/modules.confПоскольку ядро Linux при загрузке распознает контроллер FIR как обычный последовательный порт, необходимые ресурсы (порт и прерывание) оказываются занятыми драйвером последовательного порта. Поэтому в /etc/modules.conf необходимо включить команду, которая будет освобождать ресурсы последовательного порта перед загрузкой драйвера FIR. Ниже приведен фрагмент файла /etc/modules.conf, который привязывает к устройству irda0 драйвер nsc-ircc и перед загрузкой этого драйвера освобождает ресурсы порта /dev/ttyS1. alias irda0 nsc-ircc pre-install irda0 /bin/setserial /dev/ttyS1 uart none Файл /etc/sysconfig/irda при этом должен выглядеть следующим образом: IRDA=yes DEVICE=irda0 DISCOVERY=yes Обратите внимание, что устройство irda0 здесь указывается без /dev/. Дальнейшие действия по настройке порта такие же, как и при настройке SIR — достаточно запустить службу irda и убедиться в наличии связи с устройством. 5 Настройка USB IrDAВ настоящее время все большое распространение получили IrDA-адаптеры, подключаемые к шине USB. Среди моделей, работоспособность которых под Linux подтверждена, можно перечислить ACTiSYS ACT-IR2000U FIR-USB адаптер, Tekram 410U и некоторые NoName адаптеры, использующие ту же элементную базу. Поскольку эти устройства являются устройствами FIR, их настройка во многом аналогична настройке встроенных устройств FIR. Так, формат файла /etc/sysconfig/irda для FIR-USB адаптеров полностью аналогичен описанному выше для встроенных устройств FIR: IRDA=yes DEVICE=irda0 DISCOVERY=yes Инициализация необходимого модуля irda-usb происходит автоматически, но в стандартной конфигурации одновременно с драйвером irda-usb грузится драйвер эмуляции последовательного порта ir-usb, который препятствует работе irda-usb. Поэтому перед подключением устройства в файл /etc/modules.conf необходимо добавить следующую строку: alias ir-usb off Если после этого подключить FIR-USB адаптер, команда /sbin/ip ad sh должна показать наличие устройства irda0. После чего можно запустить службу irda (команда service irda start) и убедиться в наличии связи с IrDA-устройством, находящимся в пределах видимости (команда irdadump). 6 Устранение возможных проблем6.1 Проблемы при настройке FIRЕсли при попытке загрузить модуль FIR (smc-ircc, nmc-ircc, toshoboe) выдается сообщение об ошибке (нет такого устройства), возможно устройство использует нестандартные ресурсы. В этом случае можно уточнить ресурсы устройства в документации компьютера, настройках BIOS или в обзоре оборудования системы Windows, если она уже установлена на компьютере, и указать их как аргумент модуля FIR. Например, для модуля nsc-ircc могут быть указаны следующие аргументы:
Параметры должны быть указаны в файле /etc/modules.conf следующим образом: options nsc-ircc io=0x2f8 irq=3 dma=1 7 Ссылки по теме
| |||||||||||||||||||