https://github.com/en10/tinyboxlinux
A Tiny Linux Distro ~ 3MB just Tiny Kernel + Unix User Space
https://github.com/en10/tinyboxlinux
busybox linux linux-distribution toybox
Last synced: 4 months ago
JSON representation
A Tiny Linux Distro ~ 3MB just Tiny Kernel + Unix User Space
- Host: GitHub
- URL: https://github.com/en10/tinyboxlinux
- Owner: EN10
- License: mit
- Created: 2023-12-05T22:04:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-23T21:42:05.000Z (over 1 year ago)
- Last Synced: 2025-02-02T08:11:33.054Z (over 1 year ago)
- Topics: busybox, linux, linux-distribution, toybox
- Language: Shell
- Homepage:
- Size: 185 MB
- Stars: 7
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TinyBox Linux
TinyBox Linux Distro ~ 2 MB (Kernel + ToyBox initramfs)
### Based on:
* [Making Simple Linux Distro from Scratch](https://www.youtube.com/watch?v=QlzoegSuIzg) - [setup.sh](https://github.com/EN10/TinyBoxLinux/blob/main/setup.sh) - [crosscompile.sh](https://github.com/EN10/TinyBoxLinux/blob/main/CROSS_COMPILE.sh)
* [Building a tiny Linux kernel](https://weeraman.com/building-a-tiny-linux-kernel) - [menuconfig](https://github.com/EN10/TinyBoxLinux/blob/main/tinymenuconfig.md)
* [Networking from Gentoo Wiki](https://wiki.gentoo.org/wiki/Custom_Initramfs#Networking) - [networking.sh](https://github.com/EN10/TinyBoxLinux/blob/main/networking.sh) - [find Wget deps](https://github.com/EN10/TinyBoxLinux/blob/main/lib/wget/wget-libs.sh)
* [Find Library Dependencies](https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run) - [Wget, strace & Elinks](https://github.com/EN10/TinyBoxLinux/tree/main/lib)
* [Make a Bootable CD With ISOLINUX](https://wiki.syslinux.org/wiki/index.php?title=ISOLINUX) - [make isoimage](https://github.com/EN10/TinyBoxLinux/blob/main/make-isoimage.md)
### Distro Files:
The TinyBox Linux Distro iso in `cd-root`:
* `image.iso` [3.56 MB](https://github.com/EN10/TinyBoxLinux/blob/main/cd-root/image.iso) (Linux 6.12.101 & ToyBox 0.8.12)
The BusyBox Linux Distro has 2 (BusyBox OR ToyBox) main files in `bootfiles`:
* [Linux Kernel](https://www.kernel.org) 6.13.11: `bzImage` [1.48 MB](https://github.com/EN10/TinyBoxLinux/blob/main/bootfiles/bzImage) (tinyconfig + networking)
* [BusyBox](https://busybox.net) 1.37.0: `init.cpio.gz` [2.34 MB](https://github.com/EN10/TinyBoxLinux/blob/main/bootfiles/init.cpio.gz) (with networking)
* [ToyBox](https://landley.net/toybox) 0.8.12 `initramfs.cpio.gz` [530 KB](https://github.com/EN10/TinyBoxLinux/blob/main/bootfiles/initramfs.cpio.gz)
### Run on [QEMU](https://www.qemu.org):
from `image.iso`
```
.\qemu-system-x86_64.exe -cdrom image.iso
```
from `bzImage` and `init.cpio.gz`
```
.\qemu-system-x86_64.exe -kernel bzImage -initrd init.cpio.gz
```
Specify cores `-smp` and memory `-m`
```
.\qemu-system-x86_64.exe -cdrom image.iso -smp 1 -m 512
```
Windows Terminal
```
.\qemu-system-x86_64 -kernel .\bzImage -initrd initramfs.cpio.gz -no-reboot -nographic -append "console=ttyS0"
```
### Simple Distro Setup
* [Build defconfig Kernel & Busybox](https://github.com/EN10/TinyBoxLinux/blob/main/setup.sh)
`defconfig bzImage 12.8MB`
### Add Networking:
* [Build BusyBox with Networking](https://github.com/EN10/TinyBoxLinux/blob/main/networking.sh) - [Identify Wget dependencies](https://github.com/EN10/TinyBoxLinux/blob/main/lib/wget/wget-libs.sh)
`BusyBox init.cpio.gz 2.34 MB`
* [Build tinyconfig Kernel with Networking](https://github.com/EN10/TinyBoxLinux/blob/main/tinymenuconfig.md)
`tinyconfig bzImage 2.68 MB`
* [Install Elinks browser](https://github.com/EN10/TinyBoxLinux/blob/main/bootfiles/install-elinks.sh) - [Identify Elinks dependencies](https://github.com/EN10/TinyBoxLinux/blob/main/lib/elinks/elinks.sh)
`./install-elinks.sh`
### Create bootable CD iso
* [isolinux setup](https://github.com/EN10/TinyBoxLinux/blob/main/cd-root/isolinux.sh) - [BusyboxLinux.iso](https://github.com/EN10/TinyBoxLinux/blob/main/cd-root/BusyBoxLinux.iso) [TinyboxLinux.iso](https://github.com/EN10/TinyBoxLinux/blob/main/cd-root/TinyBoxLinux.iso)
`BusyBoxLinux.iso 5.45 MB` `TinyBoxLinux.iso 3.61 MB`