diff options
Diffstat (limited to 'docs/docs/install.html')
-rw-r--r-- | docs/docs/install.html | 503 |
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> |