Intel x86-64 (Generic)
The LibreELEC "Generic" image supports a (very) broad range of x86_64 compatible hardware using AMD, Intel, and nVidia GPU hardware. The GPU in a device determines what media can be played using hardware decoding and modern features like HDR, and the CPU determines if any unsupported codecs can be software decoded for playback by ffmpeg.
HDR support in the Linux kernel, in Kodi, and in LibreELEC is ongoing "work in progress" that continues to evolve. HDR depends on a combination of the media format and colourspace properties, GPU hardware, HDMI output, and TV panel capabilities. Most users wrongly view HDR support like codec support, but it is significantly more complicated. Few people outside the broadcast media industry truly understand how it works (in theory and in practice) but we are fortunate to have users with that professional background providing testing and insightful feedback to the team as progress is made.
As GPU hardware is one of the major variables, please read the AMD, Intel, and nVidia GPU sections below for further information relevant to HDR support on that GPU type:
Intel NUC and similar-sized Intel GPU devices are popular for building an HTPC device around since they combine well supported upstream GPU drivers with entry level Celeron and Core i3 chips to intermediate Core i5 and high-end Core i7 CPUs.
Modern Intel GPUs have been shipping since "Nehalem" in 2010, and over time the number of different CPU and GPU generations and codenames have multiplied, making it confusing to figure out what media features a device can support. The following table is based on public sources like Wikipedia, and it indicates hardware features, which do not always translate into what Linux and Kodi currently support in software:
- Gen6 CPUs (Skylake) have HDMI 1.4b and DisplayPort 1.2 connectors. HDMI can run at max 1920x1200@60 resolution, while DP can run at max 3840x2160@60 resolution.
- Gen7 and Gen8 CPUs use an LSPCON chip for HDMI 2.0 output. HDR is supported only when the HDMI output is connected to an HDMI 2.0 port on the TV. Users with Intel NUC devices are recommended to run the latest Intel firmware for their device. Lots of bugs in original/factory LSPCON firmwares have been fixed.
- Linux supports LSPCON chips for HDR from Linux 5.12 onwards
- Linux has full support for Tiger-Lake CPUs from Linux 5.12 onwards
- Intel GPUs are known as Integrated graphics processors (IGPs) and are embedded within the CPU core. Each CPU generation uses a single GPU generation but the generation ID's do not match, e.g. Gen10 CPUs have Gen11 GPUs.
LibreELEC 10.0 shipped with Linux 5.10 kernel support and Xorg graphics, so it does not have support for HDR or Gen11 hardware. Community created LibreELEC 10.0 images with newer Linux kernels supporting Gen11 hardware and
GBMgraphics with experimental HDR patches can be downloaded from the LibreELEC forums. LibreELEC 11.0 use GBM graphics, include Kodi 20.0 support for HDR, and an updated kernel supporting Gen11, Gen12 hardware.
AMD GPUs are a popular option for users building custom HTPCs from motherboards without onboard Intel graphics. LibreELEC embeds two AMD drivers:
radeonis used with older cards, and
amdgpuis used with newer cards (starting from the 'Southern Islands' family).
Determining media features (H264, HEVC, AV1, 4K, 4K60, HDR, etc.) is complicated due to the sheer number of different AMD cards available. Each new GPU generation ships with low-end cards limited in capabilities, and high-end cards with multiple connectors. Media features like 4K and HDR also have a dependency on connectors (HDMI or DisplayPort) and the standards the connectors support. For example, some cards support HDMI 1.4b and a max resolution of up to 3840x2160@30 with 8-bit HDR output, while cards with DisplayPort 1.4 or HDMI 2.0 may support up to 3840x2160@60 with 10-bit output.
LibreELEC v7.x - v10.x include two different nVidia GPU drivers; a "legacy" driver (340.xx) and the latest stable driver. The drivers provide
Xorgso Kodi can display a GUI on-screen, and Kodi supports
VDPAUhardware decoding of H264 and some older SD era media codecs for efficient playback. Newer nVidia cards support 4K resolutions and
NVDEChardware decoding, but Kodi does not support
NVDEC, and while Kodi can output 4K, nVidia VDPAU drivers have no support for HEVC or VP9 (the formats used with most 4K media) and there is no support for HDR. It is no surprise that project active-install stats show most nVidia installs are using the legacy nVidia driver, and the number of installs continues to decline over time: which means LibreELEC users are replacing older nVidia devices with something that does not use an nVidia GPU. This trend is not new and influences our technical decisions:
LibreELEC v11.x has switched "Generic" from Xorg OpenGL graphics to the Mesa OpenGL and the same DRM PRIME video stack used with ARM SoC devices.
A "Generic_Legacy" image using Xorg is available, but if "GBM" image development continues to progress well our intention is to drop the legacy image in the future (and with it, nVidia support). In lieu of this:
The team does not recommend users purchase nVidia hardware for use with Kodi
LibreELEC v11.x "GBM" images are built with Mesa
nouveauOpenGL support so nVidia users who upgrade will see Kodi on-screen. However
nouveauhas no ability to "reclock" modern nVidia GPUs so the card runs at its lowest clock frequency and performance is bad (too bad to be useful). This issue is caused by nVidia requiring the use of signed (closed-source) firmware to interact with newer card generations, and it is a problem with all modern nVidia cards and all Linux distributions. It means the
nouveaudriver only works with very old nVidia cards, and is not a long-term solution for nVidia support in LibreELEC.
Update (Oct 2021): nVidia has announced the latest drivers support GBM and Mesa. This will allow Kodi to render the GUI via Mesa OpenGL. It removes one technical blocker to LibreELEC supporting newer nVidia devices in future releases. However, it is not the only blocker. The latest driver uses
NVDECfor hardware decoding so either Kodi would need to add support for
NVDECor nVidia would need to support
VAAPIwhich is used by Intel and AMD. In theory
NVDECis not a big technical challenge to implement, but Team Kodi has an established policy of refusing to include more/new proprietary hardware-decoding APIs that complicate code maintenance. So far nobody on the current Kodi staff has volunteered to implement
NVDECsupport and run the gauntlet of getting it accepted and merged. Even if an attempt was successful (which is unlikely) it would not benefit the majority of LibreELEC users with older nVidia cards which still depend upon the legacy driver and
VDPAUdecoding. So the latest drivers and
NVDECsupport are not the long-term solution for nVidia support in LibreELEC either.
NB: If (when) LibreELEC drops support for Xorg and nVidia users, it does not mean Kodi has dropped support. nVidia users can continue to use their nVidia card with Xorg and any desktop Linux distro that supports Kodi (Arch, Debian, Ubuntu, etc.) - although the long-term trend with desktop distros is to move away from Xorg to Wayland (which depends on Mesa) so the trend there is against nVidia too. In lieu of this, we say again:
The team does not recommend users purchase nVidia hardware for use with Kodi
Despite the range of devices that Generic x86_64 images can run on, team development and testing has always been focused on current and recent hardware packaged for use as HTPC devices. Users frequently mistake the minimalist nature of LibreELEC as perfect for recycling an older device (laptops with a broken screen are a recurring theme) into a media player. You might be able to boot LibreELEC, but we are often missing hardware drivers for old hardware and the overall playback performance (and power consumption) of first generation Raspberry Pi boards is often way (way) better. As a general rule, project staff view any hardware over 7-8 years old as legacy hardware. If you do need to use legacy hardware; use an era-appropriate LibreELEC (or OpenELEC) image.
Support for i386 hardware was dropped between OpenELEC v5.x and v6.x in 2015 due to low numbers of users, and LibreELEC has no interest in resurrecting support. It is still technically possible to hack/restore i386 support into our buildsystem and self-build an i386 image since we support 32-bit ARM SoC devices and use 32-bit userspace with 64-bit ARM SoCs so most packages in are still 32-bit compilable with little or no tweaking. However, there are still a few packages that do need tweaking to restore i386 support, and there is no HOWTO guide that you can follow. Some users enjoy the intellectual challenge of figuring out how to restore i386 support, but i386 hardware is super low-spec for modern Kodi use and our recommendation is to invest in a Raspberry Pi board instead of spending tens or hundreds of hours on codebase archaeology. An inexpensive Pi board will give a better overall result, costs less to run, and be zero hassle to maintain over time.