[Buildroot] [PATCH 00/10 v2] Enable a buildroot-based petitboot bootloader
Jeremy Kerr
jk at ozlabs.org
Wed Mar 12 03:45:57 UTC 2014
Hi all,
The following series allows us to build a petitboot-based bootloader
using buildroot.
Petitboot is a kexec-based bootloader; by plumbing together a few linux
utilities, we can implement a bootloader in userspace, using standard
Linux drivers for hardware support. There's a bit of background of
petitboot in my recent linux.conf.au talk:
http://mirror.linux.org.au/linux.conf.au/2014/Thursday/89-Petitboot_doing_interesting_things_in_your_bootloader_-_Jeremy_Kerr.mp4
And the project homepage:
https://www.kernel.org/pub/linux/kernel/people/geoff/petitboot/petitboot.html
My primary target here is powerpc machines (and this series adds a
defconfig to do a powerpc petitboot build), but I've also been able to
get most of petitboot working when built as an EFI stub on x86 machines
(we still need some platform-specific bits in petitboot for proper
configuration persistence).
While most of this series is fairly straightforward, there are a few
items that might need a little more attention:
- At the moment, I'm using my local repo for petitboot sources; it may
be better to wait until everything is merged upstream. Upstream is
still active, and I don't think this should take long.
- We add wide-char support for ncurses; this seems to be working okay,
but could do with a little review.
- I still need a couple of tweaks to the target system (/etc/locale and
/etc/inittab). At the moment, I'm carrying a change that introduces
an overlay for these two files, but that's not suitable for upstream
use:
http://git.ozlabs.org/?p=buildroot;a=commitdiff;h=d50bd74b
Is there any way I can provide updates to these files? The changes
aren't board-specific; they're due to petitboot expecting to own
the default consoles for UIs. Or is there a better way to do this?
This series is also available in my git tree, at:
git://git.ozlabs.org/~jk/buildroot/
- in the petitboot branch. Note that that branch includes the overlay
too, which isn't intended for upstream.
Also, I'd like to give a big thanks to the buildroot developers; being
able to re-roll an entire system with one command has made petitboot
development *significantly* easier. Also, thanks to Thomas for the nudge
to send these changes upstream!
Please let me know if you have questions/comments/etc.
Changes since v1, based on feedback:
- drobbear: we only want a config option to disable the server,
instead of both client and server
- ncurses: use NCURSES_LIBS-y
- busybox: fix HOOK_DIR glob expansion
- powerpc-utils, kexec-lite, petitboot: update upstream versions
- petitboot: add dependencies
- all: unified headers, now using full git SHAs
- dtc: Added patch to update to 1.4.0
Cheers,
Jeremy
---
Jeremy Kerr (10):
package/busybox: Add facility for DHCP hooks
package/dropbear: Add separate configuration option for dropbear server
package/ncurses: Remove duplicated library install code
package/ncurses: Allow building wide char support
package/dtc: Update to v1.4.0
package/powerpc-utils: Add powerpc hardware utilities
package/kexec-lite: Add a package for the kexec-lite tools
package/petitboot: Add petitboot, the userspace bootloader
package/iprutils: Add IBM Power RAID utilities
Add powerpc petitboot defconfig
More information about the buildroot
mailing list