INTROI'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.

2015/06/01 | Hardware failure resulted in the loss of the sources, images, and binaries. Anything prior to 4.2 was unavailable and is consequently gone. I have removed them from this post.

Please note the ODROID edition you are posting about if you write in this thread! eg. U2/3, XU3, XU3-Lite, C1Please 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.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.

5.0.0.0 >= | +Edit the /boot.ini file as needed to modify the the boot parameters (including resolution changes).+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 AddressThere is good information here on this.

The giant bin holding it all including things not "released" here. Use at your own risk.ENTIRE BIN

+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

OpenELEC 4.1.2.2{HISTORICAL}

+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.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 some missing firmware for various WiFi+Added some Odroid-X2 fixes

OpenELEC-5.0.0.0

+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.scrOdroid 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)

Odroid XU3

+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

+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)

OpenELEC-5.0.2.0

+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+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

libCEC that you linked should get HDMI port automatically; however I could not make it work correctly on my system, that's why I created https://github.com/mihailescu2m/libcec/tree/exynoswhere the port can be defined in a environmental variable, CEC_HDMI_PORTin ubuntu you can define it in /etc/environment, or you can just start xbmc with "CEC_HDMI_PORT=2 xbmc-standalone"

libCEC that you linked should get HDMI port automatically; however I could not make it work correctly on my system, that's why I created https://github.com/mihailescu2m/libcec/tree/exynoswhere the port can be defined in a environmental variable, CEC_HDMI_PORTin ubuntu you can define it in /etc/environment, or you can just start xbmc with "CEC_HDMI_PORT=2 xbmc-standalone"

Thats awesome news memeka! I'll use your libcec so its configurable. The libcec I used doesn't work right on my systems either. My HDMI1 died on my TV awhile back. Pretty obvious libcec is dumping on me when it keeps showing XBMC on HDMI1 even though I have it physically connected to HDMI3. Even changing it in the XBMC settings > peripherals to HDMI port 3.

hope you had success...theoretically you could even change a bit of xbmc code and when you set the HDMI number from xbmc gui, you can export that env variable (and also start next time XBMC with it...)

It seemed that I had to set both anyway. I found the biggest problem (for me) is that libCEC seems hardcoded to tell the CEC bus that we are directly attached to a TV. In libCEC master, you can tell it that your connected to a AVR/Amplifier via the xbmc gui.

One small problem I have (I'm new to U3) but I also had with a different image is that parts of the screen are not visible. I'm using a regular 1080p TV via HDMI directly from the U3, but I'm guessing 2% of the pixels are outside the visible area. Any idea how to fix this?

"Overscan" in your TV settings. If it is on - set it to off, if it is off, set it to on. Sometimes vendors name it differently, so try to find it in the TV manual if you can't find it in the TV settings.

You will find boot.cfg files in the sources posted above. I have a 1080p and a 720p in there. I may in the future add more BOOT.SCR files to the image for easier switching. You will have to generate your own BOOT.SCR file from the boot.cfg's.

One small problem I have (I'm new to U3) but I also had with a different image is that parts of the screen are not visible. I'm using a regular 1080p TV via HDMI directly from the U3, but I'm guessing 2% of the pixels are outside the visible area. Any idea how to fix this?

Thanks!B

XBMC assumes this is going to happen. Use the "Video Calibration" under Settings > System > Video to adjust.

The latest build crashes when i enable liveTV. is it the latest beta of xbmc at fault here or something to do with openelec? Can you produce an openelec image with a stable version of xbmc for testing?

jbyrkit wrote:The latest build crashes when i enable liveTV. is it the latest beta of xbmc at fault here or something to do with openelec? Can you produce an openelec image with a stable version of xbmc for testing?

stable and testing does not make sense in the same sentence here.if it's stable it doesn't need testing.you want more stable, you go to older builds that's the rule.testing means you find out bugs, not complain that "it doesn't work, can you produce something that works"

jbyrkit wrote:The latest build crashes when i enable liveTV. is it the latest beta of xbmc at fault here or something to do with openelec? Can you produce an openelec image with a stable version of xbmc for testing?

Memeka is correct.

I provide links to the sources so you can change what you want and rebuild. To change the xbmc version, you would want to modify the xbmc/package.mk file to pull a tarball of the source you want. Good luck!

Whence saved, OpenELEC will restore your sound config as you saved it upon a reboot. (In theory anyway. My tests are abysmal here)

I am continuing to try to get the sound configured properly at boot.

--++ EDIT ++--

I've added the use of ~/.config/profile.d directory config files. This can be used to make the Headphone always maxed out upon boot. I wrote the exact example I used on my system to do this in the first post. This can also be used to set the CEC_HDMI_PORT or any other variables and commands needed.

I did thay as well before your reply and it did not work ... Can you please upload your cec.conf file on dropbox and give us the link to it ? i might be doing something wrong or a simple typo maybe ...

I had 4.1.4 built and posted. I just had to pull it down when I realized that libXfixes.so.3 is no longer part of OpenELEC's plan. We need that library for Mali so I have to tweak some more before releasing.

Hi, thanks for your help on the screensize isssues, got that fixed, wasn't really a specific Odroid or OpenElec problem I believe.

New problems:

1. I have one folder with subfolders for each TV show. When I update my database, OpenElec picks up only 5 of maybe 50 shows. All the other files are there and the naming scheme for all the folders are identical. I can navigate to each show manually and play it, but the DB update just skips most of the stuff on my disc. That is especially weird since on my windows machine with XBMC I was able to scrape these files.

2. I cannot install many plugins, such as trakt, or even skins like Bello and a few others I tried. OpenElec starts downloading the plugin and then just stops the download somewhere between 2 and 50%

3. When I had the U3 hooked via HDMI to my TV (HDMI1), CEC via the TV remote was fine. But I want the sound to go through my Onkyo. So I hooked it to HDMI 1 of my Onkyo but now no CEC, not with the TV remote and not with the Onkyo remote (NR626)

@VERSUS:I empathize with your problem, however I am not a CEC export nor a programmer. If you can verify your own finding with repeatable steps you should file a bug with the libCEC team. I would guess they don't/won't do much for you since we are using a modified libCEC, but it could simply be a missing TV instruction.

@Booze:1.) I don't know what to tell you on this. My OpenELEC does not have this issue. It sounds like your network is unstable.2.) Not many addons are compatible yet. Those that are work fine on my OpenELEC (at least the ones I've tried). Again, them stalling during download indicates an unstable network connection.3.) The libCEC we are using seems hard-coded to assume we are directly connected to a TV. Normally you can tell libCEC (through the XBMC interface) that we are using an AMP/ AVR Receiver, TV, or whatever. This is missing in our libCEC at this time and so we only get working CEC through a direct connection to the TV. I empathize with you as this is effecting me as well.

@dernalis:Thank you. I'm glad it working for you. On another bright note, this image should run the same speed on eMMC as on SD, since OpenELEC only directly access's the SYSTEM image at boot to copy it into RAM (OpenELEC runs completely from RAM). However the storage partition can be slow. I'm betting you could format an eMMC and label it Storage, delete the Storage partition of OpenELEC and reap the benefits of a fast eMMC storage. (I won't be doing that btw so good luck to anyone who wants to try)

@all:I apologize for the server being down. I was playing some League of Legends and the outside connections were hurting my game. I took it down and then forgot to bring it back up when I was done. It should be up again now.

zalaare wrote:@all:I apologize for the server being down. I was playing some League of Legends and the outside connections were hurting my game. I took it down and then forgot to bring it back up when I was done. It should be up again now.

Again, them stalling during download indicates an unstable network connection.

I think network problems are very unlikely. I used the same cable as for my Windows machine and never had network issues with that. Are there any known U3 network issues? Any way to test that directly?

Again, them stalling during download indicates an unstable network connection.

I think network problems are very unlikely. I used the same cable as for my Windows machine and never had network issues with that. Are there any known U3 network issues? Any way to test that directly?

I had problems similar with my wireless adapter. When I switched to a cable my problems went away. If you are using a cable, then I don't know how to help you. Good Luck.

1.)I've built and tested OpenELEC 4.1.4 w/ framebuffer instead of x11 support. It seems comparable to the x11 builds we have been enjoying in regards to speed and functionality. The MFC HW video acceleration continues to work as before. I may try releasing an image using this method instead of x11. I will however release the 4.2 initial release as normal so we can all enjoy a stable point release of XBMC with the expected infrastructure we already have.

2.)I'm trying slowly to get libhybris working as well. I honestly don't know what the benefits are of using Hybris over MFC, but I'm giving it a go anyway. Idle hands...

3.)At some point I would like to figure out why fusing eMMC causes issues or at least come up with an advanced user's howto on how to get our image working on eMMC.

When I dd to eMMC, my system boot loops at u-boot. What do you mean by "unstable"? I use my OpenELEC when I travel as a portable Media Center and I've had 0 issues with stability. Please let me know what is unstable. Maybe it's something that can be addressed.

this is quite strange. I had not noticed this is supposed to be an SD card image. I have exclusivly been using it on my eMMC and it appears to run just fine (apart from the network issues described above, but I can't see how these could be related to the choice of storage)

zalaare wrote:When I dd to eMMC, my system boot loops at u-boot. What do you mean by "unstable"? I use my OpenELEC when I travel as a portable Media Center and I've had 0 issues with stability. Please let me know what is unstable. Maybe it's something that can be addressed.

The system boots and runs. When I enable Live TV using a mythtv backend, it loads a few channels for the EPG and then XBMC crashes. sometimes it will restart XBMC, other times the hdmi goes out. I can ssh and restart it that way. So what i did was I deleted ALL the channels off my MYTHTV box except for one. After doing this, the channel guide loads and I can watch live tv for a bit but ultimately the system either hangs or XBMC crashes. I'm going to put the latest version on an SD card and i'll report back findings.

So I boot up the SD card version, go into mythtv extension, configure the settings. go back to the system menu, enable live tv, the channel guide starts. remember, only 1 channel, but it crashes right away. what do you recommend in the way of debugging settings? i tried those i could find in xbmc and in the cmyth extension, but the logs were not very useful and i didn't notice much in the logs. Is there a way to build a version with even more debugging info included?

zalaare wrote:08/26/2014 | Just a status update while we wait for 4.2 to come out.

2.)I'm trying slowly to get libhybris working as well. I honestly don't know what the benefits are of using Hybris over MFC, but I'm giving it a go anyway. Idle hands...

libhybris is used on the XU, where there are no mali drivers available.

Well then! I guess I won't waste much more time on it. I got libhybris built okay but xbmc couldn't compile against it because of missing libmedia. I'm assuming it was an Android library...Anyway, I'll stick to my working X-less OpenELEC for upcoming releases then. Until of course, we find something wrong with it

zalaare wrote:Well then! I guess I won't waste much more time on it. I got libhybris built okay but xbmc couldn't compile against it because of missing libmedia. I'm assuming it was an Android library...Anyway, I'll stick to my working X-less OpenELEC for upcoming releases then. Until of course, we find something wrong with it

There are two distinct things:

1) XBMC egl output * can be provided by X11 mali drivers on U3/XU3 using default xbmc x11 backend (my favorite since it's in mainline)* can be provided by mali drivers + special xbmc backend on U3/XU3 (EGLNativeTypeOdroid)* can be provided by fbdev mali drivers on U3/XU3 by special xbmc backend (EGLNativeTypeOdroidFbdev or however @oversun called it)* can be provided by libhybris + android pvr drivers on XU on special hybris xbmc backend (EGLNativeTypeHybris)

by special I mean not in XBMC mainline

2) XBMC hardware acceleration* can be provided by MFC via linux v4l2 drivers on U3/XU3 (not yet in mainline)* can be provided by MFC via android-media-codecs or android libstagefright (both in mainline) using libhybris + media plugin for libhybris (libmedia) + android drivers.libmedia is not in libhybris mainline, it was created by ubuntu and you can find it in their repository. but this is only when you have android support enabled in kernel and android drivers and frameworks

So you should skip libhybris stuff completely if you don't wanna focus on XU Even if you built it, it would now work on the U3 without a different U3 kernel (with android support) + U3 android drivers installed

Thank you again Memeka. That was super informative for me. I <3 learning.

Using oversun's EGLNativeTypeOdroidFbdev with mali framebuffer drivers + MFC linux v4l2 is what I got working this past week. It ran great, but if oversun's work isn't going into mainline, then your right and I won't be continuing down that road.

Unfortunately from my testing using native mainline EGL "--enable-gles" doesn't work for me. I will stick to the EGLNativeTypeOdroid for now.

My last build, I tried going to mainline libcec with the official patch vamanea has on pulse-eight's PR list. But my meager hacking couldn't get the environment variable patch/hack to work with it. I'm always trying to get more mainline as it requires less patching of OpenELEC's sources.

I just installed the latest openelec image to my u3, and it really seems to work!

But can someone give me a step-by-step manual how to let odroid find the right hdmi-port automatically (It actually aways switches to hdmi 1 although it's connectedto hdmi 2 or 3 to my samsung tv) so I can use it's remote control for xbmc?

For all you who are having issues setting CEC ports. Back when I added profile.d support, I removed the ~/.config/CEC.conf support I APOLOGIZE FOR NOT LISTING THAT CHANGE (I didn't know I removed it until I just went digging through my sources). I've edited the initial post to reflect the change.

I did state how to use profile.d to fix this, but I wasn't as explicit as I could have been.

So this is how I have my OpenELEC on my Odroid-U3 setup at this moment. I use HDMI3:

I'd not heard that problem yet, no. I'm really itching for mainline libcec + a few more enabled features for the exynos cec device. I keep getting tempted to use my USB HDMI CEC adapter instead of the native cec support.

Aaaah! Now cec doesn't work anymore, although I changed nothing! And xbmc crashes while scanning music folder, and I can't scan all ofmy films... just a few, and it simply stops scanning. I'm despairing. What do I make wrong???