I've been working on getting OpenELEC working on my Odroid's. There are always some issues that I am currently working through, but I thought I'd make sure what I have completed gets out into the wild. I'll try to work on fixing issues as they arise, but keep in mind that this is only a hobby and fixes take time. I'll edit this post as fixes come along. Each release I'll post and I'll attempt to not delete old information but before installing please:
I make no guarantee's on my work, use at your own risk.
- +Read the NOTES: section carefully
+Read the KNOWN ISSUES AND OR CHANGES: section carefully. Keep in mind that each iteration has what has changed since the last so you may want to review them all for a refresher.
QUICK INFO
- +OpenELEC version 4.X | XBMC Codename Gotham
+OpenELEC version 5.0.X | Kodi Codename Helix
+OpenELEC version 5.95.x;6.0.X | Kodi Codename Isengard
+OpenELEC version 6.95.x;7.0.X | Kodi Codename Jarvis
- BIG THANK YOU to the OpenELEC Team for their continued work on a dedicated set-top XBMC/Kodi solution!
Using Official Hardkernel Linux source found here | Branch: odroid-3.8.y | BIG THANK YOU HardKernel!
Using Official Hardkernel U-BOOT source found here | Branch: odroid-v2010.12 | BIG THANKS to HardKernel!
Using Mali Binary Blob found here | Can't remember where I got original blob (sorry) | BIG THANK YOU to (probably) mdrjr!
4.2.1.0 >= | Using Oversun's XBMC found here | Branch: Gotham | BIG THANKS to OverSun!
4.2.1.0 >= | Using Mainline OpenELEC XBMC with patches to provide MFC and GLES | Thank you Memeka!
Using dsd's armsoc DDX found here | Branch: r4p0 | BIG THANK YOU to dsd!
4.2.1.0 >= | Using libCEC found here | Branch: exynos | THANK YOU Memeka!
4.2.1.0 >= | Using Mainline libCEC with patches to enable exynos and variable support
2014/09/10 | Thank Moonfire for generously rehosting all my OpenELEC files! | HUGE THANKS! to Moonfire!
4.2.1.0 >= | Using MFC Code from here | Branch : Gotham | Again Thanks! to OverSun!
- Please note the ODROID edition you are posting about if you write in this thread! eg. U2/3, XU3, XU3-Lite, C1
Please provide output from UART if you are having boot problems. Your unlikely to get much help without it.
5.0.0.0 >= | +OpenELEC will again auto-resize the Storage partition automatically after first boot. Expect the system to reboot and then restart on its own the first time.
4.2.1.2 <= | +Default size of Storage partition is pretty small, in fact its so small that you won't be able to use the upgrade methods below. OpenELEC can automatically resize this partition. To accomplish this:- 1. enable ssh on your OpenELEC.
2. ssh into your device from remote computer. Login as root using password is openelec.
3. place an empty file called .please_resize_me on the root of the storage partition ($HOME).4. reboot and wait for OpenELEC to resize partition. OpenELEC will auto reboot after auto-resizing.Code: Select all
touch /storage/.please_resize_me
NOTE: From my experience the resize does NOT destroy your current data on the Storage partition. I don't promise the same results, so keep a backup just in case.
+OpenELEC by default has ssh enabled on boot.
+Starting at version 4.2.1.0, the Audio will be defaulted to Fixed 44.1Khz in XBMC/Kodi for XU3 requirements. This can be changed as needed in the XBMC/Kodi settings.
5.0.0.0 <= | +The Odroid-XU3 does not currently have a working Kernel CEC driver. Do NOT expect it to work.
+eMMC cards generally don't work with this image. Venture into eMMC territory at your own risk.
+I find the CEC quite unpredictable still. However I did have to set the Port in XBMC as well as the config file for mine to work. (CEC_HDMI_PORT=1 Environment variable & 0x1000 physical address within Kodi)- XBMC>Settings>System>Input Devices>Peripherals>CEC Adapter>Physical Address
There is good information here on this.
- 1. enable ssh on your OpenELEC.
ENTIRE BIN
SOURCES
OpenELEC for Odroid U2/U3/XU3 [4.2.1.0]
OpenELEC for Odroid U2/U3/XU3 [4.2.1.1]
OpenELEC for Odroid U2/U3/XU3 [4.2.1.2]
SOURCES Odroid U2/U3
OpenELEC for Odroid U2/U3 [5.0.0.0]
OpenELEC for Odroid U2/U3 [5.0.1.0]
OpenELEC for Odroid U2/U3 [5.0.2.0]
OpenELEC for Odroid U2/U3 [5.0.3.0]
OpenELEC for Odroid U2/U3 [5.0.4.0]
OpenELEC for Odroid U2/U3 [5.0.5.0]
OpenELEC for Odroid U2/U3 [5.0.6.0]
OpenELEC for Odroid U2/U3 [5.0.7.0]
OpenELEC for Odroid U2/U3 [5.0.8.0]
OpenELEC for Odroid U2/U3 [5.95.5.0]
OpenELEC for Odroid U2/U3 [6.0.0.0]
OpenELEC for Odroid U2/U3 [6.0.1.0]
OpenELEC for Odroid U2/U3 [6.0.2.0]
---
SOURCES Odroid XU3
OpenELEC for Odroid XU3/XU3-Lite [5.0.0.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.1.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.2.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.3.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.4.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.5.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.6.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.7.0]
OpenELEC for Odroid XU3/XU3-Lite [5.0.8.0]
OpenELEC for Odroid XU3/XU3-Lite [5.95.5.0]
OpenELEC for Odroid XU3/XU3-Lite [6.0.0.0]
OpenELEC for Odroid XU3/XU3-Lite [6.0.1.0]
OpenELEC for Odroid XU3/XU3-Lite [6.0.2.0]
---
SOURCES Odroid C1
OpenELEC for Odroid C1 [5.0.0.0]
OpenELEC for Odroid C1 [5.0.1.0]
OpenELEC for Odroid C1 [5.0.2.0]
OpenELEC for Odroid C1 [5.0.3.0]
OpenELEC for Odroid C1 [5.0.4.0]
OpenELEC for Odroid C1 [5.0.5.0]
OpenELEC for Odroid C1 [5.0.6.0]
OpenELEC for Odroid C1 [5.0.7.0]
OpenELEC for Odroid C1 [5.0.8.0]
OpenELEC for Odroid C1 [5.95.5.0]
OpenELEC for Odroid C1 [6.0.0.0]
OpenELEC for Odroid C1 [6.0.1.0]
OpenELEC for Odroid C1 [6.0.2.0]
---
To Build:
Note: To keep this post minimal, I'll try to keep this "mostly" only regarding the latest build.
Note: Some of the sources have x86 binaries that run during compilation. So it would be best to build on an x86 host to avoid unnecessary issues.
- 1. Unpack sources
2. make PROJECT=Odroid DEVICE=$DEVICE image
3. wait for compilation.
4. zcat target/OpenELEC-Odroid-$DEVICE-6.0.2.0.img.gz | dd of=/dev/mmcblk0- $DEVICE can currently be either U2, XU3 or C1
OpenELEC 5.0.0.0
OpenELEC 5.0.1.0
OpenELEC 5.0.2.0
OpenELEC 5.0.3.0
OpenELEC 5.0.4.0
OpenELEC 5.0.5.0
OpenELEC 5.0.6.0
OpenELEC 5.0.7.0
OpenELEC 5.0.8.0
OpenELEC 5.95.5.0
OpenELEC 6.0.0.0
OpenELEC 6.0.1.0
OpenELEC 6.0.2.0
---
IMAGES Odroid-XU3
OpenELEC 5.0.0.0
OpenELEC 5.0.1.0
OpenELEC 5.0.2.0
OpenELEC 5.0.3.0
OpenELEC 5.0.4.0
OpenELEC 5.0.5.0
OpenELEC 5.0.6.0
OpenELEC 5.0.7.0
OpenELEC 5.0.8.0
OpenELEC 5.95.5.0
OpenELEC 6.0.0.0
OpenELEC 6.0.1.0
OpenELEC 6.0.2.0
---
IMAGES Odroid-C1
OpenELEC 5.0.0.0
OpenELEC 5.0.1.0
OpenELEC 5.0.2.0
OpenELEC 5.0.3.0
OpenELEC 5.0.4.0
OpenELEC 5.0.5.0
OpenELEC 5.0.6.0
OpenELEC 5.0.7.0
OpenELEC 5.0.8.0
OpenELEC 5.95.5.0
OpenELEC 6.0.0.0
OpenELEC 6.0.1.0
OpenELEC 6.0.2.0
---
IMAGES Universal (U2/U3/XU3)
- Note: Starting with version 4.2.1.0 and stopping at version 5.0.0.0 the format was different. The resulting .bin file can be run like a script.
Note: The device is either U2 or XU3, NOT U3This allows the use of a single file to support multiple devices.Code: Select all
sh OpenELEC-Odroid-4.2.1.1.bin U2|XU3 [/dev/device|/path/to/image]
OpenELEC 4.2.1.1
OpenELEC 4.2.1.2
HOWTO UPGRADE/DOWNGRADE
Verify you download the correct UPGRADE file for your device!
- Place the file from the UPGRADES section into to either:
- +The Windows share "Update" on the device
+/storage/.update (you may have to create the directory)
Cross Fingers - +The Windows share "Update" on the device
OpenELEC 4.2.1.0
OpenELEC 4.2.1.1
OpenELEC 4.2.1.2
---
UPGRADES Odroid-U2/U3
OpenELEC 5.0.0.0
OpenELEC 5.0.1.0
OpenELEC 5.0.2.0
OpenELEC 5.0.3.0
OpenELEC 5.0.4.0
OpenELEC 5.0.5.0
OpenELEC 5.0.6.0
OpenELEC 5.0.7.0
OpenELEC 5.0.8.0
OpenELEC 5.95.5.0
OpenELEC 6.0.0.0
OpenELEC 6.0.1.0
OpenELEC 6.0.2.0
---
UPGRADES Odroid-XU3
OpenELEC 5.0.0.0
OpenELEC 5.0.1.0
OpenELEC 5.0.2.0
OpenELEC 5.0.3.0
OpenELEC 5.0.4.0
OpenELEC 5.0.5.0
OpenELEC 5.0.6.0
OpenELEC 5.0.7.0
OpenELEC 5.0.8.0
OpenELEC 5.95.5.0
OpenELEC 6.0.0.0
OpenELEC 6.0.1.0
OpenELEC 6.0.2.0
---
UPGRADES Odroid-C1
OpenELEC 5.0.0.0
OpenELEC 5.0.1.0
OpenELEC 5.0.2.0
OpenELEC 5.0.3.0
OpenELEC 5.0.4.0
OpenELEC 5.0.5.0
OpenELEC 5.0.6.0
OpenELEC 5.0.7.0
OpenELEC 5.0.8.0
OpenELEC 5.95.5.0
OpenELEC 6.0.0.0
OpenELEC 6.0.1.0
OpenELEC 6.0.2.0
KNOWN ISSUES AND OR CHANGES
OpenELEC 4.1.2.0 {HISTORICAL}
- +OpenELEC will boot the first time, then resize partition 2 to the full size of your device. Expect a reboot before you see XBMC
+Headphone is initially muted. Current workaround is ssh into device and use alsamixer to bring volume up on Headphone
+CEC is still hardcoded to HDMI1. (I want to use a method where the user can set this somehow. I've seen images alluding to this elsewhere on the forum)
+BOOT.SCR is using the auto-config method (no declaration of resolution). On my setup's this results in 1080p60hz and it is unchangeable. However since I only drop 2 or 3 frames upon skipping forward or backward, this is a non-issue to me.
+This image only works on an SD Card (AFAIK).
+BOOT.SCR uses /dev/mmcblk0p1 and /dev/mmcblk0p2. This image won't work with eMMC installed at the same time.
+Addons come up empty. (probably a version mismatch). FIXED: Simply enable wait for network connection before starting xbmc/kodi (I use wireless and had to set the timeout to 60s)
+Upgrading from 4.1.2.0 must be done via a new image. A bug in the init prevents using the method standard method. I'll be trying to fix prior to next release
- +This build will not automatically resize the storage partition. You can add a /storage/.please_resize_me file to re-enable the next reboot auto resize.
+Removed alsamixer. Current workaround is ssh into device and use the command 'amixer -c 0 sset Headphone 100%'
+CEC is now able to be set to other HDMI ports (thanks memeka). Create a /storage/.config/CEC.conf file with the environment variable CEC_HDMI_PORT.
+BOOT.SCR now uses LABEL=System and LABEL=Storage. This image should work with other partitions found (as long as they don't share the same LABEL).
+Fixed the init to allow upgrading from 4.1.2.2 and up as noted in above Upgrade instructions.
+Switched to udev rules for systemd xorg-configure@mali.service.
+Decreased size of System. It didn't need to be as large as it was.
+Simplified (imo) the image build script.
+Added RESIZE option to Project options when building from source. Allows turning off the automatic resizing of partition 2 upon boot.
+Fixed image build script to Fuse image
+Added create_sdcard-odroid to resulting tar. Can be used to write an img file, or to write directly to a block device (/dev/mmcblk0)
- +Upstream bump to 4.1.3
+Upstream bump to XBMC 13.2 beta 3
+Added Htop
- +Added 1080p, 720p, noedid and auto scr files
+Added bootres script to change SCR files- example:
Code: Select all
bootres 1080p-noedid
- example:
- +Added use of $HOME/.config/profile.d directory for custom command and environment variables to be set
- example: [Set Headphone Volume]example: [Set CEC_HDMI_PORT Variable]
Code: Select all
echo "amixer -c 0 sset Headphone 100% on > /dev/null 2>&1" > $HOME/.config/profile.d/alsa.conf
Code: Select all
echo "CEC_HDMI_PORT=3" > $HOME/.config/profile.d/cec.conf
- example: [Set Headphone Volume]
- +Upstream bump to 4.1.4
+Xorg 1.15.2->1.16.0
- +Upstream bump to 4.1.5
+Upstream bump to XBMC 13.2 Final
+Upstream (Hardkernel) bump Linux to 3.8.13.27
- +Upstream bump to 4.1.6
+Switch to XBMC/Kodi Mainline and EGL Mainline (not Odroid specific anymore)
+Added patch to enable MFC support
+Switch to libCEC Mainline
+Added patch to enable Exynos & CEC_HDMI_PORT variable support
+Cleaned up boot to be quiet(er)
- +Upstream bump to 4.2.1
+Added support for Odroid-XU3
+Upstream (Hardkernel) bump Linux (U2/3) 3.8.13+0c5ca23
+Switched to multi-device binary/script format for images
-If upgrading from 4.1.X OpenELEC, you must use the .bin file method to install this upgrade. (Your System partition will not be large enough to hold the new setup).
+Added script to fuse latest u-boot after each upgrade process
+Switched xorg-configure to global run for all devices since we are building for Odroid
-Reverted udev based configuration for mali
+Split firmware packages up into smaller packages
+Changed Linux kernel naming schema to add GIT_COMMIT for easier debugging
+Added a new debug scr (verbose)
+Added many kernel drivers for various devices (eg. dvbsky, various mce remotes)
- +Added initial Odroid-X2 support
+Synced MAC addressing with official HK Ubuntu images
- +Added some missing firmware for various WiFi
+Added some Odroid-X2 fixes
- +Upstream bump to 5.0.0
+Re-factored entire build-tree to use device-tree to compile images for separate devices
+Switched to /boot.ini for all devices from boot.scr
Odroid U2/U3 2015-01-22 (U2/U3)- +Implemented forced 16-bit audio, allowing removal of Pulseaudio
+Make sure you upgrade using a new image if coming from 4.2.1.X
+I've verified that CEC is hardcoded to HDMI1 again (I'll look at re-implementing the variable option when I have time)
- +Implemented forced 16-bit audio, allowing removal of Pulseaudio
+Make sure you upgrade using a new image if coming from 4.2.1.X
+Switched to mainstream armsoc
+Enabled CEC support
+Enabled CEC_HDMI_PORT variable capability (I had to set both the variable and my in-kodi setting)
+Switched compiler tuning to big.LITTLE from generic
- +Initial Release
- +Implemented forced 16-bit audio, allowing removal of Pulseaudio
- +Upstream bump to 5.0.1
+Redirected addons to custom Odroid built addons
+Removed remaining AFP components
Odroid U2/U3 2015-02-19 (U2/U3)- +Commits since last release
+Enabled CEC_HDMI_PORT variable capability (I had to set both the variable and my in-kodi setting)
- +Commits since last release
+Fixed CPU Temperature in Kodi
+Enabled missing 'menu' key on amlogic remote
+Initial HEVC support enabled (Detection and am-h265 recognition seems to be all that works so far)
+Bumped kernel version
+Removed force suspend on poweroff patches (OpenELEC should shutdown gracefully when choosing poweroff now)
- +Commits since last release
- +Upstream bump to 5.0.2
+Removed some Realtek drivers that were removed from upstream builds (they were redundant upstream, but I may need to put them back if it becomes a problem)
Odroid U2/U3 2015-03-09 (U2/U3)- +Commits since last release
+Fixed broken MFC
- +Commits since last release
+Fixed broken MFC
- +Commits since last release
- +Upstream bump to 5.0.3
Odroid U2/U3 Odroid XU3 Odroid C1
- +Upstream bump to 5.0.4
Odroid U2/U3- +Commits since last release
+Added odroid fan service | Thanks go to user nfstry
- +Commits since last release
- +Upstream bump to 5.0.5
+Re-Enabled OpenVPN support
Odroid U2/U3 Odroid XU3 Odroid C1- +Commits since last release
+Added upstream patches (some) to C1 Linux kernel
+Updated Mali
+Updated Linux kernel (should now have meson-ir)
- +Commits since last release
- +Upstream bump to 5.0.6
+Use standard Linux API Headers for compilation
+Switch to 'oem' virtual package from 'testing'
+Simplify udev rules and overrides
+Simplify linux config and overrides
Odroid U2/U3- +Commits since last release
+Switch to modular IR setup (really for helping debug for now) | Looking at this now, I thought we were chasing problems on the C1...
- +Commits since last release
+Switch to LIRC setup for remotes
+Re-enabled default Odroid C1 remote
- +Commits since last release
- +Upstream bump to 5.0.7
Odroid U2/U3 Odroid XU3 Odroid C1
- +Upstream bump to 5.0.8
Odroid U2/U3 Odroid XU3- +Commits since last release
+Upgrade kernel for possible support of XU4
- +Commits since last release
- +Upstream bump to 5.95.5 (BETA)
+Major branch change to OpenELEC 6 (Isengard)
Odroid U2/U3- +Commits since last release
+Switch to mainline U-Boot
- +Commits since last release
+Switch to mainline U-Boot
+Verified boot & run on Odroid XU3 & Odroid XU4
- +Commits since last release
+Switch to Owersun's C1 Kodi implementation. (I may switch this back to mainline when I get time to do more testing)
+Verified boot & run on Odroid C1+ & Odroid C1
+HEVC decoding works
- +Commits since last release
- +Upstream bump to 6.0.0
+Major branch change to OpenELEC 6 (Isengard)
Odroid U2/U3 Odroid XU3 Odroid C1- +Commits since last release
+Switch back to mainline amlogic decoding
- +Commits since last release
- +Upstream bump to 6.0.1
Odroid U2/U3 Odroid XU3/XU4 Odroid C1/C1+
- +Upstream bump to 6.0.2
Odroid U2/U3 Odroid XU3/XU4 Odroid C1/C1+