The 4.9 vendor kernel current used by CoreELEC.
CoreELEC currently uses the 4.9 vendor kernel maintained by Amlogic. This kernel has a vast assortment of extra features and drivers added to it by Amlogic to support their various SoC. (This is referred to as a vendor kernel because it is developed/released/maintained by the vendor for the sole purpose of supporting their product.) This is the only maintained kernel that has working support for the hardware decoder and all the other media features provided by Amlogic SoC(such as HDR). Almost all advertised features of most Amlogic based devices work with are supported and work with this kernel as used by CoreELEC.
The 3.14 vendor kernel.
CoreELEC has also in the past used the 3.14 vendor kernel that was previously maintained by Amlogic. This kernel has for a long while seen no further development or maintenance from Amlogic. The upstream LTS(Long Term Support) period for the 3.14 kernel also ended in August of 2016.
The 3.14 is now 7 years old, so beyond ancient. Which makes it very difficult and time consuming for the CoreELEC developers to work with. After much discussion between the CoreELEC developers it was decided to stop using the 3.14 vendor kernel for releases of CoreELEC after the 9.2.x release became the legacy release. With much Regret this has currently left the GXM(S912) and GXBB(S905) based devices with out support in the next CoreELEC. (Both of these SoC families are 5 years old and currently EOL by Amlogic)
I saw GXM(S912) device trees in the 4.9 kernel source. So why can’t it be supported?
The 4.9 kernel actually works great with S912 devices, with the exception however of one major show stopping problem. There is no publicly available linux drivers for the Mali-T820 GPU that the S912 SoC uses. In short no driver == no GUI. No GUI tends to make for a rather poor user experience with a media center.
Some might remember kszaq’s hack that was done to make the Android GPU driver work with the 3.14 kernel. This unfortunately does not work with the 4.9 kernel. Myself and at least two other CoreELEC developers spent a considerable amount of time(Probably several hundred hours in total) trying to figure out how to make the S912 devices work with the 4.9 kernel used in the CoreELEC amlogic-ng builds. Keeping in mind here that we are volunteers and this is a hobby in which our time is not paid for.
To the best of my knowledge none of the companies that produced S912 based devices ever released an updated Android firmware using the 4.9 kernel. Which is a problem since the hack depended on files pulled from Android to work. So even if kszaq was available and willing to help with this, there is not much that can be done without the files.
What about the Mainline 5.x kernel?
While the upstream linux developers have made some pretty great progress. It’s still a really big task to fully support one new SoC, let alone multiple families of SoC. So this work is still not complete.
Progress on mainline however doesn’t happen quickly.
Unfortunately some of the missing and unfinished parts, are the parts most needed for a media center.
For example the mainline 5.x kernels do not have working support for the hardware decoders that are in the Amlogic SoCs.(Yes this work has been started, it’s just not complete enough to be used as more then a curiosity) Mainline also doesn’t support features such as HDR on Amlogic devices.
As far as CoreELEC using the mainline kernel. The developers don’t have Ideological considerations when picking a kernel to use, so any actively developed kernel that can provide the required feature set is an option to be considered. However as stated above the mainline kernel currently doesn’t provide the feature set required to see it used in an official stable release at the moment.
(I will add to this thread as I get time to do so. If I spend all night writing a novel length posts I won’t get any actual testing/development work done. )