Использование lirc для коры руки A8 - PullRequest
2 голосов
/ 06 февраля 2012

Нуждалась в вашей помощи по lirc. Я хочу использовать lirc для декодирования ИК-сигналов. Я использую пользовательскую плату на базе Cortex A8 с ядром 2.6.37, и через последовательный порт принимается IR. Я вижу, что прерывания UART поступают правильно, когда я нажимаю кнопку на пульте дистанционного управления.

Но когда я пытаюсь запустить скрипт конфигурации с device = all или device = serial и запустить make и make install, как указано на странице установки на lirc.org, он выдает мне сообщение об ошибке, что конфигурация ядра недопустима.

Но все же я могу сгенерировать файлы .ko (lirc_dev и lirc_serial), необходимые для загрузки модулей ядра, но не могу вставить модуль lirc_serial, поскольку я использую порт, имеющий mmio, и порт, используемый lirc, сопоставлен с io. Мой виртуальный адрес - 0xfa022000, а физический адрес - 0x48022000 (используется ttyO1). Могу ли я использовать lirc для этого адреса. Нужно ли вносить какие-либо изменения в код? Также я не могу установить непосредственно на плату, которую я использую, так как я не смог собрать исходный код ядра на плате из-за минимального количества вещей, присутствующих на плате. Так что я запускаю установку на другой машине и кросс-компилирую для arm. Таким образом, я не мог разместить конфигурационные файлы в нужных местах, и узел (/ dev / lirc0) не был создан. Должен ли я сделать узел вручную или будет работать вставка модулей? Также мне нужно иметь конфигурационные файлы в правильном месте перед вставкой модулей? Также есть ли какая-либо зависимость от версии ядра? Пожалуйста, предложите мне шаги для кросс-компиляции и загрузки модулей ядра самостоятельно, а также дайте мне знать, какие все файлы conf или другие файлы должны присутствовать для того, чтобы все работало. Я был бы очень благодарен вам за помощь. Я пробовал это в течение прошлых 2 недель. С уважением Harman.

1 Ответ

0 голосов
/ 26 декабря 2013

/ dev / lirc0 должен создаваться автоматически, если lirc_serial загружен успешно.Если он не создан, модуль был загружен неправильно.

lirc_serial работает с mmio - см. Параметр модуля iommap.Для работы mmio вам нужно будет установить его на 1.

Вам также понадобится использовать параметры 'io' и 'irq' для установки вашего адреса и irq.

I 'Я использую плату UDOO с процессором Cortex A9 и могу получить информацию о mmio и irq из /proc/tty/driver/IMX-uart.

Мое ядро ​​новее - оно 3.0.35, и я не уверенесли все это будет работать в вашем случае.

В конце концов мне удалось загрузить lirc_serial, но он все равно не работал, поэтому мне пришлось подключить свой ИК-приемник напрямую к GPIO и написать свой собственный драйвер ядра на основе lirc_rpi, чтобы он работал: http://funny -embeddings.blogspot.com / 2013/12 / udoo-добавление-ir-and-building-lirc-kernel.html

...