joe1203 post at 2015-12-23 11:45:12

IR Receiver

I purchased one Orange PI PC.

Write Fedora 22 to SD card, boot up the machine, login via SSH
insmod sunxi_ir_rx,
installed LIRC and evtest.

I see /dev/input/event2 is sunxi_ir, but no /dev/lirc0

When playing with three different IR remote, evtest never gives any output.

Any clue?
Tried Ubuntu too.
Maybe the IR receiver only supported by Android/Orange OS (http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=541)?

joe1203 post at 2015-12-24 09:40:06

seems it works if using official Fedora distros

http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=80&extra=page%3D5

joe1203 post at 2016-1-3 22:13:13

Edited by joe1203 at 2016-1-3 22:16

After many sleepless night, it seems that the sunxi-ir-rx modules will NOT pass the raw IR signal if it cannot decode the signal.
https://github.com/matzrh/sunxi-lirc/wiki

According to this post, I can get the raw ir output. It proves that my board is working.
http://forum.banana-pi.org/t/how ... bpi-m3-linux-os/940

Maybe the easiest (but ugly) way is writing a script and keep polling and parsing the var/log/messages, or mod + recompile the sunxi-ir-rx module based on the output of my remote
https://github.com/allwinner-zh/linux-3.4-sunxi/blob/master/drivers/input/keyboard/

joe1203 post at 2016-1-20 15:31:54

Edited by joe1203 at 2016-1-20 15:35

Just install Ubuntu 12.04 in virtualbox, clone the source of linux-3.4-sunxi from github, exposed a few more paramteres and compile the modules. But when playing around on Fedora 22, I cannot load the modules and receive "Invalid module format". Here is the output of modinfo, file and readelf -h, any clues?

output of modinfo of bundled sunxi-ir-rx.ko
filename:       /lib/modules/3.4.39/kernel/drivers/input/keyboard/sunxi-ir-rx.ko
license:      GPL
author:         DanielWang
description:    Remote IR driver
depends:
intree:         Y
vermagic:       3.4.39 SMP preempt mod_unload modversions ARMv7 p2v8
parm:         debug_mask:int
output of modinfo of my built, named sunxi-ir-rx-hf.ko
filename:       /lib/modules/3.4.39/kernel/drivers/input/keyboard/sunxi-ir-rx-hf.ko
license:      GPL
author:         DanielWang
description:    Remote IR driver
srcversion:   2CEDB65025BE20B385A4605
depends:
vermagic:       3.4.39 SMP preempt mod_unload modversions ARMv7 p2v8
parm:         debug_mask:int
parm:         IR_RXFILT_VAL:int
parm:         IR_RXIDLE_VAL:int
parm:         IR_ACTIVE_T:int
parm:         IR_ACTIVE_T_C:int
parm:         IR_L1_MIN:int
parm:         IR_L0_MIN:int
parm:         IR_PMAX:int
parm:         IR_DMID:int
parm:         IR_DMAX:int
output of file of bundled sunxi-ir-rx.ko
sunxi-ir-rx.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID=32e092d5e778c85bdc07d5e8e54038d53f574f0a, not stripped
output of file of my built, named sunxi-ir-rx-hf.ko
sunxi-ir-rx-hf.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID=40b3f4abf5c4d2f38aa599a52c126adaee6ed1ee, not stripped
output of readelf -h of bundled sunxi-ir-rx.ko
ELF Header:
Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class:                           ELF32
Data:                              2's complement, little endian
Version:                           1 (current)
OS/ABI:                            UNIX - System V
ABI Version:                     0
Type:                              REL (Relocatable file)
Machine:                           ARM
Version:                           0x1
Entry point address:               0x0
Start of program headers:          0 (bytes into file)
Start of section headers:          80916 (bytes into file)
Flags:                           0x5000000, Version5 EABI
Size of this header:               52 (bytes)
Size of program headers:         0 (bytes)
Number of program headers:         0
Size of section headers:         40 (bytes)
Number of section headers:         54
Section header string table index: 51

output of readelf -h of my built, named sunxi-ir-rx-hf.ko

ELF Header:
Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class:                           ELF32
Data:                              2's complement, little endian
Version:                           1 (current)
OS/ABI:                            UNIX - System V
ABI Version:                     0
Type:                              REL (Relocatable file)
Machine:                           ARM
Version:                           0x1
Entry point address:               0x0
Start of program headers:          0 (bytes into file)
Start of section headers:          80860 (bytes into file)
Flags:                           0x5000000, Version5 EABI
Size of this header:               52 (bytes)
Size of program headers:         0 (bytes)
Number of program headers:         0
Size of section headers:         40 (bytes)
Number of section headers:         54
Section header string table index: 51

output of insmod of my built
insmod: ERROR: could not insert module sunxi-ir-rx-hf.ko: Invalid module format
*No output for bundled sunxi-ir-rx.ko, since it is loaded successfully

jernej post at 2016-2-9 02:10:02

Not sure about your issue, but I backported sunxi IR LIRC driver from mainline kernel:

https://github.com/jernejsk/OpenELEC-OPi2/blob/master/projects/H3/patches/linux/linux-07-backport-lirc-sunxi-driver.patch

That way you can use whatever protocol you want.
page: [1]
View full version: IR Receiver