build for S905/S905X

  • (2016-12-09)
    Source code: GitHub - kszaq/LibreELEC.tv at
    Kernel source code: GitHub - kszaq/linux-amlogic-le at fb23764f75e920ceb24c8b8c82e2b34c91b44854

    Important: read this post first: LibreELEC

    Important: please read Updating section below!


    • experimental build with 32-bit userspace is now available
    • improved a/v sync and buffering patch
    • kernel updated from latest LibreELEC Amlogic sources and cleaned up a bit
    • reverted some kernel audio patches to prevent clicks and pops
    • applied a fix after the revert to keep HD Audio working
    • backported a few memory leak patches from Krypton
    • added a few fixes from SPMC
    • fixed a script that updates device tree (thanks to CGarces)
    • added hacks and workarounds to enable automatic Aigaile WiFi driver loading (still a little buggy)
    • added an option to copy user data when installing to internal memory
    • 4K scaling patches reverted to
    • reverted AP6212 because of connectivity issues with updated firmware
    • added temperature reading and thermal throttling support
    • maybe something I don't remember

    Known issues:

    • 4K is a bit expetimental because I can't test it.
    • Drivers for Aigaile WiFi may need to be reloaded from time to time by manually toggling WiFi in LE Settings.
    • BT is not supported for Aigaile chips.
    • Opening some high bitrate HEVC files/streams may lead to system lock - this is a bug in Amlogic hardware decoder memory allocation code. You may have a better experience using 32-bit build.
    • If you use S905X device with TV without HDR support the screen will be darker than normal on boot. It goes back to normal after you start/stop a video.
    • Built-in DVB tuners are not supported.
    • Suspend doesn't work most of the times. Temporary solution: use poweroff.
    • Jerky playback of some 29.97fps videos and some Live TV channels (Amlogic HW decoder bug).
    • CEC might not work when your box has incomplatible u-boot or your TV is not that well supported by Amlogic low-level CEC driver.
    • DVB support is experimental, some USB DVB tuners don't work at all.
    • 3D support is experimental and not tested.
    • Lots of other things that I did not notice.

    Note on 32-bit build: If you want to switch to 32-bit build, you need to clean your addon cache first: rm -rf /storage/.kodi/addons/packages/*, after updating force refresh every repository you have and reinstall all binary addons. If you don't know what it is, you probably don't want to switch or shouldn't do it - make a clean install instead. The same note applies to restoring backup from 64-bit to 32-bit build and vice versa.

    How to install
    I strongly recommend trying running this release from SD card/USB drive before installing to internal memory!

    If you have WeTek Hub, you don't need to use toothpick method: update to latest Android version and make use of dual-boot feature!

    How to choose a device tree:
    You can download device trees blobs (images) from device_trees
    Important: Do not use device trees from previous build! You also cannot use device tree from Android firmware as in 99% cases it won't work.

    • S905: First look for device tree with your box name in it. In case there is no such image, download generic one. Device trees for S905 boxes start with gxbb.

      • example: for a box with 2GB of RAM and 100Mbit Ethernet, you should download gxbb_p200_2G_100M.dtb
      • example: for boxes with Gigabit Ethernet download gxbb_p200_1Gbit.dtb
      • for boxes with Realtek WiFi (e.g. K1 Plus or K2 Pro) download device tree with RealtekWiFi in name

    • S905X: Device trees for these boxes start with gxl. You can leave a tree that is already present on SD card (fresh install only) or choose one according to your RAM amount.

    SD card/USB drive:
    Note: only 1 USB port is able to boot the box. You have to try them all. Some boxes are unable to boot from USB drive.

    • Look at the beginning of this post and find Downloads link. Download file with img.gz extension.
    • Burn the downloaded file to SD card or USB drive using Rufus. Alternatively you can use LE tool but remember that you have to download the image manually: Installation - LibreELEC
    • After this you will see that drive capacity is 512MB. This is OK as there is a second (hidden) partition on the drive for LE userdata!
    • Download a device tree, rename it to dtb.img and copy it to main folder of SD card/USB drive - replace the one that's already there.
    • To boot the system for the first time you have to use one of the following:

      • toothpick method: disconnect the power supply, insert card/drive, push reset button and connect the power while holding the button. Wait until LibreELEC logo appears and release the button.
      • menu button method (works with very few devices): disconnect the power supply, insert card/drive, push menu button on your remote control and connect the power while holding the button. Wait until LibreELEC logo appears and release the button.
      • recovery method: boot into Android, insert card/thumb drive and choose Reboot to recovery. Your box should boot into LibreELEC.
      • recovery method (2nd variant): if you have "Update" app pre-installed open it, insert SD card with LE/connect USB drive, and choose any ZIP file in the app for update. Your box should reboot to LE.
      • recovery method (3rd variant): if your box is rooted, use terminal emulator app and execute reboot update command
      • recovery method (4th variant): enable ADB (Google it) and issue adb reboot update command

    Internal memory (NAND/eMMC):
    Run LE from SD card first. If it runs fine, connect to your box over SSH, execute installtointernal command and follow on-screen instructions. This command wipes SYSTEM and DATA partition!

    CAUTION: If your box has a non-standard partition layout, you will see an error when trying to boot from internal memory for the first time. To solve it, you need to boot one more time from SD card and run installtointernal again.

    To boot into recovery after installing LE to internal memory use this procedure:

    • prepare a clean, FAT32-formatted SD card or USB drive
    • copy recovery.img and dtb.img from your Android firmware to SD card (don't use dtb.img for LE!)
    • use "toothpick" method to boot from SD card/USB drive or execute reboot recovery over SSH

    Update by downloading img.gz to Update folder. You should also download a new device tree, and put in Update folder with an update file. You should have both files in Update folder before rebooting.
    HOW TO:Update LibreELEC - LibreELEC


    • If you use a device tree from a previous build, you will experience audio stuttering issues and no passthrough.
    • If you have a device with non-standard partition layout and have LE installed to internal memory, you have to perform a clean install.

    Q: My remote control does not work, what can I do?
    A: Grab remote.conf file from Android firmware (it's available in /system/etc) and copy it to Configuration folder: /storage/.config over SSH or \\your_box_IP\Configuration using Windows shares. You can also put that file to main folder of your SD card. You may need to remap some buttons.

    If you like my work, you can buy me a coffee (or without PayPal account: link)

    Edited once, last by kszaq ().

  • Sweet! I can quit refreshing the forum every hour now!

    Tomato X96 s905x 2G/16G - 8.0.1i
    OTT MXQ s805 1G/8G - HD18Q.arm-
    MythTV Backend w/HDhomerun PRIME

  • Thanks kszaq!

    What is needed to get working CEC and suspend in S905 devices?

    Best regards.

  • Hi kszaq

    a friend of mine tested 7.03 on a Mini M8S II (S905X, 2 Gb / 8 Gb) and found that seeking into a x264 file is much faster than with 7.0.2 :)

    2 x Mini M8S II S905X 2 Gb/8 Gb @ LibreELEC running from NAND

  • K1 plus 1GB
    write LibreELEC-S905.aarch64- to sd-card with win32imager
    then rename gxbb_p200_1G_100M_RealtekWiFi.dtb to dtb.img and copy sd-card
    Start k1 with pinpressing and install libreelec to sd-card.
    Open in Windows \\192.168.0.xxx\Downloads (your ip) and copy installtointernal there
    Take connect with putty to your k1 IP and login: root pass: libreelec
    ls and cd downloads folder and run installtointernal

    everything go fine, need more testing later

    Noticed gxbb_p200_k1_plus.dtb, how it is different than gxbb_p200_1G_100M_RealtekWiFi.dtb ?

    Edited once, last by Miks ().

  • Hello guys , first , GREAT JOB KSZAQ !!!
    i use on a beelink mx3 mini and it works great !
    i've try this one , but i have boot issue , i use 2Ggigabitrealtekwifi device tree , it would'nt boot ...
    i have try the latest krypton dev with the same device tree , it boots, i have one try with kodi 17 , and for the second boot i have the beelink logo frozen on the screen (like the .10 version)

    do you have a tip ?
    thanks guys

    Edited once, last by Hobez ().

  • Have try press restore button hole when put power cable?

    i use update with dummy zip trick to boot on usb flashdrive

    i've tried the "new" .09 version with the same device tree , and it works fine like the .07 version
    maybe the .10 version is very very slow to boot ... (10 minutes and nothing move)
    i will make another try this afternoon and wait to be sure.

    Edited once, last by Hobez ().

  • Thanks for all the good work on this. I have to say, upgrade from went flawless. Just put everything in the update folder and reboot. Though it did give me a good scare. After the update, I had to unplug the power and start it up again (twice) before it actually started booting at all. Just thought I had bricked it.

    If I could only get the remote that came with the box working.... (it's been broken since or so).

  • Hi kszaq, just upgraded from the previous build: update was smooth, both Device tree and system were updated correctly. For now i've tested only Live Tv (on the fly) but this build seems to be the best one (speaking of Live TV) for me: first tuning channel is now fast as switching, deinterlace, a/v buffer seems ok also. For now i can only say thanks and congratulate with you for you wonderful work. During these days i will test everything and report back. Thank you

  • Hi,

    updated and did a few tests: playing files from SMB share will consistently cut a few seconds from the beginning. Same with youtube videos or other streaming media.

    Wetek Hub: LibreElec (Philips 42PFL8404)
    MK808B+: LibreElec (Samsung UE55H6270)
    OTT MXQ Pro 4k (S905): LibreElec (Denon X1200W, 7.1, LG PF1500G)
    AKASO HM8 (S905X): CoreElec 9.0 dev build, Acer Revo 3610: Milhouse test

  • After the update, I had to unplug the power and start it up again (twice) before it actually started booting at all. Just thought I had bricked it.

    In relieved I'm not alone in this situation, it also happen every reboot on my mini m8s, stuck at splash screen. I also need to unplug it to reboot properly.

  • I just cannot believe it. I spent the half day yesterday,
    to install and configure Libreelec 008 on the Nexbox
    Otterbox MQ 4K Pro again, because one of the 009
    test builds fucked it up.

    Now I tried to update the 010 update and the newest
    device by putting both files into the "update" folder
    (per Samba).

    The update went through and guess what: Again it does
    not boot up*, toothpick will also not work.

    Crazy unbelievable. :\ I just do not understand, what is
    going wrong there ...

    * hanging at the Nexbox screen

    Edited once, last by sYCO ().