defmodule Nerves.InitGadget do @moduledoc """ `nerves_init_gadget` adds a basic level of setup for Nerves devices with USB gadget mode interfaces like the Raspberry Pi Zero. Here are some features: * Automatically sets up link-local networking on the USB interface. No DHCP or static IP setup is needed on the host laptop * Sets up mDNS to respond to lookups for `nerves.local` * Pulls in the `nerves_runtime` initialization for things like mounting and fixing the application filesystem * Starts `nerves_firmware_ssh` so that firmware push updates work * If used with [shoehorn](https://github.com/nerves-project/shoehorn), crashes in your application's initialization won't break firmware updates While you'll probably want to create your own device initialization project at some point, this project serves as a great starting point, especially if you're new to Nerves. All configuration is handled at compile-time, so there's not an API. See the `README.md` for installation and use instructions. """ end