Files
Kevin Putnam 319727628b First commit
Signed-off-by: Kevin Putnam <kevin.putnam@intel.com>
2019-07-29 14:35:12 -07:00

1746 lines
124 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>mixer &mdash; Documentation for Clear Linux* project</title>
<script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="author" title="About these documents" href="../../about.html" />
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="OS Security" href="security.html" />
<link rel="prev" title="ister.py image builder" href="ister.html" />
<link rel="stylesheet" href="../../_static/tcs_theme.css" type="text/css" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" style="background: #007ab2" >
<a href="../../index.html" class="icon icon-home"> Clear Linux* Project Docs
<img src="../../_static/clearlinux.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span class="fa fa-book"> Clear Linux</span>
v: latest
<span class="fa fa-caret-down"></span>
</span>
<div class="rst-other-versions">
<dl>
<dt>Language Versions</dt>
<dd><a href="/clearlinux/latest/guides/clear/mixer.html">English</a></dd>
<dd><a href="/clearlinux/latest/zh_CN/guides/clear/mixer.html">Chinese</a></dd>
</dl>
<dl>
<dt>Document Versions</dt>
<dd><a href="/clearlinux/latest/guides/clear/mixer.html">latest</a></dd>
<dd><a href="/clearlinux/L19.01/guides/clear/mixer.html">L19.01</a></dd>
</dl>
<dl>
<dt>clearlinux.org links</dt>
<dd>
<a href="https://www.clearlinux.org/">Project Home</a>
</dd>
<dd>
<a href="https://github.com/clearlinux/clear-linux-documentation">GitHub</a>
</dd>
</dl>
</div>
</div>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../get-started/get-started.html">Get started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/get-started.html#pre-install">Pre-install</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/compatibility-check.html">Check processor and EFI firmware compatibility</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/compatibility-check.html#check-compatibility">Check compatibility</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/bootable-usb/bootable-usb.html">Create a bootable USB drive</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb/bootable-usb.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb/bootable-usb.html#create-a-bootable-usb-drive-on-linux">Create a bootable USB drive on Linux*</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb/bootable-usb.html#create-a-bootable-usb-drive-on-macos">Create a bootable USB drive on macOS*</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bootable-usb/bootable-usb.html#create-a-bootable-usb-drive-on-windows">Create a bootable USB drive on Windows*</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/get-started.html#install">Install</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html">Install Clear Linux* OS from the live desktop</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#system-requirements">System requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#preliminary-steps">Preliminary steps</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#install-from-live-image">Install from live image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#minimum-installation-requirements">Minimum installation requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#cl-desktop-installer">Clear Linux OS Desktop Installer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#navigation">Navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#required-options">Required options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#advanced-options">Advanced options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-desktop/bare-metal-install-desktop.html#finish-installation">Finish installation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html">Install Clear Linux* OS on bare metal with live server</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#system-requirements">System requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#download-the-latest-cl-live-server-image">Download the latest Clear Linux OS live server image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#install-cl-on-your-target-system">Install Clear Linux OS on your target system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#launch-the-cl-installer">Launch the Clear Linux OS Installer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#minimum-installation-requirements">Minimum installation requirements</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#main-menu">Main Menu</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#navigation">Navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#required-options">Required options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#recommended-options">Recommended options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#advanced-options">Advanced options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#finish-installation">Finish installation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/bare-metal-install-server/bare-metal-install-server.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/install-configfile.html">Install using clr-installer and a configuration file</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/install-configfile.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/install-configfile.html#process">Process</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/install-configfile.html#references">References</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../get-started/get-started.html#install-in-a-virtual-machine">Install in a virtual machine</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/gce.html">Launch Clear Linux* OS Compute Engine on Google Cloud Platform*</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/gce.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/gce.html#setup-cl-vm-on-gcp">Setup Clear Linux OS VM on GCP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/gce.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html">Use Hyper-V*</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#enable-hyper-v">Enable Hyper-V</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#create-a-virtual-network">Create a virtual network</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/hyper-v.html#create-a-virtual-machine">Create a virtual machine</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html">Run Clear Linux* OS as a KVM guest OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#install-qemu-kvm">Install QEMU-KVM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#download-and-launch-the-virtual-machine">Download and launch the virtual machine</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#ssh-access-into-the-virtual-machine">SSH access into the virtual machine</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/kvm.html#optional-add-the-gnome-display-manager-gdm">Optional: Add the GNOME Display Manager (GDM)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html">Install a Clear Linux* OS VM in VirtualBox*</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#download-and-extract-the-cl-installer-iso">Download and extract the Clear Linux OS installer ISO</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#create-a-new-vb-virtual-machine">Create a new VirtualBox virtual machine</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#install-cl-on-the-vb-vm">Install Clear Linux OS on the VirtualBox VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/virtualbox-cl-installer.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html">Install Clear Linux* OS as a VMware* Workstation Player guest OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#install-the-vmware-workstation-player-hypervisor">Install the VMware Workstation Player hypervisor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#download-the-latest-cl-installer">Download the latest Clear Linux OS installer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#create-and-configure-a-new-vm">Create and configure a new VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#install-cl-into-the-new-vm">Install Clear Linux OS into the new VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#detach-the-cl-installer-iso-from-the-vm">Detach the Clear Linux OS installer ISO from the VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#enable-uefi-boot-support">Enable UEFI boot support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html">Run pre-configured Clear Linux* OS image as a VMware* Workstation Player guest OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#install-the-vmware-workstation-player-hypervisor">Install the VMware Workstation Player hypervisor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#download-the-latest-cl-vmware-image">Download the latest Clear Linux OS VMware image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#image-types">Image types</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#create-and-configure-a-new-vm">Create and configure a new VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#attach-the-pre-configured-cl-vmware-image">Attach the pre-configured Clear Linux OS VMware image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#enable-uefi-boot-support">Enable UEFI boot support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#power-on-the-vm">Power on the VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmw-player-preconf.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html">Install Clear Linux* OS as a VMware* ESXi guest OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#download-the-latest-cl-installer-iso">Download the latest Clear Linux OS installer ISO</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#upload-the-cl-installer-iso-to-the-vmware-server">Upload the Clear Linux OS installer ISO to the VMware server</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#create-and-configure-a-new-vm">Create and configure a new VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#install-cl-into-the-new-vm">Install Clear Linux OS into the new VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#reconfigure-the-vm-s-settings-to-boot-the-newly-installed-cl">Reconfigure the VMs settings to boot the newly-installed Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#power-on-the-vm-and-boot-cl">Power on the VM and boot Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-install-cl.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html">Run preconfigured Clear Linux* OS image as a VMware* ESXi guest OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#download-the-latest-cl-vmware-image">Download the latest Clear Linux OS VMware image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#upload-the-cl-image-to-the-vmware-server">Upload the Clear Linux OS image to the VMware server</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#convert-the-cl-image-to-an-esxi-supported-format">Convert the Clear Linux OS image to an ESXi-supported format</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#create-and-configure-a-new-vm">Create and configure a new VM</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#power-on-the-vm-and-boot-cl">Power on the VM and boot Clear Linux OS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../get-started/virtual-machine-install/vmware-esxi-preconfigured-cl-image.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html">Increase virtual disk size of an image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#determine-the-partition-order-and-sizes-of-the-prebuilt-image">Determine the partition order and sizes of the prebuilt image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#id1">Increase virtual disk size</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../about.html">About</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../about.html#training">Training</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="../guides.html">Guides</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="../guides.html#clear-linux">Clear Linux</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="autoproxy.html">Autoproxy</a><ul>
<li class="toctree-l4"><a class="reference internal" href="autoproxy.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="autoproxy.html#how-it-works">How it works</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="autospec.html">autospec</a><ul>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#how-it-works">How it works</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#test-packaged-software">Test packaged software</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#references">References</a></li>
<li class="toctree-l4"><a class="reference internal" href="autospec.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="compatible-kernels.html">Kernels</a><ul>
<li class="toctree-l4"><a class="reference internal" href="compatible-kernels.html#bare-metal-only">Bare metal only</a></li>
<li class="toctree-l4"><a class="reference internal" href="compatible-kernels.html#also-compatible-with-vms">Also compatible with VMs</a></li>
<li class="toctree-l4"><a class="reference internal" href="compatible-kernels.html#vm-only">VM only</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="debug.html">Debug system</a><ul>
<li class="toctree-l4"><a class="reference internal" href="debug.html#background">Background</a></li>
<li class="toctree-l4"><a class="reference internal" href="debug.html#usage">Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="debug.html#implementation">Implementation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="ister.html">ister.py image builder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="ister.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="ister.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="ister.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">mixer</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="#how-it-works">How it works</a></li>
<li class="toctree-l4"><a class="reference internal" href="#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="#references">References</a></li>
<li class="toctree-l4"><a class="reference internal" href="#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="security.html">OS Security</a><ul>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-updates">Security in updates</a></li>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-software">Security in software</a></li>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-system-design">Security in system design</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="stateless.html">Stateless</a><ul>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#file-level-separation">File-level separation</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#software-configuration">Software configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#system-reset">System reset</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#additional-information">Additional information</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="swupd-guide.html">swupd</a><ul>
<li class="toctree-l4"><a class="reference internal" href="swupd-guide.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd-guide.html#how-it-works">How it works</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd-guide.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd-guide.html#quick-reference">Quick reference</a></li>
<li class="toctree-l4"><a class="reference internal" href="swupd-guide.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../telemetrics/telem-guide.html">Telemetrics</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../telemetrics/telem-guide.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../telemetrics/telem-guide.html#how-to-use">How to use</a></li>
<li class="toctree-l4"><a class="reference internal" href="../telemetrics/telem-guide.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../telemetrics/telem-guide.html#reference">Reference</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../guides.html#maintenance">Maintenance</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/architect-lifecycle.html">Architect the life-cycle of Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#content-workflow">Content Workflow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#release-workflow">Release Workflow</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/architect-lifecycle.html#implementation">Implementation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/assign-static-ip.html">Assign a static IP address</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/assign-static-ip.html#identify-which-program-is-managing-the-interface">Identify which program is managing the interface</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/assign-static-ip.html#using-networkmanager">Using NetworkManager</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/assign-static-ip.html#using-systemd-networkd">Using systemd-networkd</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/bulk-provision.html">Bulk provision</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/bulk-provision.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/bulk-provision.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/bulk-provision.html#configuration">Configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/cpu-performance.html">CPU Power and Performance</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#cpu-power-saving-mechanisms">CPU power saving mechanisms</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#linux-cpu-clock-frequency-scaling">Linux CPU clock frequency scaling</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/cpu-performance.html#thermal-management">Thermal management</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/developer-workstation.html">Developer Workstation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/developer-workstation.html#workstation-setup">Workstation Setup</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/developer-workstation.html#swupd-search">swupd search</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/developer-workstation.html#core-concepts">Core Concepts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/download-verify-decompress.html">Download, verify, and decompress a Clear Linux* OS image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#linux-os-steps">Linux OS steps</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#macos-steps">macOS* steps</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#windows-os-steps">Windows* OS steps</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/download-verify-decompress.html#image-types">Image types</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/enable-user-space.html">Create and enable a new user space</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#create-a-new-user">Create a new user</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#add-the-new-user-to-the-wheel-group">Add the new user to the <em>wheel</em> group</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#install-and-update-the-os-software-to-its-current-version">Install and update the OS software to its current version</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#add-a-bundle">Add a bundle</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/enable-user-space.html#next-steps">Next steps</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/fix-broken-install.html">Fix a broken installation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#boot-a-live-desktop-image-to-fix-target-system">Boot a live desktop image to fix target system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#install-from-live-image">Install from live image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/fix-broken-install.html#mount-root-partition-verify-and-fix">Mount root partition, verify, and fix</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/hostname.html">Modify hostname</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/hostname.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/hostname.html#set-your-hostname">Set your hostname</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/hostname.html#view-your-hostname">View your hostname</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html">Increase virtual disk size of an image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#determine-the-partition-order-and-sizes-of-the-prebuilt-image">Determine the partition order and sizes of the prebuilt image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/increase-virtual-disk-size.html#id1">Increase virtual disk size</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/query-upstream.html">Query package info from upstream repository</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#configure-dnf">Configure DNF</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/query-upstream.html#dnf-command-usage-examples">DNF command usage examples</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/resource-limits.html">Resource limits</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/resource-limits.html#system-wide-limits">System-wide limits</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/resource-limits.html#per-user-limits">Per-user limits</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/resource-limits.html#service-limits">Service limits</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/restart.html">Restart system services after an OS update</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#how-it-works">How it works</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#basic-options">Basic options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#monitor-options">Monitor options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#example">Example</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#telemetry">Telemetry</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/restart.html#conclusion">Conclusion</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/time.html">Set the time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../maintenance/validate-signatures.html">Validate signatures</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/validate-signatures.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/validate-signatures.html#image-content-validation">Image content validation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../maintenance/validate-signatures.html#update-content-validation">Update content validation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../deploy-at-scale.html">Deploy at Scale</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../deploy-at-scale.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../deploy-at-scale.html#pick-a-usage-and-update-strategy">Pick a usage and update strategy</a></li>
<li class="toctree-l4"><a class="reference internal" href="../deploy-at-scale.html#pick-an-image-distribution-strategy">Pick an image distribution strategy</a></li>
<li class="toctree-l4"><a class="reference internal" href="../deploy-at-scale.html#considerations-with-stateless-systems">Considerations with stateless systems</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../guides.html#network">Network</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../network/custom-clear-container.html">Build a custom Clear Linux* OS based Docker container image</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/custom-clear-container.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/custom-clear-container.html#build-the-base-container-image">Build the base container image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/custom-clear-container.html#manage-bundles-in-a-container">Manage bundles in a container</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/dpdk.html">Use DPDK to send packets between platforms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#install-dpdk-and-build-l3fwd-example-platform-b">Install dpdk and build l3fwd example (Platform B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#build-pktgen-platform-a">Build pktgen (Platform A)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#bind-nics-to-dpdk-kernel-drivers-platforms-a-and-b">Bind NICs to DPDK kernel drivers (Platforms A and B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#set-hugepages-platforms-a-and-b">Set hugepages (Platforms A and B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#set-up-the-physical-environment-platforms-a-and-b">Set up the physical environment (Platforms A and B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#run-l3fwd-application-platform-b">Run l3fwd application (Platform B)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#run-pktgen-application-platform-a">Run pktgen application (Platform A)</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/dpdk.html#appendix-a-use-pass-through-for-virtual-machines">Appendix A: Use pass-through for virtual machines</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/ipxe-install.html">Install over the network with iPXE</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/ipxe-install.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/ipxe-install.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/ipxe-install.html#configuration">Configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../network/network-bonding.html">Combine multiple interfaces with network bonding</a></li>
<li class="toctree-l3"><a class="reference internal" href="../network/vnc.html">Remote-desktop to a host using VNC</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#install-the-vnc-server-and-misc-components-on-your-host">Install the VNC server and misc. components on your host</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#configure-a-vnc-server-start-method-on-your-host">Configure a VNC-server-start method on your host</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#install-a-vnc-viewer-app-and-an-ssh-client-on-your-client-system">Install a VNC viewer app and an SSH client on your client system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#establish-a-vnc-connection-to-your-host">Establish a VNC connection to your host</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#terminate-a-vnc-connection-to-your-host">Terminate a VNC connection to your host</a></li>
<li class="toctree-l4"><a class="reference internal" href="../network/vnc.html#encrypt-vnc-traffic-through-an-ssh-tunnel">Encrypt VNC traffic through an SSH tunnel</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../guides.html#kernel">Kernel</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../kernel/kernel-development.html">Kernel development</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#request-changes-be-included-with-the-cl-kernel">Request changes be included with the Clear Linux OS kernel</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#set-up-kernel-development-environment">Set up kernel development environment</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#customize-the-linux-kernel-source">Customize the Linux kernel source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#build-and-install-the-kernel">Build and install the kernel</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-development.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../kernel/kernel-modules.html">Add kernel modules manually</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#kernel-module-availability">Kernel module availability</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#build-install-and-load-an-out-of-tree-module">Build, install, and load an out-of-tree module</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules.html#related-topic">Related topic</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../kernel/kernel-modules-dkms.html">Add kernel modules with DKMS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#description">Description</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#kernel-module-availability">Kernel module availability</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#install-dkms">Install DKMS</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#build-install-and-load-an-out-of-tree-module">Build, install, and load an out-of-tree module</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#examples">Examples</a></li>
<li class="toctree-l4"><a class="reference internal" href="../kernel/kernel-modules-dkms.html#related-topics">Related topics</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../guides.html#stacks">Stacks</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../stacks/dars.html">Data Analytics Reference Stack</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dars.html#the-data-analytics-reference-stack-release">The Data Analytics Reference Stack release</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dars.html#using-the-docker-images">Using the Docker images</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dars.html#building-dars-images">Building DARS images</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../stacks/greengrass.html">Enable AWS Greengrass* and OpenVINO™ toolkit</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#supported-platforms">Supported platforms</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#install-the-os-on-the-edge-device">Install the OS on the edge device</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#configure-aws-greengrass-group">Configure AWS Greengrass group</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#create-and-package-lambda-function">Create and package Lambda function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#configure-lambda-function">Configure Lambda function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#deploy-lambda-function">Deploy Lambda function</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/greengrass.html#references">References</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../stacks/dlrs/dlrs.html">Deep Learning Reference Stack</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#tensorflow-single-and-multi-node-benchmarks">TensorFlow single and multi-node benchmarks</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#pytorch-single-and-multi-node-benchmarks">PyTorch single and multi-node benchmarks</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#kubeflow-multi-node-benchmarks">Kubeflow multi-node benchmarks</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#use-jupyter-notebook">Use Jupyter Notebook</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#uninstallation">Uninstallation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../stacks/dlrs/dlrs.html#related-topics">Related topics</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/tutorials.html">Tutorials</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/wordpress/wordpress.html">WordPress* on Clear Linux* OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html">Set up a LAMP web server on Clear Linux* OS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-apache">Install Apache</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#change-the-default-configuration-and-data-directory">Change the default configuration and data directory</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-php">Install PHP</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-mariadb">Install MariaDB</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#install-phpmyadmin">Install phpMyAdmin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#use-phpmyadmin-to-manage-a-database">Use phpMyAdmin to manage a database</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/web-server-install.html#next-steps">Next steps</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/wordpress/wp-install.html">Set up WordPress* on a LAMP web server</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/wp-install.html#before-you-begin">Before you begin</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/wordpress/wp-install.html#create-a-wordpress-server">Create a WordPress server</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/flatpak/flatpak.html">Use Flatpak* to install applications on Clear Linux* OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/flatpak/flatpak.html#before-you-begin">Before you begin</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/flatpak/flatpak.html#install-flatpak-on-your-host-system">Install Flatpak on your host system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/flatpak/flatpak.html#install-and-run-the-libreoffice-flatpak-image">Install and run the LibreOffice Flatpak image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/flatpak/flatpak.html#launch-libreoffice">Launch LibreOffice</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/machine-learning/machine-learning.html">TensorFlow* machine learning on Clear Linux* OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/machine-learning/machine-learning.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/machine-learning/machine-learning.html#set-up-a-jupyter-notebook">Set up a Jupyter notebook</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/machine-learning/machine-learning.html#run-the-jupyter-machine-learning-example-code">Run the Jupyter machine learning example code</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/machine-learning/machine-learning.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/docker/docker.html">Run Docker* on Clear Linux* OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#install-the-containers-basic-bundle">Install the containers-basic bundle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#integration-with-kata-containers-optional">Integration with Kata Containers* (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#additional-docker-configuration">Additional Docker configuration</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#pulling-and-running-an-image-from-docker-hub">Pulling and running an image from Docker Hub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#creating-a-docker-swarm-cluster">Creating a Docker swarm cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/docker/docker.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/azure.html">Run Clear Linux* OS using Microsoft Azure CLI 2.0</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/azure.html#install-ms-azure-cli-2-0-on-cl">Install MS Azure CLI 2.0 on Clear Linux OS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/azure.html#log-into-your-microsoft-azure-account">Log into your Microsoft Azure account</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/azure.html#create-a-ms-azure-resource-group">Create a MS Azure resource group</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/azure.html#create-and-log-into-the-cl-virtual-machine">Create and log into the Clear Linux OS virtual machine</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/azure.html#stop-and-deallocate-the-cl-vm-and-resources">Stop and deallocate the Clear Linux OS VM and resources</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/azure.html#next-steps">Next steps</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/hadoop.html">Set up a single node cluster with Hadoop*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/hadoop.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/hadoop.html#install-apache-hadoop">Install Apache Hadoop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/hadoop.html#configure-apache-hadoop">Configure Apache Hadoop</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/hadoop.html#configure-your-ssh-key">Configure your SSH key</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/hadoop.html#run-the-hadoop-daemons">Run the Hadoop daemons</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/hadoop.html#run-the-mapreduce-wordcount-example">Run the MapReduce wordcount example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/fmv.html">Use the function multi-version patch generator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#install-and-configure-a-cl-host-on-bare-metal">Install and configure a Clear Linux OS host on bare metal</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#detect-loop-vectorization-candidates">Detect loop vectorization candidates</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#generate-the-fmv-patch">Generate the FMV patch</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/fmv.html#fft-project-example-using-fftw">FFT project example using FFTW</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/aws-web/aws-web.html">Create and launch Clear Linux* OS from Amazon Web Services</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/aws-web/aws-web.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/aws-web/aws-web.html#locate-select-and-launch-the-cl-basic-ami">Locate, select, and launch the Clear Linux OS Basic AMI</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/aws-web/aws-web.html#connect-to-your-clear-linux-os-basic-instance">Connect to your Clear Linux OS Basic instance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/aws-web/aws-web.html#update-the-cl-instance">Update the Clear Linux OS instance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/aws-web/aws-web.html#stop-the-cl-instance">Stop the Clear Linux OS instance</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/smb/smb.html">Enable simple file sharing with a Windows* machine using Samba*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb/smb.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb/smb.html#set-up-file-sharing">Set up file sharing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb/smb.html#map-cl-drive-in-windows">Map Clear Linux OS drive in Windows</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/smb/smb-desktop.html">Connect to Windows* shared location from Clear Linux* OS desktop</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb/smb-desktop.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/smb/smb-desktop.html#connect-to-windows-shared-location-with-nautilus">Connect to Windows shared location with Nautilus</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/spark.html">Set up a standalone cluster system using Apache* Spark*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/spark.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/spark.html#install-apache-spark">Install Apache Spark</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/spark.html#configure-apache-spark">Configure Apache Spark</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/spark.html#start-the-master-server-and-a-worker-daemon">Start the master server and a worker daemon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/spark.html#run-the-spark-wordcount-example">Run the Spark wordcount example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kata.html">Install Kata Containers*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#id1">Install Kata Containers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#run-kata-containers">Run Kata Containers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata.html#more-information-about-docker">More information about Docker</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/kata.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kata_migration.html">Migrate Clear Containers to Kata Containers*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata_migration.html#stop-clear-containers-instances">Stop Clear Containers instances</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata_migration.html#manually-migrate-customized-configuration-files">Manually migrate customized configuration files</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata_migration.html#enable-kata-containers-as-default">Enable Kata Containers as default</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kata_migration.html#run-kata-containers">Run Kata Containers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html">Run Kubernetes*</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#install-kubernetes-and-cri-runtimes">Install Kubernetes and CRI runtimes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#configure-kubernetes">Configure Kubernetes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#configure-and-run-kubernetes">Configure and run Kubernetes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#configure-and-run-cri-o-kata-runtime">Configure and run CRI-O + kata-runtime</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#install-pod-network-add-on">Install pod network add-on</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#use-your-cluster">Use your cluster</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#related-topics">Related topics</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#cloud-native-setup-automation-optional">Cloud native setup automation (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#package-configuration-customization-optional">Package configuration customization (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#proxy-configuration-optional">Proxy configuration (optional)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#next-steps">Next steps</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes.html#troubleshooting">Troubleshooting</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes-bp.html">Kubernetes Best Practices on Clear Linux OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes-bp.html#use-swupd-to-update-clusters">Use swupd to update clusters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes-bp.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes-bp.html#update-the-control-plane">Update the control plane</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/kubernetes/kubernetes-bp.html#update-worker-nodes">Update worker nodes</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/yubikey-u2f.html">Enable YubiKey U2F Support</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#enable-linux-udev-rules-for-yubikey">Enable Linux udev rules for YubiKey</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#enable-u2f-in-mozilla-firefox">Enable U2F in Mozilla Firefox</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/yubikey-u2f.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/nvidia.html">Install NVIDIA* Drivers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#install-dkms">Install DKMS</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#download-and-install-the-nvidia-drivers">Download and install the NVIDIA drivers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#download-the-nvidia-drivers-for-linux">Download the NVIDIA drivers for Linux</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#disable-the-nouveau-driver">Disable the nouveau driver</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#configure-alternative-software-paths">Configure alternative software paths</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/nvidia.html#install-the-nvidia-drivers">Install the NVIDIA drivers</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#updating-the-nvidia-drivers">Updating the NVIDIA drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#uninstalling-the-nvidia-drivers">Uninstalling the NVIDIA drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#debugging-installation-of-nvidia-drivers">Debugging installation of NVIDIA drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/nvidia.html#additional-resources">Additional resources</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/redis.html">Run Redis on Clear Linux* OS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#install-the-redis-bundle">Install the redis bundle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#start-the-redis-server">Start the redis-server</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#example-1-use-the-redis-cli-and-try-commands">Example 1: Use the redis-cli and try commands</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#example-2-run-the-cl-redis-docker-image">Example 2: Run the Clear Linux OS redis docker image</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/redis.html#next-steps">Next Steps</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../tutorials/tutorial-proxy.html">Setting up proxy</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tutorial-proxy.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tutorial-proxy.html#shells-and-programs-in-a-desktop-session">Shells and programs in a desktop session</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../tutorials/tutorial-proxy.html#terminal">Terminal</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tutorial-proxy.html#wget">wget</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tutorial-proxy.html#system-service-docker">System service (Docker)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../tutorials/tutorial-proxy.html#git-over-ssh">git over ssh</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../reference/reference.html">Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../reference/compatible-hardware.html">Compatible Hardware</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/bundle-commands.html">Useful bundle commands</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundle-commands.html#additional-information">Additional information</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/bundles/bundles.html">Available bundles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/bundles.html#bundle-list">Bundle list</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/bundles/openssh-server.html">openssh-server</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/openssh-server.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/openssh-server.html#change-default-port">Change default port</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/openssh-server.html#enable-sftp">Enable SFTP</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/openssh-server.html#enable-root-login">Enable root login</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/bundles/openssh-server.html#enable-x11-forwarding">Enable X11-forwarding</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/collaboration/collaboration.html">Documentation guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#contribution-guidelines">Contribution guidelines</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../reference/collaboration/writing-guide.html">Writing guide: Describes the style we use to keep our documents clear and concise.</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../reference/collaboration/structure-formatting.html">Structure and formatting guide: Explains how we organize and format content, using reStructuredText and Sphinx.</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#how-to-contribute">How to contribute</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#contribute-via-github">Contribute via GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/collaboration/collaboration.html#references">References</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/system-requirements.html">Recommended minimum system requirements</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../reference/system-requirements.html#installer-requirements">Installer requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/system-requirements.html#id1">System requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../reference/system-requirements.html#recommended-configurations">Recommended configurations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/image-types.html">Clear Linux* OS image types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../reference/reference.html#clear-linux-concepts">Clear Linux concepts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../concepts/autospec-about.html">Autospec</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/autospec-about.html#how-autospec-works">How autospec works</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/autospec-about.html#control-files">Control files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/autospec-about.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../concepts/bundles-about.html">Bundles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/bundles-about.html#next-steps">Next steps</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../concepts/mixer-about.html">Mixer</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/mixer-about.html#create-a-mix">Create a mix</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/mixer-about.html#related-topics">Related topics</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../concepts/swupd-about.html">swupd: software updater</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/swupd-about.html#versioning">Versioning</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/swupd-about.html#updating">Updating</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/swupd-about.html#bundles">Bundles</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../../concepts/telemetry-about.html">Telemetrics</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/telemetry-about.html#architecture">Architecture</a></li>
<li class="toctree-l4"><a class="reference internal" href="../../concepts/telemetry-about.html#next-steps">Next steps</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="stateless.html">Stateless</a><ul>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#file-level-separation">File-level separation</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#software-configuration">Software configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#system-reset">System reset</a></li>
<li class="toctree-l4"><a class="reference internal" href="stateless.html#additional-information">Additional information</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="security.html">OS Security</a><ul>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-updates">Security in updates</a></li>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-software">Security in software</a></li>
<li class="toctree-l4"><a class="reference internal" href="security.html#security-in-system-design">Security in system design</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../FAQ/faq.html">FAQ</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ/faq.html#general">General</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#why-did-you-make-another-distro">Why did you make another distro?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#can-other-distros-copy-cl-improvements">Can other distros copy Clear Linux OS improvements?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#how-often-do-you-update">How often do you update?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#is-telemetry-required">Is telemetry required?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#what-is-the-default-firewall">What is the default firewall?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#where-are-the-files-that-i-usually-see-under-etc-like-fstab">Where are the files that I usually see under /etc like fstab?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ/faq.html#software-packages">Software packages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#how-is-software-installed-and-updated">How is software installed and updated?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#does-cl-use-rpms-like-other-distros">Does Clear Linux OS use RPMs like other distros?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#can-i-install-a-software-package-from-another-os-on-cl">Can I install a software package from another OS on Clear Linux OS?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../FAQ/faq.html#software-availability">Software availability</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#what-software-is-available-on-cl">What software is available on Clear Linux OS?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#is-google-chrome-available">Is Google* Chrome* available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#is-ffmpeg-available">Is FFmpeg available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#is-zfs-available">Is ZFS* available?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../../FAQ/faq.html#can-you-add-a-driver-that-i-need">Can you add a driver that I need?</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">Clear Linux* Project Docs</a>
</nav>
<div class="wy-nav-content">
<header id="header">
<div class="padding-md--left-right">
<div class="header__site_info">
<div class="header__site_info_name">
<a href ="https://clearlinux.org"> Clear Linux* Project</a>
</div>
</div>
<nav class="header__menu">
<ul class="header__menu_list">
<li class="header__menu_list_item green ">
<a tabindex='1' href="https://clearlinux.org/about">About</a>
</li>
<li class="header__menu_list_item purple ">
<a tabindex='1' href="https://clearlinux.org/developer">Developer</a>
</li>
<li class="header__menu_list_item blue ">
<a tabindex='1' href="https://clearlinux.org/software">Software</a>
</li>
</ul>
</nav>
</div>
</header>
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html">Docs</a> &raquo;</li>
<li><a href="../guides.html">Guides</a> &raquo;</li>
<li>mixer</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/clearlinux/clear-linux-documentation/blob/rtd-theme/source/guides/clear/mixer.rst" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="mixer">
<span id="id1"></span><h1>mixer</h1>
<p><strong>mixer</strong> is the tool used by the Clear Linux* OS team to generate official update
content and releases. The update content generated by mixer is then consumed
by swupd on a downstream client. The same mixer tool is available as part of
Clear Linux OS to create your own customized update content and releases.</p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#description" id="id5">Description</a></li>
<li><a class="reference internal" href="#how-it-works" id="id6">How it works</a></li>
<li><a class="reference internal" href="#examples" id="id7">Examples</a></li>
<li><a class="reference internal" href="#references" id="id8">References</a></li>
<li><a class="reference internal" href="#related-topics" id="id9">Related topics</a></li>
</ul>
</div>
<div class="section" id="description">
<h2><a class="toc-backref" href="#id5">Description</a></h2>
<p>mixer uses the following sources as inputs to generate update content:</p>
<ul class="simple">
<li>Upstream Clear Linux OS bundles with their corresponding RPM packages</li>
<li>Locally-defined bundles with their corresponding local RPM packages</li>
<li>Locally-defined bundles with upstream RPM packages</li>
</ul>
<p>Using the mixer tool, you select which set of content from these sources
will be part of your update. You can select content from each of these sources to make a unique combination of functionality for your custom update content, known as a <strong>mix</strong>.</p>
<p>The update content that mixer generates consists of various pieces of OS
content, update metadata, as well as a complete image. The OS content
includes all files in an update, as well as zero- and delta-packs for improved update performance. The update metadata, stored as manifests, describes all of the bundle information for the update. Update content produced by mixer is then published to a web server and consumed by clients via swupd. Refer to <a class="reference internal" href="swupd-guide.html#swupd-guide"><span class="std std-ref">swupd</span></a> for additional information regarding updates and update content.</p>
</div>
<div class="section" id="how-it-works">
<h2><a class="toc-backref" href="#id6">How it works</a></h2>
<p>Learn the mixer tool set up and workflow.</p>
<div class="contents local topic" id="id2">
<ul class="simple">
<li><a class="reference internal" href="#prerequisites" id="id10">Prerequisites</a></li>
<li><a class="reference internal" href="#mix-setup" id="id11">Mix setup</a></li>
<li><a class="reference internal" href="#create-a-mix" id="id12">Create a mix</a></li>
<li><a class="reference internal" href="#maintain-or-modify-mix" id="id13">Maintain or modify mix</a></li>
</ul>
</div>
<div class="section" id="prerequisites">
<h3><a class="toc-backref" href="#id10">Prerequisites</a></h3>
<ul>
<li><p class="first"><strong class="command">mixer</strong> bundle</p>
<p>Add the mixer tool with the <strong class="command">mixer</strong> bundle. Refer to
<a class="reference internal" href="swupd-guide.html#swupd-guide"><span class="std std-ref">swupd</span></a> for more information on installing bundles.</p>
</li>
<li><p class="first">Docker* container</p>
<p>mixer by default runs all build commands in a Docker container to ensure
the correct tool versions are used. This also allows custom mixes to
automatically perform downstream format bumps when the upstream releases a
format bump. See <a class="reference internal" href="#format-version">Format version</a> for additional information regarding
format bumps.</p>
<p>Refer to <a class="reference internal" href="#configure-and-enable-docker">Configure and enable Docker</a> for instruction.</p>
</li>
<li><p class="first">Docker proxy (optional)</p>
<p>If you use a proxy server, you must set your proxy environment variables and
create a proxy configuration file for the Docker daemon and container.</p>
<p>Consult your IT department for the correct values if you are behind a
corporate proxy.</p>
<p>Refer to <a class="reference internal" href="#configure-docker-proxy-info">Configure Docker proxy info</a> for instruction.</p>
</li>
<li><p class="first">Location to host the update content and images</p>
<p>In order for swupd to make use of your mix, the update content for your mix
must be hosted on a web server. Your mix will be configured with an update
location URL, which swupd will use to pull down updates.</p>
<p>Refer to <a class="reference internal" href="#set-up-a-nginx-web-server-for-mixer">Set up a nginx web server for mixer</a> for an simple example of
setting up an update location.</p>
</li>
</ul>
</div>
<div class="section" id="mix-setup">
<h3><a class="toc-backref" href="#id11">Mix setup</a></h3>
<p>Follow these steps to create and initialize the mixer workspace. Complete
the setup before you create a mix.</p>
<ol class="arabic">
<li><p class="first">Create workspace.</p>
<p>The mixer tool uses a simple workspace to contain all input and output in a
basic directory structure. The workspace is simply an empty folder from
which you execute the mixer commands. Each mix uses its own separate
workspace.</p>
</li>
<li><p class="first">Initialize the workspace and mix.</p>
<p>Before you create a mix, you must explicitly initialize the mixer workspace.
During initialization, the mixer workspace is configured and the base for
your mix is defined. By default, your mix is based on the latest
upstream version and starts with the minimum set of bundles. Your first custom
mix version number starts at 10. Alternatively, you can select other
versions or bundle sets from which to start.</p>
<p>Initialization creates the directory structure within the workspace and adds
the <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> file, which is used to configure the mixer tool.</p>
<p>View the <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.init.1.rst">mixer.init man page</a> for more information on mixer
initialization.</p>
<p>View the list of suitable <a class="reference external" href="https://github.com/clearlinux/clr-bundles/releases">releases</a> from which to mix.</p>
</li>
<li><p class="first">Edit builder.conf.</p>
<p><code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> tells the mixer tool how to configure the mix. For
example, it allows you to configure where mixer output is located and where
swupd update content will be located.</p>
<p>At minimum, set the URL of your update server so your custom OS knows where
to get update content.</p>
<p>Refer to the <a class="reference internal" href="#builder-conf">builder.conf</a> section for more information.</p>
</li>
</ol>
</div>
<div class="section" id="create-a-mix">
<h3><a class="toc-backref" href="#id12">Create a mix</a></h3>
<p>A mix is created with the following steps:</p>
<ol class="arabic">
<li><p class="first">Add custom RPMs and set up local repo (optional).</p>
<p>If you are adding custom RPMs to your mix, you must add the RPMs to
your mix workspace and set up a corresponding local repository.</p>
<p>Go to the <a class="reference internal" href="autospec.html#autospec"><span class="std std-ref">autospec</span></a> guide to learn to build RPMs from
scratch. If the RPMs are not built on Clear Linux OS, make sure your
configuration and toolchain builds them correctly for Clear Linux OS. Otherwise there
is no guarantee they will be compatible.</p>
<p>Refer to the <a class="reference internal" href="autospec.html#autospec"><span class="std std-ref">autospec</span></a> guide for more information on using autospec to
build RPMs.</p>
</li>
<li><p class="first">Update and build bundles.</p>
<p>Add, edit, or remove bundles that will be part of your content and build
them. mixer automatically updates the <code class="file docutils literal notranslate"><span class="pre">mixbundles</span></code> file when you
update the bundles in your mix.</p>
<p>View the <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.bundle.1.rst">mixer.bundle man page</a> for more information on configuring bundles
in a mix.</p>
<p>View the <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.build.1.rst">mixer.build man page</a> for more information on building bundles.</p>
<p>View the <a class="reference internal" href="#bundles">Bundles</a> section for more information on how mixer manages
bundles.</p>
</li>
<li><p class="first">Create the update content.</p>
<p>mixer creates update content with this step. Zero-packs are created
automatically, and delta-packs can be optionally created at the same time
(for all builds after version 0).</p>
<p>A zero-pack is the full set of content needed to go from mix version 0
(nothing) to the mix version for which you just built content.</p>
<p>A delta-pack provides the content <em>delta</em> between a <cite>PAST_VERSION</cite> to a
<cite>MIX_VERSION</cite> that allows the transition from one mix version to another.</p>
<p>View <a class="reference internal" href="swupd-guide.html#swupd-guide"><span class="std std-ref">swupd</span></a> for more information on update content.</p>
</li>
<li><p class="first">Create image.</p>
<p>mixer creates a bootable image from your updated content using
the <a class="reference internal" href="ister.html#ister"><span class="std std-ref">ister.py image builder</span></a> tool. In this step you can specify which bundles you want
<em>preinstalled</em> in the image. Users can later install other bundles available
in your mix.</p>
</li>
<li><p class="first">Make update available.</p>
<p>Deploy update content and images to your update server.</p>
<p>View the <a class="reference internal" href="#example-3-deploy-updates-to-target">Example 3: Deploy updates to target</a> for a simple deployment
scenario.</p>
</li>
</ol>
</div>
<div class="section" id="maintain-or-modify-mix">
<h3><a class="toc-backref" href="#id13">Maintain or modify mix</a></h3>
<p>Update or modify your content to a new version by following the steps to
create a mix. Increment the mix version number for the next mix.</p>
</div>
</div>
<div class="section" id="examples">
<h2><a class="toc-backref" href="#id7">Examples</a></h2>
<p>The following examples are designed to work together and in order. The examples
use:</p>
<ul class="simple">
<li>A stock installation of Clear Linux OS.</li>
<li>A web server that comes with Clear Linux OS to host the content updates.</li>
<li>A simple VM that updates against the locally produced content created in
Example 2.</li>
</ul>
<p>Complete all <a class="reference internal" href="#prerequisites">Prerequisites</a> before using these examples.</p>
<div class="section" id="example-1-mix-set-up">
<h3>Example 1: Mix set up</h3>
<p>This example shows the basic steps for the first-time setup of
mixer for a new mix.</p>
<ol class="arabic">
<li><p class="first">Create an empty directory to use as a workspace for mixer:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir ~/mixer
</pre></div>
</div>
</li>
<li><p class="first">In your mixer workspace, generate an initial mix based on the latest upstream
Clear Linux OS version, with minimum bundles. In the initialization output, be aware
that your initial mix version is set to 10 and that the minimum bundles have
been added.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nb">cd</span> ~/mixer
mixer init
</pre></div>
</div>
</li>
<li><p class="first">Edit <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> to set the value of CONTENTURL and VERSIONURL to
the IP address of the nginx* server you set up in the prerequisite
<a class="reference internal" href="#set-up-a-nginx-web-server-for-mixer">Set up a nginx web server for mixer</a>. For example:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">CONTENTURL=&quot;http://192.168.25.52&quot;</span>
<span class="go">VERSIONURL=&quot;http://192.168.25.52&quot;</span>
</pre></div>
</div>
</li>
</ol>
</div>
<div class="section" id="example-2-create-a-simple-mix">
<h3>Example 2: Create a simple mix</h3>
<p>This example shows how to create a simple custom mix using upstream content.
Well create an image for a QEMU virtual machine that we can use later to test
our mix.</p>
<p>We can use the default bundles that were added during initialization, but these
include the <strong class="command">native-kernel</strong> bundle that is intended to be used on a
bare metal system instead of a VM. So we will modify the default bundle
set to get a smaller kernel image, which will also be faster to load.</p>
<ol class="arabic">
<li><p class="first">Update bundles in mix:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle remove kernel-native
mixer bundle add kernel-kvm
</pre></div>
</div>
</li>
<li><p class="first">In this case, we will add the <cite>editors</cite> bundle from upstream, but we will
remove the <cite>joe</cite> editor.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle add editors
mixer bundle edit editors
</pre></div>
</div>
</li>
<li><p class="first">Use an editor and manually remove <cite>joe</cite> from the bundle definition.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">$EDITOR</span> ./local-bundles/editors
</pre></div>
</div>
</li>
<li><p class="first">List the bundles in the mix again to confirm removal.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle list --tree
</pre></div>
</div>
</li>
<li><p class="first">Build bundles:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer build bundles
</pre></div>
</div>
<p>Look in ~/mixer/update/image/&lt;mix version&gt;/full for the full chroot after the
<strong class="command">build</strong> command completes.</p>
</li>
<li><p class="first">Build update content. Browse to your http://localhost site and youll see
the web page is now up, but with no update content. Build the update content:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer build update
</pre></div>
</div>
<p>Refresh your http://localhost site and now you can see the update
content for mix version 10.</p>
<p>Look in ~/mixer/update/www/&lt;mix version&gt; to see the update content in your
workspace.</p>
</li>
<li><p class="first">Configure image. Edit the ister configuration file for your image to include
all of the bundles you want preinstalled in the image. If this is the first
time creating an image, first get a copy of the
<code class="file docutils literal notranslate"><span class="pre">release-image-config.json</span></code> template file:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl -O https://raw.githubusercontent.com/bryteise/ister/master/release-image-config.json
</pre></div>
</div>
<p>For this example, edit <code class="file docutils literal notranslate"><span class="pre">release-image-config.json</span></code> so that the root
partition size is “5G” and replace the “kernel-native” bundle with
“kernel-kvm”.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">{</span>
<span class="go"> &quot;DestinationType&quot; : &quot;virtual&quot;,</span>
<span class="go"> &quot;PartitionLayout&quot; : [ { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 1, &quot;size&quot; : &quot;32M&quot;, &quot;type&quot; : &quot;EFI&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 2, &quot;size&quot; : &quot;16M&quot;, &quot;type&quot; : &quot;swap&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 3, &quot;size&quot; : &quot;5G&quot;, &quot;type&quot; : &quot;linux&quot; } ],</span>
<span class="go"> &quot;FilesystemTypes&quot; : [ { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 1, &quot;type&quot; : &quot;vfat&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 2, &quot;type&quot; : &quot;swap&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 3, &quot;type&quot; : &quot;ext4&quot; } ],</span>
<span class="go"> &quot;PartitionMountPoints&quot; : [ { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 1, &quot;mount&quot; : &quot;/boot&quot; },</span>
<span class="go"> { &quot;disk&quot; : &quot;release.img&quot;, &quot;partition&quot; : 3, &quot;mount&quot; : &quot;/&quot; } ],</span>
<span class="go"> &quot;Version&quot;: &quot;latest&quot;,</span>
<span class="go"> &quot;Bundles&quot;: [&quot;kernel-kvm&quot;, &quot;os-core&quot;, &quot;os-core-update&quot;]</span>
<span class="go">}</span>
</pre></div>
</div>
</li>
<li><p class="first">Build the image.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mixer build image
</pre></div>
</div>
<p>The output from this step will be <code class="file docutils literal notranslate"><span class="pre">release.img</span></code>, which is a live image.</p>
</li>
<li><p class="first">Make the next mix. Create a new version of your mix, for the live image to
update to. Increment your mix version by 10:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer versions update
</pre></div>
</div>
<p>Repeat steps 1-3 to add the upstream <strong class="command">curl</strong> bundle to the mix:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer bundle add curl
mixer build bundles
mixer build update
</pre></div>
</div>
<p>Build optional delta-packs, which helps reduce client update time:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mixer build delta-packs --from <span class="m">10</span> --to <span class="m">20</span>
</pre></div>
</div>
<p>Refresh your http://localhost site to see the update content for
mix version 20.</p>
<p>Look in ~/mixer/update/www/&lt;mix version&gt; to see the update content in your
workspace.</p>
</li>
</ol>
</div>
<div class="section" id="example-3-deploy-updates-to-target">
<h3>Example 3: Deploy updates to target</h3>
<p>The image created in Example 2 is directly bootable in QEMU. In this example,
well boot the image from Example 2 to verify it, and update the image from
mix version 10 (from which the image was built), to mix version 20.</p>
<ol class="arabic">
<li><p class="first">Set up the QEMU environment.</p>
<p>Install the <strong class="command">kvm-host</strong> bundle to your Clear Linux OS:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo swupd bundle-add kvm-host
</pre></div>
</div>
<p>Get the virtual EFI firmware, download the image launch script, and make it
executable:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>curl -O https://download.clearlinux.org/image/OVMF.fd
curl -O https://download.clearlinux.org/image/start_qemu.sh
chmod +x start_qemu.sh
</pre></div>
</div>
</li>
<li><p class="first">Start your VM image (created in Example 2):</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo ./start_qemu.sh release.img
</pre></div>
</div>
</li>
<li><p class="first">Log in as root and set a password</p>
</li>
<li><p class="first">Try out your mix.</p>
<p>Take a look at the default bundles installed in your mix:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd info
swupd bundle-list
swupd bundle-list -a
</pre></div>
</div>
</li>
<li><p class="first">Now we will add the <cite>editors</cite> bundle that we modified.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd bundle add editors
</pre></div>
</div>
</li>
<li><p class="first">Try to start the <cite>joe</cite> editor. It should not appear because we removed it
from the original <cite>editors</cite> bundle.</p>
</li>
<li><p class="first">Next we will update from version 10 to 20 to capture the newly
available bundles. Use <strong class="command">swupd</strong> to update your mix:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd check-update
swupd update
swupd bundle-list -a
</pre></div>
</div>
</li>
<li><p class="first">Now your mix should be at version 20 and curl is now available. Try using
curl. This will fail because curl is not yet installed:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">curl: command not found</span>
<span class="go">To install curl use: swupd bundle-add curl</span>
</pre></div>
</div>
<p>Add the new bundle from your update server to your VM. Retry curl. It works!</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>swupd bundle-add curl
curl -O https://download.clearlinux.org/image/start_qemu.sh
</pre></div>
</div>
<p>Shutdown your VM:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>poweroff
</pre></div>
</div>
</li>
</ol>
</div>
</div>
<div class="section" id="references">
<h2><a class="toc-backref" href="#id8">References</a></h2>
<p>Reference the <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.1.rst">mixer man page</a> for details regarding mixer commands and options.</p>
<div class="contents local topic" id="id3">
<ul class="simple">
<li><a class="reference internal" href="#builder-conf" id="id14">builder.conf</a></li>
<li><a class="reference internal" href="#bundles" id="id15">Bundles</a></li>
<li><a class="reference internal" href="#configure-and-enable-docker" id="id16">Configure and enable Docker</a></li>
<li><a class="reference internal" href="#configure-docker-proxy-info" id="id17">Configure Docker proxy info</a></li>
<li><a class="reference internal" href="#set-up-a-nginx-web-server-for-mixer" id="id18">Set up a nginx web server for mixer</a></li>
</ul>
</div>
<div class="content-collapse section" id="builder-conf">
<h3><a class="toc-backref" href="#id14">builder.conf</a></h3>
<p>mixer initialization creates a <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> that stores the basic
configuration for the mixer tool. The items of primary interest are CONTENTURL
and VERSIONURL, which will be used by systems updating against your custom
content.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">#</span>builder.conf
<span class="gp">#</span>VERSION <span class="m">1</span>.0
<span class="go">[Builder]</span>
<span class="go"> CERT = &quot;/home/clr/mix/Swupd_Root.pem&quot;</span>
<span class="go"> SERVER_STATE_DIR = &quot;/home/clr/mix/update&quot;</span>
<span class="go"> VERSIONS_PATH = &quot;/home/clr/mix&quot;</span>
<span class="go"> YUM_CONF = &quot;/home/clr/mix/.yum-mix.conf&quot;</span>
<span class="go">[Swupd]</span>
<span class="go"> BUNDLE = &quot;os-core-update&quot;</span>
<span class="go"> CONTENTURL = &quot;&lt;URL where the content will be hosted&gt;&quot;</span>
<span class="go"> VERSIONURL = &quot;&lt;URL where the version of the mix will be hosted&gt;&quot;</span>
<span class="go">[Server]</span>
<span class="go"> DEBUG_INFO_BANNED = &quot;true&quot;</span>
<span class="go"> DEBUG_INFO_LIB = &quot;/usr/lib/debug&quot;</span>
<span class="go"> DEBUG_INFO_SRC = &quot;/usr/src/debug&quot;</span>
<span class="go">[Mixer]</span>
<span class="go"> LOCAL_BUNDLE_DIR = &quot;/home/clr/mix/local-bundles&quot;</span>
<span class="go"> LOCAL_REPO_DIR = &quot;&quot;</span>
<span class="go"> LOCAL_RPM_DIR = &quot;&quot;</span>
<span class="go"> DOCKER_IMAGE_PATH = &quot;clearlinux/mixer&quot;</span>
</pre></div>
</div>
<p>Additional explanation of variables in <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> is provided in Table
1.</p>
<table border="1" class="docutils">
<colgroup>
<col width="35%" />
<col width="65%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><td><strong>Variable</strong></td>
<td><strong>Explanation</strong></td>
</tr>
<tr class="row-even"><td><cite>CERT</cite></td>
<td><p class="first">Sets the path where mixer stores the certificate file
used to sign content for verification. mixer
automatically generates the certificate if you do not
provide the path to an existing one, and signs the
<code class="file docutils literal notranslate"><span class="pre">Manifest.MoM</span></code> file to provide security for the
updated content you create.</p>
<p>chroot-builder uses the certificate file to sign
the root <code class="file docutils literal notranslate"><span class="pre">Manifest.MoM</span></code> file to provide
security for content verification.</p>
<p>swupd uses this certificate to verify the
<code class="file docutils literal notranslate"><span class="pre">Manifest.MoM</span></code> files signature.</p>
<p class="last">For now, we strongly recommend that you do not modify
this variable, as swupd expects a certificate with a
very specific configuration to sign and verify
properly.</p>
</td>
</tr>
<tr class="row-odd"><td><cite>CONTENTURL</cite> and <cite>VERSIONURL</cite></td>
<td><p class="first">Set these variables to the IP address of the web server
hosting the update content.</p>
<p>VERSIONURL is the IP address where the swupd client
looks to determine if a new version is available.</p>
<p>CONTENTURL is the location from which swupd pulls
content updates.</p>
<p>If the web server is on the same machine as the
SERVER_STATE_DIR directory, you can create a symlink to
the directory in your web servers document root to
easily host the content.</p>
<p class="last">These URLs are embedded in the images created by mixer.</p>
</td>
</tr>
<tr class="row-even"><td><cite>DOCKER_IMAGE_PATH</cite></td>
<td>Sets the base name of the docker image that mixer pulls
down to run builds in the proper container.</td>
</tr>
<tr class="row-odd"><td><cite>LOCAL_BUNDLE_DIR</cite></td>
<td>Sets the path where mixer stores the local bundle
definition files. The bundle definition files include
any new, original bundles you create, along with any
edited versions of upstream bundles.</td>
</tr>
<tr class="row-even"><td><cite>SERVER_STATE_DIR</cite></td>
<td>Sets the path to which mixer outputs content. By
default, mixer automatically sets the path.</td>
</tr>
<tr class="row-odd"><td><cite>VERSIONS_PATH</cite></td>
<td>Sets the path for the mix version and upstream versions
two state files: <code class="file docutils literal notranslate"><span class="pre">mixversion</span></code> and
<code class="file docutils literal notranslate"><span class="pre">upstreamversion</span></code>. mixer creates both files for
you when you set up the workspace.</td>
</tr>
<tr class="row-even"><td><cite>YUM_CONF</cite></td>
<td><p class="first">Sets the path where mixer automatically generates the
<code class="file docutils literal notranslate"><span class="pre">.yum-mix.conf</span></code> file.</p>
<p class="last">The yum configuration file points the chroot-builder to
where the RPMs are stored.</p>
</td>
</tr>
<tr class="row-odd"><td colspan="2"><strong>Table 1</strong>: <em>Variables in builder.conf</em></td>
</tr>
</tbody>
</table>
<div class="section" id="format-version">
<h4>Format version</h4>
<p>Compatible versions of an OS are tracked with an OS <em>compatibility epoch</em>.
Versions of an OS within an epoch are fully compatible and can update to any
other version within that epoch. The compatibility epoch is set as the
<cite>Format</cite> variable in the <code class="file docutils literal notranslate"><span class="pre">mixer.state</span></code> file. Variables in the
<code class="file docutils literal notranslate"><span class="pre">mixer.state</span></code> are used by mixer between executions and should not be
manually changed.</p>
<p>A format bump is like modifying the foundation of a house to create a new
level. If <cite>Format</cite> increments to a new epoch (a “format bump”), the OS has
changed in such a way that updating from build A in format X to build B in
format Y will not work.</p>
<p>A format bump is required when:</p>
<ul class="simple">
<li>The software updater, <strong class="command">swupd</strong>, or the software is no longer
compatible with the previous update scheme</li>
<li>A package is removed from the update stream and the update must ensure the
files associated with that package are removed from the system</li>
</ul>
<p>Using a format increment, we make sure pre- and co-requisite changes flow out
with proper ordering. The updated client will only update to the latest
release in its respective format version, unless overridden by command line
flags. In this way, we can guarantee that all clients update to the final
version in their given format.</p>
<p>The given format <em>must</em> contain all the changes needed to understand the content built in the next format. Only after reaching the final release in the old format can a client continue to update to releases in the new format.</p>
<p>The format version is incremented only when a compatibility breakage is
introduced. Normal updates, such as updating a software package, do not require a format increment.</p>
</div>
</div>
<div class="content-collapse section" id="bundles">
<h3><a class="toc-backref" href="#id15">Bundles</a></h3>
<p>mixer stores information about the bundles included in a mix in a flat file
called <code class="file docutils literal notranslate"><span class="pre">mixbundles</span></code>, which is located in the path set by the VERSIONS_PATH variable in <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code>. <code class="file docutils literal notranslate"><span class="pre">mixbundles</span></code> is automatically created when the mix is initiated. mixer will refresh the file each time you change the bundles in the mix.</p>
<p>Bundles can include other bundles. Nested bundles can themselves include
other bundles. If you see an unexpected bundle in your mix, it is likely a
nested bundle in one of the bundles you explicitly added.</p>
<p>A bundle will fill into one of two categories: upstream or local. Upstream
bundles are those provided by Clear Linux OS. Local bundles are either modified upstream bundles or new local bundles.</p>
<div class="section" id="upstream-bundles">
<h4>Upstream bundles</h4>
<p>mixer automatically downloads and caches upstream bundle definition files.
These definition files are stored in the upstream-bundles directory in the
workspace. Do not modify the files in this directory. This directory is
simply a mirror for mixer to use. mixer will automatically delete the
contents of this directory before repopulating it on-the-fly if a new
version must be downloaded.</p>
<p>The mixer tool automatically caches the bundles for the Clear Linux OS version
configured in the <code class="file docutils literal notranslate"><span class="pre">upstreamversion</span></code> file. mixer also cleans up old
versions once they are no longer needed.</p>
</div>
<div class="section" id="local-bundles">
<h4>Local bundles</h4>
<p>Local bundles are bundles that you create, or are edited versions of upstream
bundles. Local bundle definition files are stored in the local-bundles
directory in the workspace. The LOCAL_BUNDLE_DIR variable sets the path of this directory in the <code class="file docutils literal notranslate"><span class="pre">builder.conf</span></code> file.</p>
<p><em>mixer always checks for local bundles first and the upstream bundles
second.</em> So bundles in the local-bundles directory will always take
precedence over any upstream bundles that have the same name. This
precedence enables you to copy upstream bundles locally, and edit into a
local variation.</p>
</div>
<div class="section" id="bundle-configuration">
<h4>Bundle configuration</h4>
<p>mixer provides commands to configure the bundles for a mix, such as to add a
bundle to a mix, to create a new bundle for a mix, or to remove a bundle from a
mix. View the <a class="reference external" href="https://github.com/clearlinux/mixer-tools/blob/master/docs/mixer.bundle.1.rst">mixer.bundle man page</a> for a full list of commands and more
information on configuring bundles in a mix.</p>
<p>Editing an existing local bundle is as simple as opening the bundle definition
file in your favorite editor, making the desired edits, and saving your changes.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p>Removing bundles from a mix: By default, removing a bundle will only
remove the bundle from the mix. The local bundle definition file will
still remain. To completely remove a bundle, including its local bundle definition file, use the <strong class="command">--local</strong> flag.</p>
<p class="last">If you remove the bundle definition file for a local, edited version of an
upstream bundle in a mix, the mix reverts to reference the original upstream version of the bundle.</p>
</div>
</div>
</div>
<div class="content-collapse section" id="configure-and-enable-docker">
<h3><a class="toc-backref" href="#id16">Configure and enable Docker</a></h3>
<p>Use these steps to enable Docker for the mixer tool. Make sure to
<a class="reference internal" href="#configure-docker-proxy-info">Configure Docker proxy info</a> first if needed.</p>
<ol class="arabic">
<li><p class="first">Start the Docker daemon:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo systemctl start docker
sudo chmod <span class="m">777</span> /var/run/docker.sock
sudo docker info
</pre></div>
</div>
</li>
<li><p class="first">Add user to the docker group</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo usermod -G docker -a &lt;username&gt;
</pre></div>
</div>
</li>
</ol>
<div class="section" id="pull-docker-container-manually-optional">
<h4>Pull Docker container manually (optional)</h4>
<p>By default, mixer automatically pulls a Docker container for mixing if one
does not already exist. If you need to troubleshoot the mixer container, it
may be useful to manually pull a mixer Docker container.</p>
<p>Versions of the mixer Docker container are available under the tags for the
<a class="reference external" href="https://hub.docker.com/r/clearlinux/mixer/tags/">clearlinux/mixer repo</a>
on Docker Hub. Each version of the mixer Docker container is named after the
associated Clear Linux OS upstream format version. Refer to <a class="reference internal" href="#format-version">Format version</a> for
additional information on upstream format versions.</p>
<p>Use the following steps to manually pull a mixer Docker container:</p>
<ol class="arabic">
<li><p class="first">Find the version of the container you need by viewing the tags for the
<a class="reference external" href="https://hub.docker.com/r/clearlinux/mixer/tags/">clearlinux/mixer repo</a>
on Docker Hub.</p>
</li>
<li><p class="first">Pull the latest container version:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker pull clearlinux/mixer:&lt;upstream-format-version&gt;
</pre></div>
</div>
</li>
<li><p class="first">View local docker images:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker images
</pre></div>
</div>
</li>
</ol>
</div>
</div>
<div class="content-collapse section" id="configure-docker-proxy-info">
<h3><a class="toc-backref" href="#id17">Configure Docker proxy info</a></h3>
<p>If needed, use these steps to configure the Docker proxy information.</p>
<ol class="arabic">
<li><p class="first">Create the Docker daemon proxy config directory:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir -p /etc/systemd/system/docker.service.d
</pre></div>
</div>
</li>
<li><p class="first">Create <code class="file docutils literal notranslate"><span class="pre">/etc/systemd/system/docker.service.d/http-proxy.conf</span></code> and
add the following using your own proxy values:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">[Service]</span>
<span class="go">Environment=&quot;HTTP_PROXY=&lt;HTTP proxy URL&gt;:&lt;port number&gt;&quot;</span>
<span class="go">Environment=&quot;HTTPS_PROXY=&lt;HTTPS proxy URL&gt;:&lt;port number&gt;&quot;</span>
</pre></div>
</div>
</li>
<li><p class="first">Reload the Docker daemon:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo systemctl daemon-reload
</pre></div>
</div>
</li>
</ol>
<p>Configure the Docker container proxies, to pass proxy settings to
containers:</p>
<ol class="arabic">
<li><p class="first">Create a directory for your container config:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>mkdir ~/.docker
</pre></div>
</div>
</li>
<li><p class="first">Create the config file <code class="file docutils literal notranslate"><span class="pre">~/.docker/config.json</span></code> and add the following
entries, using your own proxy values:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">{</span>
<span class="go"> &quot;proxies&quot;:</span>
<span class="go"> {</span>
<span class="go"> &quot;default&quot;:</span>
<span class="go">   {</span>
<span class="go">    &quot;httpProxy&quot;: &quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;,</span>
<span class="go">     &quot;httpsProxy&quot;: &quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">   }</span>
<span class="go"> }</span>
<span class="go">}</span>
</pre></div>
</div>
</li>
<li><p class="first">Set ownership and permission on the docker config directory:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo chown <span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span>:<span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span> /home/<span class="s2">&quot;</span><span class="nv">$USER</span><span class="s2">&quot;</span>/.docker -R
sudo chmod g+rwx <span class="s2">&quot;</span><span class="nv">$HOME</span><span class="s2">/.docker&quot;</span> -R
</pre></div>
</div>
</li>
</ol>
<p>Configure proxies to allow mixer to access upstream content from behind
a firewall.</p>
<ol class="arabic">
<li><p class="first">Open your <code class="file docutils literal notranslate"><span class="pre">$HOME/.bashrc</span></code> file and add proxy and port values for the
following:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">export http_proxy=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export https_proxy=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export HTTP_PROXY=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export HTTPS_PROXY=&quot;&lt;proxy-url&gt;:&lt;port&gt;&quot;</span>
<span class="go">export no_proxy=&quot;&lt;...&gt;&quot;</span>
</pre></div>
</div>
</li>
<li><p class="first">Log out and log back in for the proxies to take effect.</p>
</li>
</ol>
</div>
<div class="content-collapse section" id="set-up-a-nginx-web-server-for-mixer">
<h3><a class="toc-backref" href="#id18">Set up a nginx web server for mixer</a></h3>
<p>A web server is needed to host your update content. In this example, we use
the nginx web server, which comes with Clear Linux OS.</p>
<p>Set up a nginx web server for mixer with the following steps:</p>
<ol class="arabic">
<li><p class="first">Install the <strong class="command">nginx</strong> bundle:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo swupd bundle-add nginx
</pre></div>
</div>
</li>
<li><p class="first">Make the directory where mixer updates will reside:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir -p /var/www
</pre></div>
</div>
</li>
<li><p class="first">Create a symbolic link between your workspace updates and the updates on
the local nginx web server. In this example, <cite>$HOME/mixer</cite> is the
workspace for the mix.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo ln -sf <span class="nv">$HOME</span>/mixer/update/www /var/www/mixer
</pre></div>
</div>
</li>
<li><p class="first">Set up <code class="docutils literal notranslate"><span class="pre">nginx</span></code> configuration:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo mkdir -p /etc/nginx/conf.d
</pre></div>
</div>
</li>
<li><p class="first">Copy the default example configuration file:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo cp -f /usr/share/nginx/conf/nginx.conf.example /etc/nginx/nginx.conf
</pre></div>
</div>
</li>
<li><p class="first">Configure the mixer update server. Create and add the following server
configuration content to <code class="file docutils literal notranslate"><span class="pre">/etc/nginx/conf.d/mixer.conf</span></code> (sudo required):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">server {</span>
<span class="go"> server_name localhost;</span>
<span class="go"> location / {</span>
<span class="go"> root /var/www/mixer;</span>
<span class="go"> autoindex on;</span>
<span class="go"> }</span>
<span class="go">}</span>
</pre></div>
</div>
</li>
<li><p class="first">Restart the daemon, enable nginx on boot, and start the service.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sudo systemctl daemon-reload
sudo systemctl <span class="nb">enable</span> nginx
sudo systemctl start nginx
</pre></div>
</div>
</li>
<li><p class="first">Verify the web server is running at http://localhost. At this point
you should no longer see a “404 Not Found” message.</p>
</li>
</ol>
</div>
</div>
<div class="section" id="related-topics">
<h2><a class="toc-backref" href="#id9">Related topics</a></h2>
<ul class="simple">
<li><a class="reference internal" href="../../concepts/mixer-about.html#mixer-about"><span class="std std-ref">About mixer</span></a></li>
<li><a class="reference internal" href="../../concepts/autospec-about.html#autospec-about"><span class="std std-ref">Autospec</span></a></li>
<li><a class="reference internal" href="../../concepts/bundles-about.html#bundles-about"><span class="std std-ref">Bundles</span></a></li>
<li><a class="reference internal" href="../../concepts/swupd-about.html#swupd-about"><span class="std std-ref">swupd: software updater</span></a></li>
</ul>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="security.html" class="btn btn-neutral float-right" title="OS Security" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="ister.html" class="btn btn-neutral float-left" title="ister.py image builder" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2019, many
<span class="lastupdated">
Last updated on Jul 29, 2019.
</span>
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
<script type="text/javascript" src="../../_static/tcs_theme.js"></script>
</body>
</html>