Go back --> [wiki:Documentation] --> [wiki:Documentation/orbit-pxe Orbit-PXE] --> [wiki:Documentation/orbit-pxe/specs Orbit-PXE specs] == Orbit-PXE-3 Specifications == 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 [http://buildroot.uclibc.org/ buildroot] = This will move us to [http://uclibc.org/ 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: http://bugs.uclibc.org/view.php?id=1319 = 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, image the node and inventory. A simple C nodeagent with uClibc would save us a lot of space. = Adopt kexec = 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\Command''||''ImageNode''||''SaveNode''|| ||'''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: {{{ 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 }}}