|/
|\ISS

*ARCHIVED*
OFFICIAL SITE

News
Blog

Wiki

Install KISS
FAQ

Package System
Package Manager
Software

Guidestones

Testimonials
Screenshots
Team

Contact
Donate
Website
IRC

GitHub
Git (mirror)
ML (archive)



[0.0] INSTALL KISS
________________________________________________________________________________

Welcome to the installation guide for KISS Linux.

The installation utilizes a tarball which is unpacked to '/'. This same tarball
is also directly usable as a chroot from any Linux distribution.

A live-CD from a another distribution is required to bootstrap KISS. It does not
matter which distribution is used so long as it includes 'tar' and other basic
utilities.

From this point on, the guide assumes you have booted a live-CD, are logged
in as root, have your disks, partitions and filesystems setup and have an
internet connection.
See: @/wiki/storage/disks for information on setting up disks


[1.0] The Process
________________________________________________________________________________

- Install KISS                                                             [2.0]
    - Download the latest release                                          [2.1]
    - Verify the checksums (recommended)                                   [2.2]
    - Verify the signature (recommended)                                   [2.3]
    - Unpack the tarball                                                   [2.4]
    - Enter the chroot                                                     [2.5]

- Setup repositories                                                       [3.0]
    - Setting KISS_PATH                                                    [3.1]
    - Official repositories                                                [3.2]
    - Community                                                            [3.3]
    - Universe                                                             [3.4]

- Enable repository signing                                                [4.0]
    - Build and install gnupg1                                             [4.1]
    - Import My Key                                                        [4.2]
    - Enable Signature Verification                                        [4.3]

- Rebuild KISS                                                             [5.0]
    - Modify Compiler Options (optional)                                   [5.1]
    - Update All Base Packages                                             [5.2]
    - Rebuild All Packages                                                 [5.3]

- Userspace tools                                                          [6.0]
    - Filesystem utilities                                                 [6.1]
    - Device management                                                    [6.2]
    - WiFi                                                                 [6.3]
    - Dynamic IP addressing                                                [6.4]

- The hostname                                                             [7.0]

- The kernel                                                               [8.0]
    - Install required packages                                            [8.1]
    - Download the kernel sources                                          [8.2]
    - Download firmware blobs                                              [8.3]
    - Configure the kernel                                                 [8.4]
    - Build the kernel                                                     [8.5]
    - Install the kernel                                                   [8.6]

- The bootloader                                                           [9.0]
    - Recommended                                                          [9.1]
    - Build and install grub                                               [9.2]
    - Setup grub                                                           [9.3]

- Install init scripts                                                    [10.0]
- Set a root password                                                     [11.0]
- Add a normal user                                                       [12.0]

- Install Xorg                                                            [13.0]
    - Add your user to the relevant groups                                [13.1]

- Further steps                                                           [14.0]


[2.0] Install KISS
________________________________________________________________________________

NOTE: Disks should be setup and fully mounted to /mnt.

Start by declaring a variable.

+------------------------------------------------------------------------------+
|                                                                              |
|   $ ver=2021.7-1                                                             |
|   $ url=https://github.com/kiss-community/repo/releases/download/$ver        |
|                                                                              |
+------------------------------------------------------------------------------+


    [2.1] Download the latest release
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ wget "$url/kiss-chroot-$ver.tar.xz"                                  |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [2.2] Verify the checksums (recommended)
    ____________________________________________________________________________

    This step verifies that the release matches the checksums generated upon
    its creation and also ensures that the download completed successfully.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ wget "$url/kiss-chroot-$ver.tar.xz.sha256"                           |
    |   $ sha256sum -c < "kiss-chroot-$ver.tar.xz.sha256"                      |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [2.3] Verify the signature (recommended)
    ____________________________________________________________________________

    This step verifies that the release was signed by its maintainer, Dilyn
    Corner.  If the live OS of your choice does not include GPG, this step can
    also be done on another machine (with the same tarball).

    +--------------------------------------------------------------------------+
    | Download the armored ASCII file.                                         |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ wget "$url/kiss-chroot-$ver.tar.xz.asc"                              |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Import my public key (if this fails, try another keyserver).             |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ gpg --keyserver keys.gnupg.net --recv-key DA4AB731D4C3F13D           |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Verify the signature.                                                    |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ gpg --verify "kiss-chroot-$ver.tar.xz.asc"                           |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [2.4] Unpack the tarball
    ____________________________________________________________________________

    This step effectively installs KISS to /mnt. The tarball contains a full
    system minus the bootloader, kernel and optional utilities.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ cd /mnt                                                              |
    |   $ tar xvf /path/to/kiss-chroot-$ver.tar.xz                             |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [2.5] Enter the chroot
    ____________________________________________________________________________

    This is a simple script to chroot into /mnt and set up the environment for
    the rest of the installation. The script handles mounting pseudo filesystems
    (/proc, /dev, /sys), enabling network inside the chroot, etc.

    On execution of this step you will be running KISS! The next steps involve
    the kernel, software compilation and system setup.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ /mnt/bin/kiss-chroot /mnt                                            |
    |                                                                          |
    +--------------------------------------------------------------------------+


[3.0] Setup repositories
________________________________________________________________________________

The repository system is quite different to that of other distributions. The
system is controlled via an environment variable called KISS_PATH. This variable
is analogous to PATH, a colon separated list of absolute paths.

A repository is merely a directory (repo) containing directories (packages) and
can be located anywhere on the file-system. The full path to the directory is
the value to KISS_PATH.

The chroot/installation tarball does not come with any repositories by default,
nor does the package manager expect or /assume/ that any exist in a given
location. This is entirely up to the user.


+------------------------------------------------------------------------------+
|                                                                              |
| TIP: Use the '--depth=1' flag when cloning repositories to avoid fetching    |
|      git history, resulting in faster clones.                                |
|                                                                              |
+------------------------------------------------------------------------------+


    [3.1] Setting KISS_PATH
    ____________________________________________________________________________

    The variable can be set system-wide, per-user, per-session, per-command,
    and even programmatically. This guide will cover setting it for the current
    user with an example repository layout.

    Take this layout:

    +--------------------------------------------------------------------------+
    |                                                                          |
    |  ~/repos/                                                                |
    |  |                                                                       |
    |  +- repo/                                                                |
    |  |  - .git/                                                              |
    |  |  - core/                                                              |
    |  |  - extra/                                                             |
    |  |  - xorg/                                                              |
    |  |                                                                       |
    |  +- community/                                                           |
    |  |  - .git/                                                              |
    |  |  - community/                                                         |
    |  |                                                                       |
    |  +- personal/                                                            |
    |  |  - games/                                                             |
    |  |  - web/                                                               |
    |  |                                                                       |
    |                                                                          |
    +--------------------------------------------------------------------------+

    - Repositories are stored in ~/repos/ which is a per-user configuration.
    - There are two git repositories containing four KISS repositories.
    - There is a third repository called personal, not tracked by git.
    - The personal repository contains two KISS repositories.

    This user's KISS_PATH could look like this:

    +--------------------------------------------------------------------------+
    |                                                                          |
    |  ~/.profile                                                              |
    |                                                                          |
    |    1 export KISS_PATH=''                                                 |
    |    2 KISS_PATH=$KISS_PATH:$HOME/repos/personal/games                     |
    |    3 KISS_PATH=$KISS_PATH:$HOME/repos/personal/web                       |
    |    4 KISS_PATH=$KISS_PATH:$HOME/repos/repo/core                          |
    |    5 KISS_PATH=$KISS_PATH:$HOME/repos/repo/extra                         |
    |    6 KISS_PATH=$KISS_PATH:$HOME/repos/repo/xorg                          |
    |    7 KISS_PATH=$KISS_PATH:$HOME/repos/community/community                |
    |                                                                          |
    +--------------------------------------------------------------------------+

    - All repositories are enabled.
    - This is a per-user configuration using ~/.profile
    - The package manager will search this list in the order it is defined.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |  TIP: Run '. ~/.profile' for changes to immediately take effect.         |
    |  TIP: Run 'echo "$KISS_PATH"' to check if properly set.                  |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [3.2] Official repositories
    ____________________________________________________________________________

    The official repositories contain everything from the base system to a
    working web browser (Firefox) and media player (mpv). This includes Xorg,
    rust, nodejs and a lot of other useful software.

    Clone the repository to the directory of your choosing.

    +--------------------------------------------------------------------------+
    |                                                                          |
    | $ git clone https://github.com/kiss-community/repo                       |
    |                                                                          |
    +--------------------------------------------------------------------------+

    This will be cloned to a directory called 'repo'. This directory contains
    multiple KISS repositories (core, extra, testing and xorg). Core and Extra
    must be enabled as this guide requires their use. Xorg is optional.


    [3.3] Community
    ____________________________________________________________________________

    The community repository contains packages submitted and maintained by users
    of the distribution. It is twice the size of the official repositories and
    contains a lot of useful software.

    Clone the repository to the directory of your choosing.

    +--------------------------------------------------------------------------+
    |                                                                          |
    | $ git clone https://github.com/kiss-community/community                  |
    |                                                                          |
    +--------------------------------------------------------------------------+

    This will be cloned to a directory called 'community'. This directory
    contains a single KISS repository bearing the same name.

    If you don't wish to use GitHub, you can alternatively clone the mirrors:

    +--------------------------------------------------------------------------+
    | Mirrors                                                                  |
    +--------------------------------------------------------------------------+
    |                                                                          |
    | $ git clone git://git.k1sslinux.org/repo                                 |
    | $ git clone git://git.k1sslinux.org/community                            |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [3.4] Universe
    ____________________________________________________________________________

    There are many more repositories in existence, each providing a unique set
    of software. These are all independently created and managed by users. This
    has been called the "KISS Universe".

    A list of interesting projects, forks, and spins can be found at
    $/kiss-community/awesome-kiss

    If you contribute to the KISS Universe by making a repository on GitHub, you
    can tag your repo with kiss-repo: https://github.com/topics/kiss-repo

    NOTE: It may be desirable to save this step for post-installation.


Repositories should now be setup and in functioning order. Run 'kiss search \*'
(notice the escaping) to print all repository packages in the search order of
the package manager.


[4.0] Enable repository signing
________________________________________________________________________________

This step is optional and can also be done after the installation. Repository
signing ensures that all updates have been signed by (Dilyn Corner) and further
prevents any unsigned updates from reaching your system.

+------------------------------------------------------------------------------+
| TIP!                                                                         |
+------------------------------------------------------------------------------+
|                                                                              |
|   The install guide (and all documentation) is available via 'kiss help'.    |
|                                                                              |
|   $ kiss help install                                                        |
|                                                                              |
+------------------------------------------------------------------------------+


    [4.1] Build and install gnupg1
    ____________________________________________________________________________

    Welcome to the KISS package manager! These two commands are how individual
    packages are built and installed on a KISS system.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |    $ kiss build   gnupg1                                                 |
    |    $ kiss install gnupg1                                                 |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [4.2] Import my (Dilyn Corner's) key
    ____________________________________________________________________________

    If the GNU keyserver fails on your network, try an alternative mirror.

    +--------------------------------------------------------------------------+
    | Import my public key.                                                    |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |    $ gpg --keyserver keys.gnupg.net --recv-key DA4AB731D4C3F13D          |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Trust my public key.                                                     |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |    $ echo trusted-key DA4AB731D4C3F13D >>/root/.gnupg/gpg.conf           |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [4.3] Enable signature verification
    ____________________________________________________________________________

    Repository signature verification uses a feature built into git itself
    (merge.verifySignatures)!  This can be disabled at any time using the
    inverse of the below git command.

    The same steps can also be followed with 3rd-party repositories if the
    owner chooses to sign their commits.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ cd /var/db/kiss/repo                                                 |
    |   $ git config merge.verifySignatures true                               |
    |                                                                          |
    +--------------------------------------------------------------------------+


[5.0] Rebuild KISS
________________________________________________________________________________

This step is entirely optional and can also be done post-installation.


    [5.1] Modify compiler options (optional)
    ____________________________________________________________________________

    These options have been tested and work with every package in the
    repositories. If you'd like to play it safe, use -O2 or -Os instead of -O3.

    If your system has a low amount of memory, omit -pipe. This option speeds
    up compilation but may use more memory.

    If you intend to transfer packages between machines, omit -march=native.
    This option tells the compiler to use optimizations unique to your
    processor's architecture.

    The `-jX` option should match the number of CPU threads available. You can
    omit this, however builds will then be limited to a single thread.

    +--------------------------------------------------------------------------+
    | CFLAGS/CXXFLAGS                                                          |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   # NOTE: The 'O' in '-O3' is the letter O and NOT 0 (ZERO).             |
    |   $ export CFLAGS="-O3 -pipe -march=native"                              |
    |   $ export CXXFLAGS="$CFLAGS"                                            |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | MAKEFLAGS                                                                |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ export MAKEFLAGS="-j$(nproc)"                                        |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [5.2] Update all base packages
    ____________________________________________________________________________

    This is how updates are performed on a KISS system. This command uses git
    to pull down changes from all enabled repositories and will then optionally
    handle the build/install process.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss update                                                          |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [5.3] Rebuild all packages
    ____________________________________________________________________________

    We simply cd to the installed packages database and use a glob to grab the
    name of every installed package. This glob is then passed to the package
    manager as a list of packages to build.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ cd /var/db/kiss/installed && kiss build *                            |
    |                                                                          |
    +--------------------------------------------------------------------------+


[6.0] Userspace tools
________________________________________________________________________________

Each kiss action (build, install, etc) has a shorthand alias. From now on,
'kiss b' and 'kiss i' will be used in place of 'kiss build' and 'kiss install'.


    [6.1] Filesystem utilities
    ____________________________________________________________________________

    NOTE: Open an issue for additional filesystem support.

    +--------------------------------------------------------------------------+
    | EXT2, EXT3, EXT4 - required for EXT* filesystems                         |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b e2fsprogs                                                     |
    |   $ kiss i e2fsprogs                                                     |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | FAT, VFAT - required for FAT filesystems, UEFI                           |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b dosfstools                                                    |
    |   $ kiss i dosfstools                                                    |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | XFS - required for XFS filesystems                                       |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b xfsprogs                                                      |
    |   $ kiss i xfsprogs                                                      |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [6.2] Device management
    ____________________________________________________________________________

    NOTE: If you choose to not install eudev, mdev will automatically be
          used in its place during init. libudev-zero is recommended as an
          alternative to libudev.  See: @/wiki/dev/replacing-udev

    +--------------------------------------------------------------------------+
    | Needed for blkid support in eudev (recommended but not required).        |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b util-linux                                                    |
    |   $ kiss i util-linux                                                    |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | The device manager.                                                      |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b eudev                                                         |
    |   $ kiss i eudev                                                         |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [6.3] WiFi
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b wpa_supplicant                                                |
    |   $ kiss i wpa_supplicant                                                |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [6.4] Dynamic IP addressing
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b dhcpcd                                                        |
    |   $ kiss i dhcpcd                                                        |
    |                                                                          |
    +--------------------------------------------------------------------------+


[7.0] The hostname
________________________________________________________________________________

+------------------------------------------------------------------------------+
| Create the /etc/hostname file                                                |
+------------------------------------------------------------------------------+
|                                                                              |
|  $ echo HOSTNAME > /etc/hostname                                             |
|                                                                              |
+------------------------------------------------------------------------------+

+------------------------------------------------------------------------------+
| Update the /etc/hosts file                                                   |
+------------------------------------------------------------------------------+
|                                                                              |
|    127.0.0.1  HOSTNAME.localdomain  HOSTNAME                                 |
|    ::1        HOSTNAME.localdomain  HOSTNAME  ip6-localhost                  |
|                                                                              |
+------------------------------------------------------------------------------+
|                                                                              |
|   NOTE: This step must be done every time the hostname is changed.           |
|                                                                              |
+------------------------------------------------------------------------------+


[8.0] The kernel
________________________________________________________________________________

This step involves configuring and building your own Linux kernel. If you have
not done this before, below are a few guides to get you started.

- https://wiki.gentoo.org/wiki/Kernel/Gentoo_Kernel_Configuration_Guide
- https://wiki.gentoo.org/wiki/Kernel/Configuration
- https://kernelnewbies.org/KernelBuild

The Linux kernel is not managed by the package manager. The kernel is managed
manually by the user. (Rationale: @/faq#7.3)

KISS does not include an initramfs (see @/faq#7.2). When configuring your kernel
ensure that all required file-system, disk controller and USB drivers are built
with [*] (=y) and not [m] (=m) if you opt to not use one!

Some adjustments may be required for certain kernel versions! Watch @/news for
information on these problems. Here are some problems to be aware of:
@/news/20210507a - A header issue with 5.12.*
@/news/20200509a - GCC 10.1.0 patch

+------------------------------------------------------------------------------+
|                                                                              |
|   TIP: The Wiki contains a basic kernel configuration page.                  |
|        @/wiki/kernel/config                                                  |
|                                                                              |
+------------------------------------------------------------------------------+


    [8.1] Install required packages
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    |                                                                          |
    | libelf (required in most and recommended).                               |
    |                                                                          |
    |   $ kiss b libelf                                                        |
    |   $ kiss i libelf                                                        |
    |                                                                          |
    +--------------------------------------------------------------------------+

    +--------------------------------------------------------------------------+
    |                                                                          |
    | ncurses (required only for 'make menuconfig').                           |
    |                                                                          |
    |   $ kiss b ncurses                                                       |
    |   $ kiss i ncurses                                                       |
    |                                                                          |
    +--------------------------------------------------------------------------+

    +--------------------------------------------------------------------------+
    |                                                                          |
    | perl (required in some cases).                                           |
    |                                                                          |
    |   $ kiss b perl                                                          |
    |   $ kiss i perl                                                          |
    |                                                                          |
    |                                                                          |
    |   TIP: A patch can be applied to remove this requirement.                |
    |        - @/wiki/kernel/config#5.0                                        |
    |        - /usr/share/doc/kiss/wiki/kernel/patches/kernel-no-perl.patch    |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [8.2] Download the kernel sources
    ____________________________________________________________________________

    Kernel releases:

    - https://kernel.org    (vanilla)
    - https://www.fsfla.org (libre)

    A larger list of kernels can be found here:

    - https://wiki.archlinux.org/index.php/Kernel

    A canonical place for building the kernel is /usr/src/linux

    +--------------------------------------------------------------------------+
    | Download the kernel sources.                                             |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ wget KERNEL_SOURCE                                                   |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Extract the kernel sources.                                              |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ tar xvf KERNEL_SOURCE.tar.gz                                         |
    |   $ cd linux-*                                                           |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [8.3] Download firmware blobs (if required)
    ____________________________________________________________________________

    To keep the KISS repositories entirely FOSS, the proprietary kernel firmware
    is omitted. This also makes sense as the kernel itself is manually managed
    by the user. This step is only required if your hardware needs firmware.
    See @/wiki/kernel/firmware

    https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

    +--------------------------------------------------------------------------+
    | Download and extract the firmware.                                       |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ wget FIRMWARE_SOURCE                                                 |
    |   $ tar xvf FIRMWARE_SOURCE.tar.gz                                       |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Copy the required drivers to '/usr/lib/firmware'.                        |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ mkdir -p /usr/lib/firmware                                           |
    |   $ cp -R ./path/to/driver /usr/lib/firmware                             |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [8.4] Configure the kernel
    ____________________________________________________________________________

    You can determine which drivers you need by searching the web for your
    hardware and the Linux kernel.

    Checkout @/wiki/kernel for tips and information!

    +--------------------------------------------------------------------------+
    | Generate a default config with most drivers built into the kernel.       |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ make defconfig                                                       |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Open an interactive menu to edit the generated .config and enable        |
    | anything extra you may need.                                             |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ make menuconfig                                                      |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Store the generated config for reuse later.                              |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ cp .config /path/to/somewhere                                        |
    |                                                                          |
    |                                                                          |
    |   TIP: The kernel can backup its own .config file.                       |
    |        @/wiki/kernel/config#2.0                                          |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [8.5] Build the kernel
    ____________________________________________________________________________

    This may take a while to complete. The compilation time depends on your
    hardware and kernel configuration. The 'nproc' command outputs the total
    number of threads which we pass to make for a multi-threaded build.

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ make -j "$(nproc)"                                                   |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [8.6] Install the kernel
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    | Install the built modules (to /usr/lib).                                 |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ make INSTALL_MOD_STRIP=1 modules_install                             |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Install the built kernel (to /boot). (Ignore the LILO error).            |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ make install                                                         |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Rename the kernel/system.map (vmlinuz -> vmlinuz-VERSION).               |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ mv /boot/vmlinuz    /boot/vmlinuz-VERSION                            |
    |   $ mv /boot/System.map /boot/System.map-VERSION                         |
    |                                                                          |
    +--------------------------------------------------------------------------+


[9.0] The bootloader
________________________________________________________________________________

The default bootloader is grub (though nothing prevents the use of another
bootloader). This default was chosen as most people are familiar with it, both
BIOS and UEFI are supported and vast amounts of documentation for it exists.


    [9.1] Recommended
    ____________________________________________________________________________

    Have an /etc/fstab file ready so that other partitions can be mounted
    automatically during the boot-up process.


    [9.2] Build and install grub
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b grub                                                          |
    |   $ kiss i grub                                                          |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | Required for UEFI.                                                       |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ kiss b efibootmgr                                                    |
    |   $ kiss i efibootmgr                                                    |
    |                                                                          |
    |   TIP: efibootmgr can be used without grub on UEFI systems!              |
    |        See @/wiki/boot/efistub                                           |
    |                                                                          |
    +--------------------------------------------------------------------------+


    [9.3] Setup grub
    ____________________________________________________________________________

    +--------------------------------------------------------------------------+
    | BIOS                                                                     |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ grub-install /dev/sdX                                                |
    |   $ grub-mkconfig -o /boot/grub/grub.cfg                                 |
    |                                                                          |
    +--------------------------------------------------------------------------+
    | UEFI (replace 'esp' with the EFI mount point, usually /boot)             |
    +--------------------------------------------------------------------------+
    |                                                                          |
    |   $ grub-install --target=x86_64-efi \                                   |
    |                  --efi-directory=esp \                                   |
    |                  --bootloader-id=kiss                                    |
    |                                                                          |
    |   $ grub-mkconfig -o /boot/grub/grub.cfg                                 |
    |                                                                          |
    +--------------------------------------------------------------------------+


[10.0] Install init scripts
________________________________________________________________________________

The default init is busybox init (though nothing ties you to it). The below
commands install the bootup and shutdown scripts as well as the default
inittab config.

Source code: $/kiss-community/init

+------------------------------------------------------------------------------+
|                                                                              |
|   $ kiss b baseinit                                                          |
|   $ kiss i baseinit                                                          |
|                                                                              |
+------------------------------------------------------------------------------+


[11.0] Set the root password
________________________________________________________________________________

+------------------------------------------------------------------------------+
|                                                                              |
|   $ passwd root                                                              |
|                                                                              |
+------------------------------------------------------------------------------+


[12.0] Add a normal user
________________________________________________________________________________

+------------------------------------------------------------------------------+
|                                                                              |
|   $ adduser USERNAME                                                         |
|                                                                              |
+------------------------------------------------------------------------------+


[13.0] Install Xorg (optional)
________________________________________________________________________________

To install Xorg, the input drivers and a basic default set of fonts, run the
following commands. See @/wiki/xorg

+------------------------------------------------------------------------------+
|                                                                              |
|   $ kiss b xorg-server xinit xf86-input-libinput                             |
|                                                                              |
+------------------------------------------------------------------------------+
| Installing a base font is recommended as nothing will work without fonts.    |
+------------------------------------------------------------------------------+
|                                                                              |
|   $ kiss b liberation-fonts                                                  |
|   $ kiss i liberation-fonts                                                  |
|                                                                              |
+------------------------------------------------------------------------------+


    [13.1] Add your user to the relevant groups
    ____________________________________________________________________________

    This groups based permissions model may not be suitable if KISS will be
    used as a multi-seat system. Further configuration can be done at your
    own discretion.

    +--------------------------------------------------------------------------+
    | Replace 'USERNAME' with the name of the user created earlier.            |
    +--------------------------------------------------------------------------+
    |                                                                          |
    | $ addgroup USERNAME video                                                |
    | $ addgroup USERNAME audio                                                |
    |                                                                          |
    +--------------------------------------------------------------------------+


[14.0] Further steps
________________________________________________________________________________

You should now be able to reboot into your KISS installation. Typical
configuration should follow (creation of users, service configuration,
installing a window manager, terminal etc).

While kiss is a simple package manager, it is highly extensible. Be sure to read
about it at @/package-manager for useful options and tips.

The KISS Wiki is a good place to look for post-installation information.

+------------------------------------------------------------------------------+
| TIP!                                                                         |
+------------------------------------------------------------------------------+
|                                                                              |
|   The Wiki is available offline via 'kiss help wiki'.                        |
|                                                                              |
|   $ kiss help wiki                                                           |
|                                                                              |
|   $ kiss help wiki/xorg                                                      |
|   $ kiss help wiki/xorg/xinit                                                |
|   $ kiss help wiki/xorg/xinit                                                |
|                                                                              |
|   $ kiss help wiki/software                                                  |
|   $ kiss help wiki/software/man-pages                                        |
|                                                                              |
+------------------------------------------------------------------------------+

If you encountered any issues, don't hesitate to open an issue on one of our
GitHub repositories, post on the subreddit, or join the IRC server.

See: @/contact


________________________________________________________________________________

This site is an archive of a previous version of KISS's website. The current
version can be found at https://kisslinux.org/.

Dylan Araps    (C) 2019-2020
kiss-community (C) 2020-2021
Dilyn Corner   (C) 2021

Linux(R) is the registered trademark of Linus Torvalds in the U.S. and
other countries.