Coder Social home page Coder Social logo

petitboot_for_coreboot's Introduction

Petitboot for coreboot

About petitboot

Petitboot is a platform independent bootloader based on the Linux kexec warm reboot mechanism.Petitboot supports loading kernel, initrd and device tree files from any Linux mountable filesystem, plus can load files from the network using the FTP, SFTP, TFTP, NFS, HTTP and HTTPS protocols. Petitboot can boot any operating system that includes kexec boot support.

Petitboot includes graphical and command line user interface programs. The command line programs can be used to boot the system remotely via telnet or ssh sessions. Multiple user interface programs can run simultaneously.

Petitboot is licensed under the GPLv2.

See Petitboot website for more information.

About petitboot for coreboot

This builds a bzImage with a linked initramfs that contains petitboot. Currently, the kernel is trimmed down to fit in a the 8MB of a thinkpad x200, while maintaining essential functionality. This is done using an industry standard tool for building embedded linux distributions, buildroot.

It is inspired by the op-build package which builds openpower boot firmware, also containing petitboot

How to build

First get buildroot:

git submodule update --init

Then source petitboot-env

source petitboot-env

Configure and let buildroot do its thing

cd buildroot
make petitboot_defconfig
make

The resulting bzImage will be in output/image/bzImage

How to integrate with coreboot

The simplest way is it add it as img/petitboot and load it from SeaBIOS. That way you have a fallback mechanism in case something is wrong with petitboot.

cbfstool coreboot.rom add-payload -f bzImage -n img/petitboot -C [command line arguments]

Another way is to use linux as a payload in coreboot.

Known problems

You can sometimes only see a part of the petitboot tui. Hitting CTRL + l to clear the screen fixes this. Adding console=ttyS1 to the linux command line arguments also fixes this problem, by having the boot messages on a different, unused console.

Customize buildroot, linux

To customize buildroot, run in the petitboot_for_coreboot directory:

make -C buildroot/ menuconfig

To customize linux, run:

make -C buildroot/ linux-menuconfig

petitboot_for_coreboot's People

Contributors

arthurheymans avatar mytbk avatar

Watchers

James Cloos avatar Paul Menzel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.