{"id":18478361,"url":"https://github.com/blitz/bender","last_synced_at":"2025-07-09T17:35:41.061Z","repository":{"id":41399069,"uuid":"227400208","full_name":"blitz/bender","owner":"blitz","description":"A multiboot chainloader that makes PCI serial cards available for legacy use","archived":false,"fork":false,"pushed_at":"2023-07-14T22:16:37.000Z","size":491,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-08T15:47:15.985Z","etag":null,"topics":["multiboot","serial","x86"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blitz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-11T15:37:51.000Z","updated_at":"2024-09-01T14:40:37.000Z","dependencies_parsed_at":"2025-04-08T15:46:44.143Z","dependency_job_id":null,"html_url":"https://github.com/blitz/bender","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/blitz/bender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitz%2Fbender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitz%2Fbender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitz%2Fbender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitz%2Fbender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blitz","download_url":"https://codeload.github.com/blitz/bender/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blitz%2Fbender/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264502279,"owners_count":23618567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["multiboot","serial","x86"],"created_at":"2024-11-06T12:09:49.467Z","updated_at":"2025-07-09T17:35:39.951Z","avatar_url":"https://github.com/blitz.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bender\n\n![GitHub](https://img.shields.io/github/license/blitz/bender)\n\nBender is a\n[Multiboot](https://www.gnu.org/software/grub/manual/multiboot/multiboot.html)\nchainloader intended to be loaded from Grub or a similar\nmultiboot-capable boot loader. It tries to find PCI serial controllers\nand updates the [BIOS Data\nArea](https://wiki.osdev.org/BDA#BIOS_Data_Area_.28BDA.29) to make\nthem discoverable by legacy software.\n\nAdditionally, bender will move modules to a higher location in\nphysical memory to avoid clashes when ELFs are unpacked.\n\n## Building with Nix (Recommended)\n\nGet [Nix](https://nixos.org/nix/) and type:\n\n```sh\n% nix-build\n```\n\nYou can find `bender` in `result/`.\n\nIf you have a [Flakes-enabled Nix](https://nixos.wiki/wiki/Flakes),\ntry out `nix build` to build bender and `nix flake check` to run its\ntests.\n\n## Building without Nix\n\nBe sure to have [CMake](https://cmake.org/install/) and a C toolchain\ninstalled. Afterwards, you can build the source code via:\n\n```sh\n% mkdir -p build\n% cd build\n% cmake ..\n% make\n```\n\nYou will find `bender` in `standalone/` in your build directory.\n\n# Usage\n\nCheck the documentation of your Multiboot-capable boot loader to see\nhow Bender is booted. Bender will discover serial ports and then boot\nthe next boot module as Multiboot2 or Multiboot1 kernel depending on\nwhat it supports.\n\n## Parameters\n\nBender supports the following command-line parameters:\n\n- `promisc`: Be more forgiving which PCI serial controller to\n  accept. Specifically, this makes Bender claim any PCI device with\n  \"Simple Communication Controller\" PCI class and not only those\n  claiming to be a legacy serial controller. This is typically needed\n  for some multiport PCI serial adapters.\n- `accept_legacy`: Don't claim a PCI serial controller, if the BIOS\n  already indicates that there is a legacy serial controller\n  available.\n- `phys_max=256M` (literally only that specific string): Prevent\n  bender from relocating modules past 256M in the physical address\n  space.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblitz%2Fbender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblitz%2Fbender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblitz%2Fbender/lists"}