Подправил драйвер
http://sasamy.narod.ru/lirc_serial.c
Правил последнюю версию lirc-0.9.0, чтобы собрать нужно
1 Изменить номер GPIO под свои реалии, у меня использовался
static int signal_pin = 153; // AT91_PIN_PD25
2 заменить существующий драйвер в lirc-0.9.0/drivers/lirc_serial/lirc_serial.c
3 задать переменные окружения перед сборкой (для правильной сборки модулей ядра)
#export ARCH=arm
#export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
4 сконфигурировать, например для моего случая (префикс для целевой системы я оставил по умолчанию , чтобы потом было удобней удалять ;-) /usr/local)
./configure --build=i386-linux-gnu --target=arm-angstrom-linux-gnueabi --host=arm-angstrom-linux-gnueabi --with-driver=serial --with-kerneldir=/home/sasa/atmelnew/kernel-m10/linux-2.6.30-exp4sk_test_ramswap --without-x
5 собрать
#make
6 Установить, например
#make DESTDIR=/home/sasa/lirc install
при этом у меня почему-то версия ядра взялась с хостовой системы и модули оказались в
/home/sasa/lirc/lib/modules/2.6.32-32-generic/misc
7 Скоптровать бинарники в целевую корневую, модули я скопировал в домашнюю директорию /root
8 После запуска на целевой системе
#insmod /root/lirc_dev.ko
#insmod /root/lirc_serial.ko
Для теста использовал
#cat /dev/lirc0
ИК приемник мне выпаяли из какого-то телевизора - поэтому не знаю название :) самый распространенный tsop1738 должен работать но имейте ввиду - я все делал на at91sam9g45, у него порты 3,3 В и не толерантны к 5 В, я на линию данных последовательно ставил резистор 10 кОм.
Результат - что-то работает но у меня срабатывает если пульт ДУ приставить вплотную к ИК приемнику - с чем связано не знаю, либо частота модуляции пульта и приемника разные, либо неправильно что-то с согласованием уровней 5В->3,3В. Если найдете ИК приемник который работает на 3,3 В будет все намного проще.