Provisioning Raspberry Pis with FOG
-
@george1421 Yep - but you have to do a little reconfiguration.
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net.md
The process of making a Pi bootable via network is well documentated.
I’m using a Raspberry Pi 3 Model B.
-
@dantehaversham ah, just looked it up as well. it’s model pi 3 only. looks like i need to buy some more pi lol
-
@junkhacker yes - with model 3 it’s possible without having a sd-card in use.
-
@dantehaversham just read some of the documentation on network booting the pi. it should be possible to get this working with fog, actually. with exceptions. it would be able to push images down, but without the finesse that we do on PCs. the ipxe menu systems and dynamic configuration parts wouldn’t work.
-
@dantehaversham OK now that we know the Pi3 can pxe boot. What I want you to do is this.
- Manually register the hardware mac of the network adapter.
- Schedule a debug deploy or capture task. It doesn’t matter which because we are going into debug mode. When you schedule the task be sure to check the debug check box.
- PXE boot the Pi3.
- After a few key presses on the pi’s keyboard you will be dropped to a linux command prompt.
- At the linux command prompt we need to collect a few bits of into.
Data to collect
ip addr show
ensure the Pi is getting an IP address in FOSlsblk
collect what FOS sees for disks
-
I think all the PXE binaries and FOS need compiled for ARM for this to work??
-
@wayne-workman Ugh, good point. I was only thinking ia86 compatible.
-
@george1421 Right, and then there’s the problem of DHCP giving out the right binary, and that binary requesting the right kernel and init.
-
further reading on the new network boot option for the raspberry pi 3 makes me think that it can not be easily made to work with fog. Broadcom is not releasing the source for the network boot files.
-
@junkhacker said in Provisioning Raspberry Pis with FOG:
Broadcom is not releasing the source for the network boot files.
Broadcom just lost brownie points in the open-source world…
-
@junkhacker Other issues as Wayne pointed out. The Pi is an ARM processor.
[enable brain storming mode]
So the ipxe files need to be recompiled for ARM (cortex) processors. From what I found there are ARM compatible iPXE boot files. The developers would need to cross compile the iPXE boot files to include the FOG scripts into ARM version of iPXE.Also FOS is currently based on IA86 arch, meaning FOS (bzImage) and init.zx need to be cross compiled for ARM. I’ve done a little work with buildroot (used to create FOS) and buildroot does support cross compiling for Cortex processors.
So technically its possible to have FOG deploy to raspberry pi systems. The last bit we would have to deal with is the motivation of the developers to go down this path. (not speaking for the developers, only my opinion) I’m not seeing the “market share” of deployments required to go down this path. I really see this as a one off solution, were there are other documented and proven ways to deploy to the Pis. I do agree that it would be a really neat feature to add, but again not as a focus for the developers. There are enough issues with new “bleeding-edge” IA86 compatible systems coming out to keep them very busy as it were.
[disable brain storming mode] -
@george1421 said in Provisioning Raspberry Pis with FOG:
were there are other documented and proven ways to deploy to the Pis.
We have ARM devices we use embedded linux on at work, they have multiple block devices in them (one could substitute with a permanent USB Flash on a Pi). We instruct the devices what block device to boot from. When we want to image, we boot to a special block device that has everything we need to image the other local block device.
So, one might say that my current job could possibly use FOG to image ARM devices. But we already have a successful strategy for doing this now.
-
here is some one that pxe booted the pi or some thing like pxe
https://blog.mythic-beasts.com/2016/08/05/sneak-preview-from-mythic-labs-raspberry-pi-netboot/