Unofficial LE version for RK3328\RK3399 3288\3188

  • Hi balbes,

    I just tried your latest image on the RockPro64. Startup works, and my SSD over NVMe / PCIe is also detected. One question, should x265 10bit video playback be working? I saw a confirmation from xmixahlx in the armbian forum, but I don't know if you applied the mentioned patch to your build or if he uses a completly different build scripts.

    Mainline VPU - Seite 2 - Rockchip 3399 - Armbian forum

    Example video, which doesn't work:


    Thanks for your time you invest in the project.

  • I tried LibreELEC-ARMv7.arm-9.80-devel-20201006155018-8945356-rk3288 on Asus Tinkerboard.

    It boots kernel, shows LE logo, resize partition OK, reboots, then show LE logo, but never loads Kodi. TV screen flickers constantly.

    I replaced firefly dtb with tinker-s dtb in extlinux.conf. Now Kodi loads, but screen is still flickering. Changing refresh rate didn't help.

    Edited once, last by Marius95 ().

  • hi balbes150 I'm seeing errors while playing 4K content as well as some 1080p content.

    I'm running the build on RK3399 based X99 TV box

    [ 199.702783] ------------[ cut here ]------------

    [ 199.702813] WARNING: CPU: 2 PID: 1001 at drivers/gpu/drm/drm_gem.c:1096 drm_gem_mmap_obj+0x1a8/0x208

    [ 199.703499] Modules linked in: 8021q garp mrp stp llc rockchip_rga rockchip_vdec(C) hantro_vpu(C) videobuf2_vmalloc videobuf2_dma_sg videobuf2_dma_contig videobuf2_memops v4l2_h264 v4l2_mem2mem bnep brcmfmac videobuf2_v4l2 videobuf2_common fusb302 tcpm brcmutil typec videodev snd_usb_audio cfg80211 snd_usbmidi_lib panfrost snd_soc_simple_card joydev hci_uart btqca btrtl btbcm gpu_sched btintel crct10dif_ce btsdio snd_soc_simple_card_utils bluetooth snd_hwdep ecdh_generic ecc gpio_ir_recv mc rfkill ipv6

    [ 199.703688] CPU: 2 PID: 1001 Comm: kodi.bin Tainted: G WC 5.10.0-rc5 #1

    [ 199.703692] Hardware name: Hugsun X99 TV BOX (DT)

    [ 199.703700] pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)

    [ 199.704397] pc : drm_gem_mmap_obj+0x1a8/0x208

    [ 199.704404] lr : drm_gem_mmap_obj+0x7c/0x208

    [ 199.704408] sp : ffff8000145f3c00

    [ 199.704415] x29: ffff8000145f3c00 x28: 0000000000000008

    [ 199.704426] x27: ffff000040348d80 x26: ffff000047368000

    [ 199.705705] x25: 0000000000000258 x24: ffff0000466fa400

    [ 199.705714] x23: ffff00004731e800 x22: ffff000049a58000

    [ 199.705721] x21: ffff000040348d80 x20: 0000000000000000

    [ 199.705729] x19: ffff00006572e000 x18: 0000000000000000

    [ 199.705736] x17: 0000000000000000 x16: 0000000000000000

    [ 199.705743] x15: 0000000000000000 x14: 0000000000000000

    [ 199.705751] x13: 0000000000000000 x12: 0000000000000000

    [ 199.705758] x11: 0000000000100000 x10: ffff000047368028

    [ 199.705766] x9 : 0000000000000001 x8 : 00000000000000c8

    [ 199.706316] x7 : 0000000000000020 x6 : 0000000000008bf4

    [ 199.706323] x5 : ffff00006572e020 x4 : 0000000000000000

    [ 199.706330] x3 : ffff0000473c6d38 x2 : 0000000000000064

    [ 199.706337] x1 : 0000000000000000 x0 : 00000000000000fb

    [ 199.706345] Call trace:

    [ 199.706356] drm_gem_mmap_obj+0x1a8/0x208

    [ 199.706361] drm_gem_mmap+0x164/0x2a0

    [ 199.707492] mmap_region+0x3d8/0x6a0

    [ 199.707498] do_mmap+0x34c/0x588

    [ 199.707504] vm_mmap_pgoff+0x90/0xf0

    [ 199.707986] ksys_mmap_pgoff+0x1b8/0x1e8

    [ 199.707994] __arm64_compat_sys_aarch32_mmap2+0x20/0x30

    [ 199.708000] el0_svc_common.constprop.0+0x80/0x220

    [ 199.708916] do_el0_svc_compat+0x1c/0x48

    [ 199.708922] el0_sync_compat_handler+0x140/0x28c

    [ 199.708927] el0_sync_compat+0x178/0x180

    [ 199.708933] ---[ end trace 328f70cbfe9d8601 ]---

  • 1. Remove from working SD card u-boot. This can be done with this command on a Linux PC.

    dd if=/dev/<name_you_SD_works_card> of=u-boot-rockpro.img bs=1M count=16

    2. Write LE to SD card, configure DTB and replace u-boot with taken from working SD card. U-boot replacement is performed by two commands.

    dd if=u-boot-rockpro.img of=/dev/<new_SD_card_LE> conv=fsync bs=1 count=442

    dd if=u-boot-rockpro.img of=/dev/<new_SD_card_LE> conv=fsync bs=512 skip=1 seek=1

    balbes150 , on my A5X Max+ i can't boot from SD and i need to write to eMMC your images with rkdeveloptool wl 0x0 imageName.img directly to test it, it is indicated on that thread:

    LibreELEC on RK3328 A5X Max plus

    About your information to replace u-boot on first post of this thread, does it work making these dd commands on image files instead of partitions like following example?:

    # To save
    dd if=imageThatWorksForMeToWriteToEmmc.img of=u-boot-ubootoktobootfromemmc.img bs=1M count=16
    # To inject on an image to test
    dd if=u-boot-ubootoktobootfromemmc.img of=newImageToTest.img conv=fsync bs=1 count=442
    dd if=u-boot-ubootoktobootfromemmc.img of=newImageToTest.img conv=fsync bs=512 skip=1 seek=1

    Or do i have to use another type of commands to prepare image before writing to eMMC?

    I have detected too on image that i tested first:


    That mac addres of eth0 is changed on every reboot and it does not work adding on extlinux.conf APPEND this string at the end to fix it:


    And if i configure manual ip address on my ethernet connection when i reboot it is changed to dhcp and receive different ip addres for my new mac. I need to assing a fixed mac address or a fixed ipaddress, how i could do it?

    Thank you very much for your time!!


    Edited once, last by jps1x2: Modify a little ().

  • Hi all!

    I have successfully solved the problem with running LibreELEC on RK3318 chip: thanx balbes150 and his posts.

    Now I need control the box with IR.

    Has anyone succeeded to set up IR with LE?

    Next problem is wlan. It's not work.

    I tried edit an .dts by change some strings from stock .dtb but it were wrong way I guess.

    May I hope to start wlan in LE?


  • @jansley

    We have no problems here reading the forum's default font size, so please do not act like a braille instructor.

  • Hi.

    I have been using this same approach too in a RockPro64, and I must say that everything works very stable (in my case I don't need to turn off the equipment, since I use it as a small server too), except for a small detail.

    Like you, I use HDMI-CEC, which works well at the beginning but stops working whenever I turn off the TV. I am aware of LibreELEC's CEC settings, and believe me I have tried to change them in several different ways, but to no avail. Whenever I turn off the TV using the remote control, the CEC stops working and I can only interact with LibreELEC using an alternative (I've been using Kore on my smartphone, but it's far from optimal). It only works again if I reset the container (systemctl stop libreelec, systemctl start libreelec).

    Did you happen to have this problem too? Do you have any suggestions on what to do?

  • No. But I encounter another problem that I can not resolve. The problem for me is that CEC stops working after switching HDMI source. Only a restart of container can make CEC working again. I tried this on many images with no success.

  • No. But I encounter another problem that I can not resolve. The problem for me is that CEC stops working after switching HDMI source. Only a restart of container can make CEC working again. I tried this on many images with no success.

    In fact when I read your post I noticed that I had no idea if switching HDMI sources was causing the CEC issue here, so I did the tests and found that it works nicely no matter how many times I switch. Which means that at least here (TV Sony Bravia + RockPro64 + Armbian Focal 5.9.12-rockchip64, but had already tried one of ayufan's image before) the only HDMI event that causes the issue is turning the tv off.

    Also, not sure if it's related but I noticed these messages when I start the container (googled it but found no conclusive answer):