The JACAL Project is a suite of programs, scripts, guidelines, protocols, documentation, and diskettes that assist in quick, network based loads/builds of machines. It has been used to build 70 University lab machines from scratch (No OS) in two hours. This includes NT service packs and 80+ applications on the NT side.
Multicast BOOTP Java server and C/Linux client's goal is to implement the BOOTP/DHCP protocol through multicast rather than broadcast. Sun's Java networking API offers multicast socket communication objects, allowing you to create a platform independent IP interface configuration utility. Eventually, such utilities may become a fully featured multicast DHCP server. Any ideas on how to support existing BOOTP broadcast client requests are welcome. See the Multicast HOWTO at http://www.linuxdoc.org/HOWTO/Multicast- HOWTO.html.
hprofile is a simple way to manage profiles for hardware configurations, network connections, power management, usage patterns, and many other things. A profile can define alternate versions of any configuration (or other) file, anywhere in the file system, and arbitrary scripts can be run when profiles are started or stopped (e.g. to configure hardware or start/stop services). Special support is also included for 'boot' profiles, allowing you to select profiles at startup and enter different runlevels depending on which profile was selected. It's easy to use and configure, and comes with comprehensive documentation.
ethwireck can detect if the physical layer of the Ethernet is up. Laptops which use dynamic IP address assignment via DHCP have the problem that the boot process is much longer when no wire is connected to the Ethernet card. This is because the startup scripts have to wait for the DHCP request to time out. ethwireck can be used in the init script for your network card to determine whether or not an interface should be brought up. In other words, a timeout is avoided.
Sysinit is a system-initialization scheme for use with Linux and a daemon-management scheme for use with runit or daemontools. It provides a common interface to all functionality, and uses envdirs instead of sourced shell scripts or custom configuration files. It does error handling, handles dependencies gracefully and simply, and handles runlevels.
waitfordevice is a tool that waits for a device to become available. One can use this, for example, when waiting for a USB device to be fully ready after modprobing the USB subsystem (which runs async). This tool can be used in startup scripts or other scripts that need to use a device. It is better guaranteed to work (and more efficient) than using a couple of sleep statements.