I have spent the last couple of nights (and mornings – it’s 8AM now), working on the AppleTV support, as it has definitely dragged a bit. I don’t seem to go a day without an old Crystalbuntu user asking when OSMC support will be available, so I set aside some time to sit down and work on this.
It’s important to make sure that OSMC for AppleTV is done right. I’ve got Linux 4.2.3 building for Apple TV and I have optimised the NVIDIA and CrystalHD drivers. The Linux 4.2.3 kernel is a nice step up from Linux 3.2 which Crystalbuntu 2 used. This will bring better performance and better hardware support. I’ve backported all of our WiFi drivers and enabled as much hardware support as possible: including various remotes.
From a technical perspective:
We build the CrystalHD drivers and NVIDIA drivers as out of tree modules, but package them with the kernel. This means that DKMS is not used at all: faster updates are the result of this, as well as a smaller filesystem, because you don’t need a toolchain on your system anymore. OSMC is based on Debian 8, codename Jessie.
I have added CrystalHD decoding support to Kodi 15 Isengard, and this is the version that will ship with OSMC for AppleTV. I have removed some decoding pathways (MPEG2, and VC1), which never worked. As a result, these will be software decoded (and should be fine), without you needing to flip between enabling and disabling hardware acceleration to make non H264 video work.
I have tweaked the IO and CPU schedulers, so the AppleTV should be more responsive. I need to be careful here, as the AppleTV gets hot as it is, and I am sure that this is the cause of some people experiencing GPU failure, but these settings should be a good blend of performance and power (and temperature) conservation.
The boot may be a bit slower than Crystalbuntu 2. I am (if possible) going to go back to the old dual-boot mechanism, where mach_kernel loads the kernel, rather than embed the kernel in to mach_kernel. We could handle the mach_kernel generation in a kernel postinst rule, but again, this would require a toolchain, and not just build-essential, but also the Darwin cross compiler tools, which is quite large and best avoided.
If you are interested, you can follow progress on GitHub here. Over the next few days, it will be very AppleTV oriented. Once the AppleTV is supported in the OSMC codebase, maintaining it will be very easy, and it will get monthly updates like Raspberry Pi and Vero do.
I will update this post when I have some test builds for you to try. After these are good, I will look at adding them to the OSMC installers (Windows, Mac, Linux), which may take a little while, as we have to upgrade them for better Windows 10 and OS X compatibility (and my access to a Mac is somewhat limited).