371 lines
22 KiB
HTML
371 lines
22 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en" class="sidebar-visible no-js light">
|
|
<head>
|
|
<!-- Book generated using mdBook -->
|
|
<meta charset="UTF-8">
|
|
<title>The HitchHiker's Guide to HitchHiker Linux</title>
|
|
|
|
<meta name="robots" content="noindex" />
|
|
|
|
|
|
|
|
|
|
<!-- Custom HTML head -->
|
|
|
|
|
|
|
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
|
<meta name="description" content="">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="theme-color" content="#ffffff" />
|
|
|
|
|
|
<link rel="icon" href="favicon.svg">
|
|
|
|
|
|
<link rel="shortcut icon" href="favicon.png">
|
|
|
|
<link rel="stylesheet" href="css/variables.css">
|
|
<link rel="stylesheet" href="css/general.css">
|
|
<link rel="stylesheet" href="css/chrome.css">
|
|
|
|
<link rel="stylesheet" href="css/print.css" media="print">
|
|
|
|
|
|
<!-- Fonts -->
|
|
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
|
|
|
|
<link rel="stylesheet" href="fonts/fonts.css">
|
|
|
|
|
|
<!-- Highlight.js Stylesheets -->
|
|
<link rel="stylesheet" href="highlight.css">
|
|
<link rel="stylesheet" href="tomorrow-night.css">
|
|
<link rel="stylesheet" href="ayu-highlight.css">
|
|
|
|
<!-- Custom theme stylesheets -->
|
|
|
|
|
|
|
|
</head>
|
|
<body>
|
|
<!-- Provide site root to javascript -->
|
|
<script type="text/javascript">
|
|
var path_to_root = "";
|
|
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
|
|
</script>
|
|
|
|
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
|
<script type="text/javascript">
|
|
try {
|
|
var theme = localStorage.getItem('mdbook-theme');
|
|
var sidebar = localStorage.getItem('mdbook-sidebar');
|
|
|
|
if (theme.startsWith('"') && theme.endsWith('"')) {
|
|
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
|
}
|
|
|
|
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
|
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
|
}
|
|
} catch (e) { }
|
|
</script>
|
|
|
|
<!-- Set the theme before any content is loaded, prevents flash -->
|
|
<script type="text/javascript">
|
|
var theme;
|
|
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
|
if (theme === null || theme === undefined) { theme = default_theme; }
|
|
var html = document.querySelector('html');
|
|
html.classList.remove('no-js')
|
|
html.classList.remove('light')
|
|
html.classList.add(theme);
|
|
html.classList.add('js');
|
|
</script>
|
|
|
|
<!-- Hide / unhide sidebar before it is displayed -->
|
|
<script type="text/javascript">
|
|
var html = document.querySelector('html');
|
|
var sidebar = 'hidden';
|
|
if (document.body.clientWidth >= 1080) {
|
|
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
|
sidebar = sidebar || 'visible';
|
|
}
|
|
html.classList.remove('sidebar-visible');
|
|
html.classList.add("sidebar-" + sidebar);
|
|
</script>
|
|
|
|
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
|
<div class="sidebar-scrollbox">
|
|
<ol class="chapter">
|
|
<li class="chapter-item affix ">
|
|
<a href="/">Home</a>
|
|
</li>
|
|
<li class="chapter-item affix ">
|
|
<a href="/news/">News</a>
|
|
</li>
|
|
<li class="chapter-item affix ">
|
|
<a href="/about/">About</a>
|
|
</li>
|
|
<li class="spacer"></li>
|
|
</ol>
|
|
<ol class="chapter"><li class="chapter-item affix "><a href="index.html">Preface</a></li><li class="chapter-item "><a href="introduction/index.html"><strong aria-hidden="true">1.</strong> Introduction</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="introduction/audience.html"><strong aria-hidden="true">1.1.</strong> Target Audience</a></li><li class="chapter-item "><a href="introduction/features.html"><strong aria-hidden="true">1.2.</strong> Features</a></li></ol></li><li class="chapter-item "><a href="installation/index.html"><strong aria-hidden="true">2.</strong> Installation</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="installation/binary/index.html"><strong aria-hidden="true">2.1.</strong> Installing Binary Sets</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="installation/binary/downloading.html"><strong aria-hidden="true">2.1.1.</strong> Downloading Binary Sets</a></li><li class="chapter-item "><a href="installation/binary/x86/index.html"><strong aria-hidden="true">2.1.2.</strong> Installing on x86</a></li><li class="chapter-item "><a href="installation/binary/arm/index.html"><strong aria-hidden="true">2.1.3.</strong> Installing on Arm</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="installation/binary/arm/rpi.html"><strong aria-hidden="true">2.1.3.1.</strong> Raspberry Pi</a></li></ol></li><li class="chapter-item "><a href="installation/binary/riscv/index.html"><strong aria-hidden="true">2.1.4.</strong> Installing on Riscv</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="installation/binary/riscv/qemu.html"><strong aria-hidden="true">2.1.4.1.</strong> Qemu</a></li><li class="chapter-item "><a href="installation/binary/riscv/beagle-v.html"><strong aria-hidden="true">2.1.4.2.</strong> BeagleV</a></li></ol></li></ol></li><li class="chapter-item "><a href="installation/source/index.html"><strong aria-hidden="true">2.2.</strong> Installing from Source</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="installation/source/downloading.html"><strong aria-hidden="true">2.2.1.</strong> Downloading HHL Source</a></li><li class="chapter-item "><a href="installation/source/preparing.html"><strong aria-hidden="true">2.2.2.</strong> Preparing to Build</a></li><li class="chapter-item "><a href="installation/source/building-hitchhiker.html"><strong aria-hidden="true">2.2.3.</strong> Building HitchHiker</a></li></ol></li></ol></li><li class="chapter-item "><a href="configuration/index.html"><strong aria-hidden="true">3.</strong> Post Install Configuration</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="configuration/users.html"><strong aria-hidden="true">3.1.</strong> Adding a User Account</a></li><li class="chapter-item "><a href="configuration/networking.html"><strong aria-hidden="true">3.2.</strong> Setting up Networking</a></li></ol></li><li class="chapter-item "><a href="s6/index.html"><strong aria-hidden="true">4.</strong> Managing Processes</a></li><li class="chapter-item "><a href="pkgsrc/index.html"><strong aria-hidden="true">5.</strong> Installing Third Party Software</a></li><li class="chapter-item "><a href="updating/index.html"><strong aria-hidden="true">6.</strong> Updating HitchHiker Linux</a><a class="toggle"><div>❱</div></a></li><li><ol class="section"><li class="chapter-item "><a href="updating/binary.html"><strong aria-hidden="true">6.1.</strong> From Binary Sets</a></li><li class="chapter-item "><a href="updating/source.html"><strong aria-hidden="true">6.2.</strong> From Source</a></li></ol></li></ol>
|
|
</div>
|
|
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
|
</nav>
|
|
|
|
<div id="page-wrapper" class="page-wrapper">
|
|
|
|
<div class="page">
|
|
|
|
<div id="menu-bar-hover-placeholder"></div>
|
|
<div id="menu-bar" class="menu-bar sticky bordered">
|
|
<div class="left-buttons">
|
|
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
|
<i class="fa fa-bars"></i>
|
|
</button>
|
|
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
|
<i class="fa fa-paint-brush"></i>
|
|
</button>
|
|
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
|
<li role="none"><button role="menuitem" class="theme" id="light">Light (default)</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
|
</ul>
|
|
|
|
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
|
<i class="fa fa-search"></i>
|
|
</button>
|
|
|
|
</div>
|
|
|
|
<h1 class="menu-title">The HitchHiker's Guide to HitchHiker Linux</h1>
|
|
|
|
<div class="right-buttons">
|
|
|
|
<a href="print.html" title="Print this book" aria-label="Print this book">
|
|
<i id="print-button" class="fa fa-print"></i>
|
|
</a>
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="search-wrapper" class="hidden">
|
|
<form id="searchbar-outer" class="searchbar-outer">
|
|
<input type="search" name="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
|
</form>
|
|
<div id="searchresults-outer" class="searchresults-outer hidden">
|
|
<div id="searchresults-header" class="searchresults-header"></div>
|
|
<ul id="searchresults">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
|
<script type="text/javascript">
|
|
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
|
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
|
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
|
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
|
});
|
|
</script>
|
|
|
|
<div id="content" class="content">
|
|
<main>
|
|
<h1><a class="header" href="#preface" id="preface">Preface</a></h1>
|
|
<h2><a class="header" href="#what-is-this" id="what-is-this">What is this?</a></h2>
|
|
<p><strong>HitchHiker Linux</strong> is a general purpose Linux distribution that has been carefully
|
|
assembled to give a more traditional, Unix-like experience. HitchHiker provides,
|
|
out of the box, all development tools and libraries to rebuild itself from source
|
|
code as well as being a solid base from which to create whatever system is
|
|
desired.</p>
|
|
<h1><a class="header" href="#introduction" id="introduction">Introduction</a></h1>
|
|
<pre><code class="language-bash">#!/don't/panic
|
|
man 42
|
|
</code></pre>
|
|
<p>HitchHiker Linux is a very Unix-like distribution of Linux with a focus on
|
|
simplicity, elegance and providing a solid base that the end user can turn into
|
|
whatever they see fit.</p>
|
|
<h2><a class="header" href="#core-principles" id="core-principles">Core Principles:</a></h2>
|
|
<ul>
|
|
<li>The default installation should include the bare minimum required software to provide a solid base.</li>
|
|
<li>Complexity should be discouraged in favor of code elegance, security and maintainability.</li>
|
|
<li>End users should not be discouraged from tinkering with their system.</li>
|
|
<li>The distribution should make as few assumptions as possible regarding end use.</li>
|
|
<li>While newer releases of software often eliminate bugs and vulnerabilities, newer software packages are not by default more secure than stable, mature packages (newer is not always better).</li>
|
|
<li>Any changes to the core system functionality, especially those which change expected functionality, must be well justified and well vetted before deployment.</li>
|
|
<li>The base installation should include everything required to rebuild itself from source.</li>
|
|
<li>The distribution should make as few changes to the upstream software as possible, delivering it as intended by the original author.</li>
|
|
<li>Patching of sources should only be done to fix bugs or vulnerabilities.</li>
|
|
</ul>
|
|
<p>HHL was born of a desire to harness the greater hardware support of Linux while
|
|
paying respect to the Unix systems from which Linux was born. The author was a
|
|
long time user of FreeBSD who migrated to Arch for several years, but has become
|
|
increasingly frustrated with Systemd, Gnome, RedHat and Ubuntu dominance. It is
|
|
believed that there is a need for a distribution that does not pander to ease of
|
|
use for casual users at the expense of putting up roadblocks for experienced Unix
|
|
veterans.</p>
|
|
<h2><a class="header" href="#architectures" id="architectures">Architectures</a></h2>
|
|
<p>HHL is running on the following processor architectures:</p>
|
|
<ul>
|
|
<li>x86 (minimum i486)</li>
|
|
<li>x86_64</li>
|
|
<li>armv7l</li>
|
|
<li>aarch64</li>
|
|
<li>riscv64</li>
|
|
</ul>
|
|
<h1><a class="header" href="#target-audience" id="target-audience">Target Audience</a></h1>
|
|
<p>My first computer was a Tandy TRS-80 handed down from an uncle. The interface
|
|
consisted of a blinking cursor on a monochrome screen, and it had no storage
|
|
beyond RAM and ROM. Whatever you could type into memory before shutting it off
|
|
and run with the included Basic interpretor was the extent of the software that
|
|
ran on that computer. As limited as it was, it was fascinating to me.</p>
|
|
<p>In this day and age an interface consisting of a blinking cursor without wallaper,
|
|
icons, notifications and voice input is bewildering to the average human.
|
|
Nevertheless, that is the interface that a fresh installation of HItchHiker will
|
|
always present to the user. Therefore, it can be reasoned that the target audience
|
|
will consist of individuals who either are comfortable with using a command line
|
|
interface or are eager to learn. Some proficiency using Linux or Unix is helpful,
|
|
but not 100% necessary given an ability and willingness to read the documentation
|
|
and get used to being "close to the machine".</p>
|
|
<p>Indeed, HitchHiker will not do any kind of hand holding while you are installing
|
|
and using your new system. You will be expected to learn the hows and whys of
|
|
what makes a computer work. Most operating systems, including the majority of
|
|
Linux distributions, will gladly install, configure, and run 100s of programs
|
|
without your ever being aware that they are doing it. By the time you have
|
|
achived proficiency with HitchHiker, you will know what every running process is
|
|
for and why it is needed.</p>
|
|
<h1><a class="header" href="#whats-included" id="whats-included">What's Included</a></h1>
|
|
<ul>
|
|
<li>A full C and C++ development environment including compiler, headers and libraries.</li>
|
|
<li>Up to date versions of kernel, base libraries and toolchain components.</li>
|
|
<li>Where possible, BSD and historical Unix utilities have been incorporated.</li>
|
|
<li>Full documentation is included for all included software.</li>
|
|
<li>The HitchHiker build system is capable of bootstrapping itself from another
|
|
Linux distro or from HitchHiker itself, and is available for x86, Arm and RiscV
|
|
architectures.</li>
|
|
</ul>
|
|
<h1><a class="header" href="#whats-missing" id="whats-missing">What's Missing</a></h1>
|
|
<ul>
|
|
<li>Systemd - HitchHiker uses the S6 supervision suite and a minimal init.</li>
|
|
<li>No installer - HitchHiker is installed using Unix command line tools present
|
|
on any Linux distribution.</li>
|
|
<li>No apt, rpm, dnf, pacman, etc. HitchHiker uses NetBSD Pkgsrc for installing
|
|
extra software.</li>
|
|
<li>No daemons beyond what is required to provide a functional command prompt are
|
|
started by default.</li>
|
|
<li>No extra configuration is done to provide a "consistent look and feel" or any
|
|
such crap.
|
|
The Linux world is full of choices. Unfortunately, among the hundreds of installable
|
|
offerings the vast majority are "vanity distros" which are just a remix of another
|
|
distribution, with a different set of installed packages and a few cool wallpapers.</li>
|
|
</ul>
|
|
<p>HitchHiker on the other hand is not based on any other distribution of Linux. It
|
|
is a fully independent offering which tracks the most recent releases of the Linux
|
|
kernel, Glibc, GCC etc. It's smaller userland utilities have been mostly ported
|
|
from BSD or implemented from scratch. It's source tree can compile the entire
|
|
operating system with a single command using Makefiles. We strive for an active
|
|
and independent presence and want to push open source into new and exciting
|
|
frontiers, such as RiscV, while paying homage to classic Unix. While there are
|
|
other offerings that cover some of the same territory (Arch, Gentoo) we felt that
|
|
there was space for something different.</p>
|
|
<h1><a class="header" href="#installation" id="installation">Installation</a></h1>
|
|
<h1><a class="header" href="#binary" id="binary">Binary</a></h1>
|
|
<h1><a class="header" href="#downloading" id="downloading">downloading</a></h1>
|
|
<h1><a class="header" href="#x86" id="x86">x86</a></h1>
|
|
<p>The x86 platform includes all 32-bit Intel and Intel compatible processors
|
|
ranging from i386 to i786 processors. For the purposes of installation, the
|
|
x86_64 architecture, including all AMD64 and Intel 64-bit processors, is identical
|
|
in function and included in this page.</p>
|
|
<blockquote>
|
|
<p><strong><em>NOTE:</em></strong></p>
|
|
<p>Please note that the minimum supported processor is i486. This is not a limitation
|
|
specific to HitchHiker, but a limitation of the Linux Kernel itself and Glibc.
|
|
Should you have a computer of this vintage, and wish to get it running, you have
|
|
the choice of installing an older and likely unsupported distribution, or
|
|
installing an operating system descended from 4.4BSD (FreeBSD, NetBSD, and OpenBSD).</p>
|
|
</blockquote>
|
|
<h1><a class="header" href="#arm" id="arm">Arm</a></h1>
|
|
<h1><a class="header" href="#raspberry-pi" id="raspberry-pi">Raspberry Pi</a></h1>
|
|
<h1><a class="header" href="#riscv" id="riscv">Riscv</a></h1>
|
|
<h1><a class="header" href="#qemu" id="qemu">Qemu</a></h1>
|
|
<h1><a class="header" href="#beaglev" id="beaglev">BeagleV</a></h1>
|
|
<h1><a class="header" href="#source" id="source">Source</a></h1>
|
|
<h1><a class="header" href="#downloading-1" id="downloading-1">downloading</a></h1>
|
|
<h1><a class="header" href="#preparing-to-build" id="preparing-to-build">Preparing to Build</a></h1>
|
|
<h1><a class="header" href="#building-hitchhiker" id="building-hitchhiker">Building HitchHiker</a></h1>
|
|
<h1><a class="header" href="#post-install-configuration" id="post-install-configuration">Post Install Configuration</a></h1>
|
|
<h1><a class="header" href="#adding-a-user-account" id="adding-a-user-account">Adding a User Account</a></h1>
|
|
<h1><a class="header" href="#setting-up-networking" id="setting-up-networking">Setting up Networking</a></h1>
|
|
<h1><a class="header" href="#managing-processes" id="managing-processes">Managing Processes</a></h1>
|
|
<h1><a class="header" href="#installing-third-party-software" id="installing-third-party-software">Installing Third Party Software</a></h1>
|
|
<h1><a class="header" href="#updating-hitchhiker-linux" id="updating-hitchhiker-linux">Updating HitchHiker Linux</a></h1>
|
|
<h1><a class="header" href="#from-binary-sets" id="from-binary-sets">From Binary Sets</a></h1>
|
|
<h1><a class="header" href="#from-source" id="from-source">From Source</a></h1>
|
|
|
|
</main>
|
|
|
|
<nav class="nav-wrapper" aria-label="Page navigation">
|
|
<!-- Mobile navigation buttons -->
|
|
|
|
|
|
|
|
|
|
<div style="clear: both"></div>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
|
|
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
|
|
|
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
window.playground_copyable = true;
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<script src="elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="mark.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="searcher.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
|
|
<script src="clipboard.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="highlight.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="book.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
<!-- Custom JS scripts -->
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
window.addEventListener('load', function() {
|
|
window.setTimeout(window.print, 100);
|
|
});
|
|
</script>
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|