GitHub - chirsz-ever/busybox-linux: A distributions that only need busybox, easy to port to various architectures

2 min read Original article ↗

A minimal Linux distribution based on BusyBox and KISS Linux.

This makes it easy to customize your embedded systems. To create a working system, just add some device nodes in /dev, a few configuration files in /etc, and a Linux kernel.

From https://busybox.net/about.html. And This project is an implementation of the statement.

The goal of this project is to have BusyBox as the only executable binary in the rootfs, minimizing the difficulty of porting to various architectures.

KISS Linux is chosen as the base because the kiss package manager is written in pure POSIX sh. Thanks, Dylan Araps.

Installation

It's recommended to read Kiss Linux Installation Guide first, although many of the steps are unnecessary for this project.

We only need to use kiss to generate the rootfs:

git clone https://github.com/chirsz-ever/busybox-linux.git
wget https://codeberg.org/kiss-community/kiss/archive/6.2.0.tar.gz -O kiss-6.2.0.tar.gz
tar -xf kiss-6.2.0.tar.gz
pushd kiss
patch < "../busybox-linux/kiss-pkgs/kiss/patches/kiss-sha256sum.patch"
popd
export KISS_PATH=$PWD/busybox-linux/kiss-pkgs
mkdir rootfs
KISS_ROOT=$PWD/rootfs ./kiss b baselayout baseinit kiss baseservices

You need to prepare the statically linked busybox executable and create soft links yourself. The package busybox-prebuild could simplifie this process.

As in KISS Linux, you'll also need to compile the kernel and configure the bootloader yourself.

Packages

  • baselayout is unmodified from kiss-community/repo.
  • baseinit is patched to remove compilation of C files.
  • baseservices is from busybox package in kiss-community/repo, modified to remove usage of libudev-zero in mdev.conf.
  • kiss is patched to use SHA256 hashsum instead of BLAKE3, because BusyBox doesn't support BLAKE3.

You can install architecture-independent packages, such as:

Note that you'll need to regenerate the cheksum with kiss c before installation, as the kiss community now uses BLAKE3 hashsum.

How to get a busybox binary