Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:manual:reference_installation [2022/03/11 13:44]
i3_relativism [Verification of package signatures]
en:manual:reference_installation [2025/03/17 01:21] (current)
throgh [System configuration]
Line 1: Line 1:
 ====== The Installation Guide ====== ====== The Installation Guide ======
 +The intention of this reference Guide is to assist users in the process of installing **Hyperbola GNU/Linux-libre** from the live system booted with the official installation image. This page assumes you have some **level of experience** with GNU/Linux systems and utilities, especially with the command line. Before beginning, we recommend you to employ the <color #620BB9/#EEDDFF>man ''command''</color> to read the man page of any command they are not familiar with. The Hyperbola wiki (known as **HyperWiki**) should be the primary source of information and your first resource during trouble-shooting. 
  
-The Installation Guide for Hyperbola live-CD image (launchable from USB thumb-drive, too) is intended to assist experienced GNU/Linux users in installing **Hyperbola** from the live system booted with the official installation image. This page assumes a **high-level of experience** with GNU/Linux systems and utilities, especially the command line. If you'd like a more detailed, step-by-step guide through the installation process, see the [[en:manual:beginner_installation|Beginners guide]]. Before beginning, we recommend you view our [[en:project:faq]], the [[https://wiki.archlinux.org/index.php/Frequently_asked_questions|Arch FAQ]] , and employ the <color #620BB9/#EEDDFF>man ''command''</color> to read the man page of any command they are not familiar with. The Hyperbola wiki (known as **HyperWiki**)as well as the **ArchWiki**, should be the primary source of information and your first resource during trouble-shooting+==== Blind and visually impaired users ==== 
 +[[en:project:downloads#Hyperbola]] includes **brltty**for those who own braille displays.  The [[https://www.hyperbola.info/packages/?q=brltty|brltty]] package available was compiled with as few dependencies as possible. If you wish to use brailleyou will need to supply the brltty parameter at the boot prompt.  Alternatively, you can start <color #620BB9/#EEDDFF>brltty</color> from the shellafter the system has booted.
  
-===== Download =====+The brltty boot-time parameter consists of three comma-separated fields: **driver**, **device**, and **table**.  The first is the driver for your display, the second is the name of the device file, and the third is a relative path to a translation table.  You can use "<color #620BB9/#EEDDFF>auto</color>" to specify that the driver should be automatically detected.  We encourage you to read the <color #620BB9/#EEDDFF>brltty</color> documentation for a fuller explanation of the program. 
 + 
 +Once <color #620BB9/#EEDDFF>brltty</color> is running, you may wish to disable speech.  You can do so via the "<color #620BB9/#EEDDFF>print screen</color>" key, also known as <color #620BB9/#EEDDFF>sysrq</color>
 +===== Create bootable image ===== 
 +==== Download live image ==== 
 + 
 +Make sure to change your BIOS settings so that your computer will boot from your optical disk or USB stick.
  
 Download the new **Hyperbola ISO** from the [[en:project:downloads|download page]]. Download the new **Hyperbola ISO** from the [[en:project:downloads|download page]].
   * Instead of six different images we only provide a **single one** which can be booted into an **i686** and **x86_64** live system to install **Hyperbola GNU/Linux-libre** over the network.   * Instead of six different images we only provide a **single one** which can be booted into an **i686** and **x86_64** live system to install **Hyperbola GNU/Linux-libre** over the network.
 +  
 +=== Verify the live image ====
 +Once you have downloaded the [[en:project:downloads|Live image]] as described you should verify it following: {{page>en:manual:verify_live_images}}.
 +
   * Install images are **signed** and it is highly recommend to **verify their signature** before use. On **Hyperbola**, this can be done by using <color #620BB9/#EEDDFF>pacman-key -v <iso-file>.sig</color>   * Install images are **signed** and it is highly recommend to **verify their signature** before use. On **Hyperbola**, this can be done by using <color #620BB9/#EEDDFF>pacman-key -v <iso-file>.sig</color>
   * The image can be burned to a **CD**, mounted as an **ISO** file, or directly written to a **USB stick** using a utility like <color #620BB9/#EEDDFF>dd</color>. It is intended for new installations only; an existing **Hyperbola GNU/Linux-libre** system can always be updated with <color #620BB9/#EEDDFF>pacman -Syu</color>.   * The image can be burned to a **CD**, mounted as an **ISO** file, or directly written to a **USB stick** using a utility like <color #620BB9/#EEDDFF>dd</color>. It is intended for new installations only; an existing **Hyperbola GNU/Linux-libre** system can always be updated with <color #620BB9/#EEDDFF>pacman -Syu</color>.
  
-===== Blind and visually impaired users =====+==== Writing a Hyperbola ISO image to an USB drive ==== 
 +=== Burn the image to your optical disk === 
 +To create a disk to use as your install medium, insert a blank or re-writable disk, CD or DVD, into your disk drive. Next, you will need to mount the disk.
  
-There is a ISO called [[en:project:downloads#HyperTalking]] that is a derivative install CD based on **TalkingArch** and a respin of the Hyperbola ISO modified to include speech and braille output.+<code bash> 
 +mount sr0 
 +</code>
  
-===== Writing Hyperbola ISO image to an USB drive =====+Provided your computer has disk drive. Sr0 should the first or only, if you only have one disk drive, mount point of disk drives. You will need to address the correct destination for the command to work.
  
 <code bash> <code bash>
-# dd if=''[iso file]'' of=''[usb device file]'' bs=1M && sync+# dd if=~/hyperbola-milky-way-v0.4.3-dual.iso of=/dev/sr0 bs=2048 conv=noerror && sync
 </code> </code>
  
-<note>''**[iso file]**'' is the path to the **ISO image** file.</note>+=== Write the image to your USB === 
 +If you don’t have an ISO writer, go (change directory) to the folder where you saved the downloaded Live image (probably the Downloads folder) and type the following into your terminal:
  
-<note>''**[usb device file]**'' is the path to the **USB device** file. <color #620BB9/#EEDDFF>dmesg</color> or <color #620BB9/#EEDDFF>lsblk --fs</color> can be used to learn this pathIt is often similar to device filenames of storage devices like hard drives and SSDs, e.g<color #0B71B9/#DDF1FF>/dev/sdb</color> '''**It is very important to use the correct value**''' to avoid overwriting other storage devices.</note>+<code bash> 
 +dd if=hyperbola-milky-way-v0.4.3-dual.iso of=/dev/sdb bs=2048 && sync 
 +</code>
  
-===== Installation =====+<note>Usually works fine, even though I’ve seen other commands; feel free to modify it.</note>
  
 +To find out what’s the name of the USB device, type <color #620BB9/#EEDDFF>fdisk -l</color>
  
-==== Keyboard layout ====+You’ll probably see something like this:
  
-For many countries and keyboard types appropriate keymaps are available already, and a command like <color #0B71B9/#DDF1FF>loadkeys uk</color> might do what you want. More available keymap files can be found in <color #0B71B9/#DDF1FF>/usr/share/kbd/keymaps/</color> (you can omit the keymap path and file extension when using <color #620BB9/#EEDDFF>loadkeys</color>).+<code> 
 +Device             Boot    Start                  End              Sectors               Size        Id    Type 
 +/dev/sda1                    2048                   8390655       8388608              4G           82    Linux swap /Solaris 
 +/dev/sda2                8390656             976773167  968382512          461,8G   83    Linux 
 +</code>
  
-=== Braille Support ===+<code> 
 +Device             Boot    Start                 End              Sectors                Size        Id    Type 
 +/dev/sdb1                                         1255423      1255424               613M      0     Empty 
 +/dev/sdb2                     172                    63659           63488                   31M        ef    EFI (FAT-12/16/32) 
 +</code>
  
-[[en:project:downloads#HyperTalking]] includes **brltty**for those who own braille displays.  The [[https://www.hyperbola.info/packages/?q=brltty|brltty]] package available on the [[en:project:downloads#HyperTalking]] CD was compiled with as few dependencies as possible. If you wish to use braille, you will need to supply the brltty parameter at the boot prompt.  Alternatively, you can start <color #620BB9/#EEDDFF>brltty</color> from the shell, after the system has booted.+From the abovesda is your HDD, and the sdb is your USB device where you’re going to write your Live image
  
-The brltty boot-time parameter consists of three comma-separated fields: **driver**, **device**, and **table**.  The first is the driver for your display, the second is the name of the device fileand the third is a relative path to a translation table.  You can use "<color #620BB9/#EEDDFF>auto</color>" to specify that the driver should be automatically detected.  I encourage you to read the <color #620BB9/#EEDDFF>brltty</color> documentation for a fuller explanation of the program.+Also take a note of your partitionsyou will come to need it when you’re creating the file system and mounting the root partition during the installation.
  
-For example, suppose that you have a device connected to <color #0B71B9/#DDF1FF>/dev/ttyS0</color>, the first serial port.  You wish to use the US English text tableand the driver should be **automatically detected**.  Here is what you should type at the boot prompt:+Once you’ve downloadedverified and written the Live image to your USB device, you can move on to boot your computer from your USB.
  
 <code bash> <code bash>
-arch32 brltty=auto,ttyS0,en_US+# dd if=''[iso file]'' of=''[usb device file]'' bs=1M && sync
 </code> </code>
  
-Once <color #620BB9/#EEDDFF>brltty</color> is running, you may wish to disable speech You can do so via the "<color #620BB9/#EEDDFF>print screen</color>" key, also known as <color #620BB9/#EEDDFF>sysrq</color> On my qwerty keyboard, that key is located directly above the insert key, between F12 and scroll lock.+<note>''**[iso file]**'' is the path to the **ISO image** file.</note>
  
-==== Partition disks ====+<note>''**[usb device file]**'' is the path to the **USB device** file. <color #620BB9/#EEDDFF>dmesg</color> or <color #620BB9/#EEDDFF>lsblk --fs</color> can be used to learn this path. It is often similar to device filenames of storage devices like hard drives and SSDs, e.g. <color #0B71B9/#DDF1FF>/dev/sdb</color> '''**It is very important to use the correct value**''' to avoid overwriting other storage devices.</note>
  
-See [[https://wiki.archlinux.org/index.php/Partitioning|partitioning]] for details. +===== Internet Connection =====
- +
-Remember to create any stacked block devices like [[https://wiki.archlinux.org/index.php/LVM|LVM]], [[https://wiki.archlinux.org/index.php/Dm-crypt|LUKS]], or [[https://wiki.archlinux.org/index.php/RAID|RAID]]. +
- +
-==== Format the partitions ==== +
- +
-See [[https://wiki.archlinux.org/index.php/File_systems|File Systems]] for details. +
- +
-If you are using (U)EFI you will most probably need another partition to host the UEFI System partition. Read [[https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface|Create an UEFI System Partition in GNU/Linux]]. +
- +
-==== Mount the partitions ==== +
- +
-We now must mount the root partition on <color #0B71B9/#DDF1FF>/mnt</color>. You should also create directories for and mount any other partitions (<color #0B71B9/#DDF1FF>/mnt/boot</color>, <color #0B71B9/#DDF1FF>/mnt/home</color>, ...) and mount your [[https://wiki.archlinux.org/index.php/Swap|swap]] partition if you want them to be detected by <color #620BB9/#EEDDFF>genfstab</color>.+
  
 ==== Connect to the Internet ==== ==== Connect to the Internet ====
Line 65: Line 81:
 <note warning>As of v197, **udev** no longer assigns network interface names according to the **wlanX** and **ethX** naming scheme. If you are coming from a different distribution or are reinstalling **Hyperbola** and not aware of the new interface naming style, please do not assume that your wireless interface is named <color #620BB9/#EEDDFF>wlan0</color>, or that your wired interface is named <color #620BB9/#EEDDFF>eth0</color>. You can use the command <color #620BB9/#EEDDFF>ip link</color> to discover the names of your interfaces.</note> <note warning>As of v197, **udev** no longer assigns network interface names according to the **wlanX** and **ethX** naming scheme. If you are coming from a different distribution or are reinstalling **Hyperbola** and not aware of the new interface naming style, please do not assume that your wireless interface is named <color #620BB9/#EEDDFF>wlan0</color>, or that your wired interface is named <color #620BB9/#EEDDFF>eth0</color>. You can use the command <color #620BB9/#EEDDFF>ip link</color> to discover the names of your interfaces.</note>
  
-A DHCP service is already enabled for **all available devices**. If you need to setup a static IP or use management tools, you should stop this service first: +A DHCP service is already enabled for **all available devices**. If you need to setup a static IP or use management tools, we will address this point later on.
- +
-<code bash> +
-# rc-service dhcpcd stop +
-</code> +
- +
-For more information read [[https://wiki.archlinux.org/index.php/Network_configuration|Configuring Network]].+
  
 The [[https://www.hyperbola.info/packages/?q=dhcpcd|dhcpcd]] network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org: The [[https://www.hyperbola.info/packages/?q=dhcpcd|dhcpcd]] network daemon starts automatically during boot and it will attempt to start a wired connection. Try to ping a server to see if a connection was established. For example, gnu.org:
Line 100: Line 110:
 </code> </code>
  
-Identify the name of your Ethernet interface.+Identify the name of your ethernet interface.
  
 <code bash> <code bash>
Line 113: Line 123:
 </code> </code>
  
-In this example, the Ethernet interface is **enp2s0f0**. If you are unsure, your Ethernet interface is likely to start with the letter "**e**", and unlikely to be "**lo**" or start with the letter "**w**". You can also use <color #620BB9/#EEDDFF>iwconfig</color> and see which interfaces are not wireless:+In this example, the ethernet interface is **enp2s0f0**. If you are unsure, your ethernet interface is likely to start with the letter "**e**", and unlikely to be "**lo**" or start with the letter "**w**". You can also use <color #620BB9/#EEDDFF>iwconfig</color> and see which interfaces are not wireless:
  
 <code bash> <code bash>
Line 130: Line 140:
 </code> </code>
  
-In this example, neither **enp2s0f0** nor the **loopback** device have wireless extensions, meaning **enp2s0f0** is our Ethernet interface.+In this example, neither **enp2s0f0** nor the **loopback** device have wireless extensions, meaning **enp2s0f0** is our ethernet interface.
  
 You also need to **know these settings**: You also need to **know these settings**:
Line 140: Line 150:
   * Domain name (unless you are on a local LAN, in which case you can make it up).   * Domain name (unless you are on a local LAN, in which case you can make it up).
  
-Activate the connected Ethernet interface (e.g. **enp2s0f0**):+Activate the connected ethernet interface (e.g. **enp2s0f0**):
  
 <code bash> <code bash>
Line 183: Line 193:
  
 <note> <note>
-Currently, you may include a maximum of three nameserver lines. In order to overcome this limitation, you can use a locally caching nameserver like [[https://wiki.archlinux.org/index.php/Dnsmasq|Dnsmasq]].+Currently, you may include a maximum of three nameserver lines. In order to overcome this limitation, you can use a locally caching nameserver like **Dnsmasq**.
 </note> </note>
  
-You should now have a working network connection. If you do not, check the detailed [[https://wiki.archlinux.org/index.php/Network_Configuration|Network Configuration]] page.+You should now have a working network connection.
  
 === Wireless === === Wireless ===
Line 208: Line 218:
  
 <note> <note>
-If you do not see output similar to this, then your wireless driver has not been loaded. Please see [[https://wiki.parabola.nu/Wireless_Setup|Wireless Setup]] for more detailed information.+If you do not see output similar to this, then your wireless driver has not been loaded.
 </note> </note>
  
Line 224: Line 234:
 </code> </code>
  
-Then, your wireless chipset could need a <color #B90B0B/#FFDDDD>non-free firmware</color> to function. **This is not supported on Hyperbola**. Please see [[https://wiki.parabola.nu/Wireless_Setup|Wireless Setup]] if you are unsure if this is the true for your particular chipset.+Then, your wireless chipset could need a <color #B90B0B/#FFDDDD>non-free firmware</color> to function. **This is not supported on Hyperbola**.
 </note> </note>
  
Line 263: Line 273:
 Follow this procedure if you need **ADSL with PPPoE/PPPoA** during the installation process. Follow this procedure if you need **ADSL with PPPoE/PPPoA** during the installation process.
  
-First, identify the name of your Ethernet interface.+First, identify the name of your ethernet interface.
  
 <code bash> <code bash>
Line 276: Line 286:
 </code> </code>
  
-In this example, the Ethernet interface is **enp2s0f0**.+In this example, the ethernet interface is **enp2s0f0**.
  
-Second, create the PPP net script and the net script for the Ethernet interface to be used by PPP:+Second, create the PPP net script and the net script for the ethernet interface to be used by PPP:
  
 <code bash> <code bash>
Line 330: Line 340:
 </code> </code>
  
-=== Behind a proxy server  ===+=== Behind a proxy server ===
  
-If you are behind a proxy server, you will need to export the <color #620BB9/#EEDDFF>http_proxy</color> and <color #620BB9/#EEDDFF>ftp_proxy</color> environment variables. See [[https://wiki.archlinux.org/index.php/Proxy_settings|Proxy settings]] for more information.+If you are behind a proxy server, you will need to export the <color #620BB9/#EEDDFF>http_proxy</color> and <color #620BB9/#EEDDFF>ftp_proxy</color> environment variables.
  
-==== Verification of package signatures ==== +===== Installation ===== 
- +==== Partition disks ====
-New packager keys are necessary by default to install **Hyperbola** from current ISOs. Because changes in existing keys might happen since the ISO release, it is recommended, if **not mandatory**, to update the keys before attempting an install.+
  
 <note important> <note important>
-Keep in mind these steps will fail if your system is not set to the correct time, or if you are not connected to the internet. See [[en:manual:reference_installation#connect_to_the_internet|above]] for internet setup instructions.+These instructions assume that you are using MBR (Master Boot Record) as the partitioning scheme for your installation disk. Installation on a GPT-based disk is slightly different than the process described here.
 </note> </note>
  
-To check that your computer has the correct timeenter <color #620BB9/#EEDDFF>date</color> in the terminal.+Once your computer has successfully booted into the Live USB devicetype the following into you terminal:
  
 <code bash> <code bash>
-date+cfdisk /dev/sda
 </code> </code>
  
-If the date is incorrectyou will need to manually set the correct time.+This will bring up a graphical partitioning tableand will look somewhat like fig. 1 (see above). Use the Tab and arrow keys to navigate. This is assuming that you want Hyperbola installed on your HDD
  
-<code bash> +Delete all the partitions so that you only see Free Space.
-# date MMDDhhmm[[CC]YY][.ss] +
-</code>+
  
-where **MM** is the month, **DD** the day, **hh** the hour, **mm** the minutes, **CC** the century, **YY** the year and **.SS** the seconds of current time, the seconds can be omitted (and then also the dot before them should be omitted)the year can also be submitted or just the centuryfor instance if the current time is 32 seconds and 44 minutes past 18 (6 pm) on the 13th November 2013Then the command would be:+Then make a new partition by choosing New and then make it PrimaryMake this first partition a Swap. 1/4 of you computer’s memory should be enough. So with 8 GB of memoryyour Swap would then be 2 GBThen choose the End flag.
  
-<code bash> +The rest of the space should be made Primary, then choose the Boot flag to make this partition bootable. Then choose Write and type ’yes’ to save your changes to disk. Then Quit.
-# date 111318442013.32 +
-</code>+
  
-Once the date is correct, we need to initialize the gnupg directory and update pacman's keys.+You will then have something like this:
  
-<code bash+<code> 
-# pacman-key --init+sda2 Boot  Primary  Linux 
 +sda1             Primary  Linux  Swap / Solaris
 </code> </code>
  
 +Take note of the fact that the root partition that you soon will mount, is the bootable one (in this example the sda2) that you made from the rest of the space after creating the Swap partition.
 +
 +Remember to create any stacked block devices like **LUKS**, or **RAID**.
 +
 +==== System Configuration ====
 +=== Activate swap ===
 <code bash> <code bash>
-mount -o remount,size=100M,noatime /etc/pacman.d/gnupg+mkswap /dev/sda1
 </code> </code>
  
 <code bash> <code bash>
-pacman-key --populate hyperbola+swapon /dev/sda1
 </code> </code>
 +
 +=== Keyboard layout ===
 +For many countries and keyboard types appropriate keymaps are available already, and a command like <color #0B71B9/#DDF1FF>loadkeys uk</color> might do what you want. More available keymap files can be found in <color #0B71B9/#DDF1FF>/usr/share/kbd/keymaps/</color> (you can omit the keymap path and file extension when using <color #620BB9/#EEDDFF>loadkeys</color>).
 +
 +If you’re not using an English keyboard, you can set your language by typing <color #620BB9/#EEDDFF>loadkeys</color> followed by you language. Available keymap files can be found in <color #0B71B9/#DDF1FF>/usr/share/kbd/keymaps/</color> (you can omit the keymap path and file extension when using <color #620BB9/#EEDDFF>loadkeys</color>). For British users, type:
  
 <code bash> <code bash>
-pacman-key --refresh-keys+loadkeys uk.
 </code> </code>
  
-If you get GPG errors updating those packages, you can try running these commands to start over:+==== Format the partitions ==== 
 + 
 +If you are using (U)EFI you will most probably need another partition to host the UEFI System partition. 
 + 
 +=== Create a file system === 
 +To create the ext4 file system, type:
  
 <code bash> <code bash>
-rm -r /etc/pacman.d/gnupg/*+mkfs.ext4 /dev/sda2
 </code> </code>
 +
 +=== Mount the partitions ===
 +
 +We now must mount the root partition on <color #0B71B9/#DDF1FF>/mnt</color>. You should also create directories for and mount any other partitions (<color #0B71B9/#DDF1FF>/mnt/boot</color>, <color #0B71B9/#DDF1FF>/mnt/home</color>, ...) and mount your swap-partition if you want them to be detected by <color #620BB9/#EEDDFF>genfstab</color>.
 +=== Mount the root partition ===
  
 <code bash> <code bash>
-pacman-key --init+mount /dev/sda2 /mnt
 </code> </code>
 +
 +==== Verification of system-date ====
 +
 +To check that your computer has the correct time, enter <color #620BB9/#EEDDFF>date</color> in the terminal.
  
 <code bash> <code bash>
-pacman-key --populate hyperbola+date
 </code> </code>
 +
 +If the date is incorrect, you will need to manually set the correct time.
  
 <code bash> <code bash>
-pacman-key --refresh-keys+date MMDDhhmm[[CC]YY][.ss]
 </code> </code>
  
-If you get an error related to <color #620BB9/#EEDDFF>dirmngr</color>you can get rid of it with:+where **MM** is the month**DD** the day, **hh** the hour, **mm** the minutes, **CC** the century, **YY** the year and **.SS** the seconds of current time, the seconds can be omitted (and then also the dot before them should be omitted), the year can also be submitted or just the century. for instance if the current time is 32 seconds and 44 minutes past 18 (6 pm) on the 13th November 2013. Then the command would be:
  
 <code bash> <code bash>
-mkdir /root/.gnupg && chmod go-rx /root/.gnupg && touch /root/.gnupg/dirmngr_ldapservers.conf+date 111318442013.32
 </code> </code>
  
-For the time being, running the previous command might also be needed in the newly installed system. +==== Base system installation ==== 
- +<note>Before installing, you may want to edit <color #0B71B9/#DDF1FF>/etc/pacman.d/mirrorlist</color> such that your preferred mirror is first. This copy of the mirrorlist will be installed on your new system by <color #620BB9/#EEDDFF>pacstrap</color> as well, so it's worth getting it right. 
-==== Install the base system ==== +</note>
- +
-Before installing, you may want to edit <color #0B71B9/#DDF1FF>/etc/pacman.d/mirrorlist</color> such that your preferred mirror is first. This copy of the mirrorlist will be installed on your new system by <color #620BB9/#EEDDFF>pacstrap</color> as well, so it's worth getting it right.+
  
 Install the base system using <color #620BB9/#EEDDFF>pacstrap</color>: Install the base system using <color #620BB9/#EEDDFF>pacstrap</color>:
  
 <code bash> <code bash>
-# pacstrap /mnt+# pacstrap /mnt base
 </code> </code>
  
 You can install additional packages passing <color #620BB9/#EEDDFF>base</color> and the names of these packages as arguments after the root directory of the new installation (all packages from the **base group** are installed if no package is specified). You can install additional packages passing <color #620BB9/#EEDDFF>base</color> and the names of these packages as arguments after the root directory of the new installation (all packages from the **base group** are installed if no package is specified).
  
 +<note> You can also use package group **base-devel** to include developement and contribution tools </note>
 +
 +<note warning>
 If you have a **btrfs root**, you probably want to install also [[https://www.hyperbola.info/packages/?q=btrfs-progs|btrfs-progs]]. If you have a **btrfs root**, you probably want to install also [[https://www.hyperbola.info/packages/?q=btrfs-progs|btrfs-progs]].
 +</note>
  
-<note> +==== Wireless tools installation ==== 
-If you face GPG errors when running:+If your wireless network is WPA protected, you'll need [[https://www.hyperbola.info/packages/?q=wpa_supplicant|wpa_supplicant]] to connect to it:
  
 <code bash> <code bash>
-# pacstrap /mnt+# pacstrap /mnt wpa_supplicant
 </code> </code>
  
-Then, you can try to fix them with:+==== System configuration ==== 
 +=== Generate an fstab === 
 +<code bash> 
 +# genfstab -U -p /mnt >> /mnt/etc/fstab 
 +</code> 
 + 
 +Generate a **fstab** with the following command (if you prefer to use UUIDs or labels, add the <color #620BB9/#EEDDFF>-U</color> or <color #620BB9/#EEDDFF>-L</color> option, respectively):
  
 <code bash> <code bash>
-rm -/etc/pacman.d/gnupg/*+genfstab -/mnt >> /mnt/etc/fstab
 </code> </code>
 +
 +=== Chroot and configure the base system ===
 +Next we need to enter directly our newly installed system:
  
 <code bash> <code bash>
-pacman-key --init+arch-chroot /mnt
 </code> </code>
 +
 +=== Hostname ===
 +Usually it’s sufficient to set your hostname to localhost. 
  
 <code bash> <code bash>
-pacman-key --populate hyperbola arch+echo localhost > /etc/hostname
 </code> </code>
 +
 +Add the same hostname, i.e. localhost, to <color #0B71B9/#DDF1FF>/etc/hosts</color>.
 +
 +Type:
  
 <code bash> <code bash>
-pacman-key --refresh-keys+nano /etc/hosts
 </code> </code>
  
-</note>+<code> 
 +# <ip-address> <hostname.domain.org> <hostname> 
 +127.0.0.1                localhost.localdomain     localhost localhost 
 +::1                             localhost.localdomain     localhost localhost 
 +</code>
  
-==== Install and configure a bootloader ==== 
  
-=== GRUB ===+=== Locale ===
  
-  * For BIOS and EFI:+Type the following to set locale preferences in <color #0B71B9/#DDF1FF>/etc/locale.conf</color>
  
 <code bash> <code bash>
-pacstrap /mnt grub+nano /etc/locale.gen
 </code> </code>
  
-  * Install GRUB after chrooting (refer to the [[en:manual:reference_installation#Configure the system]] section).+Now choose your locale from what language you’re using. All locales are commented out (preceded by #) by default. Uncomment (remove the #for your choice of localeFor US English, it should look like this:
  
-See [[https://wiki.parabola.nu/GRUB2|GRUB]] for further details.+<code> 
 +... 
 +#en_SG ISO-8859-1 
 +en_US.UTF-8 UTF-8 
 +#en_US ISO-8859-1 
 +... 
 +</code>
  
-=== Syslinux ===+After you’ve uncommented your language, run the command:
  
-<code bash>  +<code bash> 
-pacstrap /mnt syslinux+locale-gen
 </code> </code>
  
-See [[https://wiki.parabola.nu/Syslinux|Syslinux]] for further details.+Then check the file <color #0B71B9/#DDF1FF>/etc/locale.conf</color>If not existing you can create it like following up:
  
-==== Install wireless tools ====+<code bash> 
 +# echo LANG=en_US.UTF-8 > /etc/locale.conf  
 +</code>
  
-If your wireless network is WPA protectedyou'll need [[https://www.hyperbola.info/packages/?q=wpa_supplicant|wpa_supplicant]] to connect to it:+Then export your chosen localejust in case for your current session
  
 <code bash> <code bash>
-pacstrap /mnt wpa_supplicant+export LANG=en_US.UTF-8
 </code> </code>
  
-==== Configure the system ====+Add console keymap and font preferences in <color #0B71B9/#DDF1FF>/etc/conf.d/keymaps</color>
  
-Generate a [[https://wiki.archlinux.org/index.php/Fstab|fstab]] with the following command (if you prefer to use UUIDs or labels, add the <color #620BB9/#EEDDFF>-U</color> or <color #620BB9/#EEDDFF>-L</color> option, respectively):+=== Keymap === 
 +As the locale, you need to setup the keymap in the file <color #0B71B9/#DDF1FF>/etc/conf.d/keymaps</color>:  
 + 
 +<code> 
 +keymap="us" 
 +</code> 
 + 
 +If you have an advanced usage of your keymap, you can watch the other functionalities, documented in the comments. You can find all the available keymaps in <color #0B71B9/#DDF1FF>/usr/share/kbd/keymaps</color>. Then run:
  
 <code bash> <code bash>
-genfstab -p /mnt >> /mnt/etc/fstab+rc-update add keymaps default
 </code> </code>
  
-Next we [[https://wiki.archlinux.org/index.php/Change_Root|chroot]] into our newly installed system:+<note>This only applies for CLI, is you are using X11, this won't affect your graphical environment.</note> 
 + 
 +=== Time zone === 
 +Create a symbolic link <color #0B71B9/#DDF1FF>/etc/localtime</color> to your subzone file <color #0B71B9/#DDF1FF>/usr/share/zoneinfo/Zone/SubZone</color>:
  
 <code bash> <code bash>
-arch-chroot /mnt+ln -/usr/share/zoneinfo/Zone/SubZone /etc/localtime
 </code> </code>
  
-  * Write your hostname to <color #0B71B9/#DDF1FF>/etc/hostname</color>+Example:
  
 <code bash> <code bash>
-echo myhostname > /etc/hostname+ln -s /usr/share/zoneinfo/Europe/Oslo /etc/localtime
 </code> </code>
  
-  * Symlink <color #0B71B9/#DDF1FF>/etc/localtime</color> to <color #0B71B9/#DDF1FF>/usr/share/zoneinfo/Zone/SubZone</color>. Replace <color #620BB9/#EEDDFF>Zone</color> and <color #620BB9/#EEDDFF>Subzone</color> to your liking. For example:+If you get <color #620BB9/#EEDDFF>ln: failed to create symbolic link ’/etc/localtime’: File exists</color>, then run:
  
 <code bash> <code bash>
-# ln -s /usr/share/zoneinfo/Europe/Athens /etc/localtime+# ln -s -f /usr/share/zoneinfo/Zone/SubZone /etc/localtime
 </code> </code>
  
-  * Set [[en:manual:beginner_installation#locale|locale]] preferences in <color #0B71B9/#DDF1FF>/etc/locale.conf</color> +=== Hardware clock === 
-  * Add console keymap and font preferences in <color #0B71B9/#DDF1FF>/etc/conf.d/keymaps</color> +Set the hardware clock to UTC
-  * Uncomment the selected locale in <color #0B71B9/#DDF1FF>/etc/locale.gen</color> and generate it with <color #620BB9/#EEDDFF>locale-gen</color> +
-  * Set a root password with <color #620BB9/#EEDDFF>passwd</color> +
-  * Add your user to the relevant [[https://wiki.archlinux.org/index.php/Users_and_groups|group]] such as:+
  
 <code bash> <code bash>
-gpasswd -a YourActualUserName video+hwclock --systohc --utc
 </code> </code>
  
-  * Configure <color #0B71B9/#DDF1FF>/etc/mkinitcpio.conf</color> as needed (see [[https://wiki.archlinux.org/index.php/Mkinitcpio|mkinitcpio]]) and create an initial RAM disk with:+=== Root password === 
 +Remember when you’re typing in your root password (as any password) into the terminal, it won’t show. Just carefully type in your chosen root password and repeat it when asked to. 
 + 
 +<code bash> 
 +# passwd 
 +</code> 
 + 
 +==== Bootloader installation and configuration ==== 
 +=== GRUB === 
 +Finally follow these steps: 
 + 
 +<code bash> 
 +# pacman -S grub 
 +</code> 
 + 
 +<code bash> 
 +# grub-install --target=i386-pc --recheck /dev/sdX 
 +</code> 
 + 
 +<note> 
 +Here do NOT append a partition number, i.e. <color #0B71B9/#DDF1FF>/dev/sdaX</color>
 +</note> 
 + 
 +To configure the bootloader, you have to install it and generate the file <color #0B71B9/#DDF1FF>grub.cfg</color>
 + 
 +<code bash> 
 +# grub-mkconfig -o /boot/grub/grub.cfg 
 +</code> 
 + 
 +=== Syslinux === 
 + 
 +[[https://en.wikipedia.org/wiki/SYSLINUX|Syslinux]] is a collection of boot loaders capable of booting from drives, CDs, and over the network via PXEInstall the **[[https://www.hyperbola.info/packages/?q=syslinux|syslinux]]**-package with the following command: 
 + 
 +<code bash>  
 +# pacstrap /mnt syslinux 
 +</code> 
 + 
 +For further details refer to the [[https://wiki.parabola.nu/Syslinux|corresponding article at Parabola]]. 
 + 
 +=== Create RAM-disk  === 
 + 
 +Configure <color #0B71B9/#DDF1FF>/etc/mkinitcpio.conf</color> as needed (//see man-page for mkinitcpio//) and create an initial RAM disk with:
    
 <code bash> <code bash>
Line 519: Line 629:
 <note>linux-libre-lts is **our default kernel** since we are a long-term support distro.</note> <note>linux-libre-lts is **our default kernel** since we are a long-term support distro.</note>
  
-  * If you want to install GRUB for the (U)EFI mode, you will need to make sure that:+If you want to install GRUB for the (U)EFI mode, you will need to make sure that:
     * The computer booted in (U)EFI mode (if <color #0B71B9/#DDF1FF>/sys/firmware/efi</color> exist, then it booted in (U)EFI mode)     * The computer booted in (U)EFI mode (if <color #0B71B9/#DDF1FF>/sys/firmware/efi</color> exist, then it booted in (U)EFI mode)
     * The efivars module is loaded. (<color #620BB9/#EEDDFF>modprobe efivars</color> will load it)     * The efivars module is loaded. (<color #620BB9/#EEDDFF>modprobe efivars</color> will load it)
  
-  * To configure the bootloader, you have to install it and generate the file <color #0B71B9/#DDF1FF>grub.cfg</color>:+=== Unmount and reboot === 
 +If you are still in the chroot environment type <color #620BB9/#EEDDFF>exit</color> or press <color #620BB9/#EEDDFF>Ctrl+D</color> in order to exit. 
 +<code bash> 
 +# exit 
 +</code>
  
 +Earlier we mounted the partitions under <color #0B71B9/#DDF1FF>/mnt</color>. In this step we will unmount them:
 <code bash> <code bash>
-grub-install /dev/sdX+umount -/mnt
 </code> </code>
  
-<note important+<note> 
-If you want to [[en:manual:encrypted_installation|install GRUB on a Libreboot system]], keep in mind your system **does not use UEFI or Legacy BIOS**but instead loads GRUB as its only payload. So you we will run this command instead: +If you have made separate partitions on your system, do this instead:
 <code bash> <code bash>
-grub-install --no-bootsector /dev/sdX+# umount /mnt/{boot,home,}
 </code> </code>
 </note> </note>
  
 +Now reboot and then login into the new system.
 <code bash> <code bash>
-grub-mkconfig -o /boot/grub/grub.cfg+reboot
 </code> </code>
  
-  * Configure the network again for newly installed environmentSee [[https://wiki.archlinux.org/index.php/Network_Configuration|Network Configuration]] and [[https://wiki.parabola.nu/Wireless_Setup|Wireless Setup]].+Remember to remove your installation medium (your USB stick) before you reboot into your systemTo log in, you type root and your password.
  
-<note tip> +Congratulations! You have now installed **Hyperbola GNU/Linux-libre** onto you computer
-If you are following the [[en:manual:encrypted_installation|libreboot encrypted installation]] instructions, be sure to save a copy of grub.cfg on a thumbdrive in case the one flashed to libreboot is incorrect. You can use the grub shell to boot from the extra copy. +
-</note>+
  
-==== Configure speech support (for blind and visually impaired users) ====+===== Post-installation ===== 
 +You will now have to create a user and get user privileges like doas. And of course, you will have to install your additional environment for working.
  
-If you are using  [[en:project:downloads#HyperTalking]] and need start speech support when you boot the system, you will need to do:+=== Configure pacman === 
 +Edit <color #0B71B9/#DDF1FF>/etc/pacman.conf</color> and configure pacman's options, also enabling the repositories you need.
  
-  * Install [[https://www.hyperbola.info/packages/?q=espeakup|espeakup]] and [[https://www.hyperbola.info/packages/?q=alsa-utils|alsa-utils]]. +=== Update the system === 
-  * Enable the espeakup service by executing:+At this point you should update your system.
  
 <code bash> <code bash>
-rc-update add espeakup default+pacman -Syu
 </code> </code>
  
-  * Save the state of the sound cardso that it will be retrieved on reboot:+=== Add an user and groups for privileges === 
 +Finallyadd a normal user.
  
 <code bash> <code bash>
-alsactl store+useradd -g users -m -s /bin/bash <username>
 </code> </code>
  
-==== Unmount and reboot ====+You should consider the following groups to be used at start:
  
-If you are still in the chroot environment type <color #620BB9/#EEDDFF>exit</color> or press <color #620BB9/#EEDDFF>Ctrl+D</colorin order to exit. +<code bash> 
-Earlier we mounted the partitions under <color #0B71B9/#DDF1FF>/mnt</color>. In this step we will unmount them:+usermod -aG video <username
 +</code>
  
 <code bash> <code bash>
-umount /mnt/{boot,home,}+usermod -aG audio <username>
 </code> </code>
  
-Now reboot and then login into the new system with the root account.+<code bash> 
 +# usermod -aG sys <username> 
 +</code>
  
-==== Configure pacman ====+<code bash> 
 +# usermod -aG storage <username> 
 +</code>
  
-Edit <color #0B71B9/#DDF1FF>/etc/pacman.conf</colorand configure pacman's options, also enabling the repositories you need.+<code bash> 
 +usermod -aG optical <username> 
 +</code>
  
-See [[https://wiki.archlinux.org/index.php/Pacman|Pacman]] and [[en:project:repositories]] for details.+<code bash> 
 +# usermod -aG power <username> 
 +</code>
  
-==== Update the system ====+<code bash> 
 +# usermod -aG network <username> 
 +</code>
  
-At this point you should update your system.+<code bash> 
 +# usermod -aG input <username> 
 +</code>
  
-See [[https://wiki.archlinux.org/index.php/Pacman#Upgrading packages|Upgrading packages]] for instructions.+If you want to access for updating:
  
-==== Add an user ====+<code bash> 
 +# usermod -aG wheel <username> 
 +</code>
  
-Finallyadd a normal user as described in [[https://wiki.archlinux.org/index.php/Users and Groups#User management|User management]].+Please remember also that to execute and access installed freelibre games you need another group-membership:
  
-===== Service management =====+<code bash> 
 +# usermod -aG games <username> 
 +</code>
  
-Since Hyperbola [[https://www.hyperbola.info/news/end-of-systemd-support/|removed entire systemd support]], we suggest you read about [[https://wiki.gentoo.org/wiki/OpenRC|OpenRC]] which is our main default init system.+==== Service management ==== 
 +Since Hyperbola is oriented on init-freedom, we suggest you read about [[https://wiki.hyperbola.info/doku.php?id=en:system:init_systems:openrc|OpenRC]] which is our main default init system.
  
-===== Conclusion =====+==== Graphical environment and your favorite desktop ==== 
 +Hyperbola does not include the common known desktop-environments, for example Gnome, KDE, Xfce, Mate, Cinnamon, Budgie, LxDE or LxQT. If you want to know about our reasoning doing so, please read [[en:philosophy:incompatible_packages|here]] more about.
  
-Your new **Hyperbola GNU/Linux-libre** base system is now a **functional GNU/Linux environment**.+You can for sure create your own working graphical environment as we offer several [[en:system:userspace:window_manager|window managers]] and [[en:system:userspace:desktop_enviroment:lumina_desktop|Lumina Desktop]] as working desktop-environment.
  
-===== Acknowledgement =====+==== Final note about included packages, applications and others ====
  
-This wiki article is based on **ArchWiki****GentooWiki** and **[[https://wiki.parabola.nu/|ParabolaWiki]]**. We may have removed non-[[https://www.gnu.org/philosophy/free-system-distribution-guidelines.html|FSDG]] bits from it.+We ask to make usage of the [[https://www.hyperbola.info/packages/|package-search]] so you can look out to find packages for your further installation, for example graphical file-managers and more. Hyperbola has not the goal to offer a wide number of packages as we focus on minimalism so far. So we do not have the interest to include more packages! 
 + 
 +===== Conclusion ===== 
 +Your new **Hyperbola GNU/Linux-libre** base system is now a **functional GNU/Linux-libre environment**. The rest is up to you for a decision which way your system should take. 
 + 
 +===== Acknowledgement ===== 
 +This wiki article is based on **[[https://wiki.parabola.nu/|ParabolaWiki]]**. We may have removed non-[[https://www.gnu.org/philosophy/free-system-distribution-guidelines.html|FSDG]] bits from it.