Carbs Linux - a simple busybox linux distribution
This post will guide you step-by-step in order to install Carbs Linux. It is not complete yet.
Installing Carbs Linux is the same as installing most rootfs distributions, such as Gentoo, or Void Linux.
You simply need a Live Linux ISO. Gentoo would be the best as programs you will require will be already there. Get the ISO, boot it and set up your network.
Rest of the instructions assume that you have set all of these up, and will continue on.
First, we need to download the rootfs tarball. In your terminal type
$ wget https://dl.carbslinux.org/releases/carbs-rootfs.tar.xz
While optional, it is highly recommended to check the integrity of the tarball.
Compare the sha256sum from the releases page with the tarball. Outputs of the last two commands should be identical.
$ wget https://dl.carbslinux.org/releases/sha256sums.txt $ sha256sum carbs-rootfs.tar.xz $ grep carbs-rootfs.tar.xz sha256sums.txt
While optional, it is highly recommended to check the signature of the tarball
$ wget https://carbslinux.org/releases/carbs-rootfs-20191210.tar.xz.sig Import the public key of firstname.lastname@example.org $ gpg --recv-keys FF484BDFEFCEF8FF $ gpg --verify carbs-rootfs-20191210.tar.xz.sig
$ wget https://dl.getkiss.org/kiss-chroot Make the script executable $ chmod +x kiss-chroot
You need to extract the tarball to your mounted partition
$ tar xvpf carbs-rootfs.tar.xz -C /mnt
Chroot into Carbs Linux
$ ./kiss-chroot /mnt
Before being able to use the package manager on the current tarball you need to obtain CA certifiactes. To do so, run
This step is optional, but very highly recommended (I cannot stress out the amount I am recommending this). This ensures you are receiving updates from Carbs Linux and not some other source.
It is also a great time to learn how to use your new package manager, KISS! You simply build and install the package
$ kiss build gnupg1 $ kiss install gnupg1
Import my key
Import my public key (email@example.com) $ gpg --recv-key 4356EE08A364CE09 Create a .gnupg directory if it doesn't exist $ mkdir -p /root/.gnupg Trust my public key $ echo trusted-key 0x4356ee08a364ce09 >> /root/.gnupg/gpg.conf
Enable signature verification
Git has a built in signature verification feature. You can go to the repository directory and enable it
$ cd /var/db/kiss/repo $ git config merge.verifySignatures true
Since Carbs gives you one of the most minimal base, you might need to apply some add-ons to your system.
It might be a good idea to update your packages before installing new packages. This ensure compatibility.
$ kiss update
Currently, e2fsprogs and dosfstools are supported, as they are the most-used filesystems.
Support for ext2, ext3, and ex4 $ kiss build e2fsprogs $ kiss install e2fsprogs Support for dosfstools $ kiss build dosfstools $ kiss install dosfstools
$ kiss build eudev $ kiss install eudev
$ kiss build wpa_supplicant $ kiss install wpa_supplicant
$ kiss build eiwd $ kiss install eiwd
$ kiss build dhcpcd $ kiss install dhcpcd
Carbs Linux comes preinstalled with busybox ash, but other shells can be found on the repository
Install bash $ kiss build bash $ kiss install bash Install zsh $ kiss build zsh $ kiss install zsh Install Plan9 rc-shell $ kiss build 9base $ kiss install 9base
Next step is installing the kernel, which might sound as a challenge you should download and extract the kernel tarball first.
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.tar.xz Let's move the sources to /usr/src $ mv linux-5.5.tar.xz /usr/src $ tar xf linux-5.5.tar.xz $ cd linux-5.5
Configure the Kernel
You can check https://wiki.gentoo.org/wiki/Kernel/Configuration to learn more about kernel configuration. Overall, Gentoo Wiki is a good place to learn about kernel configuration related to your hardware.
Build and install the kernel
The rest of it is simple, build the kernel with
make and install it with
The default bootloader is GRUB (GRand Unified Bootloader).
Build and install GRUB
$ kiss b grub $ kiss i grub Install efibootmgr as well if your system requires it $ kiss b efibootmgr $ kiss i efibootmgr
For BIOS: $ grub-install --target=i386-pc /dev/sdX For UEFI: $ grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=CarbsLinux $ grub-mkconfig -o /boot/grub/grub.cfg
Currently, default init for Carbs Linux is
busybox-init is also supported. You can also change this yourself.
To install init, you have to
$ kiss b sinit $ kiss i sinit
This will also fetch busybox-init as its dependency.
There are other repositories out there that might be of your interest. The Official Repositories come with community and testing repositories that are not enabled by default. You could also want to add the Kiss Linux community repository, or someone’s personal kiss repository.
Obtaining a repository is as simple as a git clone. You can do it with Cem’s personal repository as an example, but any other repository will be the same.
# Clone the repository to your desired location # Optionally add "--depth 1" to save precious disk space $ git clone --depth 1 git://git.ckyln.com/kiss-repository /var/db/kiss/cem-repository
That’s it, you have obtained a new repository!
Adding a repository to your KISS_PATH
Now that we have obtained Cem’s repository, we can add it to our KISS_PATH!
We need to edit
/etc/profile.d/kiss_path.sh for this, but you
can also change your KISS_PATH from your shellrc.
Add the full path to the repository, in this case
/var/db/kiss/cem-repository/cem to the variable
and add a
: before/after it.
It must be looking like this.
Update your shell variables by doing
. /etc/profile.d/kiss_path.sh so you can
immediately access the repository packages
You should now be able to boot into you Carbs Linux installation. To learn more, you can visit the wiki