Skip to content

Commit

Permalink
Update to version 3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
jaromaz committed Nov 4, 2021
1 parent d8a0963 commit d258163
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 22 deletions.
50 changes: 35 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,49 @@
# Yosild - Your simple Linux distro

Yosild is a single shell script that builds a full, minimal Linux distribution, based on BusyBox. I wrote it with the assumption of compiling any version of kernel on any hardware platform, so that this script can prepare minimalistic Linux for devices with little hardware resources.
Yosild is a single shell script that builds a full, minimal Linux distribution,
based on BusyBox. It compiles the **latest stable kernel** (5.14.15) and the
**latest stable version of the BusyBox** (1.34.1). This script can prepare
minimalistic Linux system for devices with little hardware resources. Yosild Linux
needs just **64 MB RAM** and **36 MB storage size**. *yosild.sh* requires [minimal][1]
*Debian* or *Ubuntu* distro to run with the architecture compatible with the target device.

The script works with VirtualBox or KVM/QEMU - you can create an additional virtual hard
drive and install Yosild Linux on it, and then connect this virtual disk to a new virtual
machine - just like in my [YouTube video][3]:
<p align="center"><a href="https://www.youtube.com/watch?v=BPXxPZBBeJ0" target="_blank"><img src="https://jm.iq.pl/yosild/yosild_mov2.jpg" width="50%"></a></p>

Yosild creates probably the simplest, complete version of Linux, which makes it easier
to understand, how to build the system from scratch. It is much easier to build
than other, previously available solutions: Aboriginal, mkroot, Buildroot or Linux
From Scratch - just specify the target drive (virtual or flash drive) inside the
*yosild.sh* script and simply run the script. You can also rename the system to make
it your distribution.

It creates probably the simplest, complete version of Linux, which makes it easier to understand, how to build the system from scratch. It is much easier to build than other, previously available solutions: Aboriginal, mkroot, Buildroot or Linux From Scratch.

The script should be run on the latest Debian version with the architecture compatible with the target device - just a network install from a minimal CD ([netinst][1]).

**Yosild**:

* downloads and installs all the libraries and packages required to compile,
* downloads and installs all the libraries and packages required to compilation,
* downloads and compiles the BusyBox,
* downloads and compiles the kernel with default options,
* downloads and installs the BusyBox,
* creates a number of minimalist scripts to facilitate the management of mini-distribution.

All of these components are integrated on the disk (or flash drive) indicated by the user. Just run the script and after the first confirmation messages leave the computer for several minutes. Note - the whole surface of the disk or flash drive will be used - all data on the indicated disk will be deleted.
* creates a number of minimalist scripts to simplify the management of this mini-distribution.

You can create a name for the mini-distribution generated in this way, specify the destination disc, the path to the kernel and the correct BusyBox version. By default, the options are populated with the latest versions for the i686 architecture.
All of these components are integrated on the disk (or flash drive) indicated by
the user. Just run the script and after the first confirmation messages leave
the computer for several minutes. Note - the whole surface of the disk or flash
drive will be used - all data on the indicated disk will be deleted.

Mini-distribution by default supports standard entries in /etc/network/interfaces (also DHCP), includes swap partition support, log rotation, mini-man pages, own minimalistic version of rc.d, running cron demons, httpd, ftpd, syslogd and prepared boot script for telnetd. After installation on a flash drive, the distribution can be run on any computer compatible with the architecture on which the kernel was compiled.
In the script you can easily change the kernel or BusyBox compilation options.

The script cooperates with VirtualBox - you can create an additional hard disk and install Yosild on it, and then connect this virtual disk to a new virtual machine.
This mini-distribution by default supports ifupdown (also with DHCP script), log
rotation, mini-man pages, own minimalistic version of rc.d, running cron demons,
httpd, ftpd, syslogd and prepared boot script for telnetd. After installation on
a flash drive, the distribution can be run on any computer compatible with the
architecture on which the kernel was compiled.

Yosild is licensed under GNU General Public License v3.0
Yosild is licensed under GNU General Public License v3.0.

For more information please visit my website: [https://jm.iq.pl][2]
For more information please visit my website: [https://jm.iq.pl/yosild][2]

[1]: https://www.debian.org/CD/netinst/
[2]: https://jm.iq.pl/yosild-my-your-linux-distribution/
[2]: https://jm.iq.pl/yosild
[3]: https://www.youtube.com/watch?v=BPXxPZBBeJ0
14 changes: 7 additions & 7 deletions yosild.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/bin/sh

# -----------------------------------
# Yosild - Your simple Linux distro
# -------------------------------------
# Yosild 3.1 - Your simple Linux distro
# (c) Jaromaz https://jm.iq.pl
# Yosild is licensed under
# GNU General Public License v3.0
# -----------------------------------
# -------------------------------------

# ----- Config ----------------------
# ----- Config ------------------------
device="vdb"
distro_name="Yosild"
distro_desc="Your simple Linux distro"
Expand All @@ -16,7 +16,7 @@ distro_codename="chinchilla"
telnetd="true"
kernel="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.15.tar.xz"
busybox="https://busybox.net/downloads/busybox-1.34.1.tar.bz2"
# -----------------------------------
# -------------------------------------

if [ $(id -u) -ne 0 ]; then
echo "Run as root"; exit 1
Expand All @@ -37,7 +37,7 @@ fi
[ -d ./files ] || mkdir files
answer="n"
if [ -f files/busybox/busybox ] ; then
printf "** Do you want to use a BusyBox downloaded earlier? (y/n): "
printf "** Do you want to use a previously compiled BusyBox? (y/n): "
read answer
fi
if [ $answer != "y" ] ; then
Expand Down Expand Up @@ -87,7 +87,7 @@ arch=$(uname -m)
[ $arch = 'i686' ] && arch="i386"
answer="n"
if [ -f files/linux/arch/$arch/boot/bzImage ] ; then
printf "** Do You want to use a kernel compiled earlier? (y/n): "
printf "** Do you want to use a previously compiled kernel? (y/n): "
read answer
fi
if [ $answer != "y" ] ; then
Expand Down

0 comments on commit d258163

Please sign in to comment.