Which Linux variants are most commonly used with Nerves?

Looking around in the online Nerves docs, I can’t find any information on which Linux variants are most commonly used with Nerves. Can anyone point me to a rundown on this? More generally, I’d be curious to know folks’ feelings about which Linux variants work better for what use cases.


Nerves systems are custom linux systems built with buildroot. It’s not using anything like a mainstream linux distro. It’s more like a lot of lego blocks and you only attach the ones you need.

I replied in the GitHub issue, but I’ll cross-post here as well:

Nerves is not based off any Linux distribution. It is only the Linux kernel and so the Linux source by version would be the place to look for information. It uses Buildroot and cross-compilation to build an embedded linux system that runs the BEAM.

Each nerves_system_* would handle anything extra past that independently (such as device trees for specific hardware pinouts, integrated chips, etc). For example, nerves_system_bbb uses a set of patches and options for the Linux kernel maintained by Robert Nelson to support the BeagleBone setup. Similarly, nerves_system_rpi* systems use a stripped down version of the Raspberry PI Linux Kernel, but not the Raspberry OS distro

But, that is not required. A user could simply use a specified Linux kernel version with all the basic options to just get an image installed to a device (in fact, this is what nerves_system_x86_64 does). A no-option, base image gets you booted to IEx, but the user/maintainer of the system would need to figure out what is needed for that particular target hardware to enable things like GPIO pins, integrated WiFi device, etc.

Also, Linux kernel versions for each system are provided in Systems > Compatibility section and linked to the system’s hex version to quickly get a sense of what you’re working with in a particular system