I have a small lab (literally) of 3 RBP-3B units with SATA and SD drives attached running Ubuntu 16.04 LTS. I have installed software on them to create a Ceph cluster but its tricky and pretty fragile.

RP3B Ceph Cluster

Ultimately I would like to administer this "Worlds Smallest Cloud Storage Cluster" concept with Juju and make it the storage backend for an Intel NUC vBlock I won from the OSIC contest at the Openstack summit. Unfortunately I cant find a way to PXE boot the Raspberry Pi 3B, and chip support for this feature is on the horizon but currently not present.

I want to use MaaS to bootstrap the OS and feed these little guys into Juju deployments since its so easy from there to manage everything, but I am having trouble finding a working solution. I know that Juju can add machines after the OS is installed but its not apparent how to do that either, and if I set Juju up to use existing machines I don't know if I can still point it to MaaS controlled systems as well to create a heterogenous mix of gear without breaking functionality.

Any thoughts?

  • This isn't exactly using MAAS but it may be of interest: blog.dasroot.net/… May 24, 2016 at 16:26
  • Just imagine what you could do in home and facilities automation if this worked. The next step would be a POE option for the Pi and soon they would be literally everywhere...
    – spyderdyne
    May 24, 2016 at 16:32
  • I have found the Pi POE Hat at MCM Electronics for $36.99 USD (more than the Pi 3 itself) to handle the POE function after failing to find a way to create a PCB in Autodesk circuits.io and failing to find a way to create a solder pad in Eagle PCB for the Silvertel AG9805M POE module. They are pricey but available for testing: mcmelectronics.com/product/83-17278
    – spyderdyne
    Oct 18, 2016 at 16:49
  • 2
    The day has come raspberrypi.org/blog/… And it says I need more characters so here they are. Jul 30, 2017 at 13:57
  • This should work with Pi3 versions, the documentation is on the official blog. raspberrypi.org/blog/…
    – linux64kb
    Apr 24, 2018 at 19:23

3 Answers 3


While you may not be able to PXE boot via MAAS on the RPi3, juju supports manual provisioning including the bootstrap node -


juju add-machine ssh:[email protected]

With this you can allow juju to provision them into the environment via SSH.


EDIT: I was able to get to the rpi_3_config part, but the next command gave an error.

EDIT #2: I am now able to compile u-boot successfully from the official u-boot git repo

EDIT #3: So far it looks successful with it's booting. Can't test it right now, but I will try with MaaS later!

While you might not be able to PXE boot a Raspberry Pi 3 without an SD Card just yet, you can get part of the way there with u-boot loaded on the sdcard, set to PXE boot from the network.

Unfortunately, I have been in exactly your situation, trying to PXE boot raspberry pies for MaaS, however I got a little stuck when the pi came to actually boot. I was able to get as far as it getting an address via DHCP, however when it came to parsing the pxelinux file it hit some sort of error.

Just in case you can have more luck with your raspberry pies, and keeping in mind that I was doing this ages ago before the Pi 3 was released, I shall briefly outline the steps which I took to get to that stage, although I can't help you further.

  1. git clone git://git.denx.de/u-boot.git && cd u-boot
  2. git checkout rpi_dev
  3. At this point, I made a simple edit to the config file for the raspberry pi board to automatically initialize usb devices on boot, however it looks like the appropriate #DEFINE statement has already been added since.
  4. You need to now get hold of a cross compiler for the raspberry pi. The simplest way to do this is to go here on the raspberry pi website and follow the steps under INSTALL TOOLCHAIN, for your version of pi. Remember to add the path entries, which are only needed for the next step, so an export will suffice.
  5. Go into the root of the u-boot git repo, and run the following, with make installed: make CROSS_COMPILER=arm-linux-gnueabi- rpi_3_config and then to actually build: make CROSS_COMPILER=arm-linux-gnueabi-
  6. You should now have an u-boot.bin file in your current directory.
  7. wget https://raw.githubusercontent.com/raspberrypi/linux/rpi-4.4.y/scripts/mkknlimg
  8. ./mkknlimg --dtok u-boot.bin kernel7.img
  9. Copy kernel7.img to your sdcard

Best of luck, and if you do succeed, make sure to post your own answer stating exactly what you did, and accept it.


berryboot will let you do network booting but its not real PXE http://www.berryterminal.com/doku.php/berryboot

  • Berryboot doesn't solve the PXE problem. I need something that MaaS can install and manage.
    – spyderdyne
    May 31, 2016 at 16:20
  • 1
    That's all you get until the pi makers release the PXE firmware mods
    – Amias
    May 31, 2016 at 17:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .