Targets

Nerves provides support for a set of common Targets. Each Target is referenced with a unique tag name. These tags are used when choosing which System and Toolchain to compile with. It is important to note that a single tag may offer support for more than one board.

Supported Targets and Systems

TargetSystemTag
Raspberry Pi A+, B, B+nerves_system_rpirpi
Raspberry Pi Zero and Zero Wnerves_system_rpi0rpi0
Raspberry Pi 2nerves_system_rpi2rpi2
Raspberry Pi 3nerves_system_rpi3rpi3
BeagleBone Blacknerves_system_bbbbbb
Alixnerves_system_alixalix
AG150nerves_system_ag150ag150
Intel Galileo 2nerves_system_galileogalileo
Lego EV3nerves_system_ev3ev3
Linkit Smart 7688 (and Duo)nerves_system_linkitlinkit
QEmu Armnerves_system_qemu_armqemu_arm

Supporting New Target Hardware

If you’re trying to support a new Target, there may be quite a bit more work involved, depending on how mature the support for that hardware is in the Buildroot community. If you’re not familiar with Buildroot, you should learn about that first, using the excellent training materials on their website.

If you can find an existing Buildroot configuration for your intended hardware and you want to get it working with Nerves, you will need to make a custom System as follows:

  1. Follow their procedure and confirm your target boots (independent of Nerves).

  2. Figure out how to get everything working with the version of Buildroot Nerves uses. See the NERVES_BR_VERSION variable in create-build.sh.

    • Look for packages and board configs can need to be copied into your System.
    • Look for patches to existing packages that are needed.
  3. Create a defconfig that mimics the one from step 1, and get nerves_system_br to build it. See the section in the System documentation about customizing Nerves Systems.

NOTE: You probably want to disable any userland packages that may be included by default to avoid distraction.