Hi all, Linux::Bootloader is a new component we've developed for automated test systems, that provides a generic interface for updating bootloader config files. Supported bootloaders include grub, lilo, yaboot, and elilo. This release is for preview purposes. We provide a unit test and would appreciate detailed bug reports on any systems this fails on. http://sourceforge.net/project/showfiles.php?group_id=47517&package_id=189767 Main Features ------------- * Detects installed bootloaders by scanning the Master Boot Record (MBR). Most other tools simply look for an /etc/lilo.conf, etc. * Handles default, fallback, and boot-once options in bootloaders that support them. * Allows adding, removing, and viewing bootloader entries by position or label. * When writing config file, only makes modifications to the section modified. Does not reformat or re-interpret other sections. * Displays summary info about the config in a bootloader-neutral fashion. Background ---------- Automated kernel testing systems must have a way to boot to new kernels. This is typically done through use of a bootloader, involving adding, removing, or modifying an entry in the bootloader's config file. Several of us at OSDL are working on test harnesses and have this same need. We decided to pool efforts and develop this module that we can share between our harnesses. Jason Neighbors, Jake Norman, myself, Judith Lebzelter, and Leann Ogasawara each contributed to the design and development of it. There are many tools for interacting with bootloaders, including grubby, systemconfigurator, and others. Indeed, our initial plan was to simply modify one of these existing systems. Systemconfigurator is a perl program that only does very basic bootloader modification; it simply overwrites the config file. Grubby is a C program specific to RedHat, and was found to have a lot of redhat-specific assumptions built in. Other tools are limited in scope, or make assumptions that limit them to specific usage scenarios. For example, each Linux distribution has their own tool for updating the bootloaders, but unfortunately these tend to be distro-specific and often are only usable during initial install. With Linux::Bootloader, we are creating a general purpose utility and set of reusable Perl modules for interacting with bootloaders. This may provide useful both to other test harness developers, and potentially to Linux distributions that might wish a more general purpose solution. Future ------ Our initial objectives involve getting the core functionality tested on all four supported bootloaders. The boot-once capability will be our principle focus subsequently. Questions, bug reports, and suggestions regarding the current functionality can be sent to crucible-devel@xxxxxxxxxxxxxxxxxxxxx or to me directly. We would love to receive patches to help make this more suitable for your needs. We would gladly accept patches and testing for bootloaders beyond these four. Bryce