Posts by ilmich

    @dmladenov try the attached device tree (remove txt extension). I haven't mapped all the keys yet, because the work is a bit tedious :)

    However, the scancodes are identical in both cases (mainline driver vs legacy driver). The only difference is how they are stored (in addition to what I have already explained about the device tree).

    The rockchip driver uses a particular encoding

    - first two bytes are the identification code of the remote control and is stored in little-endian ( in your case cc1d becomes 1dcc )

    - the last byte is the key code and is stored inverted. For example, the power key has code 0x00 which becomes 0xff in rockchip encoding.

    Given this, in the dts source it turns out that your remote control is this one and that the keys you indicated are actually missing.

    Anyway, I hope to return to the mainline driver with libreelec 11.

    When I started I didn't have enough experience to create my own patches and I preferred to create a 99% working system (even at the cost of using legacy code)

    Let me known


    Please explain what happens specifically (which keys don't work or just if you want to remap them).

    Compiling a dtb is easy (you can find guides on google). But I can also compile it for you.

    I only have 2 or 3 remotes, so if something new comes up that I can include in the build it would help others too.

    Keep in mind that regardless of the driver I will use in libreelec 11, the starting configurations will be that of libreelec 10.



    Hi @dmladenov,

    for remotes, in libreelec 10 the driver used is the legacy one because it integrates switching off/on. Which you can't do with the mainline driver (you can manage the suspension, but not with which key/remote control to reactivate everything).

    The legacy driver is taken as-is from the 4.4.x kernel and therefore the mapping is not easily modifiable through the official libreelec guide because they reside in the device tree (like android os).

    You can modify as you saw the dts with the scancodes you prefer (the module has a debug mode where you can view them).

    In libreelec 11 I plan to use a mix of opensource drivers/legacy suspension system, but I don't have much time for new developments these days ;(

    I'm sorry


    Hi jaum20

    this is normal because libreelec 10 has an older version of fuse.

    I can add it to my build, but can you please try this first (symlink to old fusermount)?

    VolumeDriver.Mount: failed to mount FUSE fs: fusermount: exec: "fusermount3": executable file not found in $PATH · Issue #6844 · rclone/rclone
    What is the problem you are having with rclone? Using the volume plugin in 1.6.2 fails with missing dependency I guess the plugin was not updated to fuse3?…



    Hi jaum20,

    try this build. It's a preview of the next update that I decided to do to include the fix for your problem.

    Index of /test/

    Keep in mind one thing though. Your problem is related to a boot component of your armbian installed in nand.

    I won't go into too much detail but basically you have an opensource trustos (optee) that is loaded on boot (If you look at the log you sent me, the errors related to 'sip v2' are related to the fact that the opensource trustos is probably not compatible).

    Libreelec instead uses the proprietary one because it gives you the possibility of having ddr3 scaling and startup via remote control.

    Therefore, if you should have problems in this sense, the only solution is, in your case, to update the trustos you have in the nand. But this might give you problems with armbian.

    If I remember correctly, armbian also switched to using the same trustos as libreelec at some point (maybe jock2 can help us with that).

    So maybe the solution is even simpler and consists of some update that you can easily apply.

    Should I switch the dtb after install as showed on the post #2?

    yes, mainly this is needed in order to configure leds and some other features.

    Thanks a lot and let me know



    sorry if I reply late, next time I ask you the courtesy of writing in the dedicated thread ([UNOFFICIAL][RK3228/RK3229]Libreelec builds).

    However there is currently no script for installing to internal storage mainly because my builds aren't 100% stable,

    So installing to internal storage is for those who know what they are doing.

    However there are two ways to install the nand build

    - via the armbian multitool bootable via sd card (…bian-for-rk322x-tv-boxes/)

    - using the dd command directly from an sd-booted build of libreelec as explained here (RE: [UNOFFICIAL][RK3228/RK3229]Libreelec builds)

    Let me know.


    Hi foxy,

    please try to be a little more specific.

    This is to avoid the stupid question like.. "are you sure you have a rockchip rk3228"?!

    for example, can you tell me if libreelec starts from the sd card!? and the multitool?! Are you just having problems installing it on internal storage?!

    Finally, could you send some photos of the board contained in your box?! MXQ PRO 4K can also contain amlogic or allwinner chips.



    Hi shMatrix,

    thanks, but it's not quite like that.

    The tools that currently exist for Windows need a driver because they don't know the rockchip usb protocol.

    My tool implements it in user space and therefore technically it doesn't need a driver, but only to access the device via USB.

    On Windows there is a generic driver called winusb, but in practice, it must be associated with the rockchip box which connects via USB.

    On windows 10 it is done with the procedure that I have indicated. On windows 7 it has to be done manually and maybe I figured out how.

    Hi bacalazin,

    sorry, but honestly windows is not my operating system so I tried just the basics :blush:

    I did more tests and saw that the device must be configured as a generic winusb.

    I'm trying to figure out if I can create an ad-hoc driver but in the meantime the guide I followed is this

    WinUSB (Winusb.sys) installation for developers - Windows drivers
    Install WinUSB (Winusb.sys) in the device's kernel-mode stack as the USB device's function driver instead of implementing a driver.

    try and let me known.


    I'm working on this tool because:

    - I needed a simple tool for boards that I have without SD card

    - have a tool that also works on Windows (for users who are in your situation)

    So, given that the software is highly experimental and tested only by me:

    - download prebuilt 64bit windows binary:…

    - extract it somewhere. The zip contains the executable and a bootloader for RK322x.

    - put your box in loader mode (insert a toothpick into the A/V port and connect the OTG cable)

    - then execute

    rkflashtool.exe b 3 // this put your device in maskrom mode
    rkflashtool.exe l rk32\rk322x_loader_v1.10.238_256.bin // this put your device in usbplug mode
    rkflashtool.exe d > backup.img // optional, this do a full backup of your nand
    rkflashtool.exe f path_to_uncompressed_libreelec_img.img // flash the image
    rkflashtool.exe a rk32\rk322x_loader_v1.10.238_256.bin // install bootloader on nand

    The box must be in USBplug mode for the tool to work properly, so the first two commands are mandatory.

    Hi ochentay4,

    I've continued my fork of rkflashtool

    GitHub - ilmich/rkflashtool: Tools for flashing Rockchip devices
    Tools for flashing Rockchip devices. Contribute to ilmich/rkflashtool development by creating an account on GitHub.

    which is now able to update the bootloader. It's a highly experimental tool (I'm a volunteer) but it should help you flash libreelec to internal memory. It can also be compiled for windows, but at the moment I don't have a machine to do it.

    Hi deckard,

    the images you can download, unless otherwise specified, are raw images of the operating system.

    This means that you have to use them by writing them directly to a boot device (whether it's a hard disk, a USB stick, SD card, internal memory etc etc etc).

    95% of rk3229 android boxes allow to boot from sd card, so use any tool to write image to sd card (

    Once the image has been written, insert the sd card and power up the box.

    edit: for modern libreelec builds try [UNOFFICIAL][RK3228/RK3229]Libreelec builds

    Ok then yes, 10 can be installed in nand. The recommended method is using the armbian multitool but if I remember correctly it didn't work with this board.

    However I don't know the status of your board, but the one I have has android 4.4. So the multitool problem could depend on an old bootloader that doesn't activate the sd card correctly.

    However this board is very well made (good heat sink, external antenna, easy to use uart) so as soon as I have some time I will try the multitool to try to understand where the problem is.

    Another method is to use a usb-a to usb-a otg cable and flashing tools, but it's a bit more 'complicated'