Skip to content

BareMetalRouterOS (BMROS) is a pure Linux router designed for x86-64 architecture built in YOCTO, offering a robust networking solution. Utilizing the power of the Yocto Project and the RouterShell CLI, BMR provides a customizable and efficient routing platform.

License

Notifications You must be signed in to change notification settings

mgarcia01752/BareMetalRouterOS

Repository files navigation

BareMetalRouterOS (WORK IN PROGRESS)

The Bare Metal Router OS (BMROS) is a pure Linux router designed for x86-64 architecture, offering a robust networking solution. Utilizing the power of the Yocto Project and the RouterShell command-line interface (CLI), BMROS provides a customizable and efficient routing platform.

Features

  • Linux Router: BMROS is optimized for x86 architecture, harnessing Linux's reliability and flexibility for networking tasks.

  • RouterShell CLI: An interactive command-line interface inspired by IOS, RouterShell provides an intuitive and familiar configuration experience for network administrators.

  • Customizable: Leveraging the Yocto Project, users can customize BMROS extensively to meet specific networking requirements.

Supported Build OS

  • Ubuntu 20.04
  • Ubuntu 22.04

Getting Started

1. Install Git

To install Git, execute the following command:

sudo apt install -y git

2. Clone BMROS Repository

To clone the BMROS repository, run the following command:

git clone https://github.com/mgarcia01752/BareMetalRouterOS.git

3. Setup Yocto Build Environment

Before building BMROS, ensure you have the Ubuntu Yocto build environment set up:

./setup-yocto-env.sh

To download and install Yocto Poky (Scarthgap) for BMROS:

./install-yocto-poky.sh

Use the build script to create the initial Production BMROS image:

sudo ./build-bmros.sh

Verify the functionality of the BMROS image using QEMU:

sudo ./run-bmros.sh

Prepare bootable media for BMROS:

./create-bmros-media.sh -d /dev/[ sdX | mmcblkX ]

After installing BMROS to your target device, you may need to configure the kernel, busybox, or u-boot.

./menuconfig.sh [--kernel | --busybox | --u-boot ]

Documentation

Detailed instructions and information are available in the docs directory.

Contents:

Contributing

Contributions to BMROS are welcome! Whether it's bug fixes, new features, or improvements to documentation, your contributions are valuable.

How to Contribute

  1. Fork the Repository: Create your fork of the project on GitHub.
  2. Make Changes: Implement your changes or additions locally.
  3. Submit a Pull Request: Send your changes to the main repository.
  4. Code Review: Your pull request will be reviewed by project maintainers.

Resources

License

The Bare Metal Router OS project is licensed under the MIT License. See the LICENSE file for more details.

About

BareMetalRouterOS (BMROS) is a pure Linux router designed for x86-64 architecture built in YOCTO, offering a robust networking solution. Utilizing the power of the Yocto Project and the RouterShell CLI, BMR provides a customizable and efficient routing platform.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published