Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blitz/bender
A multiboot chainloader that makes PCI serial cards available for legacy use
https://github.com/blitz/bender
multiboot serial x86
Last synced: 1 day ago
JSON representation
A multiboot chainloader that makes PCI serial cards available for legacy use
- Host: GitHub
- URL: https://github.com/blitz/bender
- Owner: blitz
- License: gpl-2.0
- Created: 2019-12-11T15:37:51.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-14T22:16:37.000Z (over 1 year ago)
- Last Synced: 2023-07-14T23:24:41.618Z (over 1 year ago)
- Topics: multiboot, serial, x86
- Language: C
- Size: 479 KB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bender
![GitHub](https://img.shields.io/github/license/blitz/bender)
Bender is a
[Multiboot](https://www.gnu.org/software/grub/manual/multiboot/multiboot.html)
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](https://wiki.osdev.org/BDA#BIOS_Data_Area_.28BDA.29) 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](https://nixos.org/nix/) and type:
```sh
% nix-build
```You can find `bender` in `result/`.
If you have a [Flakes-enabled Nix](https://nixos.wiki/wiki/Flakes),
try out `nix build` to build bender and `nix flake check` to run its
tests.## Building without Nix
Be sure to have [CMake](https://cmake.org/install/) and a C toolchain
installed. Afterwards, you can build the source code via:```sh
% 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.