Git Product home page Git Product logo

bender's Introduction

Bender

GitHub

Bender is a Multiboot chainloader intended to be loaded from Grub or a similar multiboot-capable boot loader. It tries to find PCI serial controllers and updates the BIOS Data Area to make them discoverable by legacy software.

Additionally, bender will move modules to a higher location in physical memory to avoid clashes when ELFs are unpacked.

Building with Nix (Recommended)

Get Nix and type:

% nix-build

You can find bender in result/.

If you have a Flakes-enabled Nix, try out nix build to build bender and nix flake check to run its tests.

Building without Nix

Be sure to have CMake and a C toolchain installed. Afterwards, you can build the source code via:

% mkdir -p build
% cd build
% cmake ..
% make

You will find bender in standalone/ in your build directory.

Usage

Check the documentation of your Multiboot-capable boot loader to see how Bender is booted. Bender will discover serial ports and then boot the next boot module as Multiboot2 or Multiboot1 kernel depending on what it supports.

Parameters

Bender supports the following command-line parameters:

  • promisc: Be more forgiving which PCI serial controller to accept. Specifically, this makes Bender claim any PCI device with "Simple Communication Controller" PCI class and not only those claiming to be a legacy serial controller. This is typically needed for some multiport PCI serial adapters.
  • accept_legacy: Don't claim a PCI serial controller, if the BIOS already indicates that there is a legacy serial controller available.
  • phys_max=256M (literally only that specific string): Prevent bender from relocating modules past 256M in the physical address space.

bender's People

Contributors

alex-ab avatar blitz avatar chelmuth avatar cproc avatar hivebeats avatar parthy avatar tfc avatar wentasah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

parthy yiluoe

bender's Issues

Pass ACPI Information in MBI2 Boot Info

Bender should include the RSDP pointer when booting MBI2 kernels. This currently blocks adoption in one user and was exposed when MBI1 kernels were now booted as MBI2.

Will Bender now boot x84_64 NOVA ELF?

Hi Julian,

I'm trying to update NOVA with a 64 bit compile and in my last attempts ( a while back) it had to be converted:

for the 64-bit NOVA version, the ELF binary needs to be converted to a 32-bit
binary for it to be loadable by the bender version you are using:

objcopy -SO elf32-i386 hypervisor hypervisor.elf32

I want to find the best way to upgrade either using a latest Bender or some other bootloader to boot the native NOVA 64-bit elf.

Any ideas?

Add clang-format CI check

The CI should check a coherent style for bender. The default clang-format style works well and I would propose adopting it.

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.