I'm pleased to announce an updated build of raspberian-firstboot based on the latest Raspberry Pi OS release (8/20/2020).

I created this solution to scratch a personal itch, so it's exciting to see the community of users and contributors continue to grow. The raspberian-firstboot image is being used to deploy home media centers, industrial process monitors, and a fleet of sensor hubs at a university lab.

A lightly modified Raspbian-light image supporting first boot customization. - nmcclain/raspberian-firstboot

It's a simple, open source improvement on the base Raspberry Pi OS image:

The standard Raspbian-lite image allows you to customize the wireless settings and enable SSHd before flashing it to an SD card. Unfortunately, there is no way to further customize the OS during the first boot, nothing like cloud-init or userdata. Without a display and keyboard, complex "headless" deployments are impossible.

Important Changes

Since the 2020-02-13 raspberian-firstboot release, there have only been a few notable changes to the lite OS:

  • The name changed from raspberian to Raspberry Pi OS for political reasons. This is a good example of resolving an open source branding issue, and an excellent example to the larger community.
  • Internal audio outputs enabled as separate ALSA devices
  • Updated udev to add pwm to gpio group
  • i2cprobe: More flexible I2C/SPI alias mapping
  • Disk ID is now regenerated on first boot
  • More raspi-config control over boot device and EEPROM version
  • Updated Raspberry Pi firmware
  • Linux kernel 4.19.97 -> Linux kernel 5.4.51

Note that all of these improvements are thanks to the official Raspberry Pi OS release. The raspberian-firstboot image sprinkles a little sugar on top: a simple systemd script to run firstboot.sh on the initial startup.


This "firstboot" solution provides convenient dynamic fleet deployment for those comfortable with Linux who can customize their images. If you are looking for a turnkey, robust, enterprise-friendly fleet management platform, check out Balena.io. Balena offers custom images, web and API-based centralized management, and remote console access to your devices. I have no affiliation - just a fan of their technology.

Looking Forward

In the long term, I'll be excited to see this open source project die. In an ideal world, Raspberry Pi OS would provide a native solution for flexible on-deployment configuration of new nodes. I suspect they could find a more robust solution than the firstboot.sh bash script.

In the short term, I'd love to hear from more community members! I'm happy to tackle bug fixes and new features, but I especially enjoy hearing how you are operating your fleet of edge devices. Please let me know if I can help!

I'm focused where software, infrastructure, and data meets security, operations, and performance. Follow or DM me on twitter at @nedmcclain.

Raspberry Pi is a trademark of the Raspberry Pi Foundation, with which I am in no way affiliated.