четверг, 27 ноября 2008 г.

ИК Arkmicro в Ubuntu 8.10

Приобрел USB ИК порт. Выглядит эта штука так:

Воткнул ее в USB, на что Ubuntu 8.10 никак не отреагировала, кроме того, что появилось новое устройство в USB.
lsusb сказал следующее:
18ec:3118

Более подробно это выглядело так:
iManufacturer 1 ARKMICRO
iProduct 3 USB TO IRDA


Погуглив по всем вышеперечисленным словам толком ни чего не было найдено, кроме того что arkmicro 3116 это конвертор COM2USB, и даже этот драйвер присутствует в системе. Загрузка модуля ark3116, не привела ни к каким результатам. Еще немного погуглив наткнулся на сообщение, что в этот драйвер можно добавить этот девайс. Попробовать собрать из исходников данный драйвер не получилось, зато получилось пересобрать тот что включен в ядро.

И так нам понадобится:
sudo apt-get install build-essential linux-source-2.6.27 linux-headers-2.6.27-7

Распакуем исходники ядра:
cd /usr/src/
sudo tar -xjf linux-source-2.6.27.tar.bz2


Лично я предпочитаю все собирать в ~/src
mkdir ~/src/myark
cd /usr/src/linux-source-2.6.27/drivers/usb/serial
cp ark3116.c ~/src/myark/

Добавим свое устройство в исходник:
cd ~/src/myark/
nano ark3116.c


Добавляем:
static struct usb_device_id id_table [] = {
{ USB_DEVICE(0x6547, 0x0232) },
{ USB_DEVICE(0x18ec, 0x3118) },
{ },
};

Сохраняем, выходим.

Что бы собрать модуль без ядра нам понадобится Makefile:
nano Makefile

Следующего содержания (перед «$(MAKE) -C $(» символ табуляции):

obj-m := ark3116.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

Сохраняем, выходим, собираем:
make

Скопируем новый модуль:
cp ark3116.ko /lib/modules/2.6.27-7-generic/kernel/drivers/usb/serial/

Попробуем загрузить новый модуль:
sudo modprobe ark3116

После чего подключаем наш девайс, должно появится устройство /dev/ttyUSB0 - это и будет наш ИК порт.

Собственно все усилия у меня были напрасны, тк устройство работает, но желаемого эффекта не предоставляет, собственно я хотел поднять на нем lirc, но при записи кодов пульта:
irrecord --driver=uirt2 --device=/dev/ttyUSB0 ~/lircd.conf
я всегда получал разные коды... возможно решение этой проблемы есть, но я его пока не нашел :(

3 комментария:

Анонимный комментирует...

Скажите, удалось ли вам разобраться почему на ir-порт приходят разные коды? Столкнулась с той же проблемой на убунту.

psyX комментирует...

просто этот ИК приемик не предназначен для этого :(

Chibiko комментирует...

На 12.04 c ядром 3.2 и телефоном Sony Ericsson W200i что-то не очень работает. У вас единственная более-менее нормальная инструкция во всём инете.. и не пашет О_о плак...