# nerves v2.0.0-pre.2 - Table of Contents > Craft and deploy bulletproof embedded software ## GUIDES - [Changelog](changelog.md) - Introduction - [Getting Started](getting-started.md) - [Installation](installation.md) - [Using Nerves](using-nerves.md) - Core - [Connecting to a Nerves Target](connecting-to-a-nerves-target.md) - [Frequently Asked Questions](faq.md) - [Hardware Interfaces](hardware-interfaces.md) - [IEx with Nerves](iex-with-nerves.md) - [Supported Targets](supported-targets.md) - [User Interfaces](user-interfaces.md) - Advanced - [Advanced Configuration](advanced-configuration.md) - [Building Nerves Systems using nerves_systems repository](building-systems.md) - [Compiling Non-BEAM Code](compiling-non-beam-code.md) - [Customizing Your Nerves System](customizing-systems.md) - [Environment variables](environment-variables.md) - [Experimental features](experimental-features.md) - [Nerves Internals](internals.md) - [porting-guide](porting-guide.md) - [Systems](systems.md) - [Updating Projects](updating-projects.md) - Cheatsheets - [Nerves basics](basics.md) ## Modules - [Nerves](Nerves.md): Nerves tooling for building embedded Elixir - [Nerves.BinInfo](Nerves.BinInfo.md): Parse executable binaries and return architecture and other info - [Nerves.BuildAction](Nerves.BuildAction.md): Behaviour for all functionality in the Nerves firmware build process - [Nerves.BuildAction.AppModes](Nerves.BuildAction.AppModes.md): Change most OTP application modes from `:permanent` to avoid reboot on crash - [Nerves.BuildAction.BootOrder](Nerves.BuildAction.BootOrder.md): Sorts tar entries to optimize boot performance. - [Nerves.BuildAction.CheckExecutables](Nerves.BuildAction.CheckExecutables.md): Verify all executables were built for the right architecture - [Nerves.BuildAction.Erlinit](Nerves.BuildAction.Erlinit.md): Build action for generating `erlinit.config` - [Nerves.BuildAction.Firmware](Nerves.BuildAction.Firmware.md): Release step that creates the firmware image. - [Nerves.BuildAction.IExStartupCheck](Nerves.BuildAction.IExStartupCheck.md): Validate IEx startup flags in `rel/vm.args.eex`. - [Nerves.BuildAction.Rootfs](Nerves.BuildAction.Rootfs.md): Release step that builds the root filesystem image. - [Nerves.BuildAction.SortApps](Nerves.BuildAction.SortApps.md): Deterministically order OTP applications in the release boot script - [Nerves.BuildAction.StripAll](Nerves.BuildAction.StripAll.md): Release step that strips debug information out of release binaries - [Nerves.BuildAction.Trimmer](Nerves.BuildAction.Trimmer.md): Release step that trims out unneeded files in the release - [Nerves.BuildPlan](Nerves.BuildPlan.md): Nerves firmware build plan - [Nerves.Container](Nerves.Container.md): Helpers for managing containers - [Nerves.Release](Nerves.Release.md): Nerves 1.x mix release integration - [Nerves.Tar.Entry](Nerves.Tar.Entry.md): Represents a single entry in a tar archive - [Nerves.Tar.FSReader](Nerves.Tar.FSReader.md): Scan a local directory into a list of `Nerves.Tar.Entry` structs - [Nerves.Tar.Reader](Nerves.Tar.Reader.md): Read tar archives into a list of `Nerves.Tar.Entry` structs - [Nerves.Tar.Writer](Nerves.Tar.Writer.md): Write a list of `Nerves.Tar.Entry` structs to a tar archive - [Nerves.TargetTuple](Nerves.TargetTuple.md): Utilities for figuring out compilation target tuples - [Nerves.WSL](Nerves.WSL.md): This module contains utility functions to assist in detecting a Windows Subsystem for Linux environment as well as functions to convert paths between the Windows host and Linux. - Exceptions - [Nerves.InvalidPlan](Nerves.InvalidPlan.md) ## Mix Tasks - [mix burn](Mix.Tasks.Burn.md): Writes the generated firmware image to an attached SDCard or file. - [mix compile.nerves_package](Mix.Tasks.Compile.NervesPackage.md): No-op compiler that satisfies old Nerves packages which include `:nerves_package` in their `compilers` list. - [mix firmware](Mix.Tasks.Firmware.md): Build a firmware image for the selected target platform. - [mix firmware.burn](Mix.Tasks.Firmware.Burn.md): This task calls `mix firmware` & `mix burn` to burn a new firmware to a SDCard - [mix firmware.image](Mix.Tasks.Firmware.Image.md): Create a firmware image file that can be copied byte-for-byte to an SDCard or other memory device. - [mix firmware.metadata](Mix.Tasks.Firmware.Metadata.md): This task calls `fwup` to report the firmware stored in the currently built firmware bundle. No firmware is built, so this task will fail if the firmware bundle doesn't exist. - [mix firmware.unpack](Mix.Tasks.Firmware.Unpack.md): Unpack the firmware so that its contents can be inspected locally. - [mix nerves.artifact.build](Mix.Tasks.Nerves.Artifact.Build.md): Build a Nerves artifact in a container - [mix nerves.artifact.clean](Mix.Tasks.Nerves.Artifact.Clean.md): Clean the build directory for a Nerves artifact - [mix nerves.artifact.details](Mix.Tasks.Nerves.Artifact.Details.md): Print artifact details for all Nerves packages in the project's dependencies. - [mix nerves.artifact.get](Mix.Tasks.Nerves.Artifact.Get.md): Downloads prebuilt Nerves package artifacts - [mix nerves.artifact.ls](Mix.Tasks.Nerves.Artifact.Ls.md): List cached Nerves artifacts, downloaded archives, and container build volumes. - [mix nerves.artifact.purge](Mix.Tasks.Nerves.Artifact.Purge.md): Delete Nerves artifact files and container build volumes - [mix nerves.artifact.shell](Mix.Tasks.Nerves.Artifact.Shell.md): Open an interactive container shell for building Nerves packages - [mix nerves.discover](Mix.Tasks.Nerves.Discover.md): Discover Nerves devices on the local network using mDNS - [mix nerves.info](Mix.Tasks.Nerves.Info.md): Prints Nerves system information.