Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sajalkmr/tiny-linux-build
Baremetal Linux system with a custom-built kernel and BusyBox
https://github.com/sajalkmr/tiny-linux-build
busybox kernel linux linux-kernel
Last synced: about 2 months ago
JSON representation
Baremetal Linux system with a custom-built kernel and BusyBox
- Host: GitHub
- URL: https://github.com/sajalkmr/tiny-linux-build
- Owner: sajalkmr
- License: mit
- Created: 2024-02-10T16:40:05.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-16T09:09:53.000Z (11 months ago)
- Last Synced: 2024-10-14T02:23:07.602Z (3 months ago)
- Topics: busybox, kernel, linux, linux-kernel
- Language: Shell
- Homepage:
- Size: 12.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Baremetal minimal Linux Build with Busybox
## Components
- **Linux Kernel (configurable):** The heart of the operating system.
- **Busybox (configurable):** A suite of standard UNIX/Linux utilities combined into a single, statically-linked executable.## Prerequisites
- A Linux or Unix-like environment (I built it on Arch WSL btw)
- Build essentials:
- `make`
- `gcc` (or another compiler if cross-compiling)
- `wget`
- `tar`
- `cpio`
- `musl-gcc` (for a statically linked Busybox build)
- Run this (on Arch):
- `sudo pacman -S bc make gcc wget tar cpio && yay -S musl-gcc`## Getting started
1. **Clone the repository:**
```bash
git clone https://github.com/sajalkmr/tiny-linux-build2. **Customize (optional):**
Edit the build_minimal_linux.sh script to adjust the KERNEL_VERSION and BUSYBOX_VERSION if desired.3. **Execute the build script:**
```bash
sudo ./busybox.sh3. **Running:**
- **bzImage:** The compiled Linux kernel image.
- **initrd.img:** The initial RAM disk containing Busybox and basic system setup.4. **Booting with QEMU (example):**
```bash
qemu-system-x86_64 -kernel bzImage -initrd initrd.img -nographic -append "console=ttyS0"