Revert "Merge of latest changes into RTD theme to enable multi-language support (#604)"

This reverts commit 186f1e02b8.
This commit is contained in:
Kevin Putnam
2019-07-10 15:20:53 -07:00
committed by GitHub
parent 186f1e02b8
commit f2a5c5a46b
407 changed files with 2660 additions and 2918 deletions
+48
View File
@@ -0,0 +1,48 @@
.. _clear-linux:
|CL-PRJ|
#############################################
Welcome to the |CL-ATTR| documentation pages, the source for |CL| documentation.
.. raw:: html
<iframe width="560" height="315" src="https://www.youtube.com/embed/JFg-_5xihkE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Our documentation is divided into the following sections:
* :ref:`get-started`
If you are new to |CL|, get started fast with tutorials for installing |CL| on
bare metal, in a virtual environment, or as a live image on a USB stick.
* :ref:`concepts`
Wondering what makes |CL| different? Learn about |CL| features and what
differentiates |CL| from other Linux distros.
* :ref:`guides`
Guides show how to complete common tasks that help you leverage |CL| native
features effectively. From basic system configuration to advanced management
of a cloud installation, there is a guide for you.
* :ref:`tutorials`
|CL| tutorials provide step-by-step instructions on how |CL| features can
be used and extended, frequently with third-party tools.
* :ref:`reference`
Find the detailed information you need to enable your configuration or task
in our |CL| reference section.
.. toctree::
:maxdepth: 2
:hidden:
get-started/get-started
concepts/concepts
guides/guides
tutorials/tutorials
reference/reference
@@ -0,0 +1,106 @@
.. _autospec-about:
Autospec
########
``autospec`` is a tool to assist in the automated creation and maintenance of
RPM packaging in |CL-ATTR|. Where a standard RPM build process using ``rpmbuild``
requires a tarball and .spec file to start, ``autospec`` requires only a tarball
and package name to start.
How autospec works
******************
``autospec`` attempts to infer the requirements of the .spec file by analyzing
the source code and :file:`Makefile` information. It will continuously run
updated builds based on new information discovered from build failures until it
has a complete and valid .spec file. Although not required, you can influence
the behavior of ``autospec`` by providing :ref:`control files <control-files>`.
The basic process is described in the following steps:
#. The :command:`make autospec` command generates a .spec based on
analysis of code and control files, if present.
#. ``autospec`` creates a ``build root`` with ``mock`` config.
#. ``autospec`` attempts to build an RPM from the generated .spec.
#. ``autospec`` detects any missed declarations in the .spec.
#. If build errors occur, ``autospec`` will scan the build log to try and detect
the root cause.
#. If ``autospec`` detects the root cause and knows how to continue, it will restart the build
automatically at step 1 with updated build instructions.
#. Otherwise, ``autospec`` will stop the build for user inspection and editing of control files
to resolve the errors. The user resumes the process at step 1 after errors are resolved.
Following these steps, ``autospec`` continues to rebuild the package, based on
new information discovered from build failures, until it has a valid .spec. If
no build errors occur, RPM packages are successfully built.
.. _control-files:
Control files
*************
It is possible to influence the behavior of ``autospec`` by providing control
files. These files may be used to alter the default behavior of the configure
routine, to blacklist build dependencies, etc. Control files must be located
in the same directory as the resulting .spec.
Table 1 shows control files used to control dependencies, for example.
.. list-table:: **Table 1. Control files to control dependencies**
:widths: 20 80
:header-rows: 1
* - Filename
- Description
* - buildreq_add
- Each line in the file provides the name of a package to add as a
build dependency to the .spec.
* - buildreq_ban
- Each line in the file is a build dependency that under no
circumstance should be automatically added to the build dependencies.
This is useful to block automatic configuration routines adding
undesired functionality, or to omit any automatically discovered
dependencies during tarball scanning.
* - pkgconfig_add
- Each line in the file is assumed to be a pkgconfig() build
dependency. Add the pkg-config names here, as ``autospec`` will
automatically transform the names into their ``pkgconfig($name)``
style when generating the .spec.
* - pkgconfig_ban
- Each line in this file is a pkgconfig() build dependency that should
not be added automatically to the build, much the same as
`` buildreq_ban``. As with ``pkgconfig_add``, these names are
automatically transformed by ``autospec`` into their correct
``pkgconfig($name))`` style.
* - requires_add
- Each line in the file provides the name of a package to add as a
runtime dependency to the .spec.
* - requires_ban
- Each line in the file is a runtime dependency that under no
circumstance should be automatically added to the runtime
dependencies. This is useful to block automatic configuration
routines adding undesired functionality, or to omit any automatically
discovered dependencies during tarball scanning.
Further control of the build can be achieved through the use of the
``options.conf`` file. If this file does not exist, it is created by
``autospec`` with default values. If certain deprecated configuration
files exists ``autospec`` will use the value indicated by those files and
remove them.
For a comprehensive list of control files, view the `autospec readme`_.
Related topics
**************
* :ref:`autospec`
* :ref:`mixer`
.. _autospec readme: https://github.com/clearlinux/autospec
@@ -0,0 +1,30 @@
.. _bundles-about:
Bundles
#######
Linux-based operating systems contain the code of several hundred, if
not thousands, of open source projects. To make this manageable,
distributions use a concept called "packages" to configure and compile
the source code of these projects into binaries.
Many distributions then split the content of these compiled packages
into so-called sub-packages, which are the granularity at which these
distributions deploy their software. With those kinds of distributions,
system administrators can then install and update sub-packages
individually or as a set, using tools such as "yum" and "apt-get."
The |CL-ATTR| takes a slightly different approach. While we also use the
concept of packages to manage compiling source code into binaries, we do not
use the package concept to deploy software. Instead, we provide software
"bundles" that are installed and managed using :ref:`swupd<swupd-about>`.
Each bundle contains as many or as few open source projects needed to provide a complete functionality.
Next steps
==========
To put this concept into practice, see the following resources:
* :ref:`bundles`
* :ref:`bundle-commands`
* :ref:`compatible-kernels`
+18
View File
@@ -0,0 +1,18 @@
.. _concepts:
Concepts
########
|CL-ATTR| does things differently than other Linux distributions. Use the concepts section to learn in detail about the features that make |CL|
different.
.. toctree::
:maxdepth: 2
swupd-about
mixer-about
bundles-about
autospec-about
restart
security
telemetry-about
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

@@ -0,0 +1,54 @@
.. _mixer-about:
Mixer
#####
|CL-ATTR| is a powerful, modular, and customizable OS. Upstream |CL| offers
many images to support different environments and use-cases. There are
hundreds of bundles that will meet most, if not all, of your OS and software
needs.
However, if you need additional customization or content, |CL| provides the
mixer tool. Depending on your needs, the mixer tool allows you to:
* :ref:`create-mix` to create a distinct derivative of the |CL| that
contains your custom software.
.. _create-mix:
Create a mix
============
When creating a mix, you can
* Use any existing upstream bundles with no modification.
* Redefine what goes into existing bundles.
* Create completely new, custom bundles with your own custom packages.
With mixer you are not required to incorporate every upstream release into
your mix. You decide which upstream versions to update your derivative to, as
illustrated in Figure 1.
.. figure:: figures/mixer-about-1.png
:scale: 75%
:alt: Creating a custom mix.
Figure 1: With a custom mix, you add your custom bundle and decide which
upstream versions to update your mix to, on your own release cycle.
Creating your own mix forks away from the |CL| upstream and requires that you
act as your own OSV. There is a greater level of responsibility, requiring
more infrastructure and processes to adopt. However, with this approach, you
have a higher degree of control and customization of your custom |CL|.
Related topics
==============
|CL| provides flexibility in how you customize your OS. Learn more about
mixer and related topics to decide which customization approach is best for
you.
* :ref:`mixer`
* :ref:`bundles-about`
* :ref:`swupd-about`
* :ref:`deploy-at-scale`
+189
View File
@@ -0,0 +1,189 @@
.. _restart:
Restart system services after an OS update
##########################################
The software life cycle describes how software is created, developed, and
deployed, and includes how to replace or update software. A good OS
provides tools for the entire software life cycle. These tools must include
ways to remove software components properly when replaced with something
else.
Most of the work on software update code in |CL| was focused on adding new
software to the system. We recommended that users reboot their system once in
a while, but we did not provide any tools to restart services easily, until
now.
User challenges
***************
It is difficult to determine which services to restart. You can either
evaluate each system and reboot manually, or figure out which services to
restart based on documentation like the |CL| release notes. Since neither
option solves the issue completely, the |CL| team created a solution.
Over the years, several OSes approached the problem and created partial
solutions such as the following:
* Automatically restart services during an upgrade.
* Evaluate services using these steps:
* Mark updates requiring a reboot, such as kernel updates.
* Inform the user of those updates.
* Ask the user to restart the OS.
Both solutions are acceptable for many OSes. However, |CL| updates software
automatically and users do not see notices from the updater unless they
review the journal. |CL| requires a completely different solution, with the
following requirements:
* Eliminate the guesswork about what to restart and under what circumstances.
* Cannot restart everything. Many service daemons do not support an automatic
background restart.
* Fit into the |CL| architectural perspective: be small, quick, and lean.
clr-service-restart functionality
*********************************
Typical reasons to restart a service daemon include:
* A new version replaces the executable file itself.
* A new version replaces a library component used by a service daemon.
Our method restarts daemons when it is really needed, especially
in the case of security updates. The tool restarts daemons by reading
various files in the :file:`procfs` filesystem provided by the kernel.
The second part of the problem is to determine whether or not running
processes are part of a system service. The tool focuses on system services
because most system services are background tasks with no direct user
interaction. Fortunately, :command:`systemd` provides a simple way to:
* Determine which active tasks are within the system domain.
* Determine which tasks map to which service.
We combined both solutions into a low-overhead tool that shows which system
daemons require a restart, as shown below:
Figure 1: Invoke :command:`clr-service-restart`.
.. code-block:: bash
sudo clr-service-restart -a -n
.. code-block:: console
upower.service: needs a restart (a library dependency was updated)
/usr/bin/systemctl --no-ask-password try-restart upower.service
NetworkManager.service: needs a restart (a library dependency was
updated)
/usr/bin/systemctl --no-ask-password try-restart NetworkManager.service
....
:command:`clr-service-restart` implements a whitelist to identify which
daemons can be restarted. The system administrator can customize the default
|CL| OS whitelist using *allow* or *disallow* options for
restarting system services. When a software update occurs,
:command:`clr-service-restart` consults the whitelist to see if a service
daemon is allowed to be restarted or not. See the options section for
details.
Options for clr-service-restart
*******************************
The *allow* option identifies a daemon to restart after an OS software
update. The :command:`clr-service-restart` daemon creates a symlink in
:file:`/etc/clr-service-restart` as a record. The example below tells
:command:`clr-service-restart` to restart the *tallow* daemon after an
OS software update.
.. code-block:: bash
sudo clr-service-restart allow tallow.service
The *disallow* option tells :command:`clr-service-restart` not to
restart the specified daemon even if the OS defaults permit the daemon to be
restarted. The :command:`clr-service-restart` daemon creates a symlink in
:file:`/etc/clr-service-restart` that points to :file:`/dev/null` as a
record. The example below tells :command:`clr-service-restart` not to
restart the *rngd* daemon after an OS software update.
.. code-block:: bash
sudo clr-service-restart disallow rngd
The *default* option makes :command:`clr-service-restart` revert back
to the OS defaults and delete any symlink
in :file:`/etc/clr-service-restart`. The example below
tells :command:`clr-service-restart` to restart *rngd* automatically again,
because *rngd* is whitelisted for automatic service restarts by default
in |CL|.
.. code-block:: bash
sudo clr-service-restart default rngd
Monitor options for clr-service-restart
=======================================
:command:`clr-service-restart` works in the background and is invoked with
:command:`swupd` automatically. Review the journal output to verify that
services are restarted after an OS software update.
To monitor :command:`clr-service-restart`, use one or both options described
below.
.. option:: -n
This option makes :command:`clr-service-restart` perform no restarts.
Instead it displays the services that could potentially be restarted.
When used, :command:`clr-service-restart` outputs a list of messages
showing:
* Which service needs a restart.
* What unit it is.
* Why it needs a restart.
* Which command is required to restart the unit.
.. option:: -a
This option makes :command:`clr-service-restart` consider all system
services, not only the ones that are whitelisted. Because the default
whitelist in |CL| is relatively short, you can use this option to
restart all impacted services when you log in on the system.
If you pass both options (:option:`-a` and :option:`-n`),
:command:`clr-service-restart` displays a complete list of system services
that require a restart. Use both options to verify that all desired daemons
are restarted.
Telemetry
*********
:command:`clr-service-restart` may cause problems such as a short service
outage when a daemon is being restarted, or if a daemon fails to properly
restart. To minimize issues, :command:`clr-service-restart` creates a
telemetry record and sends it to the optional |CL| telemetry service if both
conditions below are met:
* If a unit fails to automatically restart after an OS update.
* If that unit resides in the system
location :file:`/usr/lib/systemd/system`.
If you do not install the |CL| telemetrics bundle, the data is discarded. If
you install the telemetrics bundle and you opt to send telemetry, then the
system unit name is sent to the |CL| telemetry service. We evaluate the
report and update the whitelist to remove services that are not safe to
restart.
Conclusion
**********
The |CL| team enjoys coming up with simple and efficient solutions to make
your work easier. We made a github project of :command:`clr-service-restart`
and we invite you to look at the code, share your thoughts, and work with us
on improving the project. You can find the project at:
https://github.com/clearlinux/clr-service-restart
+199
View File
@@ -0,0 +1,199 @@
.. _security:
OS Security
*************************
|CL-ATTR| aims to make systemic and layered security-conscious decisions
that are both performant and practical. This security philosophy is rooted
within the project's codebase and operating culture.
.. contents:: :local:
:depth: 1
Security in Updates
===================
The |CL| team believes in the benefits of
software security through open sourcing, incremental updates, and
rapidly resolving known security advisories.
The latest Linux* codebase
--------------------------
|CL| uses the newest version of the Linux kernel which allows the operating
system to leverage the latest features from the upstream Linux kernel,
including security fixes.
Automated Effective Updating
----------------------------
|CL| is incrementally updated multiple times per day.
This `rolling release model`_ allows |CL| to consume the latest security
fixes of software packages as soon as they become available.
There is no waiting for major or minor releases on |CL|.
An update is not effective if it is just simply downloaded onto a system.
It needs to be obtained *AND* ensured that the new patched copy is being
used; not an older copy loaded into memory. |CL| will let you know when a
service needs to be rebooted or do it for your automatically after
a software update, if desired.
In |CL| updates are delivered automatically, efficiently,
and effectively. For more information see
`documentation about Software Updates`_ in |CL|.
Automated CVE Scanning and Remediation
--------------------------------------
The sheer number of software packages and security vulnerabilities is growing
exponentially. Repositories of Common Vulnerabilities and Exposures (CVEs)
and their fixes, if known, are published by :abbr:`NIST` in a
National Vulnerability Database \ |NVD|\ and at \ |MITRE|\ .
|CL| employs a proactive and measured approach to addressing known
and fixable :abbr:`CVEs (Common Vulnerabilities and Exposures)`.
Packages are automatically scanned against
:abbr:`CVEs (Common Vulnerabilities and Exposures)` daily, and security
patches are deployed as soon as they are available.
These combined practices minimize the amount of
time |CL| systems are exposed to unnecessary security risk.
Security in Software
====================
Minimized attack surface
-------------------------
|CL| removes legacy, unneeded, or redundant standards and
components as much as possible to enable the use of best known security
standards. Below are some examples:
* `RC4`, `SSLv3`, `3DES`, and `SHA-1` ciphers which have had known
vulnerabilities, have been explicitly disabled within many |CL| packages to
avoid their accidental usage.
* Services and subsystems which expose sensitive system information
have been removed such as the `finger` and `tcpwrappers`.
* `SFTP` has been disabled by default due to security
considerations.
Verified trust
--------------
|CL| encourages the use of secure practices such as encryption
and digital signature verification throughout the system and discourages blind
trust. Below are some examples:
* All update operations from swupd are transparently encrypted and checked
against the |CL| maintainers' public key for authenticity.
More information can be found in this blog post:
`blog post about swupd security`_
* Before being built, packages available from |CL| verify checksums and
signatures provided by third party project codebases and maintainers.
* |CL| features a unified certificate store, `clrtrust`_ which comes
ready to work with well-known Certificate Authorities out of the box.
`clrtrust`_ also offers an easy to use command line interface for managing
system-wide chains of trust, instead of ignoring foreign certificates.
Compiled with secure options
----------------------------
While |CL| packages are optimized for performance on
Intel® architecture, security conscious kernel and compiler options are
sensibly taken advantage of. Below are some examples:
* Kernels shipped with |CL| are signed and disallow the usage of
custom kernel modules to maintain verifiable system integrity.
* `Address space layout randomization (ASLR)`_ and
`Kernel address space layout randomization (KASLR)`_ are kernel features
which defend against certain memory based attacks.
More information can be found in a `blog post about PIE executables`_ .
Security in System Design
=========================
Simple, yet effective, techniques are used throughout the
|CL| system design to defend against common attack vectors and enable
good security hygiene. Below are some examples:
* Full disk encryption using `Linux Unified Key Setup`_ (LUKS) is available
during installation.
* |CL| uses the PAM cracklib module to harden user login and password
security resulting in:
- No default username or root password set out of the box with
|CL|, you will be asked to set your own password immediately.
- Simple password schemes, which are known to be easily compromised,
cannot be set in |CL|.
- A password blacklist, to avoid system passwords being set to
passwords which have been compromised in the past.
* `Tallow`_, a lightweight service which monitors and blocks suspicious SSH
login patterns, is installed with the :command:`openssh-server` bundle.
.. _`documentation about Software Updates`: https://clearlinux.org/documentation/clear-linux/concepts/swupd-about
.. _`cve-check-tool`: https://github.com/clearlinux/cve-check-tool
.. _`blog post about swupd security`: https://clearlinux.org/blogs/security-software-update-clear-linux-os-intel-architecture
.. _`rolling release model`: https://en.wikipedia.org/wiki/Rolling_release
.. _`clrtrust`: https://github.com/clearlinux/clrtrust
.. _`Address space layout randomization (ASLR)`: https://en.wikipedia.org/wiki/Address_space_layout_randomization
.. _`Kernel address space layout randomization (KASLR)`: https://lwn.net/Articles/569635/
.. _`dm-verity`: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/device-mapper/verity.txt
.. _`SELinux`: https://github.com/SELinuxProject
.. _`Linux Unified Key Setup`: https://gitlab.com/cryptsetup/cryptsetup/
.. _`blog post about PIE executables`: https://clearlinux.org/blogs/recent-gnu-c-library-improvements
.. _`Tallow`: https://github.com/clearlinux/tallow
.. |NVD| raw:: html
<a href="https://nvd.nist.gov/" target="_blank">https://nvd.nist.gov/</a>
.. |MITRE| raw:: html
<a href="https://cve.mitre.org/" target="_blank">https://cve.mitre.org/</a>
+101
View File
@@ -0,0 +1,101 @@
.. _swupd-about:
swupd: software updater
#######################
:command:`swupd` is an operating system software manager and update program
that operates at a file-level to enable verifiable integrity and update
efficiency.
Visit the `swupd man page`_ for more details.
Versioning
==========
Using package managers to keep track of software version compatibility or compare multiple systems on many Linux distributions can be cumbersome.
With |CL| :command:`swupd`, versioning happens at the individual
file-level. This means |CL| generates an entirely new OS version with any set
of software changes to the system (including software downgrades or removals). This rolling release versioning model is similar to
:command:`git` internal version tracking, where any of the individual file
commits are tracked and move the pointer forward when changed.
While administrators can pick and choose which `bundles`_ a system has
installed, a single |CL| version number strictly represents one combination
of all software versions that can be installed onto a system of that |CL|
version. This method of whole OS versioning offers unique advantages.
Namely, system administrators can quickly compare multiple |CL| systems that share the same version for important software and security fixes.
Updating
========
|CL| promotes regular and automated updating of software to ensure
integration of new enhancements and security fixes. Refer to :ref:`security`
documentation for more information.
Learn how to update your system using :ref:`swupd <swupd-guide>`.
Update efficiency
-----------------
Because :command:`swupd` operates at the individual file-level instead of a
package-level, |CL| updates are small and fast.
On many Linux\* distributions, updates to a particular software package
require the whole software package to be downloaded and replaced
--even for one line of code.
In |CL|, updates are generated using the :ref:`mixer <mixer-about>` tool. Mixer calculates the difference between two |CL| versions and makes available
*binary deltas*, which contain only the changed portion of files. This
*binary delta technology* [1]_ means :command:`swupd` on |CL| systems only
needs to download and apply a small fraction of a package in order to
receive an update.
The :ref:`mixer <mixer-about>` tool additionally computes updates files in
multiple compression formats, allowing :command:`swupd` to utilize the most
efficiently compressed format for a |CL| system to minimize the cost
to update.
Update integrity
----------------
:command:`swupd` operates against a published manifest of files for a
particular |CL| version that contains the unique hash of each file. This is
the basis of the :command:`swupd verify` subcommand, which allows a |CL|
system to check for and remediate any discrepancies to system files. As
necessary, :command:`swupd verify` provides a useful way for software
developers to return to a known filesystem state.
Bundles
=======
|CL-ATTR| approaches software management differently than many other
Linux-based operating systems.
Instead of deploying granular software packages, |CL| uses the concept of
bundles with pre-associated software. Each bundle encapsulates a particular
use-case, which is enabled by composing all the required upstream open-source
projects and packages into one logical unit.
This bundle-based approach offers some unique advantages:
* Bundles provide a particular functionality, or stack, which
include all associated runtime dependencies.
* Software package dependencies are resolved on the server, so file-level
conflicts do not occur on the target system after an update.
* All combinations of bundles are able to co-exist on a |CL| system.
For more information on bundles, visit:
* :ref:`bundles`
* :ref:`bundles-about`
* :ref:`bundle-commands`
* :ref:`compatible-kernels`
.. [1] The software update technology for |CL-ATTR| was first presented at the Linux Plumbers conference in 2012.
.. _swupd man page: https://github.com/clearlinux/swupd-client/blob/master/docs/swupd.1.rst
@@ -0,0 +1,83 @@
.. _telemetry-about:
Telemetrics
###########
One of the key features of |CL-ATTR| is telemetry, which is used to
monitor system health. Telemetry enables developers to observe and proactively
address issues before end users are impacted.
*Telemetrics* is a combination word made from:
* *Telemetry* which is sensing and reporting data.
* *Analytics* which is using visualization and statistical inferencing to make
sense of the reported data.
|CL| telemetry reports system-level debug/crash information using specialized probes. The
probes monitor system tasks such as :abbr:`swupd (software updater)`, kernel
oops, machine error checks, and BIOS error report table for unhandled hardware
failures. Telemetry enables real-time issue reporting to allow system
developers to quickly focus on an issue and monitor corrective actions.
|CL| telemetry is fully customizable and can be used during software development
for debugging purposes. You can use **libtelemetry** in your code to create custom
telemetry records. You can also use **telem-record-gen** in script files or call
it from another program.
Architecture
************
|CL| telemetry has two fundamental components, which are shown in figure 1:
* Client: generates and delivers records to the backend server via the network.
* Backend: captures records sent from the client and displays the cumulative
content through a specialized interface.
.. note::
If you want to capture your own records for analysis, you must set up
your own backend server.
.. figure:: ../guides/telemetrics/figures/telemetry-e2e.png
:scale: 75%
:alt: Clear Linux Telemetry Architecture.
Figure 1: Clear Linux Telemetry Architecture.
The telemetry client provides the front end of a complete telemetrics solution
and includes the following components:
* **telemprobd**, a daemon that prepares the telemetry records and spools them on disk prior to delivery
* **telempostd**, a daemon that sends the records to the telemetry backend server or leaves them on disk until deleting after the record expires.
* **probes**, that collect specific types of data from the operating system.
* **libtelemetry**, that telemetrics probes use to create telemetrics records and
send them to the telemprobd daemon for further processing.
The telemetry backend provides the server-side component of a complete telemetrics solution and
consists of:
* Nginx web server.
* Two Flask apps:
* Collector, an ingestion web app for records received from telemetrics-client probes.
* TelemetryUI, a web app that exposes several views to visualize the telemetry data
and also provides a REST API to perform queries.
* PostgreSQL as the underlying database server.
The default telemetry backend server reports back to the |CL| development team
and is not viewable outside the Intel firewall. If you want to collect your
own records, then you must set up your own telemetry backend server.
Next steps
**********
To put this concept into practice, see the following resources:
* :ref:`telem-guide`
* `Telemetry feature description`_
.. _`Telemetry feature description`:
https://clearlinux.org/features/telemetry
@@ -0,0 +1,496 @@
.. _bare-metal-install-desktop:
Install |CL-ATTR| from the live desktop
#######################################
The live desktop allows you to boot |CL-ATTR| in a GNOME desktop without
modifying the host system, offering the chance to explore developing
on |CL|. Better yet, launch the |CL| installer to install on your target
system.
.. contents:: :local:
:depth: 1
System requirements
*******************
Assure that your target system supports the installation:
* :ref:`system-requirements`
* :ref:`compatibility-check`
Preliminary steps
*****************
#. `Visit our Downloads page`_.
#. Download the file :file:`clear-<release number>-live-desktop.iso`
.. note::
<release-number> is the latest |CL| auto-numbered release.
#. Follow your OS instructions to create a bootable USB drive.
* :ref:`bootable-usb`
.. _install-on-target-start:
Install from live image
***********************
After you download and burn the live desktop image on a USB drive, follow
these steps.
#. Insert the USB drive into an available USB slot.
#. Power on the system.
#. Open the system BIOS setup menu by pressing the :kbd:`F2` key.
Your BIOS setup menu entry point may vary.
#. In the setup menu, enable the UEFI boot and set the USB drive as the
first option in the device boot order.
#. Save these settings, e.g. :kbd:`F10`, and exit.
#. Reboot the target system.
#. Select :guilabel:`Clear Linux OS` in the boot menu, shown in Figure 1.
.. figure:: figures/bare-metal-install-desktop-01.png
:scale: 100%
:alt: Clear Linux OS in boot menu
Figure 1: Clear Linux OS in boot menu
.. _install-on-target-end:
Confirm network connection
==========================
Confirm there is a network connection before launching the installer.
Choose a method: `Wired Connection`, or `WiFi Connected`.
This guide shows an example of a **Wired Connection**.
#. In the upper right of the top menu bar, select the square icon to view
Network settings, shown in Figure 2.
#. Select :guilabel:`Wired Connected` and then :guilabel:`Wired Settings`.
.. figure:: figures/bare-metal-install-desktop-02.png
:scale: 100%
:alt: Software icon, Network settings
Figure 2: Software icon, Network settings
#. View the :guilabel:`Wired` menu to assure that you're target system and
installer are connected to a network.
#. Optional: Configure Proxy settings.
#. To view :guilabel:`Network Proxy`, select its :guilabel:`Gear` icon.
#. Select from `Automatic`, `Manual` or `Disabled` as desired.
#. Close the dialogue box.
#. Select the :guilabel:`Gear` icon to view Network settings.
#. If desired, select :guilabel:`Connect automatically`.
Select other options as desired.
#. Select :guilabel:`Apply` button to confirm change to settings.
Software
--------
Optional: Explore |CL| bundles and other software available. Double-click the :guilabel:`Software` icon from the Activities menu, shown in Figure 2.
.. note::
`Sofware` application is *only intended for exploring* available bundles,
applications, and images. Do not attempt to install them.
Assure there is a network connection before launching `Software`.
Launch the |CL| installer
=========================
#. After the live desktop image boots, find the |CL| icon in
the :guilabel:`Activities` menu at left, shown in Figure 3.
#. Click the icon, :guilabel:`Install Clear Linux OS`.
.. figure:: figures/bare-metal-install-desktop-02.png
:scale: 100%
:alt: Install Clear Linux OS icon
Figure 3: Install Clear Linux OS icon
#. The installer is launched, as shown in Figure 4.
.. figure:: figures/bare-metal-install-desktop-04.png
:scale: 100%
:alt: |CL| Desktop Installer
Figure 4: |CL| OS Desktop Installer
#. In :guilabel:`Select Language`, select a language from the options, or
type your preferred language in the search bar.
#. Select :guilabel:`Next`.
.. _incl-bare-metal-beta-start:
Minimum installation requirements
*********************************
To fulfill minimum installation requirements, complete the
`Required options`_. We also recommend completing `Advanced options`_.
.. note::
* The :kbd:`Install` button is only highlighted **after** you complete
`Required options`_.
* Checkmarks indicate a selection has been made.
* An Internet connection is required. You may want to launch a browser
prior to installation to verify your Internet connection.
|CL| Desktop Installer
**********************
The |CL| Desktop Installer Main Menu appears as shown in Figure 5. To meet
the minimum requirements, enter values in all submenus for the
:guilabel:`Required options`. After you complete them, your selections appear
below submenus and a checkmark appears at right.
.. figure:: figures/bare-metal-install-desktop-05.png
:scale: 100%
:alt: Clear Linux OS Desktop Installer - Main Menu
Figure 5: Clear Linux OS Desktop Installer - Main Menu
Navigation
**********
* Use the :kbd:`mouse` to navigate or select options.
* Use :kbd:`Tab` key to navigate between :guilabel:`Required options`
and :guilabel:`Advanced options`
* Use :kbd:`Up` or :kbd:`Down` arrow keys to navigate submenu list.
* Select :kbd:`Confirm`, or :kbd:`Cancel` in submenus.
Required options
****************
Select Time Zone
================
#. From the Main Menu, select :guilabel:`Select Time Zone`. `UTC` is selected
by default.
#. In :guilabel:`Select Time Zone`, navigate to the desired time zone.
Or start typing the region and then city.
(.e.g., :file:`America/Los_Angeles`).
#. Select :guilabel:`Confirm`.
.. figure:: figures/bare-metal-install-desktop-06.png
:scale: 100%
:alt: Select System Timezone
Figure 6: Select System Time Zone
Select Keyboard
===============
#. From the Main Menu, select :guilabel:`Select Keyboard`.
#. Navigate to your desired keyboard layout. We select "us" for the
United States.
#. Select :guilabel:`Confirm`.
.. figure:: figures/bare-metal-install-desktop-07.png
:scale: 100%
:alt: Select Keyboard menu
Figure 7: Select Keyboard menu
Select Installation Media
=========================
#. From the Main Menu, select :guilabel:`Select Installation Media`.
#. Choose an installation method: `Safe Installation`_ or
`Destructive Installation`_.
.. figure:: figures/bare-metal-install-desktop-08.png
:scale: 100%
:alt: Select Installation Media
Figure 8: Select Installation Media
Safe Installation
-----------------
Use this method to safely install |CL| on media with available space, or
alongside existing partitions, and accept the `Default partition schema`_.
If enough free space exists, safe installation is allowed.
Destructive Installation
------------------------
Use this method to destroy the contents of the target device, install |CL| on it, and accept the `Default partition schema`_.
Disk encryption
===============
For greater security, disk encryption is supported using LUKS. Encryption is
optional.
#. To encrypt the root partition, select :guilabel:`Enable Encryption`,
as shown in Figure 9.
.. figure:: figures/bare-metal-install-desktop-09.png
:scale: 100%
:alt: Enable Encryption
Figure 9: Enable Encryption
#. When :guilabel:`Encryption Passphrase` appears, enter a passphrase.
.. figure:: figures/bare-metal-install-desktop-10.png
:scale: 100%
:alt: Encryption Passphrase
Figure 10: Encryption Passphrase
.. note::
Minimum length is 8 characters. Maximum length is 94 characters.
#. Enter the same passphrase in the second field.
#. Select :guilabel:`Confirm` in the dialogue box.
.. note::
:guilabel:`Confirm` is only highlighted if passphrases match.
#. Select :guilabel:`Confirm` in submenu.
Manage User
===========
#. In Required Options, select :guilabel:`Manage User`.
#. In :guilabel:`User Name`, enter a user name.
.. figure:: figures/bare-metal-install-desktop-11.png
:scale: 100%
:alt: Manage User
Figure 11: Manage User
#. In :guilabel:`Login`, create a login name. It must start with a letter
and can use numbers, hyphens, and underscores. Maximum length is 31
characters.
#. In :guilabel:`Password`, enter a password. Minimum length is
8 characters. Maximum length is 255 characters.
#. In :guilabel:`Confirm`, enter the same password.
.. note::
:guilabel:`Administrator` rights are selected by default.
For security purposes, the default user must be assigned as an
Administrator.
#. Select :kbd:`Confirm`.
.. note::
Select :guilabel:`Cancel` to return to the Main Menu.
Modify User
-----------
#. In Manager User, select :guilabel:`Manage User`.
#. Modify user details as desired.
#. Select :guilabel:`Confirm` to save the changes you made.
.. note::
Optional: Select :guilabel:`Cancel` to return to the Main Menu to
revert changes.
Optional: Skip to `Finish installation`_.
Telemetry
=========
Choose whether to participate in `telemetry`. :ref:`telem-guide` is a |CL|
feature that reports failures and crashes to the |CL| development
team for improvements. For more information, see :ref:`telemetry-about`.
#. From :guilabel:`Required Options`, select :guilabel:`Telemetry`.
#. Select :kbd:`Confirm`.
#. If you don't wish to participate, deselect :kbd:`Enable Telemetry`.
#. Select :kbd:`Confirm`.
.. figure:: figures/bare-metal-install-desktop-12.png
:scale: 100%
:alt: Enable Telemetry
Figure 12: Enable Telemetry
Advanced options
****************
After you complete the `Required options`_, we recommend completing
:guilabel:`Advanced options`--though they're not required. Doing so
customizes your development environment, so you're ready to go immediately
after reboot.
* `Bundle Selection`_
* `Assign Hostname`_
As for bundles, you can always add more later with :ref:`swupd-guide`.
Bundle Selection
================
#. On the Advanced menu, select :guilabel:`Bundle Selection`
#. Select your desired bundles.
.. figure:: figures/bare-metal-install-desktop-13.png
:scale: 100%
:alt: Bundle Selection
Figure 13: Bundle Selection
#. Select :kbd:`Confirm`.
#. View the bundles that you selected.
.. figure:: figures/bare-metal-install-desktop-14.png
:scale: 100%
:alt: Bundle Selections - Advanced Options
Figure 14: Bundle Selections - Advanced Options
Optional: Skip to `Finish installation`_.
Assign Hostname
===============
#. In Advanced Options, select :guilabel:`Assign Hostname`.
#. In :guilabel:`Hostname`, enter the hostname only (excluding the domain).
.. figure:: figures/bare-metal-install-desktop-15.png
:scale: 100%
:alt: Assign Hostname
Figure 15: Assign Hostname
.. note::
Hostname does not allow empty spaces. Hostname must start with an
alphanumeric character but may also contain hyphens. Maximum length of
63 characters.
#. Navigate to :kbd:`Confirm` until highlighted.
#. Select :kbd:`Confirm`.
Optional: Skip to `Finish installation`_.
Finish installation
*******************
#. When you are satisfied with your installation configuration, select
:guilabel:`Install`.
.. figure:: figures/bare-metal-install-desktop-16.png
:scale: 100%
:alt: Assign Hostname
Figure 16: Finish installation
.. note:
All checkmarks must be visible in :guilabel:`Required Options` for you to select :guilabel:`Install`.
#. If you do not enter a selection for all :guilabel:`Required Options`,
the :guilabel:`Install` button remains greyed out, as shown
in Figure 17. Return to `Required Options`_ and make selections.
.. figure:: figures/bare-metal-install-desktop-17.png
:scale: 100%
:alt: Required Options - Incomplete
Figure 17: Required Options - Incomplete
#. After installation is complete, select :guilabel:`Exit`.
#. Shut down the target system.
#. Remove the USB or any installation media.
#. Power on your system.
.. note::
Allow time for the graphical login to appear. A login prompt shows the administrative user that you created.
#. Log in as the adminstrative user.
Congratulations. You successfully installed |CL|.
Default partition schema
========================
Table 1 shows the defult partition schema with the exception of root,
which varies.
.. list-table:: **Table 1. Disk Partition Setup**
:widths: 33, 33, 33
:header-rows: 1
* - FileSystem
- Mount Point
- Minimum size
* - ``VFAT``
- /boot
- 150M
* - ``swap``
-
- 256MB
* - ``root``
- /
- *Size depends upon use case/desired bundles.*
Next steps
**********
:ref:`guides`
.. _Visit our downloads page: https://clearlinux.org/downloads
.. _Autoproxy: https://clearlinux.org/features/autoproxy
Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

@@ -0,0 +1,855 @@
.. _bare-metal-install-server:
Install |CL-ATTR| on bare metal with live server
################################################
These instructions guide you through installing |CL-ATTR| on bare metal from a bootable USB drive using a live server image.
.. contents::
:local:
:depth: 1
System requirements
*******************
Assure that your target system supports the installation:
* :ref:`system-requirements`
* :ref:`compatibility-check`
Download the latest |CL| live server image
******************************************
Get the latest |CL| installer image from the `downloads page`_. Look for the
:file:`clear-[version number]-live-server.iso` file.
#. Follow your OS instructions to create a bootable USB drive.
* :ref:`bootable-usb`
#. After downloading the image, verify and decompress the file per your OS.
Install |CL| on your target system
**********************************
Ensure that your system is configured to boot UEFI. The installation method
described below requires a wired Internet connection with DHCP.
.. note::
Alternatively, you can install |CL| over a wireless connection by first
using `nmtui`. Follow the `nmtui` instructions shown in Figure 2.
Follow these steps to install |CL| on the target system:
#. Insert the USB drive into an available USB slot.
#. Power on the system.
#. Open the system BIOS setup menu by pressing the :kbd:`F2` key.
Your BIOS setup menu entry point may vary.
#. In the setup menu, enable the UEFI boot and set the USB drive as the first
option in the device boot order.
#. Save these settings and exit.
#. Reboot the target system.
#. This action launches the |CL| installer boot menu, shown in figure 1.
.. figure:: figures/bare-metal-install-server-01.png
:scale: 100%
:alt: Clear Linux OS Installer boot menu
Figure 1: Clear Linux OS Installer boot menu
#. With :guilabel:`Clear Linux OS` highlighted, select :kbd:`Enter`.
Launch the |CL| Installer
*************************
#. At the :guilabel:`login` prompt, enter :command:`root`.
#. Follow the onscreen instructions, shown in Figure 2, and
enter a temporary password.
.. figure:: figures/bare-metal-install-server-02.png
:scale: 100%
:alt: root login
Figure 2: root login
#. At the :guilabel:`root` prompt, enter :command:`clr-installer` and
press :kbd:`Enter`.
.. figure:: figures/bare-metal-install-server-03.png
:scale: 100%
:alt: clr-installer command
Figure 3: clr-installer command
Minimum installation requirements
*********************************
To fulfill minimum installation requirements, complete the
`Required options`_. While not required, we encourage you to apply the
`Recommended options`_. `Advanced options`_ are optional.
.. note::
* The :kbd:`Install` button is **only highlighted after** you complete
`Required options`_.
Main Menu
*********
The |CL| Installer Main Menu appears as shown in Figure 4.
.. figure:: figures/bare-metal-install-server-04.png
:scale: 100%
:alt: Clear Linux OS Installer
Figure 4: Clear Linux OS Installer
The |CL| Installer Main Menu has two tabs: :guilabel:`[R] Required options`
and :guilabel:`[A] Advanced options`. Navigate between tabs using the arrow
these shortcut keys:
* :kbd:`Shift+A` for :guilabel:`[A] Advanced options`
* :kbd:`Shift+R` for :guilabel:`[R] Required options`
To meet the minimum requirements, enter your choices in the
:guilabel:`Required options`. After confirmation, your selections appear
beside the :guilabel:`>>` chevron, below the menu options.
Navigation
**********
* Select :kbd:`Tab` or :kbd:`Up/Down` arrows to highlight your choice.
* Select :kbd:`Enter` or :kbd:`Spacebar` to confirm your choice.
* Select :kbd:`Cancel` or :kbd:`Esc` to cancel your choice.
Required options
****************
Choose Timezone
===============
#. From the Main Menu, navigate to :guilabel:`Choose Timezone`.
`UTC` is the default.
#. Select :kbd:`Enter`.
#. In :guilabel:`Select System Timezone`, use :kbd:`Up/Down` arrows
navigate to the desired timezone.
.. todo: User need only select Enter; can only select Confirm with mouse.
#. Press :kbd:`Enter` to confirm.
.. figure:: figures/bare-metal-install-server-05.png
:scale: 100%
:alt: Select System Timezone
Figure 5: Select System Timezone
Choose Language
===============
#. From the Main Menu, navigate to :guilabel:`Choose Language`.
#. Select :kbd:`Enter`.
#. In :guilabel:`Select System Language`, navigate to your desired language.
#. Press :kbd:`Enter` to confirm.
.. figure:: figures/bare-metal-install-server-06.png
:scale: 100%
:alt: Select System Language
Figure 6: Select System Language
Configure the Keyboard
======================
#. From the Main Menu, select :guilabel:`Configure the Keyboard`.
#. Select :kbd:`Enter`.
#. In :guilabel:`Select Keyboard`, navigate to the desired option.
#. Select :kbd:`Enter` to :kbd:`Confirm`.
#. Optional: In :guilabel:`Test keyboard`, type text to assure
that the keys map to your keyboard.
.. figure:: figures/bare-metal-install-server-07.png
:scale: 100%
:alt: Select Keyboard menu
Figure 7: Select Keyboard menu
Configure Installation Media
============================
#. From the Main Menu, select :guilabel:`Configure Installation Media`.
#. Choose an installation method:
* `Safe Installation`_
* `Destructive Installation`_
* `Advanced Configuration`_
.. figure:: figures/bare-metal-install-server-08.png
:scale: 100%
:alt: Select Installation Media
Figure 8: Select Installation Media
#. Select :guilabel:`Rescan Media` to show available installation targets.
.. todo: Revise below section to match the dev-gui-00
Safe Installation
-----------------
Use this method to safely install |CL| on media with available space, or
alongside existing partitions, and accept the `Default partition schema`_.
If enough free space exists, safe installation is allowed. See also
`Troubleshooting`_ below.
Destructive Installation
------------------------
Use this method to destroy the contents of the target device, install |CL|
on it, and accept the `Default partition schema`_.
.. note::
From the :guilabel:`Select Installation Media` menu, select
:guilabel:`Enable Encryption` to encrypt the root filesystem for either
option above. See also `Disk encryption`_ for more information.
Advanced Configuration
----------------------
Use this method to manually configure partitions. These must meet
`Default partition schema`_. You may also choose `Disk encryption`_ during
configuration of each partition.
.. note::
`Advanced Configuration` is available in the installer versions 1.2.0 and
above.
#. From :guilabel:`Select Installation Media`, shown in Figure 8 above,
select :guilabel:`Advanced Configuration`.
#. In :guilabel:`Advanced Configuration`, navigate to :file:`/dev/sda`
and then press :kbd:`Enter`.
.. figure:: figures/bare-metal-install-server-09.png
:scale: 100%
:alt: Advanced configuration menu
Figure 9: Advanced configuration menu
#. Choose a partition method:
* :guilabel:`Auto Partition` Select this option to accept the
`Default partition schema`_.
#. Navigate to and press :guilabel:`Confirm`.
#. Continue with installation configuration. Jump to `Telemetry`_.
* `Manual Partition`_ Continue below.
Manual Partition
----------------
We provide a simple example below.
#. Navigate to the unallocated media (e.g.,`/dev/sda`) until highlighted, as
shown in Figure 9.
#. Press :guilabel:`Enter` to edit the partition.
#. The :guilabel:`Partition Setup` menu appears, shown in Figure 10.
.. note::
After adding the first partition, select :guilabel:`Free Space` to add another partition.
root partition
--------------
#. We configure the `root` partition as shown in Figure 10.
Configuration of the `root` partition varies.
.. figure:: figures/bare-metal-install-server-10.png
:scale: 100%
:alt: root partition
Figure 10: root partition
#. Navigate to :guilabel:`Add` and press :guilabel:`Enter`.
boot partition
--------------
#. We configure the `boot` partition as shown in Figure 11.
.. figure:: figures/bare-metal-install-server-11.png
:scale: 100%
:alt: boot partition
Figure 11: boot partition
#. Navigate to :guilabel:`Add` and press :guilabel:`Enter`.
swap partition
--------------
#. In the :guilabel:`File System` pulldown menu, select `swap`, and
enter a label. We enter the minimum required size (e.g., 256M).
.. figure:: figures/bare-metal-install-server-12.png
:scale: 100%
:alt: swap partition
Figure 12: swap partition
#. Navigate to :guilabel:`Add` and press :guilabel:`Enter`.
#. Next, navigate to :guilabel:`Confirm` and press :guilabel:`Enter`,
shown in Figure 13.
Manual partitioning is complete.
.. figure:: figures/bare-metal-install-server-13.png
:scale: 100%
:alt: Final configuration of disk partitions
Figure 13: Final configuration of disk partitions
#. You may skip to the `Telemetry`_ section below.
Disk encryption
===============
For greater security, disk encryption is supported using LUKS for the
any partition except `/boot` on |CL|. To encrypt the root partition, see the
example below. Encryption is optional.
Encryption Passphrase
---------------------
|CL| uses a single passphrase for encrypted partitions. Additional keys may
be configured post-installation using the ``cryptsetup`` tool.
#. Optional: Select :guilabel:`[X] Encrypt` to encrypt the root partition,
as shown in Figure 14.
.. figure:: figures/bare-metal-install-server-14.png
:scale: 100%
:alt: Encrypt partition
Figure 14: Encrypt partition
#. The :guilabel:`Encryption Passphrase` dialogue appears.
.. note::
Minimum length is 8 characters. Maximum length is 94 characters.
.. figure:: figures/bare-metal-install-server-15.png
:scale: 100%
:alt: Encryption Passphrase
Figure 15: Encryption Passphrase
#. Enter the same passphrase in the first and second field.
#. Navigate to :guilabel:`Confirm` and press :kbd:`Enter`.
.. note::
:guilabel:`Confirm` is only highlighted if passphrases match.
Telemetry
=========
:ref:`telem-guide` is a |CL| feature that reports failures and crashes to
the |CL| development team for improvements. For more detailed information,
visit our :ref:`telemetry-about` page.
Select your desired option on whether to participate in `telemetry`.
#. In the Main Menu, navigate to :guilabel:`Telemetry` and select
:kbd:`Enter`.
#. Select :kbd:`Tab` to highlight your choice.
#. Select :kbd:`Enter` to confirm.
.. figure:: figures/bare-metal-install-server-16.png
:scale: 100%
:alt: Enable Telemetry
Figure 16: Enable Telemetry
Recommended options
*******************
After you complete the `Required options`_, we highly recommend completing
these selected `Advanced options`_ at minimum:
* `Manage User`_ Assign a new user with administrative rights
* `Assign Hostname`_ Simplify your development environment
Skip to finish installation
===========================
After selecting values for all :guilabel:`Required options`, you may skip
to `Finish installation`_.
Otherwise, continue below. In the Main Menu, select
:guilabel:`Advanced options` for additional configuration.
Advanced options
****************
Configure Network Interfaces
============================
By default, |CL| is configured to automatically detect the host network
interface using DHCP. However, if you want to use a static IP address or if
you do not have a DHCP server on your network, follow these instructions to
manually configure the network interface. Otherwise, default network
interface settings are automatically applied.
.. note::
If DHCP is available, no user selection may be required.
#. Navigate to :guilabel:`Configure Network Interfaces` and
select :kbd:`Enter`.
#. Navigate to the network :guilabel:`interface` you wish to change.
#. When the desired :guilabel:`interface` is highlighted, select
:guilabel:`Enter` to edit.
.. note:: Multiple network interfaces may appear.
.. figure:: figures/bare-metal-install-server-17.png
:scale: 100%
:alt: Configure Network Interfaces
Figure 17: Configure Network Interfaces
#. Notice :guilabel:`Automatic / dhcp` is selected by default (at bottom).
Optional: Navigate to the checkbox :guilabel:`Automatic / dhcp` and select
:kbd:`Spacebar` to deselect.
.. figure:: figures/bare-metal-install-server-18.png
:scale: 100%
:alt: Network interface configuration
Figure 18: Network interface configuration
#. Navigate to the appropriate fields and assign the desired
network configuration.
#. To save settings, navigate to :guilabel:`Confirm` and select
:kbd:`Enter`.
.. note::
To revert to previous settings, navigate to the :guilabel:`Cancel`
and select :kbd:`Enter`.
#. Upon confirming network configuration, the :guilabel:`Testing Networking`
dialogue appears. Assure the result shows success. If a failure occurs,
your changes will not be saved.
#. Upon confirmation, you are returned to :guilabel:`Network interface`
settings.
#. Navigate to and select :guilabel:`Main Menu`.
Optional: Skip to `Finish installation`_.
Proxy
=====
|CL| automatically attempts to detect proxy settings, as described in
`Autoproxy`_. If you need to manually assign proxy settings, follow this
instruction.
#. From the Advanced options menu, navigate to :guilabel:`Proxy`, and
select :kbd:`Enter`.
#. Navigate to the field :guilabel:`HTTPS Proxy`.
.. figure:: figures/bare-metal-install-server-19.png
:scale: 100%
:alt: Configure the network proxy
Figure 19: Configure the network proxy
#. Enter the desired proxy address and port using conventional syntax,
such as: \http://address:port.
#. Navigate to :guilabel:`Confirm` and select :kbd:`Enter`.
#. To revert to previous settings, navigate to :guilabel:`Cancel`
and select :guilabel:`Cancel`.
Optional: Skip to `Finish installation`_.
Test Network Settings
=====================
To manually assure network connectivity before installing |CL|,
select :guilabel:`Test Network Settings` and select :guilabel:`Enter`.
A progress bar appears as shown in Figure 20.
.. figure:: figures/bare-metal-install-server-20.png
:scale: 100%
:alt: Testing Networking dialogue
Figure 20: Testing Networking dialogue
.. note::
Any changes made to network settings are automatically tested
during configuration.
Optional: Skip to `Finish installation`_.
Bundle Selection
================
#. On the Advanced menu, select :guilabel:`Bundle Selection`
#. Navigate to the desired bundle using :kbd:`Tab` or :kbd:`Up/Down` arrows.
#. Select :kbd:`Spacebar` to select the checkbox for each desired bundle.
.. figure:: figures/bare-metal-install-server-21.png
:scale: 100%
:alt: Bundle Selection
Figure 21: Bundle Selection
#. Optional: To start developing with |CL|, we recommend
adding :file:`os-clr-on-clr`.
#. Navigate to and select :kbd:`Confirm`.
You are returned to the :guilabel:`Advanced options` menu.
Optional: Skip to `Finish installation`_.
Manage User
===========
Add New User
------------
#. In Advanced Options, select :guilabel:`Manage User`.
#. Select :guilabel:`Add New User` as shown in Figure 22.
.. figure:: figures/bare-metal-install-server-22.png
:scale: 100%
:alt: Add New User, User Name
Figure 22: Add New User
#. Optional: Enter a :guilabel:`User Name`.
.. note:
The User Name must be alphanumeric and can include spaces, commas, or hyphens. Maximum length is 64 characters.
.. figure:: figures/bare-metal-install-server-23.png
:scale: 100%
:alt: User Name
Figure 23: User Name
#. Enter a :guilabel:`Login`.
.. note::
The User Login must be alphanumeric and can include hyphens and underscores. Maximum length is 31 characters.
#. Enter a :guilabel:`Password`.
.. note:
Minimum length is 8 characters. Maximum length is 255 characters.
#. In :guilabel:`Confirm`, enter the same password.
#. Optional: Navigate to the :guilabel:`Administrative` checkbox and select
:kbd:`Spacebar` to assign administrative rights to the user.
.. note::
Selecting this option enables sudo privileges for the user.
#. Select :kbd:`Confirm`.
.. note::
If desired, select :guilabel:`Reset` to reset the form.
#. In :guilabel:`Manage User`, navigate to :guilabel:`Confirm`.
#. With :guilabel:`Confirm` highlighted, select :kbd:`Enter`.
Modify / Delete User
--------------------
#. In :guilabel:`Manage User`, navigate to the user you wish
to modify until highlighted, as shown in Figure 24.
#. Select :kbd:`Enter` to modify the user.
.. figure:: figures/bare-metal-install-server-24.png
:scale: 100%
:alt: Modify User
Figure 24: Modify User
#. Modify user details as desired.
#. Navigate to :kbd:`Confirm` until highlighted.
.. note::
Optional: Select :guilabel:`Reset` to rest the form.
#. Select :guilabel:`Confirm` to save the changes you made.
#. Optional: In :guilabel:`Modify User`, to delete the user, navigate to
the :guilabel:`Delete` button and select :kbd:`Enter`.
.. figure:: figures/bare-metal-install-server-25.png
:scale: 100%
:alt: Delete User
Figure 25: Delete User
You are returned to :guilabel:`Manage User`.
#. Navigate to :kbd:`Confirm` until highlighted.
#. Select :guilabel:`Enter` to complete :guilabel:`Manage User` options.
Optional: Skip to `Finish installation`_.
Kernel Command Line
===================
For advanced users, |CL| provides the ability to add or remove kernel
arguments. If you want to append a new argument, enter the argument here.
This argument will be used every time you install or update a
new kernel.
#. In Advanced Options, select :guilabel:`Tab` to highlight
:guilabel:`Kernel Command Line`.
#. Select :kbd:`Enter`.
.. figure:: figures/bare-metal-install-server-26.png
:scale: 100%
:alt: kernel command line
Figure 26: kernel command line
#. Choose from the following options.
* To add arguments, enter the argument in :guilabel:`Add Extra Arguments`.
* To remove an argument, enter the argument in
:guilabel:`Remove Arguments`.
#. Select :kbd:`Confirm`.
Optional: Skip to `Finish installation`_.
Kernel Selection
================
#. Select a kernel option. By default, the latest kernel release is
selected. Native kernel is shown in Figure 27.
#. To select a different kernel, navigate to it using :guilabel:`Tab`.
.. figure:: figures/bare-metal-install-server-27.png
:scale: 100%
:alt: Kernel selection
Figure 27: Kernel selection
#. Select :kbd:`Spacebar` to select the desired option.
#. Navigate to :kbd:`Confirm` and select :kbd:`Enter`.
Optional: Skip to `Finish installation`_.
Swupd Mirror
============
If you have your own custom mirror of |CL|, you can add its URL.
#. In Advanced Options, select :guilabel:`Swupd Mirror`.
#. To add a local swupd mirror, enter a valid URL in :guilabel:`Mirror URL:`
#. Select :kbd:`Confirm`.
.. figure:: figures/bare-metal-install-server-28.png
:scale: 100%
:alt: Swupd Mirror
Figure 28: Swupd Mirror
Optional: Skip to `Finish installation`_.
Assign Hostname
===============
#. In Advanced Options, select :guilabel:`Assign Hostname`.
#. In :guilabel:`Hostname`, enter the hostname only (excluding the domain).
.. note::
Hostname does not allow empty spaces. Hostname must start with an
alphanumeric character but may also contain hyphens. Maximum length of
63 characters.
.. figure:: figures/bare-metal-install-server-29.png
:scale: 100%
:alt: Assign Hostname
Figure 29: Assign Hostname
#. Navigate to :kbd:`Confirm` until highlighted.
#. Select :kbd:`Confirm`.
Optional: Skip to `Finish installation`_.
Automatic OS Updates
====================
Automatical OS updates are enabled by default. In the rare case that you
need to disable automatic software updates, follow the onscreen instructions,
shown in Figure 30.
#. In Advanced Options, select :guilabel:`Automatic OS Updates`.
#. Select the desired option.
.. figure:: figures/bare-metal-install-server-30.png
:scale: 100%
:alt: Automatic OS Updates
Figure 30: Automatic OS Updates
You are returned to the :guilabel:`Main Menu`.
Save Configuration Settings
===========================
#. In Advanced Options, select :guilabel:`Save Configuration Settings`.
#. A dialogue box shows the installation configuration was saved to
:file:`clr-installer.yaml`
.. figure:: figures/bare-metal-install-server-31.png
:scale: 100%
:alt: Automatic OS Updates
Figure 31: Automatic OS Updates
#. Use the :file:`clr-installer.yaml` file to install |CL|, with the same
configuration, on multiple targets.
Finish installation
*******************
#. When you are satisfied with your installation configuration, navigate to
:guilabel:`Install` and select :kbd:`Enter`.
.. figure:: figures/bare-metal-install-server-32.png
:scale: 100%
:alt: Select Install
Figure 32: Select Install
#. Select :guilabel:`reboot`.
.. note::
If you do not assign an administrative user, upon rebooting,
enter `root` and set the root password immediately.
#. When the system reboots, remove any installation media present.
Default partition schema
========================
To add partitions manually, see `Advanced configuration`_ below, and create
partitions per requirements in Table 1.
.. list-table:: **Table 1. Disk Partition Setup**
:widths: 33, 33, 33
:header-rows: 1
* - FileSystem
- Mount Point
- Minimum size
* - ``VFAT``
- /boot
- 150M
* - ``swap``
-
- 256MB
* - ``root``
- /
- *Size depends upon use case/desired bundles.*
Troubleshooting
***************
For Configure Installation Media
================================
If a warning message appears that no media or space is available after
entering :guilabel:`Configure Installation Media`:
- Verify that target media has enough free space.
- Confirm the USB is properly connected to and mounted on target media.
- Review the size of existing partitions on the target media:
- Linux\* OS: :command:`lsblk -a`
- Windows\* OS: :command:`diskpart`, then :command:`list disk`
- macOS\* platform: :command:`diskutil list`
.. _Autoproxy: https://clearlinux.org/features/autoproxy
.. _downloads page: https://clearlinux.org/downloads
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

@@ -0,0 +1,207 @@
.. _bootable-usb:
Create a bootable USB drive
###########################
Instructions to create a |CL-ATTR| USB drive vary depending on your operating
system. Follow the instructions applicable to your system:
* :ref:`bootable-usb-linux`
* :ref:`bootable-usb-mac`
* :ref:`bootable-usb-windows`
Prerequisites
*************
* Use an **8GB** or larger USB drive.
* `Download`_ the |CL| live boot image or interactive installer image.
.. _bootable-usb-linux:
Create a bootable USB drive on Linux\*
**************************************
Make sure you have have completed all `Prerequisites`_.
Before burning the image onto your USB drive,
:ref:`verify and decompress your image <verify-linux>`.
Burn the |CL| image onto a USB drive
====================================
.. caution::
|CAUTION-BACKUP-USB|
#. Open a terminal emulator and get root privilege.
.. code-block:: bash
sudo -s
#. Go to the directory with the decompressed image.
#. Plug in the USB drive.
#. Identify the USB drive using the :command:`lsblk` command. This shows all
drives attached to the system, including the primary hard disk. In the
example output below, there are 4 drives
(`/dev/sda`, `/dev/sdb`, `/dev/sdc`, and `/dev/sdd`) attached, where
`/dev/sda` is primary drive. The remaining are three USB drives. The output
also shows the mounted partitions (under the `MOUNTPOINT` column) for each
drive.
.. code-block:: bash
lsblk
Example output:
.. code-block:: console
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdd 8:48 1 15G 0 disk
├─sdd2 8:50 1 5G 0 part /run/media/user1/960c184f-3bb7-42b7-bcaf-0c1282
├─sdd3 8:51 1 8G 0 part /run/media/user1/704f3382-b26d-4f34-af1b-cb9aab
└─sdd1 8:49 1 2G 0 part
sdb 8:16 1 14.8G 0 disk
└─sdb1 8:17 1 14.8G 0 part /run/media/user1/PATRIOT_USB
sdc 8:32 1 7.3G 0 disk
└─sdc1 8:33 1 7.3G 0 part /run/media/user1/LINUX MINT
sda 8:0 0 335.4G 0 disk
├─sda4 8:4 0 28G 0 part
├─sda2 8:2 0 3.7G 0 part [SWAP]
├─sda7 8:7 0 6G 0 part /home
├─sda5 8:5 0 1G 0 part /boot
├─sda3 8:3 0 954M 0 part /boot/efi
├─sda1 8:1 0 28G 0 part
├─sda8 8:8 0 30G 0 part /
└─sda6 8:6 0 7.9G 0 part [SWAP]
#. You must unmount a USB drive before burning an image onto it. Note that
some Linux distros automatically mount a USB drive when it is plugged in.
Unmount a USB drive with the :command:`umount` command followed by the device
identifier/partition. For example:
.. code-block:: bash
umount /dev/sdd2
umount /dev/sdd3
#. Burn the image onto the USB drive. The example below burns an uncompressed
image onto `<your USB device>`:
.. code-block:: bash
dd if=./clear-[version number]-[image type] of=<your USB device> oflag=sync bs=4M status=progress
.. caution::
|CAUTION-UNMOUNT-USB-PARTITIONS|
.. _bootable-usb-mac:
Create a bootable USB drive on macOS\*
**************************************
Make sure you have have completed all `Prerequisites`_.
Before burning the image onto your USB drive,
:ref:`verify and decompress your image <verify-mac>`.
Burn the |CL| image onto a USB drive
====================================
.. caution::
|CAUTION-BACKUP-USB|
#. Launch the Terminal app.
#. Go to the directory with the decompressed image.
#. Plug in a USB drive and get its identifier:
.. code-block:: bash
diskutil list
This will list available disks and their partitions, as shown in Figure 1.
.. figure:: figures/bootable-usb-mac-01.png
:scale: 100 %
:alt: Get USB drive identifier
Figure 1: macOS - Get USB drive identifier
#. Unmount the USB drive identified in the previous step. For example:
.. code-block:: bash
diskutil umountDisk /dev/disk2
#. Burn the image onto the drive using the :command:`dd` command.
The example below burns an uncompressed image onto `<your USB device>`:
.. code-block:: bash
sudo dd if=./clear-[version number]-[image type] of=<your USB device> bs=4m
To speed up the imaging process, add an r in front of the disk identifier.
For example `/dev/rdisk2`.
Press :kbd:`<CTL>-T` to check imaging progress.
#. Eject the USB drive.
.. code-block:: bash
diskutil eject /dev/disk2
.. _bootable-usb-windows:
Create a bootable USB drive on Windows\*
****************************************
Make sure you have have completed all `Prerequisites`_.
Before burning the image onto your USB drive,
:ref:`verify and decompress your image <verify-windows>`.
Burn the |CL| image onto a USB drive
====================================
.. caution::
|CAUTION-BACKUP-USB|
#. Download the `Rufus`_ utility to burn the image onto a USB drive.
We use Rufus 3.5 here. **Only use the latest version of Rufus**.
#. Plug in the USB drive and open Rufus.
#. Under `Boot selection`, click the :guilabel:`SELECT` button.
#. Find and select the previously extracted |CL| image file.
#. Click the :guilabel:`START` button. See Figure 2.
.. figure:: figures/bootable-usb-windows-02.png
:scale: 80 %
:alt: Rufus utility
Figure 2: Rufus utility
#. When the dialogue appears, select
:guilabel:`Write in ISO image mode (Recommended)`. See Figure 3.
.. figure:: figures/bootable-usb-windows-03.png
:scale: 80 %
:alt: ISOHybrid image detected
Figure 3: ISOHybrid image detected
#. Select the Windows taskbar menu for USB and select eject.
.. _Rufus: https://rufus.ie/
.. _Download: https://clearlinux.org/downloads
Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@@ -0,0 +1,61 @@
.. _compatibility-check:
Check processor and EFI firmware compatibility
##############################################
On a system that is currently running a Linux\* operating system, follow the
instructions below to determine if your system's processor and EFI firmware is
capable of running |CL-ATTR|. Otherwise,
:ref:`bare-metal-install-desktop` and then perform the steps
below.
.. note::
This does not check other system components (for example: storage and
graphics) for compatibility with |CL|.
#. Download the `clear-linux-check-config.sh`_ file.
If a browser is not available, use:
.. code-block:: console
curl -O https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
#. Make the script executable.
.. code-block:: console
chmod +x clear-linux-check-config.sh
#. Run the script.
#. Check to see if the host's processor and EFI firmware is capable of
running |CL|.
.. code-block:: console
./clear-linux-check-config.sh host
#. Check to see if the host is capable of running |CL| in a container.
.. code-block:: console
./clear-linux-check-config.sh container
The script will print a list of test results similar to the output below.
All items should return a `SUCCESS` status. This example indicates the
host's processor and EFI firmware support running |CL|.
.. code-block:: console
Checking if host is capable of running Clear Linux* OS
SUCCESS: 64-bit CPU (lm)
SUCCESS: Supplemental Streaming SIMD Extensions 3 (ssse3)
SUCCESS: Streaming SIMD Extension v4.1 (sse4_1)
SUCCESS: Streaming SIMD Extensions v4.2 (sse4_2)
SUCCESS: Advanced Encryption Standard instruction set (aes)
SUCCESS: Carry-less Multiplication extensions (pclmulqdq)
SUCCESS: EFI Firmware
.. _clear-linux-check-config.sh: https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
@@ -0,0 +1,29 @@
.. _get-started:
Get started
###########
The Get Started section will get you up and running fast with |CL-ATTR|. Use
these step-by-step instructions to guide you through the installing |CL|
from a live desktop or to a virtual machine.
Pre-install
***********
* :ref:`system-requirements`
.. toctree::
:maxdepth: 1
compatibility-check
bootable-usb/bootable-usb
Install |CL|
************
.. toctree::
:maxdepth: 1
bare-metal-install-desktop/bare-metal-install-desktop
bare-metal-install-server/bare-metal-install-server
virtual-machine-install/virtual-machine-install
Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Some files were not shown because too many files have changed in this diff Show More