Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
27f3887799 | ||
|
|
4f60ec1063 | ||
|
|
9f768ea54f | ||
|
|
61a60f1899 | ||
|
|
a732aab497 | ||
|
|
0ce1f36dc7 | ||
|
|
4964178e84 | ||
|
|
66972a46a8 | ||
|
|
6815543aa1 | ||
|
|
20fe2d74a8 | ||
|
|
6fa14d0e57 | ||
|
|
7f7d6b4a05 | ||
|
|
f3e3653efe | ||
|
|
abf2872eb9 | ||
|
|
b98c4cdf75 | ||
|
|
6fe7e61bd8 | ||
|
|
160e230e7a | ||
|
|
70c59abca4 | ||
|
|
6a166177ea | ||
|
|
c0fed8d533 | ||
|
|
b54da75a80 | ||
|
|
b5a5dfe6e0 | ||
|
|
1878b3738c | ||
|
|
3ea85a8d99 | ||
|
|
67b2d4d6d1 | ||
|
|
e6ec4f30f7 | ||
|
|
96a3fad54d | ||
|
|
9e82a646ee | ||
|
|
b44fa5c566 | ||
|
|
f6b1c47834 | ||
|
|
cc16a5efd4 | ||
|
|
fe1aab8b23 | ||
|
|
66876a7db0 | ||
|
|
baf79c8a22 | ||
|
|
5ca6316b6d | ||
|
|
b188657398 | ||
|
|
ec0b823a91 | ||
|
|
f1411470c9 | ||
|
|
6f045e7b1d | ||
|
|
51eb12dfd5 | ||
|
|
1b9c891c9b | ||
|
|
9ce2c83816 | ||
|
|
7069fd70a1 | ||
|
|
e1e313674a | ||
|
|
d3b0b1cc6c | ||
|
|
830f35e59c | ||
|
|
62ce1a65b7 | ||
|
|
7e52a3e128 | ||
|
|
4f0b8c2c81 | ||
|
|
60d975b3fa | ||
|
|
0093ed4fc0 | ||
|
|
1b85a8c514 | ||
|
|
52b294d2af | ||
|
|
d6aa1285ce | ||
|
|
552db8b0f5 | ||
|
|
73e66c91b4 | ||
|
|
a72721e8a5 | ||
|
|
d31ed849ff | ||
|
|
b3bbfbb1ca | ||
|
|
b42486ccb3 | ||
|
|
f6b6364490 | ||
|
|
7afc835e56 | ||
|
|
9917676b92 | ||
|
|
0866c4a17f | ||
|
|
203882bc7e | ||
|
|
f4670e50bf | ||
|
|
408f5965a7 | ||
|
|
3a84441854 | ||
|
|
659052ef96 | ||
|
|
75f5e6d3b7 | ||
|
|
3a28d5d548 | ||
|
|
aa214223a5 | ||
|
|
179a464571 | ||
|
|
112f19c842 | ||
|
|
5481c7707f | ||
|
|
c7a87aa1ea | ||
|
|
f50e5f5057 | ||
|
|
3fe2853c02 | ||
|
|
3ad6b68275 | ||
|
|
b3d262ffe6 | ||
|
|
0a15dd90b6 | ||
|
|
c42a0fe16c | ||
|
|
f16502291c | ||
|
|
e2283f9705 | ||
|
|
6a9522c627 | ||
|
|
a6204a18cb | ||
|
|
acb0f8e2db | ||
|
|
9687374e2a | ||
|
|
f028d48096 | ||
|
|
1e08802399 | ||
|
|
9f5605dfff | ||
|
|
16ecd84b56 | ||
|
|
edd1bc10ff | ||
|
|
df2078fab1 | ||
|
|
817b1f55ce | ||
|
|
ee83925330 | ||
|
|
a3b015717b | ||
|
|
7a6e9ae4ab | ||
|
|
2f1b250cf8 | ||
|
|
ef7fa72d94 | ||
|
|
572467cef9 | ||
|
|
d0748f3734 | ||
|
|
537f7014cb | ||
|
|
2ffff6fa9e | ||
|
|
154beef96e | ||
|
|
40559931b6 | ||
|
|
c740464e73 | ||
|
|
6c1d61b9d2 | ||
|
|
1e048709b1 | ||
|
|
cdb5531bcc | ||
|
|
cb1e5c3942 | ||
|
|
9e17ed2172 | ||
|
|
2417f133c6 | ||
|
|
57929c7af8 | ||
|
|
c5db9bbaa7 | ||
|
|
f15f84ba81 | ||
|
|
3b467b9682 | ||
|
|
de72a05153 | ||
|
|
9e94e80ef8 | ||
|
|
11736014d7 | ||
|
|
2e5ca06c35 |
@@ -13,11 +13,12 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
sudo apt-get install -y python3-setuptools
|
sudo apt-get install -y python3-setuptools pandoc
|
||||||
pip3 install --user -r requirements.txt
|
pip3 install --user -r requirements.txt
|
||||||
- name: Build the docs
|
- name: Build the docs
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
make py
|
make py
|
||||||
|
make man
|
||||||
make htmlall
|
make htmlall
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
name: Linkcheck
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * Mon,Wed,Fri'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
sudo apt-get install -y python3-setuptools
|
||||||
|
pip3 install --user -r requirements.txt
|
||||||
|
- name: CheckLinks
|
||||||
|
run: |
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
make linkcheck
|
||||||
@@ -15,12 +15,13 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
sudo apt-get install -y python3-setuptools
|
sudo apt-get install -y python3-setuptools pandoc
|
||||||
pip3 install --user -r requirements.txt
|
pip3 install --user -r requirements.txt
|
||||||
- name: Build the docs
|
- name: Build the docs
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
make py
|
make py
|
||||||
|
make man
|
||||||
make htmlall
|
make htmlall
|
||||||
- name: Pre-deploy
|
- name: Pre-deploy
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -15,18 +15,20 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
sudo apt-get install -y python3-setuptools
|
sudo apt-get install -y python3-setuptools pandoc
|
||||||
pip3 install --user -r requirements.txt
|
pip3 install --user -r requirements.txt
|
||||||
- name: Build the docs
|
- name: Build the docs
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/.local/bin:$PATH"
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
make py
|
make py
|
||||||
|
make man
|
||||||
make htmlall
|
make htmlall
|
||||||
- name: Pre-deploy
|
- name: Pre-deploy
|
||||||
run: |
|
run: |
|
||||||
wget https://github.com/clearlinux/clear-linux-documentation-zh-CN/releases/latest/download/clearlinux-docs-zh-CN.tar.gz
|
wget https://github.com/clearlinux/clear-linux-documentation-zh-CN/releases/latest/download/clearlinux-docs-zh-CN.tar.gz
|
||||||
mkdir source/_build/html/zh_CN
|
mkdir source/_build/html/zh_CN
|
||||||
tar xvzf clearlinux-docs-zh-CN.tar.gz -C source/_build/html/zh_CN
|
tar xvzf clearlinux-docs-zh-CN.tar.gz -C source/_build/html/zh_CN
|
||||||
|
touch source/_build/html/.nojekyll
|
||||||
mv source/_build/html $HOME/output
|
mv source/_build/html $HOME/output
|
||||||
- name: Deploy the docs
|
- name: Deploy the docs
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -17,3 +17,13 @@ bundles.html.txt
|
|||||||
|
|
||||||
# ignore the venv, used for running make py
|
# ignore the venv, used for running make py
|
||||||
venv
|
venv
|
||||||
|
|
||||||
|
#ignore for reDocs GUI
|
||||||
|
.tox
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# ignore artifacts of man page generation
|
||||||
|
source/_scripts/_python/manpages/*.rst
|
||||||
|
source/reference/manpages
|
||||||
|
source/_scripts/_python/manpages/*/
|
||||||
|
source/reference/man-pages.rst
|
||||||
|
|||||||
@@ -5,32 +5,38 @@ SHELL := /bin/bash
|
|||||||
PY_VERSION ?= 3.6
|
PY_VERSION ?= 3.6
|
||||||
|
|
||||||
all:
|
all:
|
||||||
make -C source html
|
$(MAKE) -C source html
|
||||||
|
|
||||||
htmlall:
|
htmlall:
|
||||||
make -C source htmlall
|
$(MAKE) -C source htmlall
|
||||||
|
|
||||||
htmlzh:
|
htmlzh:
|
||||||
make -C source htmlzh
|
$(MAKE) -C source htmlzh
|
||||||
|
|
||||||
htmlde:
|
htmlde:
|
||||||
make -C source htmlde
|
$(MAKE) -C source htmlde
|
||||||
|
|
||||||
html:
|
html:
|
||||||
make -C source html
|
$(MAKE) -C source html
|
||||||
|
|
||||||
linkcheck:
|
linkcheck:
|
||||||
make -C source linkcheck
|
$(MAKE) -C source linkcheck
|
||||||
|
|
||||||
py:
|
py:
|
||||||
make -C source py
|
$(MAKE) -C source py
|
||||||
|
|
||||||
|
man:
|
||||||
|
$(MAKE) -C source man
|
||||||
|
|
||||||
|
clean-man:
|
||||||
|
$(MAKE) -C source clean-man
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@echo "Please use \`make <target>' where <target> is one of"
|
@echo "Please use \`make <target>' where <target> is one of"
|
||||||
@echo " html to make standalone HTML files"
|
@echo " html to make standalone HTML files"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
make -C source clean
|
$(MAKE) -C source clean
|
||||||
rm -rf venv
|
rm -rf venv
|
||||||
|
|
||||||
venv:
|
venv:
|
||||||
|
|||||||
@@ -63,8 +63,13 @@ running ``make html``:
|
|||||||
Open one of the HTML pages found in ``source/_build/html`` in a web browser
|
Open one of the HTML pages found in ``source/_build/html`` in a web browser
|
||||||
to view the rendered documentation.
|
to view the rendered documentation.
|
||||||
|
|
||||||
If you want to build the documentation exactly as seen on the website, use
|
This build will generate several warnings as there are two other optional make commands required to build the full documentation.
|
||||||
``make py`` followed by ``make htmlall``. This builds some
|
|
||||||
|
1. ``make py`` to generate the bundle reference material.
|
||||||
|
2. ``make man`` to generate man page reference material.
|
||||||
|
|
||||||
|
To build the documentation exactly as seen on the website, use
|
||||||
|
``make man``, ``make py``, and ``make htmlall``. This builds both
|
||||||
external dependencies and all supported languages.
|
external dependencies and all supported languages.
|
||||||
|
|
||||||
Use virtualenv
|
Use virtualenv
|
||||||
@@ -163,6 +168,9 @@ build before building again by running ``make clean``:
|
|||||||
This will completely remove the previous build output, including artifacts
|
This will completely remove the previous build output, including artifacts
|
||||||
from the `make venv` target when done outside an active venv.
|
from the `make venv` target when done outside an active venv.
|
||||||
|
|
||||||
|
Before running ``make man``, please run ``make clean-man`` to clear out any
|
||||||
|
previous attempts.
|
||||||
|
|
||||||
Convenience script
|
Convenience script
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
|||||||
@@ -1,192 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) 2019, many
|
|
||||||
# This file is distributed under the same license as the Clear Linux*
|
|
||||||
# Project Docs package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr "Project-Id-Version: Clear Linux* Project Docs latest\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2019-08-09 14:33-0700\n"
|
|
||||||
"PO-Revision-Date: 2019-09-04 16:21-0008\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language: zh-Hans\n"
|
|
||||||
"Language-Team: zh-Hans\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Generated-By: Intel® International Developer Studio Version 4.1.273.0\n"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:4
|
|
||||||
msgid "Data Analytics Reference Stack"
|
|
||||||
msgstr "数据分析参考堆栈"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:6
|
|
||||||
msgid ""
|
|
||||||
"This guide explains how to use the :abbr:`DARS (Data Analytics Reference "
|
|
||||||
"Stack)`, and to optionally build your own DARS container image."
|
|
||||||
msgstr "本指南说明了如何使用 :abbr:`DARS (Data Analytics Reference Stack)`,以及如何选择性地构建您自己的 DARS 容器映像。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:9
|
|
||||||
msgid ""
|
|
||||||
"Any system that supports Docker\\* containers can be used with DARS. This"
|
|
||||||
" steps in this guide use |CL-ATTR| as the host system."
|
|
||||||
msgstr "任何支持 Docker\\* 容器的系统都可与 DARS 一起使用。本指南中的这些步骤使用 |CL-ATTR| 作为主机系统。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:17
|
|
||||||
msgid "The Data Analytics Reference Stack release"
|
|
||||||
msgstr "数据分析参考堆栈版本"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:19
|
|
||||||
msgid ""
|
|
||||||
"The Data Analytics Reference Stack (DARS) provides developers and "
|
|
||||||
"enterprises a straightforward, highly optimized software stack for "
|
|
||||||
"storing and processing large amounts of data. More detail is available "
|
|
||||||
"on the `DARS architecture and performance benchmarks`_."
|
|
||||||
msgstr "数据分析参考堆栈 (DARS) 为开发人员和企业提供了一个简单、高度优化的软件堆栈来存储和处理大量数据。更多详细信息请参阅 `DARS architecture and performance benchmarks`_。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:23
|
|
||||||
msgid ""
|
|
||||||
"The Data Analytics Reference Stack provides two pre-built Docker images, "
|
|
||||||
"available on `Docker Hub`_:"
|
|
||||||
msgstr "数据分析参考堆栈提供了两个预构建的 Docker 映像,可在 `Docker Hub`_ 获得:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:26
|
|
||||||
msgid "A |CL|-derived `DARS with OpenBlas`_ stack optimized for `OpenBLAS`_"
|
|
||||||
msgstr "一个从 |CL| 派生且针对 `OpenBLAS`_ 优化的 `DARS with OpenBlas`_ 堆栈"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:27
|
|
||||||
msgid "A |CL|-derived `DARS with Intel® MKL`_ stack optimized for `MKL`_"
|
|
||||||
msgstr "一个从 |CL| 派生且针对 `MKL`_ 优化的 `DARS with MKL`_ 堆栈"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:29
|
|
||||||
msgid ""
|
|
||||||
"We recommend you view the latest component versions for each image in the"
|
|
||||||
" :file:`README` found in the `Data Analytics Reference Stack`_ GitHub\\* "
|
|
||||||
"repository. Because |CL| is a rolling distribution, the package version "
|
|
||||||
"numbers in the |CL|-based containers may not be the latest released by "
|
|
||||||
"|CL|."
|
|
||||||
msgstr "我们建议您在 `DARS repository`_ 中找到 :file:`README`,查看每个映像的最新组件版本。由于 |CL| 是滚动发行的,基于 |CL| 的容器中的软件包版本号可能不是 |CL| 最新发布的版本号。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:36
|
|
||||||
msgid ""
|
|
||||||
"The Data Analytics Reference Stack is a collective work, and each piece "
|
|
||||||
"of software within the work has its own license. Please see the `DARS "
|
|
||||||
"Terms of Use`_ for more details about licensing and usage of the Data "
|
|
||||||
"Analytics Reference Stack."
|
|
||||||
msgstr "数据分析参考堆栈是一项集体成果,成果中的每一个软件都有自己的许可证。有关数据分析参考堆栈的许可和使用的更多详细信息,请参阅 `DARS Terms of Use`_。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:42
|
|
||||||
msgid "Using the Docker images"
|
|
||||||
msgstr "使用 Docker 映像"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:44
|
|
||||||
msgid ""
|
|
||||||
"To immediately start using the latest stable DARS images, pull an image "
|
|
||||||
"directly from `Docker Hub`_. This example uses the `DARS with Intel® "
|
|
||||||
"MKL`_ Docker image."
|
|
||||||
msgstr "要立即开始使用最新的稳定版 DARS 映像,请直接从 `Docker Hub`_ 提取。在本教程中,我们将使用 `Dars with MKL`_ 版本堆栈。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:48
|
|
||||||
msgid "Once you have downloaded the image, you can run it with"
|
|
||||||
msgstr "下载完映像后,您可以使用以下命令运行它:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:54
|
|
||||||
msgid ""
|
|
||||||
"This will launch the image and drop you into a bash shell inside the "
|
|
||||||
"container. You will see output similar to the following:"
|
|
||||||
msgstr "此命令将启动映像,并进入容器内的 bash shell 中。您将看到类似以下内容的输出:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:75
|
|
||||||
msgid ""
|
|
||||||
"The :command:`--ulimit nofile` parameter is currently required in order "
|
|
||||||
"to increase the number of open files opened at certain point by the spark"
|
|
||||||
" engine."
|
|
||||||
msgstr ":command:`--ulimit nofile` 参数是当前必需的参数,以便增加 spark 引擎在某一时点打开的打开文件的数量。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:80
|
|
||||||
msgid "Building DARS images"
|
|
||||||
msgstr "构建 DARS 映像"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:82
|
|
||||||
msgid ""
|
|
||||||
"If you choose to build your own DARS container images, you can customize "
|
|
||||||
"them as needed. Use the provided Dockerfile as a baseline."
|
|
||||||
msgstr "如果选择构建您自己的 DARS 容器映像,您可以根据需要对它们进行自定义。将提供的 Dockerfile 用作基准。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:85
|
|
||||||
msgid ""
|
|
||||||
"To construct images with |CL|, start with a |CL| development platform "
|
|
||||||
"that has the :command:`containers-basic-dev` bundle installed. Learn more"
|
|
||||||
" about bundles and installing them by using :ref:`swupd-guide`."
|
|
||||||
msgstr "要使用 |CL| 构建映像,请从安装了 :command:`containers-basic-dev` 捆绑包的 |CL| 开发平台开始。使用 :ref:`swupd-guide` 了解有关捆绑包和安装捆绑包的更多信息。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:89
|
|
||||||
msgid "Clone the `Data Analytics Reference Stack`_ GitHub\\* repository."
|
|
||||||
msgstr "克隆 `Data Analytics Reference Stack`_ GitHub\\* 存储库。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:95
|
|
||||||
msgid ""
|
|
||||||
"Inside the DARS directory, run :command:`make` to build OpenBLAS and MKL "
|
|
||||||
"images."
|
|
||||||
msgstr "在 DARS 目录中,运行 :command:`make` 来构建 OpenBLAS 和 MKL 映像。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:101
|
|
||||||
msgid ""
|
|
||||||
"Run :command:`make baseline` to build the baseline CentOS image. "
|
|
||||||
"Depending on the system, it may take a while to finish building."
|
|
||||||
msgstr "然后运行 :command:`make baseline` 构建基准 CentOS 映像。根据系统的不同,可能需要一段时间才能完成构建。完成后,使用 :command:`Docker` 检查生成的映像。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:108
|
|
||||||
msgid "Once completed, check the resulting images with :command:`Docker`"
|
|
||||||
msgstr "完成后,使用 :command:`Docker` 检查生成的映像"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dars.rst:114
|
|
||||||
msgid ""
|
|
||||||
"You can use any of the resulting images to launch fully functional "
|
|
||||||
"containers. If you need to customize the containers, you can edit the "
|
|
||||||
"provided :file:`Dockerfile`."
|
|
||||||
msgstr "您可以使用任何一个生成的映像来启动功能齐全的容器。如果需要自定义容器,您可以编辑所提供的 :file:`Dockerfile`。"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "This tutorial shows you how to use"
|
|
||||||
#~ " the Data Analytics Reference Stack "
|
|
||||||
#~ "(DARS), and to optionally build your "
|
|
||||||
#~ "own images with the baseline Dockerfiles"
|
|
||||||
#~ " provided in the `DARS repository`_. "
|
|
||||||
#~ "Our assumption is that |CL-ATTR| "
|
|
||||||
#~ "is the host. However, any system "
|
|
||||||
#~ "that supports Docker\\* containers can "
|
|
||||||
#~ "be used to follow these steps."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "本教程介绍如何使用数据分析参考堆栈 (DARS),以及如何使用 `DARS repository`_"
|
|
||||||
#~ " 中提供的基准 Dockerfiles 来选择构建您自己的映像。我们假设 |CL-"
|
|
||||||
#~ "ATTR| 是主机。但是,任何支持 Docker\\* 容器的系统都可以用来执行这些步骤。"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "If you choose to build your own"
|
|
||||||
#~ " DARS container images, you can "
|
|
||||||
#~ "customize them as needed. Use the "
|
|
||||||
#~ "provided Dockerfile as a baseline. To"
|
|
||||||
#~ " construct images with |CL|, start "
|
|
||||||
#~ "with a |CL| development platform that"
|
|
||||||
#~ " has the :command:`containers-basic-dev`"
|
|
||||||
#~ " bundle installed. Learn more about "
|
|
||||||
#~ "bundles and installing them by using "
|
|
||||||
#~ ":ref:`swupd-guide`."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "如果选择构建您自己的 DARS 容器映像,您可以根据需要对它们进行自定义。将提供的 Dockerfile"
|
|
||||||
#~ " 用作基准。要使用 |CL| 构建映像,请从安装了 :command"
|
|
||||||
#~ ":`containers-basic-dev` 捆绑包的 |CL| 开发平台开始。使用"
|
|
||||||
#~ " :ref:`swupd-guide` 了解有关捆绑包和安装捆绑包的更多信息。"
|
|
||||||
|
|
||||||
#~ msgid "First, clone the `DARS repository`_ from GitHub."
|
|
||||||
#~ msgstr "首先,从 GitHub 中克隆 `DARS repository`_。"
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,656 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) 2019, many
|
|
||||||
# This file is distributed under the same license as the Clear Linux*
|
|
||||||
# Project Docs package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr "Project-Id-Version: Clear Linux* Project Docs latest\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2019-08-09 14:33-0700\n"
|
|
||||||
"PO-Revision-Date: 2019-09-04 16:21-0008\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language: zh-Hans\n"
|
|
||||||
"Language-Team: zh-Hans\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Generated-By: Intel® International Developer Studio Version 4.1.273.0\n"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:4
|
|
||||||
msgid "Deep Learning Reference Stack"
|
|
||||||
msgstr "深度学习参考堆栈"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:6
|
|
||||||
msgid ""
|
|
||||||
"This guide describes how to run benchmarking workloads for TensorFlow\\*,"
|
|
||||||
" PyTorch\\*, and Kubeflow in |CL-ATTR| using the Deep Learning Reference "
|
|
||||||
"Stack."
|
|
||||||
msgstr "本教程介绍如何在 |CL-ATTR| 中使用深度学习参考堆栈运行 TensorFlow\\*、PyTorch\\* 和 Kubeflow 基准工作负载。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:14
|
|
||||||
msgid "Overview"
|
|
||||||
msgstr "概述"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:16
|
|
||||||
msgid ""
|
|
||||||
"We created the Deep Learning Reference Stack to help AI developers "
|
|
||||||
"deliver the best experience on Intel® Architecture. This stack reduces "
|
|
||||||
"complexity common with deep learning software components, provides "
|
|
||||||
"flexibility for customized solutions, and enables you to quickly "
|
|
||||||
"prototype and deploy Deep Learning workloads. Use this guide to run "
|
|
||||||
"benchmarking workloads on your solution."
|
|
||||||
msgstr "我们打造了深度学习参考堆栈来帮助 AI 开发人员在英特尔架构上获得最佳开发体验。此堆栈降低了深度学习软件组件常见的复杂性,为自定义解决方案提供了灵活性,并使您能够快速构建原型并部署深度学习工作负载。使用本教程可在您的解决方案上运行基准工作负载。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:23
|
|
||||||
msgid "The Deep Learning Reference Stack is available in the following versions:"
|
|
||||||
msgstr "深度学习参考堆栈有以下版本:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:25
|
|
||||||
msgid ""
|
|
||||||
"`Intel MKL-DNN-VNNI`_, which is optimized using Intel® Math Kernel "
|
|
||||||
"Library for Deep Neural Networks (Intel® MKL-DNN) primitives and "
|
|
||||||
"introduces support for Intel® AVX-512 Vector Neural Network Instructions "
|
|
||||||
"(VNNI)."
|
|
||||||
msgstr "`Intel MKL-DNN-VNNI`_,它使用面向深度神经网络(英特尔® MKL-DNN)原语的英特尔®数学内核库进行优化,并支持英特尔® AVX-512 矢量神经网络指令 (VNI)。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:28
|
|
||||||
msgid ""
|
|
||||||
"`Intel MKL-DNN`_, which includes the TensorFlow framework optimized using"
|
|
||||||
" Intel® Math Kernel Library for Deep Neural Networks (Intel® MKL-DNN) "
|
|
||||||
"primitives."
|
|
||||||
msgstr "`Intel MKL-DNN`_,它包括使用面向深度神经网络(英特尔® MKL-DNN)原语的英特尔®数学内核库进行优化的 TensorFlow 框架。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:31
|
|
||||||
msgid "`Eigen`_, which includes `TensorFlow`_ optimized for Intel® architecture."
|
|
||||||
msgstr "`Eigen`_,它包括针对英特尔®架构优化的 `TensorFlow`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:32
|
|
||||||
msgid "`PyTorch with OpenBLAS`_, which includes PyTorch with OpenBlas."
|
|
||||||
msgstr "`PyTorch with OpenBLAS`_,它包括 PyTorch with OpenBlas。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:33
|
|
||||||
msgid ""
|
|
||||||
"`PyTorch with Intel MKL-DNN`_, which includes PyTorch optimized using "
|
|
||||||
"Intel® Math Kernel Library (Intel® MKL) and Intel MKL-DNN."
|
|
||||||
msgstr "`PyTorch with Intel MKL-DNN`_,它包括使用英特尔®数学内核库(英特尔® MKL)和英特尔 MKL-DNN 进行优化的 PyTorch。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:38
|
|
||||||
msgid ""
|
|
||||||
"To take advantage of the Intel® AVX-512 and VNNI functionality with the "
|
|
||||||
"Deep Learning Reference Stack, you must use the following hardware:"
|
|
||||||
msgstr "要利用英特尔® AVX-512 和 VNI 功能以及深度学习参考堆栈,您必须使用以下硬件:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:41
|
|
||||||
msgid "Intel® AVX-512 images require an Intel® Xeon® Scalable Platform"
|
|
||||||
msgstr "英特尔® AVX-512 映像需要使用英特尔®至强®可扩展平台"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:42
|
|
||||||
msgid "VNNI requires a 2nd generation Intel® Xeon® Scalable Platform"
|
|
||||||
msgstr "VNNI 需要使用第二代英特尔®至强®可扩展平台"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:45
|
|
||||||
msgid "Stack features"
|
|
||||||
msgstr "堆栈功能和特性"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:47
|
|
||||||
msgid "`DLRS V3.0`_ release announcement."
|
|
||||||
msgstr "`DLRS V3.0`_ 发布公告。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:48
|
|
||||||
msgid "Deep Learning Reference Stack v2.0 including current `PyTorch benchmark`_."
|
|
||||||
msgstr "深度学习参考堆栈 v2.0,包括最新的 `PyTorch benchmark results`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:50
|
|
||||||
msgid ""
|
|
||||||
"Deep Learning Reference Stack v1.0 including current `TensorFlow "
|
|
||||||
"benchmark`_ results."
|
|
||||||
msgstr "深度学习参考堆栈 v1.0,包括最新的 `TensorFlow benchmark results`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:52
|
|
||||||
msgid ""
|
|
||||||
"`DLRS Release notes`_ on Github\\* for the latest release of Deep "
|
|
||||||
"Learning Reference Stack."
|
|
||||||
msgstr "`DLRS Release notes`_ on Github\\*,了解深度学习参考堆栈的最新版本。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:57
|
|
||||||
msgid ""
|
|
||||||
"The Deep Learning Reference Stack is a collective work, and each piece of"
|
|
||||||
" software within the work has its own license. Please see the `DLRS "
|
|
||||||
"Terms of Use`_ for more details about licensing and usage of the Deep "
|
|
||||||
"Learning Reference Stack."
|
|
||||||
msgstr "深度学习参考堆栈是一项集体成果,成果中的每一个软件都有自己的许可证。有关深度学习参考堆栈的许可和使用的更多详细信息,请参阅 `DLRS Terms of Use`_。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:62
|
|
||||||
msgid "Prerequisites"
|
|
||||||
msgstr "必备条件"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:64
|
|
||||||
msgid ":ref:`Install <bare-metal-install-desktop>` |CL| on your host system"
|
|
||||||
msgstr "在主机系统上 :ref:`Install <bare-metal-install-desktop>` |CL|"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:65
|
|
||||||
msgid ":command:`containers-basic` bundle"
|
|
||||||
msgstr ":command:`containers-basic` 捆绑包"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:66
|
|
||||||
msgid ":command:`cloud-native-basic` bundle"
|
|
||||||
msgstr ":command:`cloud-native-basic` 捆绑包"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:68
|
|
||||||
msgid ""
|
|
||||||
"In |CL|, :command:`containers-basic` includes Docker\\*, which is "
|
|
||||||
"required for TensorFlow and PyTorch benchmarking. Use the "
|
|
||||||
":command:`swupd` utility to check if :command:`containers-basic` and "
|
|
||||||
":command:`cloud-native-basic` are present:"
|
|
||||||
msgstr "在 |CL| 中,:command:`containers-basic` 包括 TensorFlow 和 PyTorch 基准测试所必需的 Docker\\*。使用 :command:`swupd` 实用程序检查 :command:`containers-basic` 和 :command:`cloud-native-basic` 是否存在:"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:77
|
|
||||||
msgid ""
|
|
||||||
"To install the :command:`containers-basic` or :command:`cloud-native-"
|
|
||||||
"basic` bundles, enter:"
|
|
||||||
msgstr "要安装 :command:`containers-basic` 或 :command:`cloud-native-basic` 捆绑包,请输入:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:84
|
|
||||||
msgid ""
|
|
||||||
"Docker is not started upon installation of the :command:`containers-"
|
|
||||||
"basic` bundle. To start Docker, enter:"
|
|
||||||
msgstr "安装 :command:`containers-basic` 捆绑包后 Docker 不会启动。要启动 Docker,请输入:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:91
|
|
||||||
msgid ""
|
|
||||||
"To ensure that Kubernetes is correctly installed and configured, follow "
|
|
||||||
"the instructions in :ref:`kubernetes`."
|
|
||||||
msgstr "要确保正确安装和配置 Kubernetes,请遵循 :ref:`kubernetes` 中的说明。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:95
|
|
||||||
msgid "Version compatibility"
|
|
||||||
msgstr "版本兼容性"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:97
|
|
||||||
msgid "We validated these steps against the following software package versions:"
|
|
||||||
msgstr "我们根据以下软件包版本验证了这些步骤:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:99
|
|
||||||
msgid "|CL| 26240 (Minimum supported version)"
|
|
||||||
msgstr "|CL| 26240(支持的最低版本)"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:100
|
|
||||||
msgid "Docker 18.06.1"
|
|
||||||
msgstr "Docker 18.06.1"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:101
|
|
||||||
msgid "Kubernetes 1.11.3"
|
|
||||||
msgstr "Kubernetes 1.11.3"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:102
|
|
||||||
msgid "Go 1.11.12"
|
|
||||||
msgstr "Go 1.11.12"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:107
|
|
||||||
msgid ""
|
|
||||||
"The Deep Learning Reference Stack was developed to provide the best user "
|
|
||||||
"experience when executed on a |CL| host. However, as the stack runs in a"
|
|
||||||
" container environment, you should be able to complete the following "
|
|
||||||
"sections of this guide on other Linux* distributions, provided they "
|
|
||||||
"comply with the Docker*, Kubernetes* and Go* package versions listed "
|
|
||||||
"above. Look for your distribution documentation on how to update packages"
|
|
||||||
" and manage Docker services."
|
|
||||||
msgstr "深度学习参考堆栈是为了在 |CL| 主机上执行时获得最佳用户体验而开发的。但是,该堆栈在容器环境中运行时,您应该能够在其他 Linux* 发行版上完成本教程的以下部分,只要这些发行版满足上面列出的 Docker*、Kubernetes* 和 Go* 软件包版本。查找关于如何更新软件包和管理 Docker 服务的分发版文档。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:112
|
|
||||||
msgid "TensorFlow single and multi-node benchmarks"
|
|
||||||
msgstr "TensorFlow 单节点和多节点基准测试"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:114
|
|
||||||
msgid ""
|
|
||||||
"This section describes running the `TensorFlow Benchmarks`_ in single "
|
|
||||||
"node. For multi-node testing, replicate these steps for each node. These "
|
|
||||||
"steps provide a template to run other benchmarks, provided that they can "
|
|
||||||
"invoke TensorFlow."
|
|
||||||
msgstr "本部分介绍在单节点中运行 `TensorFlow benchmarks`_。对于多节点测试,请为每个节点重复这些步骤。这些步骤提供了运行其他基准测试的模板,前提是它们可以调用 TensorFlow。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:121
|
|
||||||
msgid ""
|
|
||||||
"Performance test results for the Deep Learning Reference Stack and for "
|
|
||||||
"this guide were obtained using `runc` as the runtime."
|
|
||||||
msgstr "深度学习参考堆栈和本教程的性能测试结果是使用 `runc` 作为运行时获得的。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:124
|
|
||||||
msgid ""
|
|
||||||
"Download either the `Eigen`_ or the `Intel MKL-DNN`_ Docker image from "
|
|
||||||
"`Docker Hub`_."
|
|
||||||
msgstr "从 `Docker Hub`_ 下载 `Eigen`_ 或 `Intel MKL-DNN`_ Docker 映像。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:127 ../../guides/stacks/dlrs/dlrs.rst:169
|
|
||||||
msgid "Run the image with Docker:"
|
|
||||||
msgstr "使用 Docker 运行映像:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:136 ../../guides/stacks/dlrs/dlrs.rst:177
|
|
||||||
msgid ""
|
|
||||||
"Launching the Docker image with the :command:`-i` argument starts "
|
|
||||||
"interactive mode within the container. Enter the following commands in "
|
|
||||||
"the running container."
|
|
||||||
msgstr "使用 :command:`-i` 参数启动 Docker 映像,从而在容器内启动交互模式。在正在运行的容器中输入以下命令。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:140
|
|
||||||
msgid "Clone the benchmark repository in the container:"
|
|
||||||
msgstr "克隆容器中的基准测试存储库:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:146 ../../guides/stacks/dlrs/dlrs.rst:187
|
|
||||||
msgid "Execute the benchmark script:"
|
|
||||||
msgstr "执行基准测试脚本:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:154
|
|
||||||
msgid ""
|
|
||||||
"You can replace the model with one of your choice supported by the "
|
|
||||||
"TensorFlow benchmarks."
|
|
||||||
msgstr "您可以将该模型更换为 TensorFlow 支持的其他模型。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:157
|
|
||||||
msgid ""
|
|
||||||
"If you are using an FP32 based model, it can be converted to an int8 "
|
|
||||||
"model using `Intel® quantization tools`_."
|
|
||||||
msgstr "如果使用基于 FP32 的模型,可以使用 `Intel® quantization tools`_ 将其转换为 int8 模型。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:161
|
|
||||||
msgid "PyTorch single and multi-node benchmarks"
|
|
||||||
msgstr "PyTorch 单节点和多节点基准测试"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:163
|
|
||||||
msgid ""
|
|
||||||
"This section describes running the `PyTorch benchmarks`_ for Caffe2 in "
|
|
||||||
"single node."
|
|
||||||
msgstr "本部分介绍在单节点中运行针对 Caffe2 的 `PyTorch benchmarks`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:166
|
|
||||||
msgid ""
|
|
||||||
"Download either the `PyTorch with OpenBLAS`_ or the `PyTorch with Intel "
|
|
||||||
"MKL-DNN`_ Docker image from `Docker Hub`_."
|
|
||||||
msgstr "从 `Docker Hub`_ 下载 `PyTorch with OpenBLAS`_ 或 `PyTorch with Intel MKL-DNN`_ Docker 映像。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:181
|
|
||||||
msgid "Clone the benchmark repository:"
|
|
||||||
msgstr "克隆基准测试存储库:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:197
|
|
||||||
msgid "Kubeflow multi-node benchmarks"
|
|
||||||
msgstr "Kubeflow 多节点基准测试"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:199
|
|
||||||
msgid ""
|
|
||||||
"The benchmark workload runs in a Kubernetes cluster. The guide uses "
|
|
||||||
"`Kubeflow`_ for the Machine Learning workload deployment on three nodes."
|
|
||||||
msgstr "基准测试工作负载在 Kubernetes 集群中运行。本教程使用 `Kubeflow`_ 在三个节点上部署机器学习工作负载。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:204
|
|
||||||
msgid ""
|
|
||||||
"If you choose the Intel® MKL-DNN or Intel® MKL-DNN-VNNI image, your "
|
|
||||||
"platform must support the Intel® AVX-512 instruction set. Otherwise, an "
|
|
||||||
"*illegal instruction* error may appear, and you won’t be able to complete"
|
|
||||||
" this guide."
|
|
||||||
msgstr "如果选择英特尔® MKL-DNN 或英特尔® MKL-DNN-VNNI 映像,您的平台必须支持英特尔® AVX-512 指令集。否则,可能会出现非法指令错误,导致无法完成本教程。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:210
|
|
||||||
msgid "Kubernetes setup"
|
|
||||||
msgstr "Kubernetes 设置"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:212
|
|
||||||
msgid ""
|
|
||||||
"Follow the instructions in the :ref:`kubernetes` tutorial to get set up "
|
|
||||||
"on |CL|. The Kubernetes community also has instructions for creating a "
|
|
||||||
"cluster, described in `Creating a single control-plane cluster with "
|
|
||||||
"kubeadm`_."
|
|
||||||
msgstr "按照 :ref:`kubernetes` 教程中的说明在 |CL| 上进行设置。Kubernetes 社区也提供了 `Creating a single control-plane cluster with kubeadm`_。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:217
|
|
||||||
msgid "Kubernetes networking"
|
|
||||||
msgstr "Kubernetes 网络连接"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:219
|
|
||||||
msgid ""
|
|
||||||
"We used `flannel`_ as the network provider for these tests. If you prefer"
|
|
||||||
" a different network layer, refer to the Kubernetes network documentation"
|
|
||||||
" described in `Creating a single control-plane cluster with kubeadm`_ for"
|
|
||||||
" setup."
|
|
||||||
msgstr "在这些测试中,我们使用 `flannel`_ 作为网络提供程序。如果青睐不同的网络层,请参阅 Kubernetes `Creating a single control-plane cluster with kubeadm`_ 进行设置。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:224
|
|
||||||
msgid "Kubectl"
|
|
||||||
msgstr "Kubectl"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:226
|
|
||||||
msgid ""
|
|
||||||
"You can use kubectl to run commands against your Kubernetes cluster. "
|
|
||||||
"Refer to the `Overview of kubectl`_ for details on syntax and operations."
|
|
||||||
" Once you have a working cluster on Kubernetes, use the following YAML "
|
|
||||||
"script to start a pod with a simple shell script, and keep the pod open."
|
|
||||||
msgstr "您可以使用 kubectl 对您的 Kubernetes 集群运行命令。有关语法和操作的详细信息,请参阅 `Overview of kubectl`_。建立一个 Kubernetes 工作集群后,请使用下面的 YAML 脚本启动一个含有简单 shell 脚本的 Pod,并保持该 Pod 处于打开状态。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:231
|
|
||||||
msgid "Copy this example.yaml script to your system:"
|
|
||||||
msgstr "将 example.yaml 脚本复制到您的系统中:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:248
|
|
||||||
msgid "Execute the script with kubectl:"
|
|
||||||
msgstr "使用 kubectl 执行该脚本:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:254
|
|
||||||
msgid ""
|
|
||||||
"This script opens a single pod. More robust solutions would create a "
|
|
||||||
"deployment or inject a python script or larger shell script into the "
|
|
||||||
"container."
|
|
||||||
msgstr "该脚本打开一个 Pod。更稳健的解决方案是创建部署,或者将 python 脚本或更大的 shell 脚本注入容器。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:258
|
|
||||||
msgid "Images"
|
|
||||||
msgstr "图像"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:260
|
|
||||||
msgid ""
|
|
||||||
"You must add `launcher.py`_ to the Docker image to include the Deep "
|
|
||||||
"Learning Reference Stack and put the benchmarks repo in the correct "
|
|
||||||
"location. Note that this guide uses Kubeflow v0.4.0, and cannot guarantee"
|
|
||||||
" results if you use a different version."
|
|
||||||
msgstr "您必须将 `launcher.py`_ 添加到 Docker 映像中,以包含深度学习参考堆栈,并将基准测试存储库放在正确的位置。请注意,本教程使用 Kubeflow v0.4.0。如果使用不同的版本,则不能保证结果。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:264
|
|
||||||
msgid "From the Docker image, run the following:"
|
|
||||||
msgstr "从 Docker 映像中,运行以下命令:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:273
|
|
||||||
msgid "Your entry point becomes: :file:`/opt/launcher.py`."
|
|
||||||
msgstr "您的入口点变成 :file:`/opt/launcher.py`。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:275
|
|
||||||
msgid "This builds an image that can be consumed directly by TFJob from Kubeflow."
|
|
||||||
msgstr "这会构建一个可供 TFJob 从 Kubeflow 直接使用的映像。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:278
|
|
||||||
msgid "ksonnet\\*"
|
|
||||||
msgstr "ksonnet\\*"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:280
|
|
||||||
msgid ""
|
|
||||||
"Kubeflow uses ksonnet\\* to manage deployments, so you must install it "
|
|
||||||
"before setting up Kubeflow."
|
|
||||||
msgstr "Kubeflow 使用 ksonnet\\* 来管理部署,因此您必须在设置 Kubeflow 之前安装它。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:283
|
|
||||||
msgid ""
|
|
||||||
"ksonnet was added to the :command:`cloud-native-basic` bundle in |CL| "
|
|
||||||
"version 27550. If you are using an older |CL| version (not recommended), "
|
|
||||||
"you must manually install ksonnet as described below."
|
|
||||||
msgstr "ksonnet 已添加到 |CL| 版本 27550 中的 :command:`cloud-native-basic` 捆绑包中。如果使用的是较旧的 |CL| 版本(不推荐),您必须如下所述手动安装 ksonnet。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:287
|
|
||||||
msgid "On |CL|, follow these steps:"
|
|
||||||
msgstr "在 |CL| 上,请按照下列步骤操作:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:298
|
|
||||||
msgid ""
|
|
||||||
"After the ksonnet installation is complete, ensure that binary `ks` is "
|
|
||||||
"accessible across the environment."
|
|
||||||
msgstr "ksonnet 安装完成后,确保可在整个环境中访问 `ks` 二进制文件。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:302
|
|
||||||
msgid "Kubeflow"
|
|
||||||
msgstr "Kubeflow"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:304
|
|
||||||
msgid ""
|
|
||||||
"Once you have Kubernetes running on your nodes, set up `Kubeflow`_ by "
|
|
||||||
"following these instructions from the `Getting Started with Kubeflow`_ "
|
|
||||||
"guide."
|
|
||||||
msgstr "Kubernetes 在节点上运行后,请按照 `Getting Started with Kubeflow`_ 中的说明设置 `Kubeflow`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:322
|
|
||||||
msgid "Next, deploy the primary package for our purposes: tf-job-operator."
|
|
||||||
msgstr "接下来,为我们的目的部署主要软件包:tf-job-operator。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:332
|
|
||||||
msgid ""
|
|
||||||
"This creates the CustomResourceDefinition (CRD) endpoint to launch a "
|
|
||||||
"TFJob."
|
|
||||||
msgstr "这将创建 CustomResourceDefinition (CRD) 端点来启动 TFJob。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:335
|
|
||||||
msgid "Run a TFJob"
|
|
||||||
msgstr "运行 TFJob"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:337
|
|
||||||
msgid "Get the ksonnet registries for deploying TFJobs from `dlrs-tfjob`_."
|
|
||||||
msgstr "从 `dlrs-tfjob`_ 获取用于部署 TFJobs 的 ksonnet 注册表。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:339
|
|
||||||
msgid "Install the TFJob components as follows:"
|
|
||||||
msgstr "按照以下步骤安装 TFJob 组件:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:347
|
|
||||||
msgid "Export the image name to use for the deployment:"
|
|
||||||
msgstr "导出用于部署的映像名称:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:355
|
|
||||||
msgid "Replace <docker_name> with the image name you specified in previous steps."
|
|
||||||
msgstr "将 <docker_name> 替换为前述步骤中指定的映像名称。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:357
|
|
||||||
msgid ""
|
|
||||||
"Generate Kubernetes manifests for the workloads and apply them using "
|
|
||||||
"these commands:"
|
|
||||||
msgstr "为工作负载生成 Kubernetes 清单,并使用以下命令应用这些清单:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:367
|
|
||||||
msgid "This replicates and deploys three test setups in your Kubernetes cluster."
|
|
||||||
msgstr "这会在 Kubernetes 集群中复制和部署三个测试设置。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:370
|
|
||||||
msgid "Results of running this guide"
|
|
||||||
msgstr "运行本教程的结果"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:372
|
|
||||||
msgid ""
|
|
||||||
"You must parse the logs of the Kubernetes pod to retrieve performance "
|
|
||||||
"data. The pods will still exist post-completion and will be in "
|
|
||||||
"‘Completed’ state. You can get the logs from any of the pods to inspect "
|
|
||||||
"the benchmark results. More information about Kubernetes logging is "
|
|
||||||
"available in the Kubernetes `Logging Architecture`_ documentation."
|
|
||||||
msgstr "您必须解析 Kubernetes Pod 的日志来检索性能数据。完成后,Pod 仍会存在,并将处于“已完成”状态。您可以从任何一个 Pod 中获取日志来检查基准测试结果。有关 Kubernetes 日志记录的更多信息,请参见 Kubernetes `Logging Architecture`_ 文档。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:379
|
|
||||||
msgid "Use Jupyter Notebook"
|
|
||||||
msgstr "使用 Jupyter Notebook"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:381
|
|
||||||
msgid ""
|
|
||||||
"This example uses the `PyTorch with OpenBLAS`_ container image. After it "
|
|
||||||
"is downloaded, run the Docker image with :command:`-p` to specify the "
|
|
||||||
"shared port between the container and the host. This example uses port "
|
|
||||||
"8888."
|
|
||||||
msgstr "本示例使用 `PyTorch with OpenBLAS`_ 容器映像。下载后,使用 :command:`-p` 运行 Docker 映像,以指定容器和主机之间的共享端口。本示例使用端口 8888。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:389
|
|
||||||
msgid ""
|
|
||||||
"After you start the container, launch the Jupyter Notebook. This command "
|
|
||||||
"is executed inside the container image."
|
|
||||||
msgstr "启动容器后,启动 Jupyter Notebook。该命令在容器映像内执行。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:396
|
|
||||||
msgid ""
|
|
||||||
"After the notebook has loaded, you will see output similar to the "
|
|
||||||
"following:"
|
|
||||||
msgstr "加载笔记本后,您将看到类似以下内容的输出:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:404
|
|
||||||
msgid ""
|
|
||||||
"From your host system, or any system that can access the host's IP "
|
|
||||||
"address, start a web browser with the following. If you are not running "
|
|
||||||
"the browser on the host system, replace :command:`127.0.0.1` with the IP "
|
|
||||||
"address of the host."
|
|
||||||
msgstr "从您的主机系统或任何可以访问主机 IP 地址的系统,使用以下命令启动 Web 浏览器。如果没有在主机系统上运行浏览器,请将 :command:`127.0.0.1` 更换为主机的 IP 地址。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:412
|
|
||||||
msgid "Your browser displays the following:"
|
|
||||||
msgstr "您的浏览器会显示以下内容:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:418
|
|
||||||
msgid "Figure 1: :guilabel:`Jupyter Notebook`"
|
|
||||||
msgstr "图 1: :guilabel:`Jupyter Notebook`"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:421
|
|
||||||
msgid ""
|
|
||||||
"To create a new notebook, click :guilabel:`New` and select "
|
|
||||||
":guilabel:`Python 3`."
|
|
||||||
msgstr "要创建新笔记本,请点击 :guilabel:`New`,然后选择 :guilabel:`Python 3`。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:427
|
|
||||||
msgid "Figure 2: Create a new notebook"
|
|
||||||
msgstr "图 2:创建一个新笔记本"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:429
|
|
||||||
msgid "A new, blank notebook is displayed, with a cell ready for input."
|
|
||||||
msgstr "此时将显示一个新的空白笔记本,其中有一个单元格可供输入内容。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:436
|
|
||||||
msgid ""
|
|
||||||
"To verify that PyTorch is working, copy the following snippet into the "
|
|
||||||
"blank cell, and run the cell."
|
|
||||||
msgstr "要验证 PyTorch 是否正在工作,请将以下片段复制到空白单元格中,并运行该单元格。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:450
|
|
||||||
msgid "When you run the cell, your output will look something like this:"
|
|
||||||
msgstr "运行单元格时,您的输出将如下所示:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:456
|
|
||||||
msgid ""
|
|
||||||
"You can continue working in this notebook, or you can download existing "
|
|
||||||
"notebooks to take advantage of the Deep Learning Reference Stack's "
|
|
||||||
"optimized deep learning frameworks. Refer to `Jupyter Notebook`_ for "
|
|
||||||
"details."
|
|
||||||
msgstr "您可以继续在此笔记本中工作,也可以下载现有笔记本来利用深度学习参考堆栈的优化深度学习框架。详情请参阅 `Jupyter Notebook`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:461
|
|
||||||
msgid "Uninstallation"
|
|
||||||
msgstr "卸载"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:463
|
|
||||||
msgid ""
|
|
||||||
"To uninstall the Deep Learning Reference Stack, you can choose to stop "
|
|
||||||
"the container so that it is not using system resources, or you can stop "
|
|
||||||
"the container and delete it to free storage space."
|
|
||||||
msgstr "要卸载深度学习参考堆栈,您可以选择停止容器以使其不使用系统资源,或者可以停止容器并将其删除以释放存储空间。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:467
|
|
||||||
msgid "To stop the container, execute the following from your host system:"
|
|
||||||
msgstr "要停止容器,请从主机系统执行以下操作:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:469
|
|
||||||
msgid "Find the container's ID"
|
|
||||||
msgstr "找到容器的 ID"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:475
|
|
||||||
msgid "This will result in output similar to the following:"
|
|
||||||
msgstr "这将产生类似于以下内容的输出:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:482
|
|
||||||
msgid ""
|
|
||||||
"You can then use the ID or container name to stop the container. This "
|
|
||||||
"example uses the name \"oss\":"
|
|
||||||
msgstr "然后,您可以使用 ID 或容器名称来停止容器。本示例使用名称 \"oss\":"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:490
|
|
||||||
msgid "Verify that the container is not running"
|
|
||||||
msgstr "验证容器未在运行"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:497
|
|
||||||
msgid "To delete the container from your system you need to know the Image ID:"
|
|
||||||
msgstr "要从系统中删除容器,您需要知道映像 ID:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:503
|
|
||||||
msgid "This command results in output similar to the following:"
|
|
||||||
msgstr "该命令会产生类似于以下内容的输出:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:511
|
|
||||||
msgid "To remove an image use the image ID:"
|
|
||||||
msgstr "要移除映像,请使用映像 ID:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:527
|
|
||||||
msgid ""
|
|
||||||
"Note that you can execute the :command:`docker rmi` command using only "
|
|
||||||
"the first few characters of the image ID, provided they are unique on the"
|
|
||||||
" system."
|
|
||||||
msgstr "请注意,您可以只使用映像 ID 的前几个字符来执行 :command:`docker rmi` 命令,前提是它们在系统上是唯一的。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:529
|
|
||||||
msgid "Once you have removed the image, you can verify it has been deleted with:"
|
|
||||||
msgstr "移除映像后,您可以通过以下方式验证它是否已被移除:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:537
|
|
||||||
msgid "Related topics"
|
|
||||||
msgstr "相关主题"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:539
|
|
||||||
msgid "`DLRS V3.0`_ release announcement"
|
|
||||||
msgstr "`DLRS V3.0`_ 发布公告"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:540
|
|
||||||
msgid "`TensorFlow Benchmarks`_"
|
|
||||||
msgstr "`TensorFlow Benchmarks`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:541
|
|
||||||
msgid "`PyTorch benchmarks`_"
|
|
||||||
msgstr "`PyTorch benchmarks`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:542
|
|
||||||
msgid "`Kubeflow`_"
|
|
||||||
msgstr "`Kubeflow`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:543
|
|
||||||
msgid ":ref:`kubernetes` tutorial"
|
|
||||||
msgstr ":ref:`kubernetes` 教程"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/dlrs/dlrs.rst:544
|
|
||||||
msgid "`Jupyter Notebook`_"
|
|
||||||
msgstr "`Jupyter Notebook`_"
|
|
||||||
|
|
||||||
#~ msgid "Deep Learning Reference Stack `V3.0 release announcement`_."
|
|
||||||
#~ msgstr "深度学习参考堆栈 `V3.0 release announcement`_。"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "You must parse the logs of the "
|
|
||||||
#~ "Kubernetes pod to retrieve performance "
|
|
||||||
#~ "data. The pods will still exist "
|
|
||||||
#~ "post-completion and will be in "
|
|
||||||
#~ "‘Completed’ state. You can get the "
|
|
||||||
#~ "logs from any of the pods to "
|
|
||||||
#~ "inspect the benchmark results. More "
|
|
||||||
#~ "information about `Kubernetes logging`_ is "
|
|
||||||
#~ "available from the Kubernetes community."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "您必须解析 Kubernetes Pod 的日志来检索性能数据。完成后,Pod "
|
|
||||||
#~ "仍会存在,并将处于“已完成”状态。您可以从任何一个 Pod 中获取日志来检查基准测试结果。有关 "
|
|
||||||
#~ "`Kubernetes logging`_ 的更多信息可从 Kubernetes 社区获取。"
|
|
||||||
|
|
||||||
#~ msgid "Deep Learning Reference Stack `V3.0 release announcement`_"
|
|
||||||
#~ msgstr "深度学习参考堆栈 `V3.0 release announcement`_"
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,711 +0,0 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) 2019, many
|
|
||||||
# This file is distributed under the same license as the Clear Linux*
|
|
||||||
# Project Docs package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2019.
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr "Project-Id-Version: Clear Linux* Project Docs latest\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2019-08-09 14:33-0700\n"
|
|
||||||
"PO-Revision-Date: 2019-09-04 16:21-0008\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language: zh-Hans\n"
|
|
||||||
"Language-Team: zh-Hans\n"
|
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
|
||||||
"Generated-By: Intel® International Developer Studio Version 4.1.273.0\n"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:4
|
|
||||||
msgid "Enable AWS Greengrass\\* and OpenVINO™ toolkit"
|
|
||||||
msgstr "启用 AWS Greengrass\\* 和 OpenVINO™ 工具包"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:6
|
|
||||||
msgid ""
|
|
||||||
"This guide explains how to enable AWS Greengrass\\* and OpenVINO™ "
|
|
||||||
"toolkit. Specifically, the guide demonstrates how to:"
|
|
||||||
msgstr "本指南说明了如何启用 AWS Greengrass\\* 和 OpenVINO™ 工具包。具体而言,该指南演示了如何:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:9
|
|
||||||
msgid "Set up the Intel® edge device with |CL-ATTR|"
|
|
||||||
msgstr "使用 |CL-ATTR| 设置英特尔®边缘设备"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:10
|
|
||||||
msgid ""
|
|
||||||
"Install the OpenVINO™ toolkit and Amazon Web Services\\* (AWS\\*) "
|
|
||||||
"Greengrass\\* software stacks"
|
|
||||||
msgstr "安装 OpenVINO™ 工具包和 Amazon Web Services\\* (AWS\\*) Greengrass\\* 软件堆栈"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:12
|
|
||||||
msgid ""
|
|
||||||
"Use AWS Greengrass\\* and AWS Lambda\\* to deploy the FaaS samples from "
|
|
||||||
"the cloud"
|
|
||||||
msgstr "使用 AWS Greengrass\\* 和 AWS Lambda\\* 从云中部署 FaaS 示例"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:20
|
|
||||||
msgid "Overview"
|
|
||||||
msgstr "概述"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:22
|
|
||||||
msgid ""
|
|
||||||
"Hardware accelerated Function-as-a-Service (FaaS) enables cloud "
|
|
||||||
"developers to deploy inference functionalities [1] on Intel® IoT edge "
|
|
||||||
"devices with accelerators (CPU, Integrated GPU, Intel® FPGA, and Intel® "
|
|
||||||
"Movidius™ technology). These functions provide a great developer "
|
|
||||||
"experience and seamless migration of visual analytics from cloud to edge "
|
|
||||||
"in a secure manner using a containerized environment. Hardware-"
|
|
||||||
"accelerated FaaS provides the best-in-class performance by accessing "
|
|
||||||
"optimized deep learning libraries on Intel® IoT edge devices with "
|
|
||||||
"accelerators."
|
|
||||||
msgstr "硬件加速的功能即服务 (FaaS) 有助于云开发人员在搭载加速器的英特尔® IoT 边缘设备(CPU、集成 GPU、英特尔® FPGA 和英特尔® Movidius™ 技术)上部署推理功能 [1]。这些功能使用容器化环境,为开发人员提供了出色的体验,有助于开发人员将可视化分析从云安全地迁移到边缘。硬件加速的 FaaS 支持在搭载加速器的英特尔® IoT 边缘设备上访问经过优化的深度学习库,实现业界最佳性能。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:32
|
|
||||||
msgid "Supported platforms"
|
|
||||||
msgstr "支持的平台"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:34
|
|
||||||
msgid "Operating System: |CL| latest release"
|
|
||||||
msgstr "操作系统:|CL| 最新版本"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:35
|
|
||||||
msgid "Hardware: Intel® core platforms (that support inference on CPU only)"
|
|
||||||
msgstr "硬件:英特尔®酷睿™平台(本教程仅支持 CPU 推理。)"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:38
|
|
||||||
msgid "Sample description"
|
|
||||||
msgstr "示例说明"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:40
|
|
||||||
msgid ""
|
|
||||||
"The AWS Greengrass samples are located at `Edge-Analytics-FaaS`_. This "
|
|
||||||
"guide uses the 1.0 version of the source code."
|
|
||||||
msgstr "AWS Greengrass 示例位于 `Edge-Analytics-FaaS`_ 中。本教程使用 1.0 版本的源代码。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:43
|
|
||||||
msgid "|CL| provides the following AWS Greengrass samples:"
|
|
||||||
msgstr "|CL| 提供以下 AWS Greengrass 示例:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:45
|
|
||||||
msgid "`greengrass_classification_sample.py`_"
|
|
||||||
msgstr "`greengrass_classification_sample.py`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:47
|
|
||||||
msgid ""
|
|
||||||
"This AWS Greengrass sample classifies a video stream using classification"
|
|
||||||
" networks such as AlexNet and GoogLeNet and publishes top-10 results on "
|
|
||||||
"AWS\\* IoT Cloud every second."
|
|
||||||
msgstr "此 AWS Greengrass 示例使用 AlexNet 和 GoogLeNet 等分类网络对视频流进行分类,并每秒在 AWS\\* IoT 云上发布前十名结果。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:51
|
|
||||||
msgid "`greengrass_object_detection_sample_ssd.py`_"
|
|
||||||
msgstr "`greengrass_object_detection_sample_ssd.py`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:53
|
|
||||||
msgid ""
|
|
||||||
"This AWS Greengrass sample detects objects in a video stream and "
|
|
||||||
"classifies them using single-shot multi-box detection (SSD) networks such"
|
|
||||||
" as SSD Squeezenet, SSD Mobilenet, and SSD300. This sample publishes "
|
|
||||||
"detection outputs such as class label, class confidence, and bounding box"
|
|
||||||
" coordinates on AWS IoT Cloud every second."
|
|
||||||
msgstr "此 AWS Greengrass 示例会检测视频流中的对象,并使用单步多框检测 (SSD) 网络(例如 SSD Squeezenet、SSD Mobilenet 和 SSD300)对它们进行分类。此示例每秒在 AWS IoT 云上发布检测输出,如类标签、类置信度和边界框坐标。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:61
|
|
||||||
msgid "Install the OS on the edge device"
|
|
||||||
msgstr "在边缘设备上安装操作系统"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:63
|
|
||||||
msgid ""
|
|
||||||
"Start with a clean installation of |CL| on a new system, using the :ref"
|
|
||||||
":`bare-metal-install-desktop`, found in :ref:`get-started`."
|
|
||||||
msgstr "使用 :ref:`get-started` 中的 :ref:`bare-metal-install-desktop`,在新系统上安装干净的 |CL|。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:67
|
|
||||||
msgid "Create user accounts"
|
|
||||||
msgstr "创建用户帐户"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:69
|
|
||||||
msgid ""
|
|
||||||
"After |CL| is installed, create two user accounts. Create an "
|
|
||||||
"administrative user in |CL| and create a user account for the Greengrass "
|
|
||||||
"services to use ( see Greengrass user below)."
|
|
||||||
msgstr "安装 |CL| 后,创建两个用户帐户。在 |CL| 中创建一个管理用户,并为要使用的 Greengrass 服务创建一个用户帐户(请参阅下面的 Greengrass 用户)。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:73
|
|
||||||
msgid ""
|
|
||||||
"Create a new user and set a password for that user. Enter the following "
|
|
||||||
"commands as ``root``:"
|
|
||||||
msgstr "创建新用户并为该用户设置密码。以 ``root`` 用户身份输入以下命令:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:81
|
|
||||||
msgid ""
|
|
||||||
"Next, enable the :command:`sudo` command for your new <userid>. Add "
|
|
||||||
"<userid> to the `wheel` group:"
|
|
||||||
msgstr "接下来,为新的 <userid> 启用 :command:`sudo` 命令。将 <userid> 添加到 `wheel` 组:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:88
|
|
||||||
msgid "Create a :file:`/etc/fstab` file."
|
|
||||||
msgstr "创建一个 :file:`/etc/fstab` 文件。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:96
|
|
||||||
msgid ""
|
|
||||||
"By default, |CL| does not create an :file:`/etc/fstab` file. You must "
|
|
||||||
"create this file before the Greengrass service runs."
|
|
||||||
msgstr "默认情况下,|CL| 不会创建 :file:`/etc/fstab` 文件。您必须在 Greengrass 服务运行之前创建此文件。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:100
|
|
||||||
msgid "Add required bundles"
|
|
||||||
msgstr "添加所需的捆绑包"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:102
|
|
||||||
msgid ""
|
|
||||||
"Use the :command:`swupd` software updater utility to add the prerequisite"
|
|
||||||
" bundles for the OpenVINO software stack:"
|
|
||||||
msgstr "使用 :command:`swupd` 软件更新程序实用程序添加 OpenVINO 软件堆栈必备的软件包:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:111
|
|
||||||
msgid "Learn more about how to :ref:`swupd-guide`."
|
|
||||||
msgstr "详细了解如何 :ref:`swupd-guide`。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:113
|
|
||||||
msgid ""
|
|
||||||
"The :command:`computer-vision-basic` bundle installs the OpenVINO™ "
|
|
||||||
"toolkit, and the sample models optimized for Intel® edge platforms."
|
|
||||||
msgstr ":command:`computer-vision-basic` 捆绑包会安装 OpenVINO™ 工具包以及针对英特尔®边缘平台优化的示例模型。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:117
|
|
||||||
msgid "Convert deep learning models"
|
|
||||||
msgstr "转换深度学习模型"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:120
|
|
||||||
msgid "Locate sample models"
|
|
||||||
msgstr "找到示例模型"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:122
|
|
||||||
msgid ""
|
|
||||||
"There are two types of provided models that can be used in conjunction "
|
|
||||||
"with AWS Greengrass for this guide: classification or object detection."
|
|
||||||
msgstr "本教程中提供了两种可以与 AWS Greengrass 配合使用的模型:分类和对象检测。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:125
|
|
||||||
msgid ""
|
|
||||||
"To complete this guide using an image classification model, download the "
|
|
||||||
"BVLC AlexNet model files `bvlc_alexnet.caffemodel`_ and "
|
|
||||||
"`deploy.prototxt`_ to the default model_location at "
|
|
||||||
":file:`/usr/share/openvino/models`. Any custom pre-trained classification"
|
|
||||||
" models can be used with the classification sample."
|
|
||||||
msgstr "要使用图像分类模型完成本教程,请将 BVLC AlexNet 模型文件 `bvlc_alexnet.caffemodel`_ 和 `deploy.prototxt`_ 下载到 :file:`/usr/share/openvino/models` 处的默认 model_location。预先训练的任何自定义分类模型都可与分类示例配合使用。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:131
|
|
||||||
msgid ""
|
|
||||||
"For object detection, the sample models optimized for Intel® edge "
|
|
||||||
"platforms are included with the computer-vision-basic bundle installation"
|
|
||||||
" at :file:`/usr/share/openvino/models`. These models are provided as an "
|
|
||||||
"example; you may also use a custom SSD model with the Greengrass object "
|
|
||||||
"detection sample."
|
|
||||||
msgstr "对于对象检测,安装 computer-vision-basic 捆绑包时会在 :file:`/usr/share/openvino/models` 处附带针对英特尔®边缘平台优化的示例模型。这些模型作为示例提供;但是,您也可以将自定义 SSD 模型与 Greengrass 对象检测示例结合使用。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:137
|
|
||||||
msgid "Run model optimizer"
|
|
||||||
msgstr "运行模型优化器"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:139
|
|
||||||
msgid ""
|
|
||||||
"Follow the instructions in the `Model Optimizer Developer Guide`_ for "
|
|
||||||
"converting deep learning models to Intermediate Representation using "
|
|
||||||
"Model Optimizer. To optimize either of the sample models described above,"
|
|
||||||
" run one of the following commands."
|
|
||||||
msgstr "遵循 `Model Optimizer Developer Guide`_ 中的说明,使用 Model Optimizer 将深度学习模型转换为 Intermediate Representation。要优化上述任一示例模型,请运行以下命令之一。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:143
|
|
||||||
msgid "For classification using BVLC AlexNet model:"
|
|
||||||
msgstr "对于使用 BVLC AlexNet 模型的分类:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:152
|
|
||||||
msgid "For object detection using SqueezeNetSSD-5Class model:"
|
|
||||||
msgstr "对于使用 SqueezeNetSSD-5Class 模型的对象检测:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:161
|
|
||||||
msgid "In these examples:"
|
|
||||||
msgstr "在这些示例中:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:163
|
|
||||||
msgid "`<model_location>` is :file:`/usr/share/openvino/models`."
|
|
||||||
msgstr "`<model_location>` 是 :file:`/usr/share/openvino/models`。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:165
|
|
||||||
msgid "`<data_type>` is FP32 or FP16, depending on target device."
|
|
||||||
msgstr "`<data_type>` 是 FP32 或 FP16,具体取决于目标设备。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:167
|
|
||||||
msgid ""
|
|
||||||
"`<output_dir>` is the directory where the Intermediate Representation "
|
|
||||||
"(IR) is stored. IR contains .xml format corresponding to the network "
|
|
||||||
"structure and .bin format corresponding to weights. This .xml file should"
|
|
||||||
" be passed to :command:`<PARAM_MODEL_XML>`."
|
|
||||||
msgstr "`<output_dir>` 是存储中间表示 (IR) 的目录。IR 包含与网络结构对应的 .xml 格式以及与权重对应的 .bin 格式。此 .xml 文件应传递给 :command:`<PARAM_MODEL_XML>`。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:172
|
|
||||||
msgid ""
|
|
||||||
"In the BVLC AlexNet model, the prototxt defines the input shape with "
|
|
||||||
"batch size 10 by default. In order to use any other batch size, the "
|
|
||||||
"entire input shape must be provided as an argument to the model "
|
|
||||||
"optimizer. For example, to use batch size 1, you must provide: "
|
|
||||||
"`--input_shape [1,3,227,227]`"
|
|
||||||
msgstr "在 BVLC AlexNet 模型中,默认情况下,prototxt 会定义批处理大小为 10 的输入形状。要使用任何其他批处理大小,必须将整个输入形状作为参数提供给模型优化器。例如,要使用批处理大小 1,您必须提供 `--input_shape [1,3,227,227]`"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:180
|
|
||||||
msgid "Configure AWS Greengrass group"
|
|
||||||
msgstr "配置 AWS Greengrass 组"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:182
|
|
||||||
msgid ""
|
|
||||||
"For each Intel® edge platform, you must create a new AWS Greengrass group"
|
|
||||||
" and install AWS Greengrass core software to establish the connection "
|
|
||||||
"between cloud and edge."
|
|
||||||
msgstr "对于每个英特尔®边缘平台,您必须创建一个新的 AWS Greengrass 组,并安装 AWS Greengrass 核心软件,以在云和边缘之间建立连接。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:186
|
|
||||||
msgid ""
|
|
||||||
"To create an AWS Greengrass group, follow the instructions in `Configure "
|
|
||||||
"AWS IoT Greengrass on AWS IoT`_."
|
|
||||||
msgstr "要创建 AWS Greengrass 组,请按照 `Configure AWS IoT Greengrass on AWS IoT`_ 中的说明执行操作。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:189
|
|
||||||
msgid ""
|
|
||||||
"To install and configure AWS Greengrass core on edge platform, follow the"
|
|
||||||
" instructions in `Start AWS Greengrass on the Core Device`_. In step "
|
|
||||||
"8(b), download the x86_64 Ubuntu\\* configuration of the AWS Greengrass "
|
|
||||||
"core software."
|
|
||||||
msgstr "要在边缘平台上安装和配置 AWS Greengrass 核心,请按照 `Start AWS Greengrass on the Core Device`_ 中的说明执行操作。在步骤 8(b) 中,下载 AWS Greengrass 核心软件的 x86_64 Ubuntu\\* 配置。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:196
|
|
||||||
msgid ""
|
|
||||||
"You do not need to run the :file:`cgroupfs-mount.sh` script in step #6 of"
|
|
||||||
" Module 1 of the `AWS Greengrass Developer Guide`_ because this is "
|
|
||||||
"enabled already in |CL|."
|
|
||||||
msgstr "您不需要在 `AWS Greengrass developer guide`_ 模块 1 的步骤 6 中运行 :file:`cgroupfs-mount.sh` 脚本,因为它已经在 |CL| 中启用。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:200
|
|
||||||
msgid ""
|
|
||||||
"Be sure to download both the security resources and the AWS Greengrass "
|
|
||||||
"core software."
|
|
||||||
msgstr "请务必下载安全资源和 AWS Greengrass 核心软件。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:205
|
|
||||||
msgid "Security certificates are linked to your AWS account."
|
|
||||||
msgstr "安全证书会链接到您的 AWS 帐户。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:209
|
|
||||||
msgid "Create and package Lambda function"
|
|
||||||
msgstr "创建并打包 Lambda 函数"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:211
|
|
||||||
msgid ""
|
|
||||||
"Complete steps 1-4 of the AWS Greengrass guide at `Create and Package a "
|
|
||||||
"Lambda Function`_."
|
|
||||||
msgstr "在 `Create and Package a Lambda Function`_ 中完成 AWS Greengrass 教程的步骤 1-4。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:216
|
|
||||||
msgid ""
|
|
||||||
"This creates the tarball needed to create the AWS Greengrass environment "
|
|
||||||
"on the edge device."
|
|
||||||
msgstr "这会创建必要的 tarball,以便在边缘设备上创建 AWS Greengrass 环境。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:220
|
|
||||||
msgid ""
|
|
||||||
"In step 5, replace :file:`greengrassHelloWorld.py` with the "
|
|
||||||
"classification or object detection Greengrass sample from `Edge-"
|
|
||||||
"Analytics-Faas`_:"
|
|
||||||
msgstr "在步骤 5 中,将 :file:`greengrassHelloWorld.py` 替换为 `Edge-Analytics-Faas`_ 中的分类或对象检测 Greengrass 示例:"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:223
|
|
||||||
msgid "Classification: `greengrass_classification_sample.py`_"
|
|
||||||
msgstr "分类:`greengrass_classification_sample.py`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:225
|
|
||||||
msgid "Object Detection: `greengrass_object_detection_sample_ssd.py`_"
|
|
||||||
msgstr "对象检测:`greengrass_object_detection_sample_ssd.py`_"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:227
|
|
||||||
msgid ""
|
|
||||||
"Zip the selected Greengrass sample with the extracted Greengrass SDK "
|
|
||||||
"folders from the previous step into "
|
|
||||||
":file:`greengrass_sample_python_lambda.zip`."
|
|
||||||
msgstr "将所选的 Greengrass 示例以及从上一步提取的 Greengrass SDK 文件夹压缩到 :file:`greengrass_sample_python_lambda.zip`。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:230
|
|
||||||
msgid "The zip should contain:"
|
|
||||||
msgstr "压缩包应包含:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:232
|
|
||||||
msgid "greengrasssdk"
|
|
||||||
msgstr "greengrasssdk"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:234
|
|
||||||
msgid "greengrass classification or object detection sample"
|
|
||||||
msgstr "greengrass 分类或对象检测示例"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:236
|
|
||||||
msgid "For example:"
|
|
||||||
msgstr "例如:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:243
|
|
||||||
msgid ""
|
|
||||||
"Return to the AWS documentation section called `Create and Package a "
|
|
||||||
"Lambda Function`_ and complete the procedure."
|
|
||||||
msgstr "返回名为 `Create and Package a Lambda Function`_ 的 AWS 文档部分,并完成步骤。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:248
|
|
||||||
msgid ""
|
|
||||||
"In step 9(a) of the AWS documentation, while uploading the zip file, make"
|
|
||||||
" sure to name the handler to one of the following, depending on the AWS "
|
|
||||||
"Greengrass sample you are using:"
|
|
||||||
msgstr "在 AWS 文档的步骤 9(a) 中,上传 Zip 文件,并确保根据使用的 AWS Greengrass 示例将处理程序命名为以下名称之一:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:252
|
|
||||||
msgid "greengrass_object_detection_sample_ssd.function_handler"
|
|
||||||
msgstr "greengrass_object_detection_sample_ssd.function_handler"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:253
|
|
||||||
msgid "greengrass_classification_sample.function_handler"
|
|
||||||
msgstr "greengrass_classification_sample.function_handler"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:257
|
|
||||||
msgid "Configure Lambda function"
|
|
||||||
msgstr "配置 Lambda 函数"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:259
|
|
||||||
msgid ""
|
|
||||||
"After creating the Greengrass group and the Lambda function, start "
|
|
||||||
"configuring the Lambda function for AWS Greengrass."
|
|
||||||
msgstr "创建 Greengrass 组和 Lambda 函数后,开始为 AWS Greengrass 配置 Lambda 函数。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:262
|
|
||||||
msgid ""
|
|
||||||
"Follow steps 1-8 in `Configure the Lambda Function for AWS IoT "
|
|
||||||
"Greengrass`_ in the AWS documentation."
|
|
||||||
msgstr "按照 AWS 文档中 `Configure the Lambda Function for AWS IoT Greengrass`_ 中的步骤 1-8 执行操作。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:265
|
|
||||||
msgid ""
|
|
||||||
"In addition to the details mentioned in step 8, change the Memory limit "
|
|
||||||
"to 2048 MB to accommodate large input video streams."
|
|
||||||
msgstr "除了步骤 8 中提到的细节之外,将内存限制更改为 2048 MB,以容纳较大的输入视频流。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:268
|
|
||||||
msgid ""
|
|
||||||
"Add the following environment variables as key-value pairs when editing "
|
|
||||||
"the Lambda configuration and click on update:"
|
|
||||||
msgstr "编辑 Lambda 配置时,添加以下环境变量作为键值对,然后点击更新:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:271
|
|
||||||
msgid "**Table 1. Environment variables: Lambda configuration**"
|
|
||||||
msgstr "**表 1.环境变量:Lambda 配置**"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:275
|
|
||||||
msgid "Key"
|
|
||||||
msgstr "键"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:276
|
|
||||||
msgid "Value"
|
|
||||||
msgstr "值"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:277
|
|
||||||
msgid "PARAM_MODEL_XML"
|
|
||||||
msgstr "PARAM_MODEL_XML"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:278
|
|
||||||
msgid ""
|
|
||||||
"<MODEL_DIR>/<IR.xml>, where <MODEL_DIR> is user specified and contains "
|
|
||||||
"IR.xml, the Intermediate Representation file from Intel® Model Optimizer."
|
|
||||||
" For this guide, <MODEL_DIR> should be set to "
|
|
||||||
"'/usr/share/openvino/models' or one of its subdirectories."
|
|
||||||
msgstr "<MODEL_DIR>/<IR.xml>,其中 <MODEL_DIR> 是用户指定的,包含来自英特尔®模型优化器的中间表示文件 IR.xml。在本教程中,<MODEL_DIR> 应设置为 '/usr/share/openvino/models' 或其某个子目录。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:282
|
|
||||||
msgid "PARAM_INPUT_SOURCE"
|
|
||||||
msgstr "PARAM_INPUT_SOURCE"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:283
|
|
||||||
msgid "<DATA_DIR>/input.webm to be specified by user. Holds both input and"
|
|
||||||
msgstr "<DATA_DIR>由用户指定的 /input.webm。保存输入和"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:284
|
|
||||||
msgid "output data. For webcam, set PARAM_INPUT_SOURCE to ‘/dev/video0’"
|
|
||||||
msgstr "输出数据。对于网络摄像头,请将 PARAM_INPUT_SOURCE 设置为 ‘/dev/video0’"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:285
|
|
||||||
msgid "PARAM_DEVICE"
|
|
||||||
msgstr "PARAM_DEVICE"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:286
|
|
||||||
msgid "\"CPU\""
|
|
||||||
msgstr "\"CPU\""
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:287
|
|
||||||
msgid "PARAM_CPU_EXTENSION_PATH"
|
|
||||||
msgstr "PARAM_CPU_EXTENSION_PATH"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:288
|
|
||||||
msgid "/usr/lib64/libcpu_extension.so"
|
|
||||||
msgstr "/usr/lib64/libcpu_extension.so"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:289
|
|
||||||
msgid "PARAM_OUTPUT_DIRECTORY"
|
|
||||||
msgstr "PARAM_OUTPUT_DIRECTORY"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:290
|
|
||||||
msgid "<DATA_DIR> to be specified by user. Holds both input and output data"
|
|
||||||
msgstr "<DATA_DIR> 由用户指定。保存输入和输出数据"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:292
|
|
||||||
msgid "PARAM_NUM_TOP_RESULTS"
|
|
||||||
msgstr "PARAM_NUM_TOP_RESULTS"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:293
|
|
||||||
msgid ""
|
|
||||||
"User specified for classification sample. (e.g. 1 for top-1 result, 5 for"
|
|
||||||
" top-5 results)"
|
|
||||||
msgstr "为分类示例指定的用户。(例如,1 为 前 1 名结果,5 为前 5 名结果)"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:296
|
|
||||||
msgid ""
|
|
||||||
"Add subscription to subscribe, or publish messages from AWS Greengrass "
|
|
||||||
"Lambda function by completing the procedure in `Configure the Lambda "
|
|
||||||
"Function for AWS IoT Greengrass`_."
|
|
||||||
msgstr "完成 `Configure the Lambda Function for AWS IoT Greengrass`_ 中的步骤,添加订阅以进行订阅或发布来自 AWS Greengrass Lambda 函数的消息。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:301
|
|
||||||
msgid ""
|
|
||||||
"The optional topic filter field is the topic mentioned inside the Lambda "
|
|
||||||
"function. In this guide, sample topics include the following: "
|
|
||||||
":command:`openvino/ssd` or :command:`openvino/classification`"
|
|
||||||
msgstr "可选主题过滤器字段是 Lambda 函数中提到的主题。在本教程中,示例主题包括以下 :command:`openvino/ssd` 或 :command:`openvino/classification`"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:305
|
|
||||||
msgid "Add local resources"
|
|
||||||
msgstr "添加本地资源"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:307
|
|
||||||
msgid ""
|
|
||||||
"Refer to the AWS documentation `Access Local Resources with Lambda "
|
|
||||||
"Functions and Connectors`_ for details about local resources and access "
|
|
||||||
"privileges."
|
|
||||||
msgstr "有关 `Access Local Resources with Lambda Functions and Connectors`_ 的详细信息,请参阅 AWS 文档。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:310
|
|
||||||
msgid "The following table describes the local resources needed for the CPU:"
|
|
||||||
msgstr "下表列出了 CPU 所需的本地资源:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:312
|
|
||||||
msgid "**Local resources**"
|
|
||||||
msgstr "**本地资源**"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:316
|
|
||||||
msgid "Name"
|
|
||||||
msgstr "名称"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:317
|
|
||||||
msgid "Resource type"
|
|
||||||
msgstr "资源类型"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:318
|
|
||||||
msgid "Local path"
|
|
||||||
msgstr "本地路径"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:319
|
|
||||||
msgid "Access"
|
|
||||||
msgstr "访问"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:321
|
|
||||||
msgid "ModelDir"
|
|
||||||
msgstr "ModelDir"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:322
|
|
||||||
#: ../../guides/stacks/greengrass.rst:332
|
|
||||||
msgid "Volume"
|
|
||||||
msgstr "卷"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:323
|
|
||||||
msgid "<MODEL_DIR> to be specified by user"
|
|
||||||
msgstr "<MODEL_DIR> 由用户指定"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:324
|
|
||||||
#: ../../guides/stacks/greengrass.rst:329
|
|
||||||
msgid "Read-Only"
|
|
||||||
msgstr "只读"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:326
|
|
||||||
msgid "Webcam"
|
|
||||||
msgstr "网络摄像头"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:327
|
|
||||||
msgid "Device"
|
|
||||||
msgstr "设备"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:328
|
|
||||||
msgid "/dev/video0"
|
|
||||||
msgstr "/dev/video0"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:331
|
|
||||||
msgid "DataDir"
|
|
||||||
msgstr "DataDir"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:333
|
|
||||||
msgid "<DATA_DIR> to be specified by user. Holds both input and output data."
|
|
||||||
msgstr "<DATA_DIR> 由用户指定。保存输入和输出数据。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:335
|
|
||||||
msgid "Read and Write"
|
|
||||||
msgstr "读取和写入"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:338
|
|
||||||
msgid "Deploy Lambda function"
|
|
||||||
msgstr "部署 Lambda 函数"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:340
|
|
||||||
msgid ""
|
|
||||||
"Refer to the AWS documentation `Deploy Cloud Configurations to an AWS IoT"
|
|
||||||
" Greengrass Core Device`_ for instructions on how to deploy the lambda "
|
|
||||||
"function to AWS Greengrass core device. Select *Deployments* on the group"
|
|
||||||
" page and follow the instructions."
|
|
||||||
msgstr "有关如何 `Deploy Cloud Configurations to an AWS IoT Greengrass Core Device`_ 的说明,请参阅 AWS 文档。在组页面上选择 *Deployments*,并按照说明执行操作。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:344
|
|
||||||
msgid "Output consumption"
|
|
||||||
msgstr "输出的使用"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:346
|
|
||||||
msgid ""
|
|
||||||
"There are four options available for output consumption. These options "
|
|
||||||
"are used to report, stream, upload, or store inference output at an "
|
|
||||||
"interval defined by the variable :command:`reporting_interval` in the AWS"
|
|
||||||
" Greengrass samples."
|
|
||||||
msgstr "使用输出时有四种可用选项。这些选项用于按 AWS Greengrass 示例中 :command:`reporting_interval` 变量定义的间隔,报告、流式传输、上传或存储推理输出。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:350
|
|
||||||
msgid "IoT cloud output:"
|
|
||||||
msgstr "IoT 云输出:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:352
|
|
||||||
msgid ""
|
|
||||||
"This option is enabled by default in the AWS Greengrass samples using the"
|
|
||||||
" :command:`enable_iot_cloud_output` variable. You can use it to verify "
|
|
||||||
"the lambda running on the edge device. It enables publishing messages to "
|
|
||||||
"IoT cloud using the subscription topic specified in the lambda. (For "
|
|
||||||
"example, topics may include :command:`openvino/classification` for "
|
|
||||||
"classification and :command:`openvino/ssd` for object detection samples.)"
|
|
||||||
" For classification, top-1 result with class label are published to IoT "
|
|
||||||
"cloud. For SSD object detection, detection results such as bounding box "
|
|
||||||
"coordinates of objects, class label, and class confidence are published."
|
|
||||||
msgstr "在 AWS Greengrass 示例中,默认情况下使用 :command:`enable_iot_cloud_output` 变量启用此选项。您可以使用它来验证在边缘设备上运行的 lambda。它支持使用 lambda 中指定的订阅主题向 IoT 云发布消息。(例如,主题可能包括用于分类示例的 :command:`openvino/classification` 以及用于对象检测示例的 :command:`openvino/ssd`。) 对于分类,具有类标签的前 1 名结果会发布到 IoT 云。对于 SSD 对象检测,则发布对象的边界框坐标、类标签和类置信度等检测结果。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:362
|
|
||||||
msgid ""
|
|
||||||
"Refer to the AWS documentation `Verify the Lambda Function Is Running on "
|
|
||||||
"the Device`_ for instructions on how to view the output on IoT cloud."
|
|
||||||
msgstr "有关如何在 IoT 云上查看输出的说明,请参考 AWS 文档 `Verify the Lambda Function Is Running on the Device`_。"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:366
|
|
||||||
msgid "Kinesis streaming:"
|
|
||||||
msgstr "Kinesis 流式传输:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:368
|
|
||||||
msgid ""
|
|
||||||
"This option enables inference output to be streamed from the edge device "
|
|
||||||
"to cloud using Kinesis [3] streams when :command:`enable_kinesis_output` "
|
|
||||||
"is set to True. The edge devices act as data producers and continually "
|
|
||||||
"push processed data to the cloud. You must set up and specify Kinesis "
|
|
||||||
"stream name, Kinesis shard, and AWS region in the AWS Greengrass samples."
|
|
||||||
msgstr ":command:`enable_kinesis_output` 设置为 True 时,此选项支持使用 Kinesis [3] 流将推理输出从边缘设备流式传输到云。边缘设备充当数据生产者,并将处理后的数据不断推送到云中。您必须在 AWS Greengrass 示例中设置和指定 Kinesis 流名称、Kinesis shard 和 AWS 区域。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:375
|
|
||||||
msgid "Cloud storage using AWS S3 bucket:"
|
|
||||||
msgstr "使用 AWS S3 存储桶的云存储:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:377
|
|
||||||
msgid ""
|
|
||||||
"When the :command:`enable_s3_jpeg_output` variable is set to True, it "
|
|
||||||
"enables uploading and storing processed frames (in jpeg format) in an AWS"
|
|
||||||
" S3 bucket. You must set up and specify the S3 bucket name in the AWS "
|
|
||||||
"Greengrass samples to store the JPEG images. The images are named using "
|
|
||||||
"the timestamp and uploaded to S3."
|
|
||||||
msgstr "将 :command:`enable_s3_jpeg_output` 变量设置为 True 时,它允许在 AWS S3 存储桶中上传和存储已处理的帧(jpeg 格式)。您必须在 AWS Greengrass 示例中设置和指定用来存储 JPEG 图像的 S3 存储桶名称。这些映像使用时间戳命名,并上传到 S3。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:383
|
|
||||||
msgid "Local storage:"
|
|
||||||
msgstr "本地存储:"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:385
|
|
||||||
msgid ""
|
|
||||||
"When the :command:`enable_s3_jpeg_output` variable is set to True, it "
|
|
||||||
"enables storing processed frames (in jpeg format) on the edge device. The"
|
|
||||||
" images are named using the timestamp and stored in a directory specified"
|
|
||||||
" by :command:`PARAM_OUTPUT_DIRECTORY`."
|
|
||||||
msgstr "将 :command:`enable_s3_jpeg_output` 变量设置为 True 时,它允许在边缘设备上存储已处理的帧(jpeg 格式)。这些映像使用时间戳命名,并存储在由 :command:`PARAM_OUTPUT_DIRECTORY` 指定的目录中。"
|
|
||||||
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:391
|
|
||||||
msgid "References"
|
|
||||||
msgstr "参考"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:393
|
|
||||||
msgid "AWS Greengrass: https://aws.amazon.com/greengrass/"
|
|
||||||
msgstr "AWS Greengrass:https://aws.amazon.com/greengrass/"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:394
|
|
||||||
msgid "AWS Lambda: https://aws.amazon.com/lambda/"
|
|
||||||
msgstr "AWS Lambda:https://aws.amazon.com/lambda/"
|
|
||||||
|
|
||||||
#: ../../guides/stacks/greengrass.rst:395
|
|
||||||
msgid "AWS Kinesis: https://aws.amazon.com/kinesis/"
|
|
||||||
msgstr "AWS Kinesis:https://aws.amazon.com/kinesis/"
|
|
||||||
|
|
||||||
#~ msgid "This tutorial demonstrates how to:"
|
|
||||||
#~ msgstr "本教程演示了如何:"
|
|
||||||
|
|
||||||
#~ msgid "Refer to the following topics:"
|
|
||||||
#~ msgstr "请参阅以下主题:"
|
|
||||||
|
|
||||||
#~ msgid ""
|
|
||||||
#~ "Follow these instructions for `converting "
|
|
||||||
#~ "deep learning models to Intermediate "
|
|
||||||
#~ "Representation using Model Optimizer`_. To "
|
|
||||||
#~ "optimize either of the sample models "
|
|
||||||
#~ "described above, run one of the "
|
|
||||||
#~ "following commands."
|
|
||||||
#~ msgstr ""
|
|
||||||
#~ "按照 `converting deep learning models to"
|
|
||||||
#~ " Intermediate Representation using Model "
|
|
||||||
#~ "Optimizer`_ 中的说明执行操作。要优化上述任一示例模型,请运行以下命令之一。"
|
|
||||||
|
|
||||||
#~ msgid "Follow the instructions here to `view the output on IoT cloud`_."
|
|
||||||
#~ msgstr "按照这里的说明`view the output on IoT cloud`_。"
|
|
||||||
|
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@ msgstr ":ref:`guides`"
|
|||||||
#: ../../index.rst:31
|
#: ../../index.rst:31
|
||||||
msgid ""
|
msgid ""
|
||||||
"Guides cover a range of topics from |CL| features and tooling, to system "
|
"Guides cover a range of topics from |CL| features and tooling, to system "
|
||||||
"maintenance, network, and stacks."
|
"maintenance, and network."
|
||||||
msgstr "指南页面涵盖了从 |CL| 功能和工具到系统维护、网络和堆栈的一系列主题。"
|
msgstr "指南页面涵盖了从 |CL| 功能和工具到系统维护、网络和堆栈的一系列主题。"
|
||||||
|
|
||||||
#: ../../index.rst:34
|
#: ../../index.rst:34
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ REM Command file for Sphinx documentation
|
|||||||
if "%SPHINXBUILD%" == "" (
|
if "%SPHINXBUILD%" == "" (
|
||||||
set SPHINXBUILD=sphinx-build
|
set SPHINXBUILD=sphinx-build
|
||||||
)
|
)
|
||||||
set BUILDDIR=build
|
|
||||||
|
set SCRIPTDIR=source\_scripts\_python
|
||||||
|
set BUILDDIR=source\_build
|
||||||
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
|
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
|
||||||
set I18NSPHINXOPTS=%SPHINXOPTS% source
|
set I18NSPHINXOPTS=%SPHINXOPTS% source
|
||||||
if NOT "%PAPER%" == "" (
|
if NOT "%PAPER%" == "" (
|
||||||
@@ -30,6 +32,7 @@ if "%1" == "help" (
|
|||||||
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
|
||||||
echo. text to make text files
|
echo. text to make text files
|
||||||
echo. man to make manual pages
|
echo. man to make manual pages
|
||||||
|
echo. clean-man to clean up after man page generation
|
||||||
echo. texinfo to make Texinfo files
|
echo. texinfo to make Texinfo files
|
||||||
echo. gettext to make PO message catalogs
|
echo. gettext to make PO message catalogs
|
||||||
echo. changes to make an overview over all changed/added/deprecated items
|
echo. changes to make an overview over all changed/added/deprecated items
|
||||||
@@ -77,6 +80,17 @@ if "%1" == "html" (
|
|||||||
if errorlevel 1 exit /b 1
|
if errorlevel 1 exit /b 1
|
||||||
echo.
|
echo.
|
||||||
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
|
||||||
|
copy source\_scripts\js\copybutton.js %BUILDDIR%\html\_static
|
||||||
|
goto end
|
||||||
|
)
|
||||||
|
|
||||||
|
if "%1" == "py" (
|
||||||
|
cd %SCRIPTDIR%
|
||||||
|
python.exe bundle_lister.py
|
||||||
|
copy bundles.html.txt ..\..\reference\bundles
|
||||||
|
for /d %%i in (cloned_repo\*) do rmdir /q /s %%i
|
||||||
|
del /q /s bundles.html.txt
|
||||||
|
echo "Python bundle script finished successfully!"
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -186,10 +200,14 @@ if "%1" == "text" (
|
|||||||
)
|
)
|
||||||
|
|
||||||
if "%1" == "man" (
|
if "%1" == "man" (
|
||||||
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
|
cd source/_scripts/_python/manpages
|
||||||
if errorlevel 1 exit /b 1
|
man.bat man
|
||||||
echo.
|
goto end
|
||||||
echo.Build finished. The manual pages are in %BUILDDIR%/man.
|
)
|
||||||
|
|
||||||
|
if "%1" == "clean-man" (
|
||||||
|
cd source/_scripts/_python/manpages
|
||||||
|
man.bat clean-man
|
||||||
goto end
|
goto end
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
breathe==4.9.1
|
breathe
|
||||||
sphinx==1.8
|
sphinx
|
||||||
docutils==0.14
|
docutils
|
||||||
sphinx_rtd_theme
|
sphinx_rtd_theme
|
||||||
sphinx-intl==2.0.0
|
sphinx-intl
|
||||||
sphinx-sitemap==1.0.2
|
sphinx-sitemap
|
||||||
Jinja2==2.10.1
|
Jinja2
|
||||||
GitPython==3.0.8
|
GitPython
|
||||||
sphinx-tabs
|
sphinx-tabs>1
|
||||||
|
sphinx-copybutton
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
from distutils.core import setup
|
||||||
|
|
||||||
|
setup(name='Clear Linux Documentation',
|
||||||
|
version='',
|
||||||
|
description='Sphinx build of Clear Linux documentation',
|
||||||
|
author='Many',
|
||||||
|
author_email='kevin.putnam@intel.com',
|
||||||
|
url='https://github.com/clearlinux/clear-linux-documentation/',
|
||||||
|
)
|
||||||
@@ -198,6 +198,8 @@ Visual Studio Code
|
|||||||
|
|
||||||
|
|
|
|
||||||
|
|
||||||
|
.. _licensing_restrict:
|
||||||
|
|
||||||
Is FFmpeg available?
|
Is FFmpeg available?
|
||||||
====================
|
====================
|
||||||
|
|
||||||
@@ -224,8 +226,8 @@ ZFS is not available with |CL| because of copyright and licensing
|
|||||||
complexities. BTRFS is an alternative filesystem that is available in |CL|
|
complexities. BTRFS is an alternative filesystem that is available in |CL|
|
||||||
natively.
|
natively.
|
||||||
|
|
||||||
A user on GitHub notes that the `ZFS kernel module can be compiled, built, and
|
A community contributed tutorial has been shared on how to :ref:`manually
|
||||||
installed manually <https://github.com/clearlinux/distribution/issues/631>`_.
|
install ZFS <zfs>`.
|
||||||
|
|
||||||
|
|
|
|
||||||
|
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ help:
|
|||||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||||
@echo " py to trigger an update of bundle content"
|
@echo " py to trigger an update of bundle content"
|
||||||
|
@echo " man to pull and create manpage rst files in reference section"
|
||||||
|
@echo " clean-man to clean up manpage generation"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(BUILDDIR)/*
|
rm -rf $(BUILDDIR)/*
|
||||||
@@ -71,6 +73,7 @@ htmlzh:
|
|||||||
|
|
||||||
html:
|
html:
|
||||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||||
|
cp _scripts/js/copybutton.js $(BUILDDIR)/html/_static
|
||||||
@echo
|
@echo
|
||||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||||
|
|
||||||
@@ -210,3 +213,9 @@ pseudoxml:
|
|||||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||||
@echo
|
@echo
|
||||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||||
|
|
||||||
|
man:
|
||||||
|
$(MAKE) -C $(SCRIPTDIR)/manpages man
|
||||||
|
|
||||||
|
clean-man:
|
||||||
|
$(MAKE) -C $(SCRIPTDIR)/manpages clean-man
|
||||||
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 194 KiB |
|
After Width: | Height: | Size: 269 KiB |
|
After Width: | Height: | Size: 219 KiB |
|
After Width: | Height: | Size: 202 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 231 KiB |
|
After Width: | Height: | Size: 190 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 224 KiB |
|
After Width: | Height: | Size: 197 KiB |
|
After Width: | Height: | Size: 293 KiB |
|
After Width: | Height: | Size: 296 KiB |
|
After Width: | Height: | Size: 210 KiB |
|
After Width: | Height: | Size: 221 KiB |
|
After Width: | Height: | Size: 223 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 222 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 275 KiB |
|
After Width: | Height: | Size: 308 KiB |
|
After Width: | Height: | Size: 258 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 255 KiB |
|
After Width: | Height: | Size: 232 KiB |
|
After Width: | Height: | Size: 283 KiB |
|
After Width: | Height: | Size: 189 KiB |
|
After Width: | Height: | Size: 172 KiB |
|
After Width: | Height: | Size: 194 KiB |
|
After Width: | Height: | Size: 269 KiB |
|
After Width: | Height: | Size: 191 KiB |
|
After Width: | Height: | Size: 178 KiB |
|
After Width: | Height: | Size: 186 KiB |
|
After Width: | Height: | Size: 202 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 168 KiB |
|
After Width: | Height: | Size: 192 KiB |
|
After Width: | Height: | Size: 224 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 287 KiB |
|
After Width: | Height: | Size: 278 KiB |
|
After Width: | Height: | Size: 185 KiB |
|
After Width: | Height: | Size: 201 KiB |
|
After Width: | Height: | Size: 195 KiB |
|
After Width: | Height: | Size: 191 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
After Width: | Height: | Size: 274 KiB |
|
After Width: | Height: | Size: 249 KiB |
|
After Width: | Height: | Size: 308 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 274 KiB |
|
After Width: | Height: | Size: 227 KiB |
|
After Width: | Height: | Size: 218 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 185 KiB |
|
After Width: | Height: | Size: 32 KiB |
@@ -0,0 +1,25 @@
|
|||||||
|
man:
|
||||||
|
git clone https://github.com/clearlinux/clr-man-pages.git
|
||||||
|
git clone https://github.com/clearlinux/clr-power-tweaks.git
|
||||||
|
git clone https://github.com/clearlinux/clrtrust.git
|
||||||
|
git clone https://github.com/clearlinux/mixer-tools.git
|
||||||
|
git clone https://github.com/clearlinux/swupd-client.git
|
||||||
|
git clone https://github.com/clearlinux/telemetrics-client.git
|
||||||
|
git clone https://github.com/clearlinux/tallow.git
|
||||||
|
git clone https://github.com/clearlinux/micro-config-drive.git
|
||||||
|
python3 manpages.py
|
||||||
|
- mkdir ../../../reference/manpages
|
||||||
|
cp *.rst ../../../reference/manpages
|
||||||
|
|
||||||
|
clean-man:
|
||||||
|
- rm -rf clr-man-pages
|
||||||
|
- rm -rf clr-power-tweaks
|
||||||
|
- rm -rf clrtrust
|
||||||
|
- rm -rf mixer-tools
|
||||||
|
- rm -rf swupd-client
|
||||||
|
- rm -rf telemetrics-client
|
||||||
|
- rm -rf tallow
|
||||||
|
- rm -rf micro-config-drive
|
||||||
|
- rm *.rst
|
||||||
|
- rm ../../../reference/manpages/*.rst
|
||||||
|
- rm ../../../reference/man-pages.rst
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
@ECHO OFF
|
||||||
|
|
||||||
|
REM Command file for building man pages
|
||||||
|
|
||||||
|
if "%1" == "man" (
|
||||||
|
git clone https://github.com/clearlinux/clr-man-pages.git
|
||||||
|
git clone https://github.com/clearlinux/clr-power-tweaks.git
|
||||||
|
git clone https://github.com/clearlinux/clrtrust.git
|
||||||
|
git clone https://github.com/clearlinux/mixer-tools.git
|
||||||
|
git clone https://github.com/clearlinux/swupd-client.git
|
||||||
|
git clone https://github.com/clearlinux/telemetrics-client.git
|
||||||
|
git clone https://github.com/clearlinux/tallow.git
|
||||||
|
git clone https://github.com/clearlinux/micro-config-drive.git
|
||||||
|
python.exe manpages.py
|
||||||
|
mkdir ..\..\..\reference\manpages
|
||||||
|
copy *.rst ..\..\..\reference\manpages
|
||||||
|
goto end
|
||||||
|
)
|
||||||
|
|
||||||
|
if "%1" == "clean-man" (
|
||||||
|
rmdir /q /s clr-man-pages
|
||||||
|
rmdir /q /s clr-power-tweaks
|
||||||
|
rmdir /q /s clrtrust
|
||||||
|
rmdir /q /s mixer-tools
|
||||||
|
rmdir /q /s swupd-client
|
||||||
|
rmdir /q /s telemetrics-client
|
||||||
|
rmdir /q /s tallow
|
||||||
|
rmdir /q /s micro-config-drive
|
||||||
|
del *.rst
|
||||||
|
del ..\..\..\reference\manpages\*.rst
|
||||||
|
del ..\..\..\reference\man-pages.rst
|
||||||
|
goto end
|
||||||
|
)
|
||||||
|
|
||||||
|
:end
|
||||||
@@ -0,0 +1,196 @@
|
|||||||
|
#
|
||||||
|
# manpages.py
|
||||||
|
#
|
||||||
|
# maintainer: intelkevinputnam
|
||||||
|
#
|
||||||
|
# usage: python3 manpages.py
|
||||||
|
#
|
||||||
|
# dependencies: 1. clone of Clear Linux documentation https://github.com/clearlinux/clear-linux-documentation
|
||||||
|
# 2. Makefile or make.bat to create directories and clone repositories (``make man`` to generate. ``make clean-man`` to clean up.)
|
||||||
|
#
|
||||||
|
# This script does 4 things:
|
||||||
|
#
|
||||||
|
# 1. Find and move reStructuredText versions of man pages (looks for manName.sectionNumber.fileExtension: mixer.1.rst) to reference/manpages directory of Clear Linux docs.
|
||||||
|
# 2. Massage markdown and reStructuredText man pages into a normalized format.
|
||||||
|
# 3. Add cross reference links wherever man pages reference each other.
|
||||||
|
# 4. Create manpages.rst in reference directory (already included in toctree of reference/index.rst)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
from os import listdir
|
||||||
|
from os.path import join, isfile
|
||||||
|
from shutil import copyfile
|
||||||
|
|
||||||
|
paths = ["clr-man-pages","clr-power-tweaks/man","clrtrust/man","micro-config-drive/docs/","mixer-tools/docs","swupd-client/docs","tallow/man","telemetrics-client/docs/man"]
|
||||||
|
pathToRefSection = "../../../reference/"
|
||||||
|
manPageRegex = '.[0-9]+.rst'
|
||||||
|
mdManPageRegex = '.[0-9]+.md'
|
||||||
|
mdBoldItalicRegex = '\\*\\*\\`[a-z-._]+\\`\\*\\*'
|
||||||
|
manFiles = []
|
||||||
|
manGroups = {}
|
||||||
|
manNamePerms = {}
|
||||||
|
seeAlsoRefs = {}
|
||||||
|
gitHubGroup = "https://github.com/clearlinux/"
|
||||||
|
TOC = "\n.. contents::\n :local:\n"
|
||||||
|
manPageRest = """.. _man-pages:
|
||||||
|
|
||||||
|
Man pages
|
||||||
|
#########
|
||||||
|
|
||||||
|
These pages are generated from `Clear Linux\\* tool
|
||||||
|
repositories <https://github.com/clearlinux>`__. Updated |today|.
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
manTOC = """.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
def getPages(paths):
|
||||||
|
for path in paths:
|
||||||
|
manGroups[path] = []
|
||||||
|
files = listdir(path)
|
||||||
|
for file in files:
|
||||||
|
if file.endswith(".rst"):
|
||||||
|
regex_found = re.search(manPageRegex,file)
|
||||||
|
if regex_found:
|
||||||
|
filePath = join(path,file)
|
||||||
|
copyfile(filePath,file)
|
||||||
|
manFiles.append(file)
|
||||||
|
manGroups[path].append(file)
|
||||||
|
addManNamePermutations(file)
|
||||||
|
elif file.endswith(".md"):
|
||||||
|
regex_found = re.search(mdManPageRegex,file)
|
||||||
|
if regex_found:
|
||||||
|
filePath = join(path,file)
|
||||||
|
rstFileName = processMDFile(file,filePath)
|
||||||
|
manFiles.append(rstFileName)
|
||||||
|
manGroups[path].append(rstFileName)
|
||||||
|
addManNamePermutations(rstFileName)
|
||||||
|
|
||||||
|
def processMDFile(fileName,filePath):
|
||||||
|
manName = fileName.rstrip('.md')
|
||||||
|
manSection = manName.split('.')[-1]
|
||||||
|
manName = manName.rstrip('.' + manSection)
|
||||||
|
lines = []
|
||||||
|
headerInsert = ""
|
||||||
|
with open(filePath,'r') as m:
|
||||||
|
lines = m.readlines()
|
||||||
|
if "SYNOPSIS" in lines[0]:
|
||||||
|
header='='*len(manName)
|
||||||
|
lines.insert(0,"# " + manName + "\n\n:Manual section: "+manSection+"\n\n")
|
||||||
|
index = 0
|
||||||
|
first = True
|
||||||
|
for line in lines:
|
||||||
|
newLine = line.replace("**`","`") #Fix some markdown formatting weirdness that doesn't translate to reST
|
||||||
|
newLine = newLine.replace("`**","`")
|
||||||
|
if newLine.startswith("#") and not newLine.startswith("##"): #Fix if all headers are first level
|
||||||
|
if first:
|
||||||
|
first = False
|
||||||
|
else:
|
||||||
|
newLine = newLine.replace("#","##")
|
||||||
|
if "===" in newLine: #fix rst style header that is actually description in some docs
|
||||||
|
newLine = ""
|
||||||
|
headerInsert = manName + "\n" + '='*len(manName) + "\n\n"
|
||||||
|
lines[index] = newLine
|
||||||
|
index += 1
|
||||||
|
lines.insert(0,headerInsert)
|
||||||
|
|
||||||
|
with open(filePath,'w') as md:
|
||||||
|
md.writelines(lines)
|
||||||
|
rstFilePath = filePath.replace(".md",".rst")
|
||||||
|
rstFileName = fileName.replace(".md",".rst")
|
||||||
|
|
||||||
|
command = "pandoc " + filePath + " -o " + rstFilePath
|
||||||
|
subprocess.run(command, shell=True)
|
||||||
|
if isfile(rstFilePath):
|
||||||
|
copyfile(rstFilePath,rstFileName)
|
||||||
|
return rstFileName
|
||||||
|
|
||||||
|
def addManNamePermutations(fileName): #Based on all the syntactical permutations of references to man pages in the documents.
|
||||||
|
(manName,subsection) = getNameAndSubsection(fileName)
|
||||||
|
manNames = []
|
||||||
|
manNames.append("``" + manName + "``\\(" + subsection +")") # ``mixer.init``\(1)
|
||||||
|
manNames.append("``" + manName + "``\\ (" + subsection +")") # ``mixer.init``\ (1)
|
||||||
|
manNames.append("**``" + manName + "(" + subsection + ")``**") # **`mixer.init(1)`**
|
||||||
|
manNames.append("``" + manName + "(" + subsection + ")``") # ``mixer.init(1)``
|
||||||
|
manNames.append("**" + manName + "(" + subsection + ")**") # **mixer.init(1)**
|
||||||
|
manNames.append("`" + manName + "(" + subsection + ")`") # `mixer.init(1)`
|
||||||
|
manNamePerms[(manName,subsection)] = manNames
|
||||||
|
|
||||||
|
def getNameAndSubsection(manFileName):
|
||||||
|
manName = manFileName.rstrip('.rst')
|
||||||
|
manSection = manName.split('.')[-1]
|
||||||
|
manName = manName.rstrip('.'+manSection)
|
||||||
|
return (manName,manSection)
|
||||||
|
|
||||||
|
def linkToMan(manName,manSection):
|
||||||
|
return "`" + manName + "(" + manSection + ") <" + manName + "." + manSection + ".html>`__"
|
||||||
|
|
||||||
|
def buildManName(name,section):
|
||||||
|
return name + "(" + section + ")"
|
||||||
|
|
||||||
|
def updateManPages():
|
||||||
|
#makeSeeAlsoReplacements()
|
||||||
|
for file in manFiles:
|
||||||
|
manFile = ""
|
||||||
|
with open(file,'r',encoding="utf8") as f:
|
||||||
|
manFile = f.read()
|
||||||
|
#manFile = addTOC(manFile,file) # Not convinced adding TOC adds value.
|
||||||
|
#
|
||||||
|
# Add linked cross referencing for all manpages discovered.
|
||||||
|
# 1. the manNamePerms dictionary is created once all of the man page source files are discovered
|
||||||
|
# 2. Each document is checked for each permutation.
|
||||||
|
# 3. When a permuation is found it is replaced with a normalized version
|
||||||
|
# 4. Once normalized it is turned into a reStructuredText link (def linkToMan)
|
||||||
|
#
|
||||||
|
for nameAndSection, listOfPerms in manNamePerms.items():
|
||||||
|
for perm in listOfPerms:
|
||||||
|
manFile = manFile.replace(perm,buildManName(nameAndSection[0],nameAndSection[1]))
|
||||||
|
for manName, doNotUse in manNamePerms.items():
|
||||||
|
manFile = manFile.replace(buildManName(manName[0],manName[1]),linkToMan(manName[0],manName[1]))
|
||||||
|
with open(file,'w',encoding="utf8") as w:
|
||||||
|
w.write(manFile)
|
||||||
|
|
||||||
|
def addTOC(manContent,file):
|
||||||
|
# Find the first instance of the manpage Name
|
||||||
|
# Skip the underline of the header
|
||||||
|
# Add a new line
|
||||||
|
# Add contents directive with local modifier
|
||||||
|
# Add a new line
|
||||||
|
manSectionMeta = ":Manual section:"
|
||||||
|
manContentLines = manContent.split('\n')
|
||||||
|
index = 0
|
||||||
|
for line in manContentLines:
|
||||||
|
if manSectionMeta in line:
|
||||||
|
manContentLines.insert(index + 2,TOC)
|
||||||
|
break
|
||||||
|
index += 1
|
||||||
|
output = ""
|
||||||
|
for line in manContentLines:
|
||||||
|
output = output + line + "\n"
|
||||||
|
return output
|
||||||
|
|
||||||
|
def createManpagesRST():
|
||||||
|
filePath = join(pathToRefSection,"man-pages.rst")
|
||||||
|
with open(filePath,'w') as f:
|
||||||
|
manGrouping = manPageRest
|
||||||
|
for path, fileList in manGroups.items():
|
||||||
|
repoName = path.split("/")[0]
|
||||||
|
repoLink = gitHubGroup + repoName
|
||||||
|
repoReST = "`" + repoName + " <" + repoLink + ">`__"
|
||||||
|
manGrouping += repoReST + "\n"
|
||||||
|
manGrouping += "="*len(repoReST) + "\n\n"
|
||||||
|
manGrouping += manTOC
|
||||||
|
for file in fileList:
|
||||||
|
manGrouping += " manpages/" + file + "\n"
|
||||||
|
manGrouping += "\n"
|
||||||
|
f.write(manGrouping)
|
||||||
|
|
||||||
|
getPages(paths)
|
||||||
|
updateManPages()
|
||||||
|
createManpagesRST()
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
// introduces special behavior for ShellSession
|
||||||
|
|
||||||
|
// Localization support
|
||||||
|
const messages = {
|
||||||
|
'en': {
|
||||||
|
'copy': 'Copy',
|
||||||
|
'copy_to_clipboard': 'Copy to clipboard',
|
||||||
|
'copy_success': 'Copied!',
|
||||||
|
'copy_failure': 'Failed to copy',
|
||||||
|
},
|
||||||
|
'es' : {
|
||||||
|
'copy': 'Copiar',
|
||||||
|
'copy_to_clipboard': 'Copiar al portapapeles',
|
||||||
|
'copy_success': '¡Copiado!',
|
||||||
|
'copy_failure': 'Error al copiar',
|
||||||
|
},
|
||||||
|
'de' : {
|
||||||
|
'copy': 'Kopieren',
|
||||||
|
'copy_to_clipboard': 'In die Zwischenablage kopieren',
|
||||||
|
'copy_success': 'Kopiert!',
|
||||||
|
'copy_failure': 'Fehler beim Kopieren',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let locale = 'en'
|
||||||
|
if( document.documentElement.lang !== undefined
|
||||||
|
&& messages[document.documentElement.lang] !== undefined ) {
|
||||||
|
locale = document.documentElement.lang
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set up copy/paste for code blocks
|
||||||
|
*/
|
||||||
|
|
||||||
|
const runWhenDOMLoaded = cb => {
|
||||||
|
if (document.readyState != 'loading') {
|
||||||
|
cb()
|
||||||
|
} else if (document.addEventListener) {
|
||||||
|
document.addEventListener('DOMContentLoaded', cb)
|
||||||
|
} else {
|
||||||
|
document.attachEvent('onreadystatechange', function() {
|
||||||
|
if (document.readyState == 'complete') cb()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const codeCellId = index => `codecell${index}`
|
||||||
|
|
||||||
|
// Clears selected text since ClipboardJS will select the text when copying
|
||||||
|
const clearSelection = () => {
|
||||||
|
if (window.getSelection) {
|
||||||
|
window.getSelection().removeAllRanges()
|
||||||
|
} else if (document.selection) {
|
||||||
|
document.selection.empty()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Changes tooltip text for two seconds, then changes it back
|
||||||
|
const temporarilyChangeTooltip = (el, newText) => {
|
||||||
|
const oldText = el.getAttribute('data-tooltip')
|
||||||
|
el.setAttribute('data-tooltip', newText)
|
||||||
|
setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Callback when a copy button is clicked. Will be passed the node that was clicked
|
||||||
|
// should then grab the text and replace pieces of text that shouldn't be used in output
|
||||||
|
var copyTargetText = (trigger) => {
|
||||||
|
var target = document.querySelector(trigger.attributes['data-clipboard-target'].value);
|
||||||
|
var textContent = target.innerText.split('\n');
|
||||||
|
var copybuttonPromptText = '$ '; // Inserted from config
|
||||||
|
var onlyCopyPromptLines = true; // Inserted from config
|
||||||
|
var removePrompts = true; // Inserted from config
|
||||||
|
|
||||||
|
grandParent = target.parentElement.parentElement;
|
||||||
|
blockType = grandParent.classList;
|
||||||
|
if (blockType[0].includes("ShellSession")) {
|
||||||
|
onlyCopyPromptLines = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Text content line filtering based on prompts (if a prompt text is given)
|
||||||
|
if (copybuttonPromptText.length > 0) {
|
||||||
|
// If only copying prompt lines, remove all lines that don't start w/ prompt
|
||||||
|
if (onlyCopyPromptLines) {
|
||||||
|
linesWithPrompt = textContent.filter((line) => {
|
||||||
|
return line.startsWith(copybuttonPromptText) || (line.length == 0); // Keep newlines
|
||||||
|
});
|
||||||
|
// Check to make sure we have at least one non-empty line
|
||||||
|
var nonEmptyLines = linesWithPrompt.filter((line) => {return line.length > 0});
|
||||||
|
// If we detected lines w/ prompt, then overwrite textContent w/ those lines
|
||||||
|
if ((linesWithPrompt.length > 0) && (nonEmptyLines.length > 0)) {
|
||||||
|
textContent = linesWithPrompt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove the starting prompt from any remaining lines
|
||||||
|
if (removePrompts) {
|
||||||
|
textContent.forEach((line, index) => {
|
||||||
|
if (line.startsWith(copybuttonPromptText)) {
|
||||||
|
textContent[index] = line.slice(copybuttonPromptText.length);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
textContent = textContent.join('\n');
|
||||||
|
// Remove a trailing newline to avoid auto-running when pasting
|
||||||
|
if (textContent.endsWith("\n")) {
|
||||||
|
textContent = textContent.slice(0, -1)
|
||||||
|
}
|
||||||
|
return textContent
|
||||||
|
}
|
||||||
|
|
||||||
|
const addCopyButtonToCodeCells = () => {
|
||||||
|
// If ClipboardJS hasn't loaded, wait a bit and try again. This
|
||||||
|
// happens because we load ClipboardJS asynchronously.
|
||||||
|
if (window.ClipboardJS === undefined) {
|
||||||
|
setTimeout(addCopyButtonToCodeCells, 250)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add copybuttons to all of our code cells
|
||||||
|
const codeCells = document.querySelectorAll('div.highlight pre')
|
||||||
|
codeCells.forEach((codeCell, index) => {
|
||||||
|
const id = codeCellId(index)
|
||||||
|
codeCell.setAttribute('id', id)
|
||||||
|
const pre_bg = getComputedStyle(codeCell).backgroundColor;
|
||||||
|
|
||||||
|
const clipboardButton = id =>
|
||||||
|
`<a class="copybtn o-tooltip--left" style="background-color: ${pre_bg}" data-tooltip="${messages[locale]['copy']}" data-clipboard-target="#${id}">
|
||||||
|
<img src="${DOCUMENTATION_OPTIONS.URL_ROOT}_static/copy-button.svg" alt="${messages[locale]['copy_to_clipboard']}">
|
||||||
|
</a>`
|
||||||
|
codeCell.insertAdjacentHTML('afterend', clipboardButton(id))
|
||||||
|
})
|
||||||
|
|
||||||
|
// Initialize with a callback so we can modify the text before copy
|
||||||
|
const clipboard = new ClipboardJS('.copybtn', {text: copyTargetText})
|
||||||
|
|
||||||
|
// Update UI with error/success messages
|
||||||
|
clipboard.on('success', event => {
|
||||||
|
clearSelection()
|
||||||
|
temporarilyChangeTooltip(event.trigger, messages[locale]['copy_success'])
|
||||||
|
})
|
||||||
|
|
||||||
|
clipboard.on('error', event => {
|
||||||
|
temporarilyChangeTooltip(event.trigger, messages[locale]['copy_failure'])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
runWhenDOMLoaded(addCopyButtonToCodeCells)
|
||||||
@@ -306,9 +306,9 @@ button:hover a.headerlink:after {
|
|||||||
/*End support for custom Clear Linux header*/
|
/*End support for custom Clear Linux header*/
|
||||||
|
|
||||||
/*Adds a bit of spacing after the last paragraph in a bulleted list*/
|
/*Adds a bit of spacing after the last paragraph in a bulleted list*/
|
||||||
.wy-plain-list-disc li p:last-child, .rst-content .section ul li p:last-child, .rst-content .toctree-wrapper ul li p:last-child, article ul li p:last-child {
|
/*.wy-plain-list-disc li p:last-child, .rst-content .section ul li p:last-child, .rst-content .toctree-wrapper ul li p:last-child, article ul li p:last-child {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
div.admonition ul {
|
div.admonition ul {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
@@ -368,6 +368,15 @@ div.highlight-python .highlight:before{
|
|||||||
white-space: pre;
|
white-space: pre;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.highlight-ShellSession .highlight:before{
|
||||||
|
background: #909090;
|
||||||
|
color: white;
|
||||||
|
content: " Shell ";
|
||||||
|
font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;
|
||||||
|
font-size: 14px;
|
||||||
|
white-space: pre;
|
||||||
|
}
|
||||||
|
|
||||||
div.highlight-console .highlight:before{
|
div.highlight-console .highlight:before{
|
||||||
background: #909090;
|
background: #909090;
|
||||||
color: white;
|
color: white;
|
||||||
@@ -494,6 +503,11 @@ div.linenodiv:before { /*add extra new line to make sure code and line numbers a
|
|||||||
background: white;
|
background: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.column.narrow {
|
||||||
|
width: 300px;
|
||||||
|
height: 450px;
|
||||||
|
}
|
||||||
|
|
||||||
.column.featurecard {
|
.column.featurecard {
|
||||||
background: #CCE9F5;
|
background: #CCE9F5;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
@@ -511,6 +525,12 @@ div.linenodiv:before { /*add extra new line to make sure code and line numbers a
|
|||||||
clear: both;
|
clear: both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.colh3 {
|
||||||
|
font-size: 125%;
|
||||||
|
font-weight: 700;
|
||||||
|
font-family: "Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
.colh2 {
|
.colh2 {
|
||||||
font-size: 150%;
|
font-size: 150%;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|||||||
@@ -3,57 +3,131 @@
|
|||||||
About
|
About
|
||||||
#####
|
#####
|
||||||
|
|
||||||
The |CL| delivers a secure, hardware optimized OS. Its easy updates ensure that
|
|CL-ATTR| does things differently. Our software architecture provides a
|
||||||
software dependencies remain mutually compatible.
|
unique and innovative platform for Linux* developers focused on
|
||||||
|
performance and security for compute, server, and the cloud.
|
||||||
|CL| does this via custom infrastructure components and process innovations.
|
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
What is |CL|?
|
||||||
|
*************
|
||||||
|
|
||||||
For detailed information on these topics, refer to the :ref:`cl-guides` guides.
|
|CL| is an open source, rolling-release Linux distribution, optimized for
|
||||||
|
performance and security from the cloud to the Edge. Designed from the ground up,
|
||||||
|
|CL| provides an industry blueprint on how to incorporate Intel® architecture
|
||||||
|
features for a modern, modular Linux OS. |CL| is not based on any other Linux
|
||||||
|
distro.
|
||||||
|
|
||||||
|
What |CL| isn't?
|
||||||
|
****************
|
||||||
|
|
||||||
|
|CL| is not intended to be a general-purpose Linux distribution, suitable
|
||||||
|
for novice end-users. While we ship common applications, our purpose isn’t
|
||||||
|
to make an OS for routine desktop tasks and provide immunity from all
|
||||||
|
security threats in all situations. Our unique focus means that what we consider *essential* use cases, *optional* use cases, or even *unsupported* use cases, differs from other Linux distros. See our :ref:`target audience <target-audience>` below.
|
||||||
|
|
||||||
|
Is |CL| completely Open Source?
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
|CL| aims to be completely open source. Our project `source code`_ and
|
||||||
|
`packages source code`_ are available on GitHub\*. When considering projects
|
||||||
|
for inclusion, we check that they are in active development and are well
|
||||||
|
maintained. We have a very strict requirement for not accepting proprietary
|
||||||
|
packages and non-open source components. For example, many Linux distros
|
||||||
|
may not be able to include certain media codecs due to
|
||||||
|
:ref:`licensing restrictions <licensing_restrict>`, but manual installation and `third party alternatives`_ are available.
|
||||||
|
|
||||||
|
.. _target-audience:
|
||||||
|
|
||||||
|
Who is the target audience?
|
||||||
|
***************************
|
||||||
|
|
||||||
|
|CL| mainly targets professionals in IT, DevOps, Cloud/Container deployments, and :abbr:`AI (Artificial Intelligence)`.
|
||||||
|
|
||||||
|
Rather than making a standard Linux distribution, the |CL| team decided to
|
||||||
|
build a unique Linux distro. Developing a distro in house allows us to experiment and iterate faster, which means we continually optimize performance and deliver security patches, :ref:`several times per week <release-cadence>`. Yet our experiments are only valuable if our software architecture gives you the freedom to innovate, too. To improve manageability, |CL| employs a :ref:`stateless` design, separating user and system management.
|
||||||
|
|
||||||
|
We leverage the pool of knowledge and skills at Intel to drive improvements to |CL|.
|
||||||
|
|
||||||
|
Intel has worked with the Linux community and other distros for many years.
|
||||||
|
Understanding what it takes to integrate features in our own Linux distro
|
||||||
|
helps us collaborate with other distro owners and submit enhancements to
|
||||||
|
upstream. We demonstrate the value of our distro by offering users the same
|
||||||
|
tools we use. For example, :ref:`mixer`, a tool unique to |CL|, allows users
|
||||||
|
to build custom derivatives and act as their own :abbr:`OSV (Operating System
|
||||||
|
Vendor)`.
|
||||||
|
|
||||||
|
For more details on |CL| features, visit our :ref:`cl-guides` guides.
|
||||||
|
|
||||||
|
How does |CL| address security?
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
Several :ref:`security features <security>` are designed to work
|
||||||
|
out-of-the-box, yet they're not intended to be intrusive. We focus on
|
||||||
|
*essential* use cases and ignore *unwanted* or *unsupported* use cases.
|
||||||
|
For example, while |CL| does not enable antivirus by default, we provide a
|
||||||
|
bundle for it (``clamav``). We leave antivirus configuration to our users.
|
||||||
|
In addition, firewalls are less important if the OS doesn’t expose services
|
||||||
|
to the outside by default. In |CL|, we enforce this strategy by disabling
|
||||||
|
network services by default - e.g. ``mariadb`` listens on a UNIX socket;
|
||||||
|
``nginx`` won’t listen at all; and other services similarly are restricted
|
||||||
|
from being accessed over the network. This strategy alone makes firewall
|
||||||
|
software much less urgent--there simply isn’t anything that a firewall could
|
||||||
|
easily block.
|
||||||
|
|
||||||
|
What’s the thinking around Server vs. Desktop?
|
||||||
|
**********************************************
|
||||||
|
|
||||||
|
|CL| focuses on performance for server and cloud use-cases first because
|
||||||
|
many design decisions associated with them are applicable to other
|
||||||
|
use-cases, such as IoT and the desktop client. While our initial focus was
|
||||||
|
on the command line, we realized that many people valued the ease-of-use of
|
||||||
|
a desktop environment. Whereas in the past we tried to accommodate those
|
||||||
|
interested in a desktop version, we were forced to confront clear limits as
|
||||||
|
to how we could meet this need. |CL| minimizes the customizations and patches in support of the desktop and provides a generic GNOME implementation. Other window managers or desktops are available; however, testing in |CL| is focused on GNOME.
|
||||||
|
|
||||||
|
What makes |CL| different?
|
||||||
|
**************************
|
||||||
|
|
||||||
|
.. _release-cadence:
|
||||||
|
|
||||||
Release Cadence
|
Release Cadence
|
||||||
***************
|
===============
|
||||||
|
|
||||||
|CL| updates are based on a rolling release that can occur daily, up to a few
|
|CL| updates are based on a rolling release that can occur daily, up to a few
|
||||||
times per week. Each release has a unique version number that
|
times per week. Each release has a unique version number that identifies
|
||||||
identifies every component in the OS from kernel, to driver, to tool, to GUI
|
every component in the OS from kernel, to driver, to tool, to GUI
|
||||||
application. Most components are included in entities called *bundles*.
|
application. Most components are included in entities called :ref:`bundles<bundles>`.
|
||||||
|
|
||||||
Updates
|
Updates
|
||||||
*******
|
=======
|
||||||
|
|
||||||
By default, |CL| automatically checks for updates, ensuring that the latest
|
By default, |CL| automatically checks for updates, ensuring the latest
|
||||||
performance and security fixes are installed as soon as they are available.
|
performance and security fixes are installed as soon as they are available.
|
||||||
:ref:`swupd-guide` is the custom tool designed to manage updates and bundles.
|
|CL| stays in lockstep with upstream for current security upgrades and is
|
||||||
|
designed to rapidly deliver security mitigations to customers.
|
||||||
|CL| is :ref:`stateless` to make sure that system components can be updated
|
:ref:`swupd-guide` is designed to manage updates and bundles.
|
||||||
without impacting user settings.
|
|
||||||
|
|
||||||
|
|
||||||
Ease of Use
|
Ease of Use
|
||||||
***********
|
===========
|
||||||
|
|
||||||
|CL| makes it easier to manage a number of difficult problems.
|
|CL| makes it easier to manage a number of difficult problems.
|
||||||
|
|
||||||
* :ref:`autoproxy` makes it possible for |CL| tools to operate in some proxy
|
* :ref:`autoproxy` makes it possible for |CL| tools to operate in some proxy
|
||||||
environments without needing to be configured.
|
environments without needing to be configured.
|
||||||
|
|
||||||
* Being :ref:`stateless` means that configuration settings are easier to manage
|
* :ref:`stateless` means that configuration settings are easier to manage
|
||||||
and remain untouched when system software is updated.
|
and remain untouched when system software is updated.
|
||||||
|
|
||||||
* :ref:`swupd-guide` simplifies managing software and maintaining compatibility.
|
* :ref:`swupd-guide` simplifies managing software and maintaining
|
||||||
|
compatibility.
|
||||||
|
|
||||||
Custom Derivatives
|
Custom Derivatives
|
||||||
******************
|
==================
|
||||||
|
|
||||||
The same tools used to build the |CL| are available *in* the OS. These tools can
|
The same tools used to build the |CL| are available *in* the OS. These tools can be used to create a custom distribution that continues to benefit from upstream rolling releases.
|
||||||
be used to create a custom distribution that continues to benefit from upstream
|
|
||||||
rolling releases.
|
|
||||||
|
|
||||||
.. figure:: /_figures/about/clear-lifecycle.png
|
.. figure:: /_figures/about/clear-lifecycle.png
|
||||||
:scale: 75%
|
:scale: 75%
|
||||||
@@ -66,10 +140,7 @@ Create
|
|||||||
======
|
======
|
||||||
|
|
||||||
To create a custom distribution you need to understand how to use the
|
To create a custom distribution you need to understand how to use the
|
||||||
:ref:`autospec` and :ref:`mixer` tools.
|
:ref:`autospec` and :ref:`mixer` tools. Additional training materials are available in the `how-to-clear`_ GitHub project to help you get started with |CL| tools.
|
||||||
|
|
||||||
Additional training materials are available in the `how-to-clear`_ GitHub\*
|
|
||||||
project to help you get started with |CL| tools.
|
|
||||||
|
|
||||||
Deploy
|
Deploy
|
||||||
======
|
======
|
||||||
@@ -82,4 +153,159 @@ Administrate
|
|||||||
|CL| provides a :ref:`telem-guide` solution for collecting useful information
|
|CL| provides a :ref:`telem-guide` solution for collecting useful information
|
||||||
about a deployment, as well as :ref:`debug` capabilities.
|
about a deployment, as well as :ref:`debug` capabilities.
|
||||||
|
|
||||||
|
Why create new components rather than modifying existing projects?
|
||||||
|
******************************************************************
|
||||||
|
|
||||||
|
One question that's often asked: “Why did you develop your own solution
|
||||||
|
instead of using <XYZ>?” (e.g. `swupd post`_). We do evaluate existing
|
||||||
|
projects for inclusion in |CL|, yet there are cases where our unique
|
||||||
|
architecture and components would require too much customization to use
|
||||||
|
off-the-shelf projects. In other situations, we may feel that using a new
|
||||||
|
language to develop the component would give us a performance advantage,
|
||||||
|
ease code development and maintenance, and grow the skills of our engineers
|
||||||
|
on new and upcoming programming languages. And yes, sometimes there are
|
||||||
|
personal biases for and against some projects by the architects and
|
||||||
|
engineers. We tend to move fast, and sometimes it’s easier to live with
|
||||||
|
suboptimal choices until we have the time or incentive to re-architect them
|
||||||
|
properly.
|
||||||
|
|
||||||
|
Which Components are used in Clear Linux?
|
||||||
|
*****************************************
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 33,33,33
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Component
|
||||||
|
- Enabled in OS/Bundle
|
||||||
|
- Optional
|
||||||
|
|
||||||
|
* - OS Installer
|
||||||
|
- `Clear Linux installer`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Bootloader
|
||||||
|
- `systemd-boot`_ (UEFI) / `syslinux`_ (Legacy)
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Boot Manager
|
||||||
|
- `Clear Linux Boot Manager`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Configuration initialization and management
|
||||||
|
- *NA*
|
||||||
|
- `micro-config-drive`_ (minimal cloud-init), Ansible
|
||||||
|
|
||||||
|
* - Software component installer, manager, updater
|
||||||
|
- `swupd`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Software bundle generator -
|
||||||
|
- `mixer`_ and `Clear Linux Distro Factory`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Software package builder
|
||||||
|
- `autospec`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Software debugging
|
||||||
|
- *NA*
|
||||||
|
- `clr-debug-info`_
|
||||||
|
|
||||||
|
* - Unified TLS Trust Store Management
|
||||||
|
- `clrtrust`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - System and software telemetry
|
||||||
|
- *NA*
|
||||||
|
- `Telemetrics`_ (disabled by default)
|
||||||
|
|
||||||
|
* - File system
|
||||||
|
- `EXT4`_ (default for rootfs), `VFAT`_, `EXT2 and EXT3`_, `F2FS`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Disk encryption
|
||||||
|
- *NA*
|
||||||
|
- `LUKS`_
|
||||||
|
|
||||||
|
* - System /Service manager
|
||||||
|
- `systemd`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Display manager
|
||||||
|
- `GNOME`_
|
||||||
|
- ``KDE``, ``Xfce``, ``lightdm``, ``sddm`` (see `Clear Linux store`_)
|
||||||
|
|
||||||
|
* - Display services (Desktop installed)
|
||||||
|
- `X.Org`_
|
||||||
|
- `Wayland`_ compositor
|
||||||
|
|
||||||
|
* - Network services
|
||||||
|
- `NetworkManager`_ by default, `systemd-networkd`_ See Note below.
|
||||||
|
-
|
||||||
|
|
||||||
|
* - SSH Port scanning blocker
|
||||||
|
- `Tallow`_
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Firewall
|
||||||
|
- *NA*
|
||||||
|
- iptables and `firewalld`_
|
||||||
|
|
||||||
|
* - Antivirus
|
||||||
|
- *NA*
|
||||||
|
- `ClamAV*`_
|
||||||
|
|
||||||
|
* - Web browser
|
||||||
|
- `Lynx`_ or `links`_ for text environments, `Firefox*`_ for GUI
|
||||||
|
-
|
||||||
|
|
||||||
|
* - Additional Software
|
||||||
|
- `Supplied Bundles`_
|
||||||
|
- Flatpak, 3rd-party software bundles
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The |CL| OS images targeted for cloud deployments continue to use
|
||||||
|
``systemd-networkd`` to manage network connections. In earlier |CL|,
|
||||||
|
``systemd-networkd`` was used to manage Ethernet interfaces and NetworkManager was used for wireless interfaces.
|
||||||
|
|
||||||
|
|
||||||
|
*Intel and the Intel logo are trademarks of Intel Corporation or its subsidiaries.*
|
||||||
|
|
||||||
|
.. _third party alternatives: https://community.clearlinux.org/t/about-the-3rd-party-sw-category/4072
|
||||||
.. _how-to-clear: https://github.com/clearlinux/how-to-clear
|
.. _how-to-clear: https://github.com/clearlinux/how-to-clear
|
||||||
|
.. _Clear Linux store: https://clearlinux.org/software
|
||||||
|
.. _source code: https://github.com/clearlinux
|
||||||
|
.. _swupd post: https://community.clearlinux.org/t/why-does-clearlinux-use-swupd-and-not-apt-deb-rpm/
|
||||||
|
.. _swupd: https://github.com/clearlinux/swupd-client
|
||||||
|
.. _Clear Linux installer: https://github.com/clearlinux/clr-installer/
|
||||||
|
.. _systemd-boot: https://www.freedesktop.org/software/systemd/man/systemd-boot.html
|
||||||
|
.. _syslinux: https://wiki.syslinux.org/wiki/index.php?title=The_Syslinux_Project
|
||||||
|
.. _Clear Linux Boot Manager: https://github.com/clearlinux/clr-boot-manager
|
||||||
|
.. _mixer: https://github.com/clearlinux/mixer-tools
|
||||||
|
.. _Clear Linux Distro Factory: https://github.com/clearlinux/clr-distro-factory
|
||||||
|
.. _autospec: https://github.com/clearlinux/common
|
||||||
|
.. _clr-debug-info: https://github.com/clearlinux/clr-debug-info
|
||||||
|
.. _clrtrust: https://github.com/clearlinux/clrtrust
|
||||||
|
.. _EXT4: https://ext4.wiki.kernel.org/index.php/Main_Page
|
||||||
|
.. _VFAT: https://www.kernel.org/doc/html/latest/filesystems/vfat.html
|
||||||
|
.. _EXT2 and EXT3: https://ext4.wiki.kernel.org/index.php/Main_Page
|
||||||
|
.. _F2FS: https://www.kernel.org/doc/Documentation/filesystems/f2fs.txt
|
||||||
|
.. _LUKS: https://gitlab.com/cryptsetup/cryptsetup/
|
||||||
|
.. _systemd: https://www.freedesktop.org/wiki/Software/systemd/
|
||||||
|
.. _GNOME: https://www.gnome.org/
|
||||||
|
.. _X.Org: https://www.x.org/
|
||||||
|
.. _Wayland: https://wayland.freedesktop.org/
|
||||||
|
.. _NetworkManager: https://wiki.gnome.org/Projects/NetworkManager
|
||||||
|
.. _systemd-networkd: https://www.freedesktop.org/software/systemd/man/systemd.network.html
|
||||||
|
.. _Tallow: https://github.com/clearlinux/tallow
|
||||||
|
.. _firewalld: https://docs.01.org/clearlinux/latest/guides/network/firewall.html#firewalld
|
||||||
|
.. _ClamAV*: https://www.clamav.net/
|
||||||
|
.. _Lynx: https://lynx.invisible-island.net/
|
||||||
|
.. _links: http://links.twibright.com/
|
||||||
|
.. _Firefox*: https://www.mozilla.org/en-US/firefox/
|
||||||
|
.. _Supplied Bundles: https://clearlinux.org/software
|
||||||
|
.. _micro-config-drive: https://github.com/clearlinux/micro-config-drive
|
||||||
|
.. _Telemetrics: https://github.com/clearlinux/telemetrics-backend
|
||||||
|
.. _packages source code: https://github.com/clearlinux-pkgs/
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ There are multiple ways to help improve our documentation:
|
|||||||
repository.
|
repository.
|
||||||
* `Log an issue`_: Enter an issue in the documentation repository for
|
* `Log an issue`_: Enter an issue in the documentation repository for
|
||||||
minor issues such as typos.
|
minor issues such as typos.
|
||||||
* `Make a suggestion`_: Send your documentation suggestion to the mailing list.
|
* `Make a suggestion`_: Send your documentation suggestion to the dev email inbox.
|
||||||
* Test documentation: Step through our guides and tutorials to verify the
|
* Test documentation: Step through our guides and tutorials to verify the
|
||||||
instructions. `Log an issue`_ or `submit a pull request`_ with your findings.
|
instructions. `Log an issue`_ or `submit a pull request`_ with your findings.
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ Contribution guidelines
|
|||||||
***********************
|
***********************
|
||||||
|
|
||||||
The |CL| documentation is written using reStructuredText. Use our guidelines
|
The |CL| documentation is written using reStructuredText. Use our guidelines
|
||||||
and best practices to write consistent, readable documentation.
|
and best practices to write consistent, readable documentation. If you're writing a tutorial, review our skill levels to better target a user group.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
@@ -64,7 +64,7 @@ We use the following references for grammar, style, and formatting:
|
|||||||
|
|
||||||
|
|
||||||
.. _`code of conduct`: https://clearlinux.org/community/code-of-conduct
|
.. _`code of conduct`: https://clearlinux.org/community/code-of-conduct
|
||||||
.. _Make a suggestion: https://lists.clearlinux.org/postorius/lists/dev.lists.clearlinux.org/
|
.. _Make a suggestion: mailto:dev@clearlinux.discoursemail.com
|
||||||
.. _GitHub flow: https://guides.github.com/introduction/flow/
|
.. _GitHub flow: https://guides.github.com/introduction/flow/
|
||||||
.. _Log an issue: https://github.com/clearlinux/clear-linux-documentation/issues
|
.. _Log an issue: https://github.com/clearlinux/clear-linux-documentation/issues
|
||||||
.. _Contribute via GitHub: https://github.com/clearlinux/clear-linux-documentation
|
.. _Contribute via GitHub: https://github.com/clearlinux/clear-linux-documentation
|
||||||
|
|||||||
@@ -15,6 +15,9 @@
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import shlex
|
import shlex
|
||||||
|
#support for modified code block
|
||||||
|
from pygments.lexers.shell import BashSessionLexer
|
||||||
|
from sphinx.highlighting import lexers
|
||||||
|
|
||||||
# If extensions (or modules to document with autodoc) are in another directory,
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
# add these directories to sys.path here. If the directory is relative to the
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
@@ -26,6 +29,17 @@ import shlex
|
|||||||
# If your documentation needs a minimal Sphinx version, state it here.
|
# If your documentation needs a minimal Sphinx version, state it here.
|
||||||
#needs_sphinx = '1.0'
|
#needs_sphinx = '1.0'
|
||||||
|
|
||||||
|
#############
|
||||||
|
#
|
||||||
|
# Add a special lexer to add a class to console lexer
|
||||||
|
#
|
||||||
|
#############
|
||||||
|
|
||||||
|
class copyAllConsole (BashSessionLexer):
|
||||||
|
name = 'ShellSession'
|
||||||
|
|
||||||
|
lexers['ShellSession'] = copyAllConsole(startinLine=True)
|
||||||
|
|
||||||
# Add any Sphinx extension module names here, as strings. They can be
|
# Add any Sphinx extension module names here, as strings. They can be
|
||||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
# ones.
|
# ones.
|
||||||
@@ -34,7 +48,8 @@ import shlex
|
|||||||
#]
|
#]
|
||||||
|
|
||||||
extensions = [
|
extensions = [
|
||||||
'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx_sitemap', 'sphinx_tabs.tabs'
|
'sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx_sitemap',
|
||||||
|
'sphinx_tabs.tabs', 'sphinx_copybutton'
|
||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
@@ -54,7 +69,7 @@ master_doc = 'index'
|
|||||||
# General information about the project.
|
# General information about the project.
|
||||||
#project = u'Clear Linux* project'
|
#project = u'Clear Linux* project'
|
||||||
project = u'Clear Linux* Project Docs'
|
project = u'Clear Linux* Project Docs'
|
||||||
copyright = u'2020.'
|
copyright = u'2022 Intel Corporation. All Rights Reserved.'
|
||||||
author = u'many'
|
author = u'many'
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
@@ -71,7 +86,7 @@ author = u'many'
|
|||||||
#
|
#
|
||||||
# This is also used if you do content translation via gettext catalogs.
|
# This is also used if you do content translation via gettext catalogs.
|
||||||
# Usually you set "language" from the command line for these cases.
|
# Usually you set "language" from the command line for these cases.
|
||||||
language = None
|
language = 'en'
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
# non-false value, then it is used:
|
# non-false value, then it is used:
|
||||||
@@ -81,7 +96,7 @@ language = None
|
|||||||
|
|
||||||
# List of patterns, relative to source directory, that match files and
|
# List of patterns, relative to source directory, that match files and
|
||||||
# directories to ignore when looking for source files.
|
# directories to ignore when looking for source files.
|
||||||
exclude_patterns = ['_build','_themes']
|
exclude_patterns = ['_build','_themes','.tox','_scripts']
|
||||||
|
|
||||||
# The reST default role (used for this markup: `text`) to use for all
|
# The reST default role (used for this markup: `text`) to use for all
|
||||||
# documents.
|
# documents.
|
||||||
@@ -127,7 +142,8 @@ version = current_version = "latest"
|
|||||||
# further. For a list of options available for each theme, see the
|
# further. For a list of options available for each theme, see the
|
||||||
# documentation.
|
# documentation.
|
||||||
html_theme_options = {
|
html_theme_options = {
|
||||||
'canonical_url': 'docs.01.org/clearlinux/',
|
# 'canonical_url': 'docs.01.org/clearlinux/', # remove old url - mv
|
||||||
|
'canonical_url': 'clearlinux.github.io/clear-linux-documentation/',
|
||||||
'style_nav_header_background': '#007ab2',
|
'style_nav_header_background': '#007ab2',
|
||||||
'navigation_depth': 4,
|
'navigation_depth': 4,
|
||||||
'display_version': False,
|
'display_version': False,
|
||||||
@@ -143,12 +159,12 @@ html_context = {
|
|||||||
"github_version": "master", # Version
|
"github_version": "master", # Version
|
||||||
"conf_py_path": "/source/", # Path in the checkout to the docs root
|
"conf_py_path": "/source/", # Path in the checkout to the docs root
|
||||||
"current_version": current_version,
|
"current_version": current_version,
|
||||||
"languages": ( ("English", "/clearlinux/latest"),
|
"languages": ( ("English", "/clear-linux-documentation"),
|
||||||
("简体中文 (Simplified Chinese)", "/clearlinux/latest/zh_CN")
|
("简体中文 (Simplified Chinese)", "/clear-linux-documentation/zh_CN")
|
||||||
#("Chinese", "/clearlinux/latest/zh_CN")
|
#("Chinese", "/clearlinux/latest/zh_CN")
|
||||||
),
|
),
|
||||||
"versions": ( ("latest", "/clearlinux/latest"),
|
"versions": ( ("latest", "/clear-linux-documentation"),
|
||||||
("Future versions", "/clearlinux/latest"))
|
("future versions","/clear-linux-documentation"))
|
||||||
#("L19.01", "/clearlinux/L19.01"))
|
#("L19.01", "/clearlinux/L19.01"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -174,7 +190,8 @@ html_favicon = '_images/favicon.ico'
|
|||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
# relative to this directory. They are copied after the builtin static files,
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
#html_static_path = ['_static']
|
# html_static_path = ['_scripts']
|
||||||
|
copybutton_prompt_text = "$ "
|
||||||
|
|
||||||
# Add any extra paths that contain custom files (such as robots.txt or
|
# Add any extra paths that contain custom files (such as robots.txt or
|
||||||
# .htaccess) here, relative to this directory. These files are copied
|
# .htaccess) here, relative to this directory. These files are copied
|
||||||
@@ -331,5 +348,5 @@ texinfo_documents = [
|
|||||||
locale_dirs = ['../locale/'] # path for lang-specific po files.
|
locale_dirs = ['../locale/'] # path for lang-specific po files.
|
||||||
gettext_compact = False # optional.
|
gettext_compact = False # optional.
|
||||||
|
|
||||||
html_baseurl = 'https://docs.01.org/clearlinux/'
|
html_baseurl = 'https://clearlinux.github.io/clear-linux-documentation'
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ Install |CL-ATTR| from the live desktop
|
|||||||
|
|
||||||
This page explains how to boot the |CL-ATTR| live desktop image, from which
|
This page explains how to boot the |CL-ATTR| live desktop image, from which
|
||||||
you can install |CL| or explore without modifying the host system.
|
you can install |CL| or explore without modifying the host system.
|
||||||
|
Alternatively, use a :ref:`YAML configuration file <install-configfile>`
|
||||||
|
to install |CL|.
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
@@ -61,28 +63,44 @@ these steps.
|
|||||||
|
|
||||||
.. _preliminary-steps-install-desktop-end:
|
.. _preliminary-steps-install-desktop-end:
|
||||||
|
|
||||||
#. Select :guilabel:`Clear Linux OS` in the boot menu, shown in Figure 1.
|
Choose boot menu option
|
||||||
|
=======================
|
||||||
|
|
||||||
.. figure:: /_figures/bare-metal-install-desktop/bare-metal-install-desktop-01.png
|
#. Choose one of the options shown in Figure 1.
|
||||||
:scale: 100%
|
|
||||||
:alt: Clear Linux OS in boot menu
|
|
||||||
|
|
||||||
Figure 1: Clear Linux OS in boot menu
|
a. Follow `Verify integrity of installer media (optional)`_.
|
||||||
|
|
||||||
|
#. Select :guilabel:`Clear Linux OS` in the boot menu.
|
||||||
|
|
||||||
|
.. figure:: /_figures/bare-metal-install-desktop/bare-metal-install-desktop-01.png
|
||||||
|
:scale: 100%
|
||||||
|
:alt: Clear Linux OS in boot menu
|
||||||
|
|
||||||
|
Figure 1: Clear Linux OS in boot menu
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
If no action is taken, the live image starts by default.
|
||||||
|
|
||||||
.. _install-on-target-end:
|
.. _install-on-target-end:
|
||||||
|
|
||||||
Software (optional)
|
Verify integrity of installer media (optional)
|
||||||
===================
|
==============================================
|
||||||
|
|
||||||
Explore |CL| bundles and other software. Double-click the
|
Use :guilabel:`Verify ISO Integrity` to verify the checksum of
|
||||||
:guilabel:`Software` icon from the Activities menu, shown in Figure 2.
|
the image burned to the installer media. The checksum ensures that the ISO
|
||||||
Ensure a network connection exists before launching the Software application.
|
is uncorrupted (see Figure 1). For every ISO generated, the
|
||||||
|
:guilabel:`clr-installer` implants checksums, which are verified during
|
||||||
|
early boot stage as part of :command:`initrd`.
|
||||||
|
|
||||||
.. note::
|
#. Select :guilabel:`Verify ISO Integrity`. The media will be validated.
|
||||||
|
|
||||||
While running the |CL| live desktop image, the Software application is
|
#. If the check passes, it will boot into the live image. Continue in
|
||||||
intended only for exploration. Do not attempt to install applications during
|
the next section.
|
||||||
exploration.
|
|
||||||
|
#. If the check fails, a failure message appears.
|
||||||
|
|
||||||
|
* Restart the process at `Preliminary Steps`_.
|
||||||
|
|
||||||
.. _install-clr-desktop-start:
|
.. _install-clr-desktop-start:
|
||||||
|
|
||||||
@@ -344,8 +362,10 @@ boot partition
|
|||||||
|
|
||||||
#. Select :guilabel:`Add`.
|
#. Select :guilabel:`Add`.
|
||||||
|
|
||||||
swap partition
|
swap partition (optional)
|
||||||
--------------
|
-------------------------
|
||||||
|
|
||||||
|
A swapfile is generated by default during installation. However, if you prefer to create a swap partition, follow the steps below.
|
||||||
|
|
||||||
#. With :guilabel:`unallocated` highlighted, select from the menu
|
#. With :guilabel:`unallocated` highlighted, select from the menu
|
||||||
:menuselection:`Partition --> New`.
|
:menuselection:`Partition --> New`.
|
||||||
@@ -643,19 +663,24 @@ Create partitions per requirements in Table 1.
|
|||||||
- /boot
|
- /boot
|
||||||
- 150MB
|
- 150MB
|
||||||
|
|
||||||
* - ``linux-swap``
|
|
||||||
- swap
|
|
||||||
-
|
|
||||||
- 256MB
|
|
||||||
|
|
||||||
* - ``ext[234], XFS, or f2fs``
|
* - ``ext[234], XFS, or f2fs``
|
||||||
- root
|
- root
|
||||||
- /
|
- /
|
||||||
- *Size depends upon use case/desired bundles.*
|
- *Size depends upon use case/desired bundles.*
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
A 64MiB swapfile is generated by default. The default size may be set
|
||||||
|
manually with the ``--swap-file-size`` command-line option.
|
||||||
|
|
||||||
Troubleshooting
|
Troubleshooting
|
||||||
***************
|
***************
|
||||||
|
|
||||||
:ref:`erase-lvm-troubleshooting-tip`
|
:ref:`erase-lvm-troubleshooting-tip`
|
||||||
|
|
||||||
|
Related topics
|
||||||
|
**************
|
||||||
|
|
||||||
|
* :ref:`install-configfile`
|
||||||
|
|
||||||
.. _Downloads: https://clearlinux.org/downloads
|
.. _Downloads: https://clearlinux.org/downloads
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Install |CL-ATTR| from the live server
|
|||||||
######################################
|
######################################
|
||||||
|
|
||||||
This page explains how to install |CL-ATTR| on bare metal from a bootable USB
|
This page explains how to install |CL-ATTR| on bare metal from a bootable USB
|
||||||
drive using a live server image.
|
drive using a live server image. Alternatively, use a :ref:`YAML configuration file <install-configfile>` to install |CL|.
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
@@ -20,8 +20,8 @@ installation:
|
|||||||
* :ref:`system-requirements`
|
* :ref:`system-requirements`
|
||||||
* :ref:`compatibility-check`
|
* :ref:`compatibility-check`
|
||||||
|
|
||||||
Download the latest |CL| live server image
|
Preliminary steps
|
||||||
******************************************
|
*****************
|
||||||
|
|
||||||
#. Visit our `Downloads`_ page.
|
#. Visit our `Downloads`_ page.
|
||||||
|
|
||||||
@@ -41,7 +41,6 @@ Install |CL| on your target system
|
|||||||
Ensure that your system is configured to boot UEFI. The installation method
|
Ensure that your system is configured to boot UEFI. The installation method
|
||||||
described below requires a wired or wireless Internet connection with DHCP.
|
described below requires a wired or wireless Internet connection with DHCP.
|
||||||
|
|
||||||
|
|
||||||
Follow these steps to install |CL| on the target system:
|
Follow these steps to install |CL| on the target system:
|
||||||
|
|
||||||
#. Insert the USB drive into an available USB slot.
|
#. Insert the USB drive into an available USB slot.
|
||||||
@@ -63,7 +62,14 @@ Follow these steps to install |CL| on the target system:
|
|||||||
|
|
||||||
#. Reboot the target system.
|
#. Reboot the target system.
|
||||||
|
|
||||||
#. This action launches the |CL| installer boot menu, shown in Figure 1.
|
Choose boot menu option
|
||||||
|
=======================
|
||||||
|
|
||||||
|
#. Choose one of the options shown in Figure 1.
|
||||||
|
|
||||||
|
a. Follow `Verify integrity of installer media (optional)`_.
|
||||||
|
|
||||||
|
#. Select :guilabel:`Clear Linux OS` in the boot menu.
|
||||||
|
|
||||||
.. figure:: /_figures/bare-metal-install-server/bare-metal-install-server-01.png
|
.. figure:: /_figures/bare-metal-install-server/bare-metal-install-server-01.png
|
||||||
:scale: 100%
|
:scale: 100%
|
||||||
@@ -71,7 +77,27 @@ Follow these steps to install |CL| on the target system:
|
|||||||
|
|
||||||
Figure 1: Clear Linux OS Installer boot menu
|
Figure 1: Clear Linux OS Installer boot menu
|
||||||
|
|
||||||
#. With :guilabel:`Clear Linux OS` highlighted, select :kbd:`Enter`.
|
.. note::
|
||||||
|
|
||||||
|
If no action is taken, the live image starts by default.
|
||||||
|
|
||||||
|
Verify integrity of installer media (optional)
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
Use :guilabel:`Verify ISO Integrity` to verify the checksum of
|
||||||
|
the image burned to the installer media. The checksum ensures that the ISO
|
||||||
|
is uncorrupted (see Figure 1). For every ISO generated, the
|
||||||
|
:guilabel:`clr-installer` implants checksums, which are verified during
|
||||||
|
early boot stage as part of :command:`initrd`.
|
||||||
|
|
||||||
|
#. Select :guilabel:`Verify ISO Integrity`. The media will be validated.
|
||||||
|
|
||||||
|
#. If the check passes, it will boot into the live image. Continue in
|
||||||
|
the next section.
|
||||||
|
|
||||||
|
#. If the check fails, a failure message appears.
|
||||||
|
|
||||||
|
* Restart the process at `Preliminary Steps`_.
|
||||||
|
|
||||||
.. _install-clr-server-start:
|
.. _install-clr-server-start:
|
||||||
|
|
||||||
@@ -319,8 +345,11 @@ boot partition
|
|||||||
|
|
||||||
Now follow the same process to configure the remaining partitions.
|
Now follow the same process to configure the remaining partitions.
|
||||||
|
|
||||||
swap partition
|
swap partition (optional)
|
||||||
--------------
|
-------------------------
|
||||||
|
|
||||||
|
A swapfile is generated by default during installation. However, if you
|
||||||
|
prefer to create a swap partition, follow the steps below.
|
||||||
|
|
||||||
#. Use the :kbd:`Up/Down` arrow to select free space.
|
#. Use the :kbd:`Up/Down` arrow to select free space.
|
||||||
|
|
||||||
@@ -916,16 +945,16 @@ Create partitions per requirements in Table 1.
|
|||||||
- /boot
|
- /boot
|
||||||
- 150MB
|
- 150MB
|
||||||
|
|
||||||
* - ``linux-swap``
|
|
||||||
- swap
|
|
||||||
-
|
|
||||||
- 256MB
|
|
||||||
|
|
||||||
* - ``ext[234], `XFS`, or f2fs``
|
* - ``ext[234], `XFS`, or f2fs``
|
||||||
- root
|
- root
|
||||||
- /
|
- /
|
||||||
- *Size depends upon use case/desired bundles.*
|
- *Size depends upon use case/desired bundles.*
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
A 64MiB swapfile is generated by default. The default size may be set
|
||||||
|
manually with the ``--swap-file-size`` command-line option.
|
||||||
|
|
||||||
Troubleshooting
|
Troubleshooting
|
||||||
***************
|
***************
|
||||||
|
|
||||||
@@ -1002,4 +1031,12 @@ commands:
|
|||||||
sudo dmsetup remove_all --force
|
sudo dmsetup remove_all --force
|
||||||
sudo partprobe
|
sudo partprobe
|
||||||
|
|
||||||
|
Related topics
|
||||||
|
**************
|
||||||
|
|
||||||
|
* :ref:`install-configfile`
|
||||||
|
|
||||||
|
|
||||||
.. _Downloads: https://clearlinux.org/downloads
|
.. _Downloads: https://clearlinux.org/downloads
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,511 @@
|
|||||||
|
.. _import-clr-aws:
|
||||||
|
|
||||||
|
Import Clear Linux Image and Launch Instance on AWS
|
||||||
|
###################################################
|
||||||
|
|
||||||
|
Clear Linux is available on the AWS marketplace. However, it may not
|
||||||
|
be the latest version because we only update the marketplace on a
|
||||||
|
periodic basis, as often as weekly or but maybe monthly as well.
|
||||||
|
If you want to use the latest release from us or upload your own
|
||||||
|
custom image, follow this guide.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
:local:
|
||||||
|
:depth: 1
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
*************
|
||||||
|
|
||||||
|
* You are familiar with AWS and how to use it
|
||||||
|
|
||||||
|
Download or create a |CL| image for AWS
|
||||||
|
***************************************
|
||||||
|
|
||||||
|
Obtain an AWS |CL| image using one of these methods.
|
||||||
|
|
||||||
|
Download pre-built image
|
||||||
|
========================
|
||||||
|
#. Go to the `Downloads`_ page and download the
|
||||||
|
*Amazon\* Web Services (AWS)* image.
|
||||||
|
|
||||||
|
#. Uncompress it.
|
||||||
|
|
||||||
|
Create a custom image using clr-installer
|
||||||
|
=========================================
|
||||||
|
#. On a |CL| system, open a terminal.
|
||||||
|
|
||||||
|
#. Install the `clr-installer` bundle.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
sudo swupd bundle-add clr-installer
|
||||||
|
|
||||||
|
#. Download a sample `aws.yaml`_ configuration file.
|
||||||
|
|
||||||
|
#. Make changes to the configuration file as needed.
|
||||||
|
See `Installer YAML Syntax`_ for more information on clr-installer
|
||||||
|
configuration YAML syntax.
|
||||||
|
|
||||||
|
#. Download the `AWS image post-install script`_ and make it executable.
|
||||||
|
|
||||||
|
#. Produce an image with clr-installer.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
clr-installer --template $PWD/aws.yaml
|
||||||
|
|
||||||
|
Create an S3 bucket
|
||||||
|
*******************
|
||||||
|
|
||||||
|
#. Log into AWS.
|
||||||
|
|
||||||
|
#. Go to :guilabel:`Services`, :guilabel:`Storage`, and select :guilabel:`S3`.
|
||||||
|
See Figure 1.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-01.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - S3 Management Console
|
||||||
|
|
||||||
|
Figure 1: AWS Services - S3 Management Console
|
||||||
|
|
||||||
|
#. Click :guilabel:`+ Create bucket`.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-02.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Create bucket
|
||||||
|
|
||||||
|
Figure 2: AWS S3 - Create bucket
|
||||||
|
|
||||||
|
#. Set a bucket name and select a region.
|
||||||
|
See Figure 3.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-03.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Create bucket - Set bucket name and region
|
||||||
|
|
||||||
|
Figure 3: AWS S3 - Create bucket - Set bucket name and region
|
||||||
|
|
||||||
|
#. Leave the :guilabel:`Configure options` and :guilabel:`Set permissions`
|
||||||
|
settings as is or configure as desired. See Figure 4 and 5.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-04.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Create bucket - Configure options
|
||||||
|
|
||||||
|
Figure 4: AWS S3 - Create bucket - Configure options
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-05.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Create bucket - Set permissions
|
||||||
|
|
||||||
|
Figure 5: AWS S3 - Create bucket - Set permissions
|
||||||
|
|
||||||
|
#. At the :guilabel:`Review` screen, click :guilabel:`Create bucket`.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-06.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Create bucket - Review
|
||||||
|
|
||||||
|
Figure 6: AWS S3 - Create bucket - Review
|
||||||
|
|
||||||
|
The created bucket should appear. See Figure 7.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-07.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Created bucket
|
||||||
|
|
||||||
|
Figure 7: AWS S3 - Created bucket
|
||||||
|
|
||||||
|
Upload the |CL| image into the bucket
|
||||||
|
*************************************
|
||||||
|
|
||||||
|
#. Click on the bucket.
|
||||||
|
See Figure 8.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-08.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Select bucket
|
||||||
|
|
||||||
|
Figure 8: AWS S3 - Select bucket
|
||||||
|
|
||||||
|
#. Click :guilabel:`Upload`.
|
||||||
|
See Figure 9.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-09.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Upload
|
||||||
|
|
||||||
|
Figure 9: AWS S3 - Upload
|
||||||
|
|
||||||
|
#. Click :guilabel:`Add files` and select the |CL| image file to upload.
|
||||||
|
See Figure 10.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-10.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Add files
|
||||||
|
|
||||||
|
Figure 10: AWS S3 - Add files
|
||||||
|
|
||||||
|
#. Click :guilabel:`Next`. Leave remaining settings as is or set as desired.
|
||||||
|
See Figure 11, Figure 12, and Figure 13.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-11.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Add files
|
||||||
|
|
||||||
|
Figure 11: AWS S3 - Add files
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-12.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Set permissions
|
||||||
|
|
||||||
|
Figure 12: AWS S3 - Set permissions
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-13.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Set properties
|
||||||
|
|
||||||
|
Figure 13: AWS S3 - Set properties
|
||||||
|
|
||||||
|
#. Click :guilabel:`Upload` to upload the image.
|
||||||
|
See Figure 14.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-14.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS S3 - Upload
|
||||||
|
|
||||||
|
Figure 14: AWS S3 - Upload
|
||||||
|
|
||||||
|
Add a user to IAM with AWS_CLI privilege
|
||||||
|
****************************************
|
||||||
|
|
||||||
|
#. Go to :guilabel:`Services`, :guilabel:`Security, Identity, & Compliance`,
|
||||||
|
and select :guilabel:`IAM`.
|
||||||
|
See Figure 15.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-15.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - IAM
|
||||||
|
|
||||||
|
Figure 15: AWS Services - IAM
|
||||||
|
|
||||||
|
#. On the left navigation bar under :guilabel:`Access management`,
|
||||||
|
select :guilabel:`Users`.
|
||||||
|
See Figure 16.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-16.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS AIM - Access management
|
||||||
|
|
||||||
|
Figure 16: AWS AIM - Access management
|
||||||
|
|
||||||
|
#. Click :guilabel:`Add user`.
|
||||||
|
See Figure 17.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-17.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS AIM - Add user
|
||||||
|
|
||||||
|
Figure 17: AWS AIM - Add user
|
||||||
|
|
||||||
|
#. Under the :guilabel:`Set user details` section, enter a user name.
|
||||||
|
See Figure 18.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-18.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS AIM - Enter user name and select access type
|
||||||
|
|
||||||
|
Figure 18: AWS AIM - Enter user name and select access type
|
||||||
|
|
||||||
|
#. Under the :guilabel:`Select AWS access type` section,
|
||||||
|
checkmark :guilabel:`Programmatic access`.
|
||||||
|
See Figure 18.
|
||||||
|
|
||||||
|
#. Click :guilabel:`Next: Permissions`.
|
||||||
|
|
||||||
|
#. Under :guilabel:`Set permissions`, select :guilabel:`Add user to group`.
|
||||||
|
See Figure 19.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-19.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS AIM - Set user permissions
|
||||||
|
|
||||||
|
Figure 19: AWS AIM - Set user permissions
|
||||||
|
|
||||||
|
#. Under :guilabel:`Add user to group`, enter `AWS_CLI` into search window.
|
||||||
|
Checkmark :guilabel:`AWS_CLI`.
|
||||||
|
See Figure 19.
|
||||||
|
|
||||||
|
#. Click :guilabel:`Next: Tags`.
|
||||||
|
|
||||||
|
#. Click :guilabel:`Next: Review`.
|
||||||
|
|
||||||
|
#. Click :guilabel:`Create user`.
|
||||||
|
See Figure 20.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-20.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS AIM - Create user
|
||||||
|
|
||||||
|
Figure 20: AWS AIM - Create user
|
||||||
|
|
||||||
|
#. After the user is successfully added, save the :guilabel:`Access key ID`
|
||||||
|
and the :guilabel:`Secret access key`. These will be used when setting up
|
||||||
|
the AWS CLI tool at a later step.
|
||||||
|
See Figure 21.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-21.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS AIM - Access key ID and secret access key
|
||||||
|
|
||||||
|
Figure 21: AWS AIM - Access key ID and secret access key
|
||||||
|
|
||||||
|
#. Click :guilabel:`Close`.
|
||||||
|
|
||||||
|
Install and configure the AWS CLI tool on your system
|
||||||
|
*****************************************************
|
||||||
|
|
||||||
|
#. To install the tool on |CL|, simply run:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
sudo swupd bundle-add cloud-api
|
||||||
|
|
||||||
|
.. note:
|
||||||
|
|
||||||
|
If you are using a different OS, follow the
|
||||||
|
`Installing the AWS CLI version 2`_ guide.
|
||||||
|
|
||||||
|
#. Configure it with your security credentials, default region,
|
||||||
|
and default output format. See `Configuring the AWS CLI`_ for more information.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
aws configure
|
||||||
|
|
||||||
|
Below is an example (using the security credentials that was created in
|
||||||
|
the previous section):
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
AWS Access Key ID [None]: AKIA5LEGQPQ3EUB3JMS7
|
||||||
|
AWS Secret Access Key [None]: EcvbWpWr+Gp7NhBoVEacwR3EifzN7xTTg8B1PHvO
|
||||||
|
Default region name [None]: us-west-2
|
||||||
|
Default output format [None]: json
|
||||||
|
|
||||||
|
#. Verify your credentials are good.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
aws iam list-access-keys
|
||||||
|
|
||||||
|
If you get something like the example below, then make sure you set your
|
||||||
|
system date and time properly.
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
An error occurred (SignatureDoesNotMatch) when calling the ListAccessKeys operation: Signature expired: 20200305T153154Z is now earlier than 20200305T231847Z (20200305T233347Z - 15 min.)
|
||||||
|
|
||||||
|
Import a snapshot of the |CL| image
|
||||||
|
***********************************
|
||||||
|
|
||||||
|
#. Create a :file:`container.json` with the description of the image to import.
|
||||||
|
Specify the name of the S3 bucket that was created earlier for the
|
||||||
|
`S3Bucket` field and the name of |CL| image that was uploaded to the S3 bucket
|
||||||
|
for the `S3Key`.
|
||||||
|
|
||||||
|
Here's an example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
{
|
||||||
|
"Description": "My Clear Linux AWS 32400 Image",
|
||||||
|
"Format": "raw",
|
||||||
|
"UserBucket": {
|
||||||
|
"S3Bucket": "my-clearlinux-bucket",
|
||||||
|
"S3Key": "clear-32400-aws.img"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#. Import a snapshot of the image.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
aws ec2 import-snapshot \
|
||||||
|
--description "My Clear Linux AWS 32400 Snapshot" \
|
||||||
|
--disk-container file://container.json
|
||||||
|
|
||||||
|
You should get an output similar this example:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
{
|
||||||
|
"Description": "My Clear Linux AWS 32400 Snapshot",
|
||||||
|
"ImportTaskId": "import-snap-00fa9ccd98e9b8378",
|
||||||
|
"SnapshotTaskDetail": {
|
||||||
|
"Description": "My Clear Linux AWS 32400 Snapshot",
|
||||||
|
"DiskImageSize": 0.0,
|
||||||
|
"Format": "RAW",
|
||||||
|
"Progress": "3",
|
||||||
|
"Status": "active",
|
||||||
|
"StatusMessage": "pending",
|
||||||
|
"UserBucket": {
|
||||||
|
"S3Bucket": "my-clearlinux-bucket",
|
||||||
|
"S3Key": "clear-32400-aws.img"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#. Using the `ImportTaskId` from the previous step, check the status
|
||||||
|
of the import. For example:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
snapshot_id=$(aws ec2 describe-import-snapshot-tasks \
|
||||||
|
--import-task-ids "import-snap-00fa9ccd98e9b8378" \
|
||||||
|
| grep SnapshotId | awk -F '"' '{print $4}')
|
||||||
|
|
||||||
|
Wait for the `Status` field to show `completed` before proceeding.
|
||||||
|
|
||||||
|
The resulting `snapshot_id` will be used to create an AMI in
|
||||||
|
the next section.
|
||||||
|
|
||||||
|
Create an AMI from the snapshot
|
||||||
|
*******************************
|
||||||
|
|
||||||
|
There are 2 methods to create an AMI from the snapshot.
|
||||||
|
|
||||||
|
* *AWS CLI Method*:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
aws ec2 register-image \
|
||||||
|
--name "My-Clear-Linux-32400-AMI" \
|
||||||
|
--description "My Clear Linux 32400 AMI" \
|
||||||
|
--architecture x86_64 \
|
||||||
|
--virtualization-type hvm \
|
||||||
|
--ena-support \
|
||||||
|
--root-device-name "/dev/sda1" \
|
||||||
|
--block-device-mappings "[
|
||||||
|
{
|
||||||
|
\”Deviceame\": \"/dev/sda1\",
|
||||||
|
\"Ebs\": {
|
||||||
|
\"SnapshotId\": \"$snapshot_id\"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
|
||||||
|
* *GUI Method*:
|
||||||
|
|
||||||
|
#. Go to :guilabel:`Services`, :guilabel:`Compute`, and select
|
||||||
|
:guilabel:`EC2`.
|
||||||
|
See Figure 22.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-22.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - EC2
|
||||||
|
|
||||||
|
Figure 22: AWS Services - EC2
|
||||||
|
|
||||||
|
#. Click :guilabel:`Snapshots`.
|
||||||
|
See Figure 23.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-23.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - Snapshots
|
||||||
|
|
||||||
|
Figure 23: AWS Services - Snapshots
|
||||||
|
|
||||||
|
#. Locate the snaphot using the `Snapshot ID`.
|
||||||
|
See Figure 24.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-24.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - Snapshots
|
||||||
|
|
||||||
|
Figure 24: AWS Services - Snapshots
|
||||||
|
|
||||||
|
#. Right-click it and select :guilabel:`Create Image`.
|
||||||
|
|
||||||
|
#. Configure as follows:
|
||||||
|
|
||||||
|
* Enter the name in the :guilabel:`Name` field
|
||||||
|
* Enter the description in the :guilabel:`Description` field
|
||||||
|
* Set the :guilabel:`Architecture` as `x86_64`
|
||||||
|
* Set the :guilabel:`Virtualization type` as `Hardware-assisted virtualization`
|
||||||
|
* Set the :guilabel:`Root device name` as `/dev/sda1`
|
||||||
|
|
||||||
|
See Figure 25.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-25.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - Snapshots
|
||||||
|
|
||||||
|
Figure 25: AWS Services - Snapshots
|
||||||
|
|
||||||
|
#. Click :guilabel:`Create`.
|
||||||
|
|
||||||
|
Launch an instance
|
||||||
|
******************
|
||||||
|
|
||||||
|
#. Go to :guilabel:`Services`, :guilabel:`Compute`, and select
|
||||||
|
:guilabel:`EC2`.
|
||||||
|
See Figure 26.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-26.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - EC2
|
||||||
|
|
||||||
|
Figure 26: AWS Services - EC2
|
||||||
|
|
||||||
|
#. Click the :guilabel:`Launch Instance` dropdown and select
|
||||||
|
:guilabel:`Launch Instance`.
|
||||||
|
See Figure 27.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-27.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - Launch instance
|
||||||
|
|
||||||
|
Figure 27: AWS Services - Launch instance
|
||||||
|
|
||||||
|
#. On the left navigation bar, select :guilabel:`My AMIs`.
|
||||||
|
See Figure 28.
|
||||||
|
|
||||||
|
.. figure:: ../../_figures/aws/import-clr-aws-28.png
|
||||||
|
:scale: 70%
|
||||||
|
:alt: AWS Services - Select AMI
|
||||||
|
|
||||||
|
Figure 28: AWS Services - Select AMI
|
||||||
|
|
||||||
|
#. Find your AMI and click :guilabel:`Select`.
|
||||||
|
|
||||||
|
#. From here onward, configure the details of your instance as desired
|
||||||
|
and launch it.
|
||||||
|
|
||||||
|
Connect to your |CL| instance
|
||||||
|
*****************************
|
||||||
|
|
||||||
|
#. Follow these steps to `connect to your instance`_.
|
||||||
|
|
||||||
|
Related topics
|
||||||
|
**************
|
||||||
|
|
||||||
|
* :ref:`azure`
|
||||||
|
* :ref:`gce`
|
||||||
|
* :ref:`clr-digitalocean`
|
||||||
|
|
||||||
|
.. _Downloads:
|
||||||
|
https://clearlinux.org/downloads
|
||||||
|
.. _aws.yaml:
|
||||||
|
https://cdn.download.clearlinux.org/current/config/image/aws.yaml
|
||||||
|
.. _AWS image post-install script:
|
||||||
|
https://cdn.download.clearlinux.org/current/config/image/aws-disable-root.sh
|
||||||
|
.. _Installing the AWS CLI version 2:
|
||||||
|
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
|
||||||
|
.. _Configuring the AWS CLI:
|
||||||
|
https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html
|
||||||
|
.. _connect to your instance:
|
||||||
|
https://docs.01.org/clearlinux/latest/get-started/cloud-install/aws-web.html#connect-to-your-clear-linux-os-basic-instance
|
||||||
|
.. _Installer YAML Syntax:
|
||||||
|
https://github.com/clearlinux/clr-installer/blob/master/scripts/InstallerYAMLSyntax.md
|
||||||
|
|
||||||
@@ -1,57 +1,49 @@
|
|||||||
.. _compatibility-check:
|
.. _compatibility-check:
|
||||||
|
|
||||||
Check processor and EFI firmware compatibility
|
Check Processor Compatibility
|
||||||
##############################################
|
#############################
|
||||||
|
|
||||||
Before installing |CL-ATTR|, check your host system's processor and EFI firmware
|
Before installing |CL-ATTR|, check your host system's processor compatibility using one of
|
||||||
compatibility. To check compatibility, choose one of the following paths:
|
the following options:
|
||||||
|
|
||||||
* From a system with a Linux\* OS installed, follow the instructions to :ref:`check-compatibility-steps`.
|
|
||||||
|
|
||||||
* From a non-Linux OS, first :ref:`bare-metal-install-desktop` and then follow
|
|
||||||
the instructions to :ref:`check-compatibility-steps`.
|
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
This does not check other system components (for example: storage and
|
This does not check other system components (for example: storage and
|
||||||
graphics) for compatibility with |CL|.
|
graphics) for compatibility with |CL|.
|
||||||
|
|
||||||
.. _check-compatibility-steps:
|
Option 1: Use the :command:`clear-linux-check-config.sh` script on an existing Linux system
|
||||||
|
*******************************************************************************************
|
||||||
Check compatibility
|
|
||||||
*******************
|
|
||||||
|
|
||||||
#. Download the `clear-linux-check-config.sh`_ file.
|
#. Download the `clear-linux-check-config.sh`_ file.
|
||||||
|
|
||||||
If a browser is not available, use:
|
If a browser is not available, use:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: bash
|
||||||
|
|
||||||
curl -O https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
|
curl -O https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
|
||||||
|
|
||||||
#. Make the script executable.
|
#. Make the script executable.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: bash
|
||||||
|
|
||||||
chmod +x clear-linux-check-config.sh
|
chmod +x clear-linux-check-config.sh
|
||||||
|
|
||||||
#. Run the script.
|
#. Run the script.
|
||||||
|
|
||||||
#. Check to see if the host's processor and EFI firmware is capable of
|
#. Check to see if the host's processor is capable of running |CL|.
|
||||||
running |CL|.
|
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: bash
|
||||||
|
|
||||||
./clear-linux-check-config.sh host
|
./clear-linux-check-config.sh host
|
||||||
|
|
||||||
#. Check to see if the host is capable of running |CL| in a container.
|
#. Check to see if the host is capable of running |CL| in a container.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: bash
|
||||||
|
|
||||||
./clear-linux-check-config.sh container
|
./clear-linux-check-config.sh container
|
||||||
|
|
||||||
The script prints a list of test results similar to the output below.
|
The script prints a list of test results similar to the output below.
|
||||||
All items should return a `SUCCESS` status. This example indicates the
|
All items should return a `SUCCESS` status. This example indicates the
|
||||||
host's processor and EFI firmware support running |CL|.
|
host's processor supports running |CL|.
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@@ -61,8 +53,52 @@ Check compatibility
|
|||||||
SUCCESS: Supplemental Streaming SIMD Extensions 3 (ssse3)
|
SUCCESS: Supplemental Streaming SIMD Extensions 3 (ssse3)
|
||||||
SUCCESS: Streaming SIMD Extension v4.1 (sse4_1)
|
SUCCESS: Streaming SIMD Extension v4.1 (sse4_1)
|
||||||
SUCCESS: Streaming SIMD Extensions v4.2 (sse4_2)
|
SUCCESS: Streaming SIMD Extensions v4.2 (sse4_2)
|
||||||
SUCCESS: Advanced Encryption Standard instruction set (aes)
|
|
||||||
SUCCESS: Carry-less Multiplication extensions (pclmulqdq)
|
SUCCESS: Carry-less Multiplication extensions (pclmulqdq)
|
||||||
SUCCESS: EFI Firmware
|
|
||||||
|
|
||||||
.. _clear-linux-check-config.sh: https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
|
Option 2: Use a |CL| live image on a non-Linux system
|
||||||
|
=====================================================
|
||||||
|
|
||||||
|
#. `Download`_ either the `Desktop` or `Server` version of the live image ISO.
|
||||||
|
|
||||||
|
#. Follow the instruction to :ref:`bootable-usb`.
|
||||||
|
|
||||||
|
#. Boot up the |CL| live image on the USB.
|
||||||
|
|
||||||
|
#. Check compatibility as follows:
|
||||||
|
|
||||||
|
* *Desktop version:*
|
||||||
|
|
||||||
|
a. Open a terminal.
|
||||||
|
|
||||||
|
#. Check compatibility.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
sudo clr-installer --system-check
|
||||||
|
|
||||||
|
* *Server version:*
|
||||||
|
|
||||||
|
a. Log in as `root` and set a password.
|
||||||
|
|
||||||
|
#. Check compatibility.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
clr-installer --system-check
|
||||||
|
|
||||||
|
Expected output for a compatible host processor:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
Checking for required CPU feature: lm [success]
|
||||||
|
Checking for required CPU feature: sse4_2 [success]
|
||||||
|
Checking for required CPU feature: sse4_1 [success]
|
||||||
|
Checking for required CPU feature: pclmulqdq [success]
|
||||||
|
Checking for required CPU feature: ssse3 [success]
|
||||||
|
Success: System is compatible
|
||||||
|
|
||||||
|
.. _clear-linux-check-config.sh:
|
||||||
|
https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
|
||||||
|
|
||||||
|
.. _Download:
|
||||||
|
https://clearlinux.org/downloads
|
||||||
|
|||||||
@@ -3,10 +3,11 @@
|
|||||||
Install using clr-installer and a configuration file
|
Install using clr-installer and a configuration file
|
||||||
####################################################
|
####################################################
|
||||||
|
|
||||||
This page explains how to install |CL-ATTR| using the clr-installer tool
|
In addition to the interactive GUI and text-based modes,
|
||||||
with a configuration file. The configuration file (:file:`clr-installer.yaml`)
|
:command:`clr-installer` also supports an unattended mode where you
|
||||||
can be reused to duplicate the same installation configuration on additional
|
simply provide it a YAML configuration file.
|
||||||
machines.
|
|
||||||
|
This guide shows you two examples of how to use its unattended mode.
|
||||||
|
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
@@ -15,67 +16,63 @@ machines.
|
|||||||
Prerequisites
|
Prerequisites
|
||||||
*************
|
*************
|
||||||
|
|
||||||
Ensure that your target system supports the installation:
|
For installation onto bare metal, ensure that your target system
|
||||||
|
supports these requirements:
|
||||||
|
|
||||||
* :ref:`system-requirements`
|
* :ref:`system-requirements`
|
||||||
* :ref:`compatibility-check`
|
* :ref:`compatibility-check`
|
||||||
|
|
||||||
Process
|
Download and make bootable USB of the live server image
|
||||||
*******
|
*******************************************************
|
||||||
|
|
||||||
This guide describes two methods for using a configuration file with the
|
See :ref:`bootable-usb`.
|
||||||
clr-installer tool. You can use either method to achieve the same goal. Choose
|
|
||||||
the method that works best for your setup.
|
|
||||||
|
|
||||||
If you are installing |CL| for the first time, we recommend Example 1.
|
Example 1: Fresh installation onto bare metal
|
||||||
|
*********************************************
|
||||||
|
|
||||||
To clone an existing |CL| setup on another system, we recommend Example 2.
|
This example uses a YAML configuration file to perform a new installation.
|
||||||
|
|
||||||
Example 1
|
#. Boot up the |CL| Live Server USB thumb drive.
|
||||||
=========
|
|
||||||
|
|
||||||
This method uses a configuration file template to perform a new installation.
|
|
||||||
|
|
||||||
Perform the following steps:
|
|
||||||
|
|
||||||
#. Go to `Downloads`_ and download the latest Clear Linux OS Server image.
|
|
||||||
|
|
||||||
For example:
|
|
||||||
https://download.clearlinux.org/releases/30010/clear/clear-30010-live-server.iso.xz
|
|
||||||
|
|
||||||
#. Follow the instructions to :ref:`bootable-usb` based on your OS.
|
|
||||||
|
|
||||||
#. Boot up the USB thumb drive.
|
|
||||||
#. Select :guilabel:`Clear Linux OS` from the menu.
|
#. Select :guilabel:`Clear Linux OS` from the menu.
|
||||||
#. In the console window, log in as root and set a password.
|
|
||||||
|
#. In the console window, log in as `root` and set a password.
|
||||||
|
|
||||||
#. Verify you have a network connection to the Internet and configure proxy
|
#. Verify you have a network connection to the Internet and configure proxy
|
||||||
settings if you're working behind a firewall.
|
settings if you're working behind a firewall.
|
||||||
#. Download a :file:`live-server.yaml` template.
|
|
||||||
|
|
||||||
For example:
|
#. Download a sample YAML configuration file. For example, if you want to
|
||||||
|
install |CL| with a desktop GUI, you might want to use :file:`live-desktop.yaml`.
|
||||||
|
Or you can use the :file:`live-server.yaml` if you want to install a non-GUI version
|
||||||
|
of |CL|.
|
||||||
|
|
||||||
.. code-block:: bash
|
* *Desktop:*
|
||||||
|
|
||||||
curl -O https://download.clearlinux.org/releases/30010/clear/config/image/live-server.yaml
|
.. code-block:: bash
|
||||||
|
|
||||||
#. Edit the template and change the settings as needed.
|
curl -O https://cdn.download.clearlinux.org/current/config/image/live-desktop.yaml
|
||||||
|
|
||||||
Commonly-changed settings include:
|
* *Server:*
|
||||||
|
|
||||||
.. _install-configfile-yaml-begin:
|
.. code-block:: bash
|
||||||
|
|
||||||
#. Under *block-devices*, set “file: "/dev/sda"” or enter your preferred device.
|
curl -O https://cdn.download.clearlinux.org/current/config/image/live-server.yaml
|
||||||
#. Under *targetMedia*, set the third partition size to “0” to use the entire disk space.
|
|
||||||
#. Under *bundles*, add additional bundles as needed.
|
#. Edit the YAML configuration file and change the settings as needed.
|
||||||
|
|
||||||
|
Commonly-changed settings include (refer to the example below):
|
||||||
|
|
||||||
|
a. Under *block-devices* (line 15), set your target media. For example: ``file: "/dev/sda"``.
|
||||||
|
#. Under *targetMedia* (line 34), set the third partition size to “0” to use the entire disk space.
|
||||||
|
#. Under *bundles* (line 37), add additional bundles as needed.
|
||||||
#. Delete the *post-install* section unless you have post-installation scripts.
|
#. Delete the *post-install* section unless you have post-installation scripts.
|
||||||
#. Under *Version*, set a version number. To use the latest version, set to “0”.
|
#. Under *Version* (line 50), set a version number. To use the latest version, set to “0”.
|
||||||
|
|
||||||
Commonly-changed settings are shown in lines 15, 34, 37, and 51 below.
|
|
||||||
See `Installer YAML Syntax`_ for more details.
|
See `Installer YAML Syntax`_ for more details.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: console
|
||||||
:linenos:
|
:linenos:
|
||||||
:emphasize-lines: 14,15,34,37,51
|
:emphasize-lines: 14,15,34,37,50
|
||||||
|
|
||||||
#clear-linux-config
|
#clear-linux-config
|
||||||
|
|
||||||
@@ -121,7 +118,6 @@ Perform the following steps:
|
|||||||
telemetry: false
|
telemetry: false
|
||||||
iso: true
|
iso: true
|
||||||
keepImage: true
|
keepImage: true
|
||||||
autoUpdate: false
|
|
||||||
|
|
||||||
keyboard: us
|
keyboard: us
|
||||||
language: en_US.UTF-8
|
language: en_US.UTF-8
|
||||||
@@ -129,56 +125,67 @@ Perform the following steps:
|
|||||||
|
|
||||||
version: 30010
|
version: 30010
|
||||||
|
|
||||||
.. _install-configfile-yaml-end:
|
#. Start the unattended installation using the `--config` option.
|
||||||
|
|
||||||
Start the installation with the command:
|
|
||||||
|
|
||||||
.. code-block:: bash
|
|
||||||
|
|
||||||
clr-installer --config live-server.yaml
|
|
||||||
|
|
||||||
Example 2
|
|
||||||
=========
|
|
||||||
|
|
||||||
This method uses a saved configuration file from a previous installation,
|
|
||||||
which you can use to easily duplicate the installation on additional machines.
|
|
||||||
|
|
||||||
Perform the following steps:
|
|
||||||
|
|
||||||
#. Open a console window on a system where |CL| was installed to retrieve a
|
|
||||||
copy of the configuration file.
|
|
||||||
|
|
||||||
#. In the console window, log in as root and enter your password.
|
|
||||||
|
|
||||||
#. Change directory to :file:`/root` and copy the :file:`clr-installer.yaml`
|
|
||||||
file to a USB thumb drive.
|
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
cd /root
|
clr-installer --config live-server.yaml
|
||||||
cp clr-installer.yaml <USB-thumb-drive>
|
|
||||||
|
|
||||||
Start the installation on the target with the following steps:
|
#. Reboot your system after installation is completed.
|
||||||
|
|
||||||
#. Go to `Downloads`_ and download the latest Clear Linux OS Server image.
|
Example 2: Replicate a previous installation
|
||||||
|
********************************************
|
||||||
|
|
||||||
For example:
|
This example uses a saved configuration file from a previous installation,
|
||||||
https://download.clearlinux.org/releases/30010/clear/clear-30010-live-server.iso.xz
|
which you can use to easily clone the installation on additional machines
|
||||||
|
, ideally with the same hardware configuration.
|
||||||
|
|
||||||
#. Follow the instructions to :ref:`bootable-usb` based on your OS.
|
.. warning::
|
||||||
|
|
||||||
#. Boot up the USB thumb drive.
|
Be aware of the following when applying a saved configuration on a new machine:
|
||||||
#. Select :guilabel:`Clear Linux OS` from the menu.
|
|
||||||
#. In the console window, log in as root and set a password.
|
* Make sure the target media on the new machine matches up
|
||||||
#. Verify you have a network connection to the Internet and configure proxy
|
|
||||||
settings if you're working behind a firewall.
|
* The users' credentials will be replicated as well
|
||||||
#. Plug in and mount the USB thumb drive containing the retrieved
|
|
||||||
:file:`clr-installer.yaml` configuration file.
|
#. On a system where |CL| was installed, open a terminal window.
|
||||||
#. Start the installation with the command:
|
|
||||||
|
#. Get root privilege.
|
||||||
|
|
||||||
.. code-block:: bash
|
.. code-block:: bash
|
||||||
|
|
||||||
clr-installer --config clr-installer.yaml
|
sudo su
|
||||||
|
|
||||||
|
#. Copy the :file:`clr-installer.yaml` from :file:`/root` to a USB thumb drive.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
cp /root/clr-installer.yaml <USB-thumb-drive>
|
||||||
|
|
||||||
|
#. Install on target system.
|
||||||
|
|
||||||
|
a. Boot up the |CL| Live Server USB thumb drive.
|
||||||
|
|
||||||
|
#. Select :guilabel:`Clear Linux OS` from the menu.
|
||||||
|
|
||||||
|
#. In the console window, log in as `root` and set a password.
|
||||||
|
|
||||||
|
#. Verify you have a network connection to the Internet and configure proxy
|
||||||
|
settings if you're working behind a firewall.
|
||||||
|
|
||||||
|
#. Plug in and mount the USB thumb drive containing the retrieved
|
||||||
|
:file:`clr-installer.yaml` configuration file.
|
||||||
|
|
||||||
|
#. Doublecheck to make sure the target media in the saved configuration file
|
||||||
|
matches with the target system's.
|
||||||
|
|
||||||
|
#. Start the installation.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
clr-installer --config clr-installer.yaml
|
||||||
|
|
||||||
|
#. Reboot your system after installation is completed.
|
||||||
|
|
||||||
References
|
References
|
||||||
**********
|
**********
|
||||||
@@ -186,7 +193,5 @@ References
|
|||||||
* `Clear Linux Installer`_
|
* `Clear Linux Installer`_
|
||||||
* `Installer YAML Syntax`_
|
* `Installer YAML Syntax`_
|
||||||
|
|
||||||
.. _Downloads: https://clearlinux.org/downloads
|
|
||||||
.. _Clear Linux Installer: https://github.com/clearlinux/clr-installer
|
.. _Clear Linux Installer: https://github.com/clearlinux/clr-installer
|
||||||
|
|
||||||
.. _Installer YAML Syntax: https://github.com/clearlinux/clr-installer/blob/master/scripts/InstallerYAMLSyntax.md
|
.. _Installer YAML Syntax: https://github.com/clearlinux/clr-installer/blob/master/scripts/InstallerYAMLSyntax.md
|
||||||