Orbit-PXE-3 does not exist yet but here we can list goals for this series. Here's a few things to aim for 3-series:
Move to buildroot
This will move us to uClibc and incorporate current external debian package dependencies into the buildroot system. The biggest blocker to moving to buildroot right now is nodeagent and its dependency on ruby. Buildroot supports ruby but there is a bug with building ruby at the moment:
Part of the effort of adopting buildroot will then be to integrate frisbee, imagezip, getmac and any other utility which others can make use of as part of buildroot upstream.
Move nodeagent to standalone C application
We need a simple nodeagent for Orbit-PXE, all the features we need are the ability to save the image and image the node (inventory will be done with the baseline). A simple C nodeagent with uClibc would save us a lot of space.
There is no need for reboots with kexec. We have been supporting kexec in our kernels since Orbit-PXE-1 series. We now have to get nodeagent to support its use and stop rebooting. This should increase the time it takes to image a node and load it considerably. To analyze how we can use kexec we need to consider each separate state a node can be in and what we will do for each command that needs to be processed.
|Node is OFF||Load Orbit-PXE, image, kexec||Load Obit-PXE, saveNode|
|Node is ON||Wget Orbit-PXE, kexec to it, imageNode||Wget Orbit-PXE, kexec to it, saveNode|
Here's an example of how to use kexec:
wget kernel and initramfs cpio archive if necessary telinit 1 kexec -l /mnt/boot/vmlinuz-2.6.18-3-686 --append="root=0x0301 ro console=ttyS0,9600" --initrd=/mnt/boot/initrd.img-2.6.18-3-686 kexec -e
Please note that root=0x0301 is needed as we have removed syfs on Orbit-PXE-2 series. the 0x0301 represents the major and minor number of the block device.
brw-rw---- 1 root disk 3, 0 Apr 2 13:24 /dev/hda
If using another device as root change the value accordingly.