aboutsummaryrefslogtreecommitdiff
path: root/docs/docs/install.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/docs/install.html')
-rw-r--r--docs/docs/install.html503
1 files changed, 503 insertions, 0 deletions
diff --git a/docs/docs/install.html b/docs/docs/install.html
new file mode 100644
index 0000000..3b37dc1
--- /dev/null
+++ b/docs/docs/install.html
@@ -0,0 +1,503 @@
+<!DOCTYPE HTML>
+<html lan=en>
+ <head>
+ <title>Installation Instructions | Carbs Linux</title>
+ <link rel="stylesheet" href="/style.css">
+ <meta charset="utf-8">
+ <meta name="Description" content="Carbs Linux - a simple linux distribution">
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+ </head>
+ <body>
+ <p class=header><strong>Carbs Linux - a simple linux distribution</strong></p>
+ <div class="header">
+ <nav>
+ <a href='/'>index</a>
+ <a href="https://github.com/CarbsLinux">github</a>
+ <a href='//dl.carbslinux.org'>downloads</a>
+ <a href='/blog'>blog</a>
+ <a href='/docs/install.html'>installation</a>
+ </nav>
+ </div><div class="border"></div>
+<pre>
+Installation Instructions
+================================================================================
+
+This post will guide you step-by-set in order to install Carbs Linux. You can
+obtain these instructions for offline use, the plaintext version can be found on
+<a href=https://carbslinux.org/docs/install.txt>https://carbslinux.org/docs/install.txt</a>
+
+
+TABLE OF CONTENTS
+--------------------------------------------------------------------------------
+
+- Downloading and getting ready to chroot <a href=#1.0>[1.0]</a>
+ - Download <a href=#1.1>[1.1]</a>
+ - Check the integrity of the tarball (Recommended) <a href=#1.2>[1.2]</a>
+ - Verify the signature <a href=#1.3>[1.3]</a>
+ - Extracting the tarball <a href=#1.4>[1.4]</a>
+ - Obtain the chroot helper <a href=#1.5>[1.5]</a>
+- Chroot <a href=#2.0>[2.0]</a>
+ - Updating packages (optional) <a href=#2.1>[2.1]</a>
+ - Installing packages <a href=#2.2>[2.2]</a>
+ - Essential software <a href=#2.3>[2.3]</a>
+ - Obtaining the documentation (optional) <a href=#2.4>[2.4]</a>
+- System Configuration <a href=#3.0>[3.0]</a>
+ - Configuring hostname (recommended) <a href=#3.1>[3.1]</a>
+ - Setting up the hosts file (optional) <a href=#3.2>[3.2]</a>
+ - Generating fstab <a href=#3.3>[3.3]</a>
+- Kernel <a href=#4.0>[4.0]</a>
+ - Obtaining the kernel sources. <a href=#4.1>[4.1]</a>
+ - Installing dependencies <a href=#4.2>[4.2]</a>
+ - Compiling the kernel <a href=#4.3>[4.3]</a>
+- Making your system bootable <a href=#5.0>[5.0]</a>
+ - Installing a bootloader <a href=#5.1>[5.1]</a>
+ - Installing init scripts <a href=#5.2>[5.2]</a>
+- Post-installation <a href=#6.0>[6.0]</a>
+ - Acquiring kiss repositories <a href=#6.1>[6.1]</a>
+
+
+
+<span id=1.0><a href=#1.0>[1.0]</a></span> Downloading and getting ready to chroot
+--------------------------------------------------------------------------------
+
+To install Carbs Linux, you will need a Live Linux ISO. For that purpose, you
+can obtain a Gentoo or Void Linux live image. You can follow their instructions
+to boot and setup your network.
+
+You will need the following programs in order to install Carbs Linux:
+- tar
+- wget (or curl)
+- xz
+- some form of base utilities (coreutils, sbase, busybox, etc.)
+
+Rest of the instructions assume that you have set all of these up, and will
+continue on that point.
+
+
+<span id=1.1><a href=#1.1>[1.1]</a></span> Download
+--------------------------------------------------------------------------------
+
+First, we need to download the rootfs tarball. You can do the following in order
+to obtain the rootfs. If you are using an i686 machine, replace the 'x86_64'
+with 'i686'.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ wget <a href=https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz>https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz</a> |
+ | |
+ +--------------------------------------------------------------------------+
+
+We can then check the integrity of the tarball and do a signature verification.
+Even though these are optional, they are highly recommended.
+
+
+<span id=1.2><a href=#1.2>[1.2]</a></span> Check the integrity of the tarball (Recommended)
+--------------------------------------------------------------------------------
+
+All of the releases are saved in a single file named 'sha256sums.txt'. You can
+either verify manually, or you can run the following for a single step
+verification.
+
+ +-----------------------------------------------------------------------------+
+ | |
+ | $ wget <a href=https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz.sha256>https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz.sha256</a> |
+ | |
+ | $ sha256sum -c carbs-rootfs.tar.xz.sha256 |
+ | |
+ | This should produce the following (or a similar) output: |
+ | carbs-rootfs.tar.xz: OK |
+ | |
+ +-----------------------------------------------------------------------------+
+
+
+<span id=1.3><a href=#1.3>[1.3]</a></span> Verify the signature
+--------------------------------------------------------------------------------
+
+It is highly recommended to verify the signature of the tarball. You will need
+GPG for this.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ wget <a href=https://carbslinux.org/releases/carbs-rootfs.tar.xz.sig>https://carbslinux.org/releases/carbs-rootfs.tar.xz.sig</a> |
+ | |
+ | $ gpg --recv-keys FF484BDFEFCEF8FF |
+ | |
+ | $ gpg --verify carbs-rootfs.tar.xz.sig |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=1.4><a href=#1.4>[1.4]</a></span> Extracting the tarball
+--------------------------------------------------------------------------------
+
+You will need to extract the tarball to your desired location. For partitioning,
+you can follow this guide<a href=#1>[1]</a>. This will assume that you will be mounting your
+root partition to '/mnt'.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ mount /dev/sdx1 /mnt |
+ | |
+ | $ tar xf carbs-rootfs.tar.xz -C /mnt |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=1.5><a href=#1.5>[1.5]</a></span> Obtain the chroot helper
+--------------------------------------------------------------------------------
+
+You can obtain the cpt-chroot script in order to do a simple chroot into your
+new root filesystem.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ wget <a href=https://dl.carbslinux.org/distfiles/cpt-chroot>https://dl.carbslinux.org/distfiles/cpt-chroot</a> |
+ | $ chmod a+x cpt-chroot |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=2.0><a href=#2.0>[2.0]</a></span> Chroot
+--------------------------------------------------------------------------------
+
+Chroot into Carbs Linux!
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ ./cpt-chroot /mnt |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=2.1><a href=#2.1>[2.1]</a></span> Updating packages (optional)
+--------------------------------------------------------------------------------
+
+It is good practice to make sure your system is up to date, especially before
+building new packages. If there is an update for the package manager you will
+need to update twice.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ cpt update |
+ | |
+ +--------------------------------------------------------------------------+
+ | |
+ | If the package manager is updated, run the same command again. |
+ | $ cpt update |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=2.2><a href=#2.2>[2.2]</a></span> Installing packages
+--------------------------------------------------------------------------------
+
+Since you are operating on a really small base, you might need to build and
+install new programs to extend the functionality of your system. In order to
+build and install packages new packages in Carbs, you need to execute the
+following.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ cpt build package |
+ | $ cpt install package |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=2.3><a href=#2.3>[2.3]</a></span> Essential software
+--------------------------------------------------------------------------------
+
+Here is a list of software that you might want to have on your system.
+
+ BOOTLOADERS
+ - efibootmgr
+ - grub
+ FILESYSTEMS
+ - e2fsprogs
+ - dosfstools
+ - ntfs-3g
+ NETWORKING
+ - dhcpcd<a href=#2>[2]</a>
+ - wpa_supplicant
+ TEXT EDITORS
+ - nano
+ - vim
+ - neatvi
+ - nvi
+ - emacs
+ - emacs-nox (terminal-only version of emacs)
+ - mg (micro gnuemacs)
+ USER SHELLS
+ - bash
+ - dash
+ - zsh
+ - 9base (rc shell)
+ DEVICE MANAGEMENT
+ - eudev
+ COREUTILS
+ - sbase
+ DOCUMENTATION
+ - carbs-docs <a href=#2.4>[2.4]</a>
+ - man-pages
+ - man-pages-posix
+ OTHER
+ - git
+
+
+<span id=2.4><a href=#2.4>[2.4]</a></span> Obtaining the documentation (optional)
+--------------------------------------------------------------------------------
+
+All the documentation for Carbs Linux (including this installation manual) can
+be obtained to be viewed offline.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | Install the documentation. |
+ | $ cpt b carbs-docs && cpt i carbs-docs |
+ | |
+ | 'docs' tool can be used in order to crawl through the documentation. |
+ | |
+ | Following command can be used in order to view this installation guide |
+ | through a pager. |
+ | |
+ | $ docs install |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=3.0><a href=#3.0>[3.0]</a></span> System Configuration
+--------------------------------------------------------------------------------
+
+After you have finished installing some extra packages, you can configure your
+system to your liking.
+
+
+<span id=3.1><a href=#3.1>[3.1]</a></span> Configuring hostname (recommended)
+--------------------------------------------------------------------------------
+
+You might want to add a hostname, especially in a networked environment. Your
+hostname will default to 'carbslinux' unless you set this.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ echo your-hostname > /etc/hostname |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=3.2><a href=#3.2>[3.2]</a></span> Setting up the hosts file (optional)
+--------------------------------------------------------------------------------
+
+You can edit your /etc/hosts file, which is the static lookup table for host
+names. By default, there are two entries for localhost which are OKAY. You can
+replace the 'localhost' part of these entries to your hostname.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | 127.0.0.1 localhost.localdomain localhost |
+ | ::1 localhost.localdomain localhost ip6-localhost |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=3.3><a href=#3.3>[3.3]</a></span> Generating fstab
+--------------------------------------------------------------------------------
+
+You can use this POSIX sh variant for genfstab
+
+
+<span id=4.0><a href=#4.0>[4.0]</a></span> Kernel
+--------------------------------------------------------------------------------
+
+Kernel isn't managed under the main repositories, even though you could package
+one for your personal use. Here is an example kernel package, which you will
+need to reconfigure for your specific setup if you want to make use of it<a href=#3>[3]</a>.
+
+
+<span id=4.1><a href=#4.1>[4.1]</a></span> Obtaining the kernel sources.
+--------------------------------------------------------------------------------
+
+You can visit the <a href=https://kernel.org>https://kernel.org</a> website to choose a kernel that you want
+to install. Though only the latest stable and longterm (LTS) versions are
+supported.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | Download the kernel and extract it |
+ | $ wget <a href=https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.6.tar.xz>https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.6.tar.xz</a> |
+ | $ tar xf linux-5.7.6.tar.xz |
+ | |
+ | Change directory into the kernel sources |
+ | $ cd linux-5.7.6 |
+ | |
+ +--------------------------------------------------------------------------+
+
+<span id=4.2><a href=#4.2>[4.2]</a></span> Installing dependencies
+--------------------------------------------------------------------------------
+
+In order to compile the kernel you will need to install some dependencies.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | You will need libelf to compile the kernel |
+ | |
+ | $ cpt b libelf && cpt i libelf |
+ | |
+ +--------------------------------------------------------------------------+
+ | |
+ | In order to configure the kernel with a user interface, you will need |
+ | ncurses to be installed on your system. |
+ | |
+ | $ cpt b ncurses && cpt i ncurses |
+ | |
+ +--------------------------------------------------------------------------+
+
+In the vanilla kernel sources, you need perl to compile the kernel, but it can
+be easily patched out. You will need to apply the following patch. Patch was
+written by E5ten<a href=#4>[4]</a>.
+
+ +--------------------------------------------------------------------------+
+ | |
+ | Obtain the patch by downloading it. |
+ | |
+ | $ wget <a href=https://dl.carbslinux.org/distfiles/kernel-no-perl.patch>https://dl.carbslinux.org/distfiles/kernel-no-perl.patch</a> |
+ | |
+ | Apply the patch. |
+ | |
+ | $ patch -p1 < kernel-no-perl.patch |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=4.3><a href=#4.3>[4.3]</a></span> Compiling the kernel
+--------------------------------------------------------------------------------
+
+Next step is configuring and building the kernel. You can check Gentoo's kernel
+configuration guide<a href=#5>[5]</a> to learn more about the matter. Overall, Gentoo Wiki is a
+good place to learn about configuration according to your hardware.
+
+ +--------------------------------------------------------------------------+
+ | Configure and build the kernel |
+ +--------------------------------------------------------------------------+
+ | |
+ | $ make menuconfig |
+ | $ make |
+ | |
+ +--------------------------------------------------------------------------+
+ | Install the kernel |
+ +--------------------------------------------------------------------------+
+ | |
+ | $ install -Dm755 $(make -s image_name) /boot/vmlinuz-linux |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=5.0><a href=#5.0>[5.0]</a></span> Making your system bootable
+--------------------------------------------------------------------------------
+
+In order to be able to boot your fresh system, wou will need an init-daemon,
+init-scripts and a bootloader. The init daemon is already provided by busybox,
+but you can optionally change it.
+
+
+<span id=5.1><a href=#5.1>[5.1]</a></span> Installing a bootloader
+--------------------------------------------------------------------------------
+
+In the main repository, there is efibootmgr and grub to serve as bootloaders.
+efibootmgr can be used as a standalone bootloader, or can be used to install
+grub in a UEFI environment. efibootmgr is needed unless you are using a device
+without UEFI support (or you really want to use BIOS for a reason).
+
+ +--------------------------------------------------------------------------+
+ | GRUB BIOS installation |
+ +--------------------------------------------------------------------------+
+ | |
+ | $ cpt b grub && cpt i grub |
+ | $ grub-install --target=i386-pc /dev/sdX |
+ | $ grub-mkconfig -o /boot/grub/grub.cfg |
+ | |
+ +--------------------------------------------------------------------------+
+ | GRUB UEFI installation |
+ +--------------------------------------------------------------------------+
+ | |
+ | $ cpt b efibootmgr && cpt i efibootmgr |
+ | $ cpt b grub && cpt i grub |
+ | |
+ | $ grub-install --target=x86_64-efi \ |
+ | --efi-directory=esp \ |
+ | --bootloader-id=CarbsLinux |
+ | |
+ | $ grub-mkconfig -o /boot/grub/grub.cfg |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=5.2><a href=#5.2>[5.2]</a></span> Installing init scripts
+--------------------------------------------------------------------------------
+
+Only thing left to do is installing the init-scripts, and now you are ready to
+boot your system!
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ cpt b carbs-init && cpt i carbs-init |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+<span id=6.0><a href=#6.0>[6.0]</a></span> Post-installation
+--------------------------------------------------------------------------------
+
+The base installation is now complete, you can now fine tune your system
+according to your needs. Rest of these instructions are completely optional.
+
+
+<span id=6.1><a href=#6.1>[6.1]</a></span> Acquiring kiss repositories
+--------------------------------------------------------------------------------
+
+Most kiss repositories can only be obtained through git, but it isn't installed
+by default. You'll need to install it:
+
+ +--------------------------------------------------------------------------+
+ | |
+ | $ cpt b git && cpt i git |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+After installing git, you can clone a repository, and add it to your path:
+
+ +--------------------------------------------------------------------------+
+ | KISS Community Repository |
+ +--------------------------------------------------------------------------+
+ | |
+ | $ git clone <a href=https://github.com/kisslinux/community>https://github.com/kisslinux/community</a> |
+ | $ export CPT_PATH=$CPT_PATH:$PWD/community/community |
+ | |
+ | NOTE: There are lots of packages on the KISS community repository that |
+ | are also on Carbs Linux main repository. I would advise giving |
+ | lower priority to the KISS community repository as it may affect |
+ | other packages that you might install. |
+ | |
+ +--------------------------------------------------------------------------+
+
+
+You can also lookup other repositories on GitHub, by searching the 'cpt-repo'
+tag, or looking it up on the KISS Wiki page for repositories<a href=#6>[6]</a>.
+
+
+Footnotes
+--------------------------------------------------------------------------------
+<span id=1><a href=#1>[1]</a></span>: <a href=https://wiki.archlinux.org/index.php/Partitioning>https://wiki.archlinux.org/index.php/Partitioning</a>
+<span id=2><a href=#2>[2]</a></span>: busybox also provides udhcpc which can be used to configure dynamic IP
+<span id=3><a href=#3>[3]</a></span>: <a href=https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux>https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux</a>
+<span id=4><a href=#4>[4]</a></span>: <a href=https://github.com/E5ten>https://github.com/E5ten</a>
+<span id=5><a href=#5>[5]</a></span>: <a href=https://wiki.gentoo.org/wiki/Kernel/Configuration>https://wiki.gentoo.org/wiki/Kernel/Configuration</a>
+<span id=6><a href=#6>[6]</a></span>: <a href=https://k1ss.org/wiki/community/repositories>https://k1ss.org/wiki/community/repositories</a>
+</pre>
+ <a href="/docs/install.txt">View Page Source</a>
+ <div class="border"></div>
+ <p class=footer>Linux® is a registered trademark of Linus Torvalds</p>
+ <p class=footer>Copyright © 2019-2020 Cem Keylan</p>
+ </body>
+</html>