Posts by HiassofT

    I've seen this happen 2 or 3 times as well but it was rather hard to reproduce - most of the time reboot worked just fine.

    I just managed to reproduce it and capture the kernel output - it seems to be a bug in the RPi3B+'s ethernet driver which let's the kernel crash.

    I'll try to dig into that a bit and see if it's a general problem with the RPI3B+'s ethernet driver or something specific to LibreELEC.

    so long,

    Hias

    grael

    Do you get the same issue when using the newer firmware on 8.2.3 builds?

    Do you have Resample Qualtiy set to "GPU accelerated" in Settings->System->Audio (settings level must be advanced or expert to see/change that)?

    Does it go away when changing Resampling Quality to Medium or High?

    so long,

    Hias

    Wow, thanks a lot David, this must have been the most detailled bug report I've received here so far! And it contained more than enough info to reproduce and understand the issue.

    The problem stems from the combination of using a Sharp remote with an ite-cir receiver. The Sharp IR remote messages are rather long (about 86ms in the sample you provided) and the default idle timeout of the ite-cir driver is also rather high (200ms). So what is happening is that when you release the button (no matter if it's a short or a long button press) the sum of that - 286ms - exceeds the default kernel "key release" timeout of 250ms - and the last message (which is delayed to the timeout) is seen as another button press.

    With other remotes, like for example MCE remotes, this does not occur because the sum of message time (about 40ms in case of rc-6 MCE) and 200ms timeout is just below that magical 250ms limit.

    I've recently discussed these issues with long timeouts with the kernel developer and hopefully there'll be a good solution in the future - it could take a bit, though, it's all a bit tricky.

    Fortunately, there's an easy workaround you can use for now, you can manually configure the driver to use a lower timeout. The minimum timeout of ite-cir is 100ms, I'd use that and if that causes other problems I'd try a bit longer values (125-150ms).

    You can set the timeout with ir-ctl -t TIMEOUT, but keep in mind that ir-ctl expects the value to be in microseconds, not milliseconds. So use eg "ir-ctl -t 100000" to set a 100ms timeout. You can either add that to autostart.sh or add an udev rule for that. I've posted info how to do that in the Amlogic IR remote thread here: LE9.0 remote configs ir-keytable Amlogic devices (replace "meson-ir" with "ite-cir" to make this work).

    With the rather long messages you could run into key repeat more easily, you can change that with "ir-keytable -D DELAY" - that's the delay before repeat starts, default is 500ms. Ah, and here the delay is in milliseconds, so use eg "ir-keytable -D 700" to use a slightly longer delay.

    so long,

    Hias

    There is be a problem if you are using NOOBS. Updating LibreELEC is not enough, you also have to update NOOBS before the SD card will boot in a RPi 3B+.

    I've found instructions how to update NOOBS here Updating Raspbian on your microSD for the Raspberry Pi 2 – The Pi Hut and successfully tested this with a NOOBS 2.4 installation.

    1. Download NOOBS LITE v2.7 (not the full version, the LITE one) from Download NOOBS for Raspberry Pi
    2. Extract the ZIP file and copy all files EXCEPT recovery.cmdline to the first partition of the SD card

    You can either do this on your PC or with the following commands from within LibreELEC:

    so long,

    Hias

    The firmware is included and updated with LibreELEC updates and usually there's no need to do that independently from that.

    If you really want you can update the firmware files manually, at your own risk:

    Download bootcode.bin, start_x.elf and fixup_x.dat from the RPi firmware github repository, rename start_x.elf to start.elf and fixup_x.dat to fixup.dat and copy the 3 files to the /flash partition.

    You can also easily do that from Windows/Mac/Linux (can be helpful if you messed it up) as the /flash partition is FAT formatted.

    so long,

    Hias

    Wireless will always be prone to interference, a problem which you won't have with a wired ethernet connection. So it's a general recommendation to use wired network, especially for high bitrate files. Buffering can work around short dropouts, but has it's limits.

    If wireless works fine for you than use it. But if you get occasional stuttering this can be due to interference and switching to wired should solve it.

    so long,

    Hias

    To use lircd instead of in-kernel decoding you just need to create an empty .config/rc_maps.cfg file, and enable lirc in LE settings, as outlined in the wiki.

    It's odd though that your remote suddenly starts lagging. My first guess is that kodi is busy and can't immediately process the remote events. I've been experiencing this on my RPi1 when kodi is updating addons after startup - top shows kodi.bin using all CPU resources and after a minute or so when addons have been updated things (CPU usage and remote response) are back to normal.

    To narrow things down run the following command when your remote started lagging:

    Code
    irw /run/lirc/lircd

    This let's you monitor the remote events as they reach kodi. Press a few buttons on the remote and check how long it takes until they show up. If they show up almost immediately here but navigation in kodi is delayed it must be something in kodi. If they are delayed here as well, it's something in the kerne/lirc area.

    so long,

    Hias

    I'm so glad I finally found this post! In the past (10 years ago or so) you had to use setserial /dev/ttyS0 uart none, but now the correct parameter is unknown. The annoying thing is that the systemlog will tell you the wrong parameter when trying to load serial_ir. And the module still will load without prior correct setserial!

    The kernel message in the log isn't wrong, with the setserial program you typically find on Linux installations you have to use the parameter "none".

    LibreELEC doesn't use this setserial program but the setserial implementation from busybox and there you have to use "unknown".

    so long,

    Hias

    This is rather odd, serial_ir is nothing you'd be using on RPi.

    That module is not included in default RPi kernel config but seems to be coming via the dvb drivers / media tree. Still, it shouldn't be loaded, even on x86 (where that driver is occasionally used) you need to manually load it via modprobe or modules-load.d

    Could you check if you have something in /storage/.config/modules-load.d or /storage/config/autostart.sh that would load that driver?

    so long,

    Hias

    Sorry for a rather basic question. I like to go through pages pretty quick, and use time skip often (repeat right arrow) during viewing. But with the setting above, when i click the arrows fast (ie, 4x) some are missed (ie 3x are recognized). what variable and which direction would i go to help resolve this? I have also lowered each of the above, and still has the behavior. Thank you.

    ir-ctl timeout is important, but if you use a NEC protocol remote presses quicker than 4 times a second (250ms) won't be recognized as distinct repeats - NEC protocol doesn't have a toggle bit like rc-5 or rc-6/MCE protocols. Use an rc-5 or rc-6/MCE remote if you want better response to quickly repeated button presses.

    so long,

    Hias

    So is it possible to add a udev rule for the ir-keytable settings or does that have to go in autostart.sh ?

    Both variants will work but I recommend creating a udev rule.

    If you connect another device with an IR receiver, eg a DVB USB stick, autostart.sh may configure the wrong receiver (rc names can change across reboots). With a udev rule you can apply the settings to all receivers, or only meson-ir.

    If meson-ir is your only IR receiver then it doesn't really matter, use what's easiest for you.

    so long,

    Hias

    autostart.sh should work, but it' be better to create a udev rule for that. Copy /utsr/lib/udev/rules.d/70-input-repeat.rules to /storage/.config/udev.rules.d, and then add this line at the end (all in a single line, after the LABEL="end" line):

    Code
    ACTION=="add|change", KERNEL=="lirc*[0-9]", DRIVERS=="meson-ir", RUN+="/usr/bin/ir-ctl -d $devnode -t 50000"


    so long,

    Hias