everest-logo Home About Install Packages Downloads Docs Errata Git ↗

General Recommendations

NOTE:

This page is outdated as of 9/17/2024

Reason: Glacier v4, esv rewrite, among others

This page will explain how to expand an Everest system from barebones to more usable.

1 - Administration

1.1 Users

A base system leaves only the root account. Using this account for daily use is extremely unsafe. It is highly recommended to create an unprivileged user.

This can be done with the 'adduser' command. See 'man adduser' for more info.

1.2 Services

Learn how to use your system's init system. 'esv' should be relatively straightforward, while 'systemd' may require more practice.

To enable services on systems using 'esv':

(root)# esv start service

On 'systemd':

(root)# systemctl enable --now service

With no service manager:

(root)# /etc/init.d/service_name {start,stop,restart}

2 - Package Management

2.1 Basics

Everest uses 'glacier' as its package manager. It downloads a PKGBUILD-like script and sources it. It then runs the according functions.

Glacier functions a lot like Gentoo's 'portage', and while 'glacier' is not as feature-rich, it should satisfy the needs of most users.

2.2 Repositories

The 'GREPO' variable, defined in '/etc/glacier.conf', is where Glacier will download packages to. This is tied into your system profile, and should not be changed.

2.3 Packages

Everest does not provide many packages. Thus, it is up to the user to package their own software.

WIKI: Introduction to Glacier

3 - Boot process

3.1 Microcode

All users of AMD and Intel CPUs should install their corresponding microcode update package.

(root)# gpkg -f {amd,intel}-ucode

3.2 Secure boot

Everest does not officially support UEFI secure boot at the moment. While you can always attempt to implement it yourself, there will most likely be pitfalls.

For most users, disabling secure boot altogether is recommended.

3.3 Rescue partition

By default, an Everest system image ships with a directory called '/rescue'. These files can be copied over to a separate partition for quick system repair.

4 - Interface

4.1 Display server

Xorg is the de-facto standard display server in the Linux world, and allows the user to run graphical applications, such as a desktop environment, window manager, and other programs.

Wayland is an alternative to Xorg, but is not compatible with everything.

Configuring Xorg is an absolute headache, while Wayland is relatively smooth. Weigh the benefits of both and decide what works better for you.

Everest doesn't actually ship Xorg, it ships Xenocara, OpenBSD's build framework for Xorg. The two should be 100% compatible.

4.2 Drivers

AMD graphics drivers are included in distribution kernels, and can be included in custom kernels when configuring. Nouveau, the open source implementation of Nvidia's graphics drivers can be included as well.

While these defaults may be adequate for running a headless machine, or just general web browsing, some users may want more performance out of their GPU.

Install mesa, which provides an open source implementation of OpenGL, Vulkan, and other APIs:

(root)# gpkg -f mesa

Install AMD drivers:

(root)# gpkg -f mesa

Install Nvidia drivers on a system running a distribution kernel:

(root)# gpkg -f nvidia

Or, install Nvidia drivers on a system running a custom kernel:

(root)# gpkg -f nvidia-dkms

4.3 Desktop environments

Desktop environments provide a complete graphical interface, like what's found in most Linux distributions. Users who want something that will work out of the box will most likely opt for a desktop environment.

Some popular choices include GNOME, KDE Plasma, and Xfce.

4.4 Standalone window managers

A window manager is a single program with one task - manage window position, size, etc. Users who want a lightweight, keyboard oriented workflow, and are fine with extensive customization will most likely opt for a window manager.

Some popular choices include i3, sway, bspwm, openbox, awesome, and dwm.

5 - Networking

5.1 Clock synchronization

NTP is a protocol for synchronizing computer clocks over the network.

Chrony, one implementation, is available in the package database.

In case it was not installed, run:

(root)# gpkg -f chrony

5.2 Firewall

Firewalls provide an extra layer of protection.

The default firewall in Everest is ufw, which can be installed by running:

(root)# gpkg -f ufw

6 - Input

6.1 Keyboard layouts

If your keyboard layout is non-english, or otherwise unusual, you will need to configure it, both in TTY and in Xorg.

Keymaps are located in /usr/share/kbd/keymaps.

To change the keyboard layout, edit /etc/vconsole.conf:

FILE: /etc/vconsole.conf

KEYMAP=uk