[Solved] VIM3L problem with ir remote on CoreELEC 9.2.2

Is it possible to use an ir remote with the VIM3L other than the khadas remote?
I have tested with 9.2.2 stable release and current nightly. There is no meson-ir driver loaded (only meson-remote) and the command ir-keytable is not working.

Output of ir-keytable (like described in How to configure IR remote control)

CoreELEC:~ # ir-keytable -p NEC,RC-5,RC-6,JVC,SONY -t
/sys/class/rc/: No such file or directory
No devices found

Here is the output of remoteinfo:

CoreELEC Remote Control Information...

------------ /etc/os-release ------------
NAME="CoreELEC"
VERSION="9.2.2"
ID="coreelec"
VERSION_ID="9.2"
PRETTY_NAME="CoreELEC (official): 9.2.2"
HOME_URL="https://coreelec.org"
BUG_REPORT_URL="https://github.com/CoreELEC/CoreELEC"
BUILD_ID="a5d501b8a6e88214260826fdf08ea8b174412ab4"
OPENELEC_ARCH="Amlogic-ng.arm"
LIBREELEC_ARCH="Amlogic-ng.arm"
COREELEC_ARCH="Amlogic-ng.arm"
COREELEC_BUILD="official"
COREELEC_PROJECT="Amlogic-ng"
------------ /proc/device-tree/coreelec-dt-id ------------
sm1_s905d3_khadas_vim3l
------------ /proc/device-tree/le-dt-id ------------ Not Found!
------------ /proc/cmdline ------------
root=LABEL=ROOTFS rootflags=data=writeback rw rootfstype=ext4 console=tty0 console=ttyS0,115200n8 no_console_suspend consoleblank=0 fsck.repair=yes net.ifnames=0 logo=osd0,loaded,0x3d800000 vout=panel,enable hdmitx=,444,8bit hdmimode=1080p60hz cvbsmode=576cvbs osd_reverse=0 video_reverse=0 jtag=disable androidboot.hardware=amlogic reboot_mode=shutdown_reboot ddr_size= androidboot.serialno=1234567890 mac=c8:63:14:70:4d:91 androidboot.mac=c8:63:14:70:4d:91 hwver=VIM3.V12 androidboot.rpmb_state=0 wol_enable=0 BOOT_IMAGE=kernel.img boot=LABEL=COREELEC disk=LABEL=STORAGE console=ttyS0,115200 console=tty0 no_console_suspend        hdmimode=1080p60hz logo=osd0,loaded,0x3d800000 quiet console=tty0 systemd.show_status=auto
------------ /proc/device-tree/meson-ir/status ------------
disabled
------------ /proc/device-tree/meson-remote/status ------------
okay
------------ /storage/.config/remote.disable ------------ Unset by user!
------------ /flash/remote.disable ------------ Unset by user!
------------ /storage/.config/remote*.conf ------------ Unset by user!
------------ /flash/remote*.conf ------------ Unset by user!
------------ /storage/.config/lircd.conf ------------ Unset by user!
------------ /storage/.config/lirc_options.conf ------------ Unset by user!
------------ /storage/.config/rc_maps.cfg ------------ Unset by user!
------------ /storage/.config/rc_keymaps ------------
------------ /storage/.config/rc_keymaps/README ------------
RC keymaps user config dir

put your own keymaps for ir-keytable in this directory
------------ /storage/.kodi/userdata/Lircmap.xml ------------ Unset by user!
------------ /storage/.kodi/userdata/keyboard.xml ------------ Unset by user!
------------ /storage/.kodi/userdata/keymaps ------------
------------ BL301 ------------
------------ /flash/boot.ini ------------ Not Found!
------------ /flash/config.ini ------------
#------------------------------------------------------------------------------------------------------
#
# config.ini
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# Console Setup
#
# consoleopt='console=ttyS0,115200 console=tty0 no_console_suspend'
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# CPU Frequency Control
#
# WARNING!!! WARNING!!! WARNING!!!
#   Before changing anything here please read the wiki entry at:
#   https://wiki.odroid.com/odroid-n2/application_note/software/set_cpu_freq
#
# max_freq_a73='1800'
# max_freq_a53='1896'
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# HDMI CEC Control, 0=disable/1=enable
#
# hdmi_cec='1'
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# IR setup
#   Setup a custom keycode to wake the N2 from suspend or poweroff
#   You can stop kodi and eventlircd and use "ir-keytable -u" to obtain a compatible u-boot
#   IR keycode
#
remotewakeup='0x800f040c'
#
#   decode_type can be one of the following:
#   NEC='0x0', DUOKAN='0x1', TOSHIBA='0x2', RCA='0x3', RC5='0x4', RC6A='0x5', NEC_TOSHIBA_2IN1='0x6',
#   NEC_RCA_2IN1='0x7', RCMM='0x8', NEC_RC5_2IN1='0x9', NEC_RC5_2IN1='0xa', RC6='0xb'
#
decode_type='0x5'
#
#   remote power key mask:
#   Some IR protocols implement a toggle bit, this can be ignored by the "and" mask:
#   RC5='0x37ff', RC6='0x1effff', RC6A='0xffff7fff'
#
remotewakeupmask='0xffff7fff'
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# WOL Setting, 0=off/1=on
#
# wol=1
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# Heartbeat for Odroid N2
#   You can disable the blue LED heartbeat with this option, 0=off/1=on
#
# heartbeat=1
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# EMMC Timeout for Odroid N2
#   BL1 is configured to boot from eMMC before SD-card, this option is useful if you have another OS
#   installed on to an eMMC as it will delay bootup by 30s allowing you to boot from an SD-card and
#   attach the eMMC during this time, u-boot will then boot from the SD-card and the eMMC will be
#   be available to the OS allowing you to use installtoemmc or browse the eMMC contents.
#
# emmc_timeout=1
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# Power Off and Wake Up using GPIO Key Button
#   Valid options for Odroid N2 are 476,477,478,479,480,481,483,484,485,486,487,488,489,490,491,492
#   Valid option for Khadas VIM3 is 503
#
# gpiopower=476 # (pin 16 of J2 header)
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# USB specific options
#
# usbopts='usb-xhci.tablesize=2'
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# USB Power Control
#   You can use this setting to enable 5v power on the USB ports when entering suspend or power off,
#   0=off/1=on
#
# usbpower=0
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# HDMI custom mode
#   You can use this setting to set a custom video mode
#   modeline "horpixels,verpixels,pixel_clock,hor_freq,ver_freq,hdisp,hsyncstart,hsyncend,htotal,vdisp,
#             vsyncstart,vsyncend,vtotal,hsync_polarity,vsync_polarity,progress_mode"
#
#   Example for 1920x1080p@60hz
# modeline="1920,1080,148500,67500,60,1920,2008,2052,2200,1080,1084,1088,1125,1,1,1"
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# Override 'close osd matrix' auto detection
#
# If the auto detection does not work you can override it by manually enable
# or disable the rgb to yuv conversation by 0=off/1=on.
#
# use_rgb_to_yuv=0
#
#------------------------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------------------------
#
# CoreELEC Developer Options
#   Valid options are: textmode debugging progress nofsck nosplash noram overlay quiet ssh
#
# coreelec='quiet'
#
#------------------------------------------------------------------------------------------------------
------------ /storage/.config/autostart.sh ------------ Unset by user!

Only 1 IR driver can be loaded at any one time.

VIM3L was sold as a kit with the remote so we made meson-remote the default driver and included the remote map in the device tree.

SSH to your device and run /usr/lib/coreelec/remote-toggle -f and reboot to switch to meson-ir.

Thank you, this was the missing hint

The final step to ensure this is my favourite CoreElec device!

Is there a reason the /usr/lib/coreelec/remote-toggle -f was removed from the nightlies? Is there another way to implement to meson-ir?

The command is obsolete and not existing anymore. If /flash/remote.conf or /storage/.config/remote.conf or a remote.conf in DTB is found meson-remote is used.
Otherwise meson-ir.

As the VIM3L does include a remote.config in dtb you will need to force meson-ir by:
/flash/remote.force_meson_ir or /storage/.config/remote.force_meson_ir just by touch a empty file.

Use /flash/remote.disable or /storage/.config/remote.disable to disable both, meson-remote and meson-ir.

1 Like

Thanks Portisch for the instructions, works easily and well.