10 |
11 | ## Overview
12 |
13 | Documentation is written in [markdown](https://www.markdownguide.org/basic-syntax/) and stored in the `docs/` subfolder. Images go in `docs/images`.
14 |
15 | This repo is meant for storing and quick glances. Official output is [https://docs.armbian.com](https://docs.armbian.com).
16 |
17 | Armbian Documentation is available in the following formats:
18 |
19 | * [Official document website](https://docs.armbian.com),
20 | * [PDF document](https://github.com/armbian/documentation/releases/latest)
21 |
22 | ## Contributing
23 |
24 | This site is built with [mkdocs](https://github.com/mkdocs/mkdocs/) and depends on [mkdocs-material](https://github.com/squidfunk/mkdocs-material).
25 |
26 | Armbian Documentation naming of document files follows this rules:
27 |
28 | `[Parent-Topic-Example]_[Child-Topic]-example.md`
29 |
30 | `Parent-Topic-Name` and `Child-Topic-Name` are separated by an underscore `_`. Hyphens `-` are automatically converted to space.
31 |
32 | Please try to avoid creating new parent topics unless absolutely necessary.
33 |
34 | Current Parent Topics:
35 |
36 | * User Guide
37 | * Hardware notes
38 | * Developer Guide
39 | * Contributor Process
40 | * Release management
41 | * Community
42 |
43 | See the [document template](.github/DOCUMENT_TEMPLATE.md) before you writing any content.
44 |
45 | ## Working on the content
46 |
47 | ### Prerequisites
48 |
49 | Ensure you have Python and the necessary development packages installed:
50 |
51 | ```bash
52 | sudo apt-get update
53 | sudo apt-get install python3 python3-pip python3-venv python3.12-dev
54 | ```
55 |
56 | If using Debian, you may need to install the following packages for `mkdocs-material`:
57 |
58 | ```bash
59 | sudo apt-get install libcairo2 pango1.0-tools
60 | ```
61 |
62 | ### Cloning the Repository
63 |
64 | Next, clone the Armbian documentation repository:
65 |
66 | ```bash
67 | git clone https://github.com/armbian/documentation
68 | cd documentation
69 | ```
70 |
71 | ### Setting Up the Environment
72 |
73 | Set up a Python virtual environment to isolate the project dependencies:
74 |
75 | ```bash
76 | python3 -m venv .venv
77 | source .venv/bin/activate
78 | pip install --use-pep517 -r requirements.txt
79 | ```
80 |
81 | ### Building and Serving the Documentation
82 |
83 | To build and serve the documentation locally, allowing you to make edits and observe the results in real time, use:
84 |
85 | ```bash
86 | mkdocs build --clean
87 | mkdocs serve -a 0.0.0.0:8000
88 | ```
89 |
90 | You will be able to make edits to existing files and observe the results in real time.
91 |
92 | ## Generate tools
93 | After adding a new file, either hand-edit `mkdocs.yml`, or re-run `tools/mkArmbianDocs.py` **unless making changes to the structure of the `docs/` folder**. (See below)
94 |
95 | ### mkArmbianDocs.py
96 | Generate `mkdocs.yml` based on the contents of `docs/` folder
97 |
98 | * Command-line options for input and output directories
99 | * Requires install requirement
100 | * You don't need to run it every time unless making changes to the structure of the `docs/` folder
101 | * See `mkArmbianDocs.py -h` for help
102 |
103 | From the parent folder of the repo, run:
104 |
105 | `python3 tools/mkArmbianDocs.py && mkdocs build`
106 |
107 | This will generate the `mkdocs.yml` and publish built HTML to the `site/` folder.
108 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
9 |
10 | **The Armbian Linux Documentation** offers a comprehensive collection of guides, manuals, and resources designed to assist users in every stage of working with Armbian - from installation and initial setup to advanced configuration and optimization. Whether you're a beginner setting up your first single-board computer or an experienced developer fine-tuning system performance, the documentation provides clear, step-by-step instructions and best practices to help you get the most out of your Armbian-powered device.
11 |
12 | # Editing
13 |
14 | ### Online
15 |
16 | Documentation edition goes in five simple steps.
17 |
18 | |Step|Description|Visuals|
19 | |:-------:|---|---:|
20 | | 1. | Open website and **find content you want to change**.| Expand |
21 | | 2. | When you are done with editing, **Commit changes**. | Expand |
22 | | 3. | Enter title and description of changes you are proposing. Proceed with **Propose changes** | Expand |
23 | | 4. | Following by **Create a pull request**. |Expand |
24 | | 5. | Verify your changes on **HTML rendered preview** at your pull reqest. |Expand |
25 |
26 | ### Offline
27 |
28 | Please refer to [those instructions](/DOCUMENTATION.md)
29 |
30 | ### Tips
31 |
32 |
33 |
--------------------------------------------------------------------------------
/docs/Community_Forums.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | 
--------------------------------------------------------------------------------
/docs/Community_Github.md:
--------------------------------------------------------------------------------
1 | # Main project repositories
2 |
3 | ## Armbian Build
4 |
5 |
6 |
7 | Framework can build generic Armbian or custom Linux image.
8 |
9 | ## Armbian Config
10 |
11 |
12 |
13 | Utility for configuring:
14 |
15 | - hardware,
16 | - adjusting services,
17 | - installing applications.
18 |
19 | ## Armbian OS
20 |
21 |
22 | Armbian OS assembly line:
23 |
24 | - [daily rolling releases](https://github.com/armbian/os/releases) for supported build targets
25 | - [point releases](https://www.armbian.com/download/?device_support=Standard%20support) for supported build targets
26 |
27 | ## Armbian Community
28 |
29 |
30 | Armbian OS community assembly line:
31 |
32 | - [weekly rolling releases](https://github.com/armbian/community/releases) for build targets without a dedicated mainteiner.
33 |
34 | ## Armbian Distribution
35 |
36 |
37 | Armbian OS with pre-installed applications:
38 |
39 | - [HomeAssistant](https://www.home-assistant.io/),
40 | - [OpenHab](https://www.openhab.org/),
41 | - [Kali Linux](https://www.kali.org/),
42 | - [OpenMediaVault](https://www.openmediavault.org/)
43 |
--------------------------------------------------------------------------------
/docs/Community_IRC.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Armbian Social Media Channels
3 | description: Social media channels maintained by Armbian project team
4 | ---
5 |
6 | # Social media
7 |
8 | ## Armbian on X and Mastodon
9 |
10 | Armbian short announcements are done via 𝕏 (formerly known as Twitter): and
11 |
12 | # IRC Channel / Discord / Matrix
13 |
14 | ## 👏 Overview
15 |
16 | As announced in the [forums](https://forum.armbian.com/topic/12803-armbian-irc-channel/) everyone interested can communicate in realtime using the [internet relay chat (or *IRC* for short)](https://de.wikipedia.org/wiki/Internet_Relay_Chat).
17 | Well known IRC clients for CLI are [Weechat](https://weechat.org/) or [Irssi](https://irssi.org/) and for GUI [Hexchat](https://hexchat.github.io/) or [Konversation](https://konversation.kde.org/).
18 | Mature clients for Matrix: [Element](https://element.io/download) or [FluffyChat](https://fluffychat.im).
19 |
20 | Besides that communication is also possible via *Discord* or *Matrix* (closed beta).
21 |
22 | ## 🔌 How to connect
23 |
24 | ### IRC
25 |
26 | Libera network:
27 |
28 | - Server: `irc.libera.chat`
29 | - Ports: `6697` / non-encrypted: `6667`
30 | - Channels: as listed below
31 |
32 | OFTC network:
33 |
34 | - Server: `irc.oftc.net`
35 | - Ports: `6697` / non-encrypted: `6667`
36 | - Channels: `#armbian` and `#armbian-announcements` are available only
37 |
38 | In order to enter main `#armbian` channels registration with Nickserv is mandatory on Libera. Check [Libera Chat documentation](https://libera.chat/guides/registration) for further information.
39 |
40 | ### Discord
41 |
42 | Simply click here: [https://discord.com/invite/armbian](https://discord.com/invite/armbian)
43 |
44 | Channels starting with `#armbian-` are relayed between Discord and Libera IRC so it does not matter if you join IRC or Discord as both ends receive your messages. Check `#welcome-and-rules` for more information.
45 | The main `#armbian` channel and `#armbian-announcements` are relayed between Discord, Libera, OFTC and Matrix.
46 |
47 | ### Matrix (closed beta)
48 |
49 | - Server: `matrix.armbian.com`
50 | - Channels: `#armbian:matrix.armbian.com` and `#armbian-announcements:matrix.armbian.com` are available only
51 | - To receive an invitation for former please ping either Lanefu or Werner with your Matrix handle in any known ways to communicate like the chat options above or forums. Once in feel free to invite others by yourself.
52 |
53 | ## 🛑 Rules
54 |
55 | Forums registration terms and rules apply for our chats: [https://forum.armbian.com/terms](https://forum.armbian.com/terms)
56 |
57 | ## 💬 Channels (depending on platform only a limited selection might be available)
58 |
59 | - **`#armbian`** is the project's main channel. Issue tracking, peer-to-peer user support or [upcoming release planning talks](https://docs.armbian.com/Process_Release-Model/#release-planning).
60 | - **`#armbian-announcements`** : important messages from the Armbian team. You definitely want to idle here. Moderated channel
61 | - **`#armbian-devel`** : build engine development topics
62 | - **`#armbian-desktop`** : desktop environment development
63 | - **`#armbian-csc`** unsupported/stating board talk
64 | - **`#armbian-allwinner`** Allwinner-related SoC talk
65 | - **`#armbian-amlogic`** Amlogic-related SoC talk
66 | - **`#armbian-broadcom`** Broadcom-related SoC talk
67 | - **`#armbian-rockchip`** Rockchip-related SoC talk
68 | - **`#armbian-offtopic`** General chit chat, whatever that does not fit other channels
69 | - **`#armbian-commits`** Whenever a new interaction with a [repository on Github](https://github.com/armbian/) happens it will be announced. Moderated channel
70 |
71 | ## 👮 Services
72 |
73 | Besides the services offered by IRC (like Nickserv or Chanserv) Armbian has set up some own services (on Libera only).
74 |
75 | **`ArmbianGithub`**
76 |
77 | - Has the purpose to fill #armbian-commits channel
78 |
79 | **`DC-IRC`**
80 |
81 | - Has the purpose to relay messages between the IRC networks and Discord. Applies for all channels beginning with `#armbian-` as well as `#armbian`.
82 |
83 | **`ArmbianHelper`**
84 |
85 | - Allows searching forums via Google API (not very precise though)
86 | - Example: `,g Allwinner H6 panfrost`
87 | - A few more minor commands, mostly used by staff or do not need introduction
88 | - `.nonprofit`, `.sed`, `.contribute`, `.rtfm`, `.fortune`, `.sunxi`, `.meson`, `help`, `help irc`, `.tvboxes`
89 | - Translation for non-native English speakers
90 | - Simply start your sentence with `--` at the beginning and the bot will translate your message regardless of the source language into English.
91 | *Note*: This services will be activated manually on demand (like planned meetings for example) since its backend generates cost.
92 |
93 | ## ❔ FAQ
94 |
95 | - Why are there so many people in the channel and nobody is talking?
96 | - It is pretty common for community IRC channels for people to simply *idle* there. Many also using so called IRC bouncers ) that keeps their connection to the channel alive to act like an answering machine.
97 |
98 | - I wrote 'Hi' but nobody answered. How do I get support there?
99 | - Probably there is nobody around at the time. Keep in mind that all users are spread around the globe and therefore living in many different time zones.
100 | It is a common habit to simply state your question or issue and then wait patiently for an answer. Depending how complex this may take up to a few hours because most Armbian contributors have detailed knowledge in a specific board family only.
101 | - Is the chat history public as well?
102 | - Yes. All conversation is logged. These logs are open to the public. You can find them here: [http://irc.armbian.com](http://irc.armbian.com)
103 | - Why do some people have odd hostnames like `@armbian/staff/lanefu` or `@user/username`?
104 | - These *hostnames* are so called project affiliation cloaks. These are meant to show a users affiliation to a specific project and their role there.
105 | - Can I have that too?
106 | - Yes. An Armbian affiliation cloak can be requested from *Werner* either via [forums](https://forum.armbian.com/profile/9032-werner/) or IRC. They usually will be granted if you are a well known member in forums, a contributor via Github or donated to the project. Make sure you identified yourself to Nickserv beforehand.
107 | - How can I protect my nickname so nobody can spoof me?
108 | - Register your nick with Libera's Nickserv service. Check [https://libera.chat/guides/registration](https://libera.chat/guides/registration)
109 | Even though it is not mandatory you should register and identify with the services as other channels for example may not allow unregistered users to chat or join at all as anti-spam measure.
110 | - Why do some users have voice (+v) in channel?
111 | - As mentioned in [forums](https://forum.armbian.com/topic/12803-armbian-irc-chat/?tab=comments#comment-96828) "all contributors to the project, regardless if forums staff, contributor on Github or well known and longtime active user" may get voice on request.
112 |
113 | - Should I add **away** to my nick if I am AFK? Like **Werner|away**
114 | - No. Please use the `/away [reason]` command as intended. For an explanation please have a look at the [ZNC Wiki](https://wiki.znc.in/Awaynick).
115 |
116 | ## 👉 Bottom line
117 |
118 | If you have any questions, comments regarding the IRC channels and/or services or found an issue in this documentation for think you can enhance it get in touch with *Werner* either via [forums](https://forum.armbian.com/profile/9032-werner/), IRC or Discord.
119 |
--------------------------------------------------------------------------------
/docs/Contribute/Armbian-config.md:
--------------------------------------------------------------------------------
1 | # Adding software title to Armbian config
2 |
3 | ### Tinkering
4 |
5 | #### Manual install
6 |
7 | First try to install application manually. If it works on Debian or Ubuntu, proceed. In this example we will be using `test`.
8 |
9 | #### Clone repository
10 |
11 | ~~~
12 | git clone https://github.com/armbian/configng
13 | ~~~
14 |
15 | #### Design menu
16 |
17 | Predict which commands you expect to have in the menu. For installing an application, we usually need two, `install` and `uninstall`. Armbian-config stores menu in JSON files, so you need to select appropriate file.
18 | This one we will place under `Software -> Management`.
19 |
20 | ``` yaml title="File location: tools/json/config.software.json"
21 | {
22 | "id": "MAN005",
23 | "description": "Webmin web-based management tool",
24 | "short": "Webmin",
25 | "module": "module_webmin",
26 | "command": [
27 | "see_menu module_webmin"
28 | ],
29 | "status": "Stable",
30 | "author": "@Tearran",
31 | "condition": ""
32 | }
33 | ```
34 |
35 | | Field name | Function | Notes |
36 | | :---------------------- | :-------------- | :----------- |
37 | | `id` | `unique identifier` | Select higher number. If you will select existing, application will fail to run |
38 | | `description` | `menu descriptor` | This will be displayed in the menu |
39 | | `short` | `docs menu descriptor` | This will over-ride description in the rendering of documentation |
40 | | `module` | `link json entry with module` | Used for documentation generation - read info from `module_options` |
41 | | `prompt` | `confirmation text` | Some features needs confirmation before proceeding |
42 | | `command` | `executes function` | What should be run after we select and agree (optional) |
43 | | `status` | `Stable|Disabled` | Control if function is shown to users in the menu |
44 | | `author` | `GitHub handle` | Developer or maintainer of this functionality |
45 | | `condition` | `controlling display` | Under what conditions we show this menu item |
46 |
47 |
48 | !!! note
49 |
50 | Pay attention to JSON structure. JSON validator at pull request will break in case spaces or commas will be placed wrong.
51 |
52 | #### Module code
53 |
54 | Place module functions, each into its file, following by file naming convention, into one of the folders:
55 |
56 | ``` bash title="Folder location: tools/modules"
57 | docs
58 | functions
59 | network
60 | runtime
61 | software
62 | system
63 | ```
64 |
65 | ``` bash title="File location: tools/template/module_software_template.sh"
66 |
67 | declare -A module_options
68 | module_options+=(
69 | ["module_template,author"]="@armbian"
70 | ["module_template,feature"]="module_template"
71 | ["module_template,example"]="install remove help"
72 | ["module_template,desc"]="Example module unattended interface."
73 | ["module_template,status"]="review"
74 | )
75 |
76 | function module_template() {
77 | local title="test"
78 | local condition=$(which "$title" 2>/dev/null)
79 |
80 | # Convert the example string to an array
81 | local commands
82 | IFS=' ' read -r -a commands <<< "${module_options["module_template,example"]}"
83 |
84 | case "$1" in
85 | "${commands[0]}")
86 | echo "Installing $title..."
87 | # Installation logic here
88 | ;;
89 | "${commands[1]}")
90 | echo "Removing $title..."
91 | # Removal logic here
92 | ;;
93 | "${commands[2]}")
94 | echo -e "\nUsage: ${module_options["module_template,feature"]} "
95 | echo -e "Commands: ${module_options["module_template,example"]}"
96 | echo "Available commands:"
97 | echo -e "\tinstall\t- Install $title."
98 | echo -e "\tremove\t- Remove $title."
99 | echo
100 | ;;
101 | *)
102 | ${module_options["module_template,feature"]} ${commands[2]}
103 | ;;
104 | esac
105 | }
106 |
107 | # uncomment to test the module
108 | #module_template "$1"
109 |
110 | ```
111 |
112 | !!! note
113 |
114 | Pay attention to [coding style structure](https://github.com/armbian/configng/blob/main/.editorconfig). If you use modern IDE, this will be done automatically.
115 |
116 | #### Manual testing
117 |
118 | Whenever you are making changes to the JSON or modules structure, make sure to join JSON segments into main JSON file and fun. This you do with a command:
119 | ``` python
120 | tools/config-assemble.sh -p
121 | ```
122 | Python is required to run this tool.
123 |
124 | ``` bash
125 | sudo sudo bin/armbian-config --cmd
126 | ```
127 |
128 | #### Unit tests
129 |
130 | This part is optional but highly recommended for at least install functionality. Our CI infrastructure will test this feature at pull request, on general code changes (push to main branch) and daily. It will test feature on latest Debian and Ubuntu images.
131 | Unit tests have simple design:
132 |
133 | Name of the config file is function id (unique identifier) `CON004.conf`
134 |
135 | ``` bash title="File location: tests/CON004.conf"
136 | ENABLED=true
137 | RELEASE="bookworm:jammy:noble"
138 | CONDITION="test=\$(docker container ls -a | grep portainer )"
139 | ```
140 | Make sure to add a test condition that makes sense. It has to return 0 when test succeeds and 1 if fails.
141 |
142 | | Variable | Function | Description |
143 | | :---------------------- | :-------------- | :-------------- |
144 | | ENABLED | false / true | If test is live or not |
145 | | PREINSTALL | cmd to run | specific test dependencies |
146 | | CONDITION | main test verification | must return 0 for test success |
147 | | RELEASE | bookworm:jammy:noble" | run on specific or leave empty to run on all |
148 |
149 | #### Pull request
150 |
151 | When your solution works locally and you prepare unit tests its time to submit a pull request. Fix your code and unit tests until all pull request checks becomes green.
152 |
153 | Examples:
154 |
155 | -
156 | -
157 | -
158 |
159 | ### Documentation
160 |
161 | Documentation is generated automatically after your pull request is merged. But as automated documentation might not be satisfactory, you can add cover image, header and footer. You can use markdown elements with enhancements from https://squidfunk.github.io/mkdocs-material/
162 |
163 | #### Cover image
164 |
165 | Once code works perfectly, look for cover image. It can be .png or .webp. Place image to the `tools/include/images/CON004.webp`
166 |
167 | #### Header
168 |
169 | ``` text title="Header: tools/include/markdown/CON004-header.md"
170 | Portainer simplifies your Docker container management via Portainer web interface. It enables faster deploy of the applications and it gives real time visibility.
171 | ```
172 |
173 | #### Footer
174 |
175 | ``` text title="Footer: tools/include/markdown/CON004-footer.md"
176 |
177 | === "Access to the web interface"
178 |
179 | The web interface is accessible via port **9002**:
180 |
181 | - URL = `http://:9002`
182 | ```
183 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Adding-Board-Family.md:
--------------------------------------------------------------------------------
1 | # Adding a new board or board family
2 |
3 | There are no detailed instructions on how to add a new board or even a whole new board family to the build script yet. However there are a few commits / pull requests that give clues how to achieve that like
4 |
5 | - [https://github.com/armbian/build/pull/3176/files](https://github.com/armbian/build/pull/3176/files)
6 | - [https://github.com/armbian/build/pull/3138/files](https://github.com/armbian/build/pull/3138/files)
7 | - [https://github.com/armbian/build/pull/7902/files](https://github.com/armbian/build/pull/7902/files)
8 | - [https://github.com/armbian/build/pull/8208/files](https://github.com/armbian/build/pull/8208/files)
--------------------------------------------------------------------------------
/docs/Developer-Guide_Build-Commands.md:
--------------------------------------------------------------------------------
1 | # Build commands
2 |
3 | ### kernel
4 |
5 | Builds kernel and device tree (where applicable) and places it to the `output/debs`
6 |
7 | Usage:
8 | ```bash
9 | ./compile.sh kernel BOARD=nanopi-r5c BRANCH=edge
10 | ```
11 |
12 | ### kernel-config
13 |
14 | Automatically call kernel's `make menuconfig` (add or remove modules or features)
15 |
16 | Usage:
17 | ```bash
18 | ./compile.sh kernel-config BOARD=nanopi-r5c BRANCH=edge
19 | ```
20 |
21 | ### dts-check
22 |
23 | Validate dts files and improve board & patch development overall.
24 |
25 | This option validates the dts/dtb file for the selected board against the device tree bindings and outputs the validation logs to the user. It can be used when adding a new board, developing or improving a dts file.
26 |
27 | Usage:
28 | ```bash
29 | ./compile.sh dts-check BOARD=nanopi-r5c BRANCH=edge
30 | ```
31 | ### inventory-boards
32 |
33 | Outputs a one-board-per-line CSV inventory of boards.
34 |
35 | Sets `TARGETS_FILE` to something that doesn't exist, so the `default-targets.yaml` is used (so same list for everyone, save for userpatched-boards)
36 |
37 | Usage:
38 | ```bash
39 | ./compile.sh inventory-boards
40 | ```
41 | Outputs /info/boards-inventory.csv
42 |
43 | ### kernel-dtb
44 |
45 | Builds only DTB and outputs full preprocessed dts source
46 |
47 | Outputs preprocessed DTS source for the board in question to `output/`
48 | also outputs the same preprocessed DTS source, ran through `dtc` with input and output DTS formats for "normalized" comparisons
49 |
50 | Usage:
51 | ```bash
52 | ./compile.sh kernel-dtb BOARD=xxxxx BRANCH=edge
53 | ```
54 |
55 | ### uboot-patch
56 |
57 | Create patch files for u-boot.
58 |
59 | The output patch files are written to
60 | **output/patch/u-boot-${LINUXFAMILY}-${[BRANCH](https://docs.armbian.com/Developer-Guide_Build-Switches/#user-space)}.patch**.
61 | To use them in subsequent builds they
62 | must be copied to the appropriate directories in the patch/u-boot directory.
63 | See: [user-provided patches](https://docs.armbian.com/Developer-Guide_User-Configurations/#user-provided-patches)
64 |
65 | Any uncommited changes in the work tree and index are commited
66 | to establish a clean work tree.
67 | It would be best if there are no uncommitted changes when running
68 | `uboot-patch`.
69 |
70 | If there is an existing patch file at the output path specified above, it
71 | may be applied before continuning work.
72 |
73 | When the prompt `Press after you are done editing in ${pwd}` appears,
74 | in a separate window, navigate to the specified directory
75 | and make any required changes.
76 | When changes are complete,
77 | return to the window running the `uboot-patch` command
78 | and press ``.
79 |
80 | A patch to recreate the changes introduced to the u-boot tree is presented
81 | and the prompt "Are you happy with this patch?".
82 | You can response
83 | `yes` to accept the patch as-is and generate the output patch file,
84 | `stop` to abort the command without producing the outpu patch file,
85 | or anything else to loop back, to make futher changes.
86 |
87 | Instead of creating them while running `uboot-patch`,
88 | new device tree files should be created in the relevant `dt` directory under
89 | `patch/u-boot`
90 | and new _defconfig files should be created in the relevant `configs` directory
91 | under `patch/u-boot`.
92 | While the `uboot-patch` command will add these new files to the patch
93 | if they are created while running `uboot-patch`,
94 | this is not the preferred way of adding these files.
95 |
96 | ### rewrite-uboot-patches
97 |
98 | Prepares git, applies patches to git, and rewrites them back from git
99 | same as kernel, it does git archeology for mbox-less patches, etc.
100 |
101 | Note: MAINTAINER and MAINTAINEREMAIL should be set.
102 |
103 | - uboot-patches-to-git alias is also added, but my guess is that the rewrite is more useful.
104 | - refactor a common config function for both kernel and uboot.
105 |
106 | Usage:
107 | ```bash
108 | ./compile.sh rewrite-uboot-patches BOARD=xxxx BRANCH=edge
109 | ```
110 |
111 | ### rewrite-kernel-patches
112 |
113 | Prepares git, applies patches to git, and rewrites them back from git
114 | same as kernel, it does git archeology for mbox-less patches, etc.
115 |
116 | Usage:
117 | ```bash
118 | ./compile.sh rewrite-kernel-patches BOARD=xxxx BRANCH=edge
119 | ```
120 |
121 | ### targets
122 |
123 | Generates output/info/git_sources.json file containing URL, branch, and commit hash combo.
124 |
125 | The easiest way to generate file for all devices is to run `./compile.sh targets`. Then, at the time of release, we will copy the output/info/git_sources.json file to config/sources/git_sources.json. Once the file is copied, the hash information from the file will be used to fetch resources for git repositories where branches are specified instead of tags or commits.
126 |
127 | Usage:
128 | ```bash
129 | ./compile.sh targets
130 | ```
131 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Build-Preparation.md:
--------------------------------------------------------------------------------
1 | # Armbian Build Framework Quick Start Guide
2 |
3 | ## Requirements
4 |
5 | - x86_64 / aarch64 / riscv64 machine
6 | - at least 8GB (less for non-[BTF](https://docs.kernel.org/bpf/btf.html) builds) of memory and ~50GB of disk space for VM, container, or bare-metal installation
7 | - **Armbian / Ubuntu Noble 24.04.x** for native building or any Docker capable Linux for containerised
8 | - **Windows 10/11 with WSL2 subsystem** running Armbian / Ubuntu Noble 24.04.x
9 | - Superuser rights (configured sudo or root access).
10 | - Make sure your system is up-to-date! Outdated Docker binaries, for example, can cause trouble
11 |
12 |
13 | ## Clone repository
14 |
15 | ```bash
16 | git clone https://github.com/armbian/build
17 | cd build
18 | ```
19 | !!! note
20 | - Make sure that full path to the build script **does not contain spaces**
21 | - For stable branch use last point release `--branch=v24.11`
22 |
23 |
24 | ``` mermaid
25 | gitGraph
26 | commit
27 | commit
28 | checkout main
29 | commit id: "v24.08" tag: "v24.08"
30 | branch v24.08
31 | commit
32 | commit
33 | commit
34 | commit
35 | checkout main
36 | commit id: "v24.11" tag: "v24.11"
37 | branch v24.11
38 | commit
39 | commit
40 | commit
41 | commit
42 | checkout main
43 | commit
44 | commit
45 | commit
46 | commit
47 | commit
48 | commit
49 | commit id: "main" type: REVERSE tag: "Trunk"
50 | ```
51 |
52 |
53 | ## Interactive
54 |
55 | Run framework:
56 |
57 | ```bash
58 | ./compile.sh
59 | ```
60 |
61 | ??? info "Video"
62 |
63 |
64 |
65 | ## CLI
66 |
67 | ```bash
68 | ./compile.sh [command] [switch...] [config...]
69 | ```
70 |
71 | Only one command can be specified.
72 |
73 | Switches are parameter settings that are used by the build framework itself
74 | (e.g. `DEBUG=yes`) or the specific command.
75 |
76 | Config files are bash shell scripts that are sourced in the order
77 | specified. They are primarily used to set switches but might also set hook
78 | functions. They must be located in the `userpatches` directory and must
79 | be named `config-${arg}.conf` or `config-${arg}.conf.sh` (where `${arg}` is
80 | the argument from the command line): one or the other, but not both.
81 |
82 | Switches set on the commandline override settings from the config files,
83 | regardless of the order they appear on the comandline.
84 |
85 | Comprehensive list of build [Commands](Developer-Guide_Build-Commands.md) and [Switches](Developer-Guide_Build-Switches.md)
86 |
87 | Example:
88 |
89 | ```bash
90 | ./compile.sh build \
91 | BOARD=uefi-x86 \
92 | BRANCH=current \
93 | BUILD_DESKTOP=yes \
94 | BUILD_MINIMAL=no \
95 | DESKTOP_APPGROUPS_SELECTED='browsers chat desktop_tools' \
96 | DESKTOP_ENVIRONMENT=gnome \
97 | DESKTOP_ENVIRONMENT_CONFIG_NAME=config_base \
98 | KERNEL_CONFIGURE=no \
99 | RELEASE=noble
100 | ```
101 |
102 | Or, using config file `userpatches/config-myboard.conf`
103 | that sets all these switches:
104 |
105 | ```bash
106 | ./compile.sh build \
107 | myboard
108 | ```
109 |
110 | !!! question "Interpretation?"
111 |
112 | This command will generate **Ubuntu 24.04 Noble** based **Gnome desktop** environment image for Intel based hardware (**uefi-x86**). Besides bare desktop, it will contain packages from **browsers** and **desktop_tool** sections and it will use unchanged kernel from **current kernel** branch.
113 |
114 |
115 | ## Logging
116 |
117 |
118 | Logs are written to **output/logs**. Old logs (all but the current build)
119 | are compressed and moved to **output/logs/archive**.
120 |
121 | Log formats are:
122 |
123 | - ANSI - text with ANSI escapes for color coding - \*.log.ans
124 | - ASCII (if ansi2txt is available) - text without color coding escapes - \*.log
125 | - Markdown summary - \*.md
126 | - Raw (if RAW_LOG=yes) - tar file containg all the raw logs - \*.raw.tar
127 |
128 | For much more verbose logs set switch 'DEBUG=yes'.
129 |
130 | ## GitHub Actions
131 |
132 | If you do not have the proper equipment to build images on your own, you can use our [GitHub Action](https://github.com/marketplace/actions/rebuild-armbian).
133 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Building-with-Docker.md:
--------------------------------------------------------------------------------
1 | # Building with Docker
2 |
3 | ## Officially supported and tested method for building with Docker
4 |
5 | This method works for building u-boot and kernel packages as well as building full OS images.
6 | Note!
7 | To write fresh-builded image directly to sdcard or other block device you have to enable
8 | Docker run in `privileged` mode.
9 | Uncomment line `DOCKER_FLAGS+=(--privileged)` in file `userpatches\config-docker.conf` or your own docker-config file.
10 |
11 | Building additional packages (`EXTERNAL_NEW`) is not supported.
12 |
13 | ### Requirements
14 |
15 | - x86/x64/aarch64/armhf Linux host that supports running a recent Docker daemon. Refer to [Docker documentation](https://docs.docker.com/) for details.
16 | - Docker version 17.06 CE or newer.
17 | - Enough free disk space on the storage used for Docker containers and named volumes. Named volumes path can be changed using standard Docker utilites,
18 | refer to Docker documentation for details.
19 |
20 | Installation (https://docs.docker.com/engine/install/)
21 |
22 | ### Details
23 |
24 | There are 3 options to start build process:
25 |
26 | 1\. By passing configuration file name (`config-.conf`), stored in `userpatches` directory, as an argument:
27 | ```
28 | ./compile.sh docker
29 | ```
30 | 2\. By passing addtional line arguments to `compile.sh` after `docker`:
31 | ```
32 | ./compile.sh docker KERNEL_ONLY=yes BOARD=cubietruck BRANCH=current KERNEL_CONFIGURE=yes
33 | ```
34 | 3\. Interactively run inside docker container
35 | ```
36 | ./compile.sh docker-shell BOARD=rockpi-4a BRANCH=edge RELEASE=jammy
37 | ```
38 |
39 | The process creates and runs a named Docker container `armbian` with two named volumes `armbian-cache` and `armbian-ccache`,
40 | and mounts local directories `output` and `userpatches`.
41 |
42 | Options 1 and 2 compile the same as without Docker but in separate environment to prevent changes to the base system.
43 |
44 | The dockerfile of the created container is placed in `userpatches` directory, and all container-related options can be changed
45 | in `userpatches/config-docker.conf` file. Templates of both files are located in the `config/templates` directory.
46 |
47 | ### docker-shell interactive mode
48 |
49 | The docker-shell interactive mode is useful for when you need to do more than just "make an image." This mode allows you to edit
50 | U-Boot and kernel sources before and after applying patches, investigate compilation errors, and so on.
51 |
52 | This mode also allows you to manually run individual steps of the build process.
53 |
54 | First, start docker-shell on the host build system:
55 | ```
56 | @droid:~/armbian$ ./compile.sh docker-shell RELEASE=bullseye BOARD=rockpi-4a BRANCH=edge
57 | ```
58 | From there, `RELEASE=bullseye BOARD=rockpi-4a BRANCH=edge` are passed into shell and will be set into
59 | envirounment variables.
60 |
61 | Next, we can simply start building an image:
62 | ```
63 | root@75ec76203b65:~/armbian# ./compile.sh
64 | ```
65 | Alternatively, you can run any function defined in the compile.sh script.
66 |
67 | For example, to compile U-Boot, prepare the environment with:
68 | ```
69 | ./compile.sh default prepare_host compile_sunxi_tools install_rkbin_tools
70 | ```
71 | Then, build U-Boot:
72 | ```
73 | ./compile.sh default compile_uboot
74 | ```
75 | To compile only the source code as it is without patching or modifications, run:
76 | ```
77 | ./compile.sh default COMPILE_ONLY=yes compile_uboot
78 | ```
79 | Note that you must enter docker-shell after a docker build, as you must
80 | download all of the required toolchains and sourcecodes beforehand.
81 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Building-with-Multipass.md:
--------------------------------------------------------------------------------
1 | # Building with Multipass
2 |
3 | In order to build an Armbian image from scratch, whether for development purposes or to [apply user customizations](https://docs.armbian.com/Developer-Guide_User-Configurations/) on top of a base image, a build environment is required. Per the Armbian documentation, Ubuntu 22.04 is [the officially supported](https://docs.armbian.com/Developer-Guide_Build-Preparation/) build platform.
4 |
5 | [Multipass](https://multipass.run/) that is designed for quick and painless provisioning of Ubuntu VMs.
6 |
7 |
8 | ### Creating a VM and preparing for build
9 |
10 | Multipass is [available](https://multipass.run/install) for macOS, Windows and Linux platforms.
11 |
12 | Once you have multipass installed, a Jammy (22.04) instance with 4 CPUs, 4GB of RAM and 25GB of space available can be provisioned with a single command:
13 |
14 | ```bash
15 | multipass launch --cpus 4 --disk 25G --mem 4G --name jammy
16 | ```
17 |
18 | ### Clone the build repo
19 |
20 | You can run commands direct on the instance to clone the build repo:
21 |
22 | ```bash
23 | multipass exec jammy -- bash -c "git clone --depth 1 https://github.com/armbian/build"
24 | ```
25 |
26 | ### Use an instance
27 | Then you can get a shell to the instance and run the build as needed:
28 |
29 | ```bash
30 | C:\> multipass shell armbian
31 | Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.4.0-48-generic x86_64)
32 | Last login: Tue Jan 30 12:23:08 2024 from 172.22.111.1
33 | # Let's get building!
34 | ubuntu@armbian:~$ cd build
35 | ubuntu@armbian:~/build$ ./compile.sh BOARD=orangepizero ... etc
36 | ```
37 |
38 | ### Share data with an instance
39 |
40 | The recommended way to share data between your host and an instance with Multipass is the command:mount
41 | ```bash
42 | multipass mount /my/dir jammy
43 | multipass info jammy
44 | ```
45 |
46 | Mounts: /my/dir => /my/dir
47 |
48 | From this point on will be available inside the instance./my/dir
49 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Extensions.md:
--------------------------------------------------------------------------------
1 | # Extensions
2 |
3 | > "I'm gonna create a `prepare_bootloader` hook [in core] so we can refactor `u-boot` [into an extension]"
4 |
5 | The extensions framework allows the board/family developers, extension authors, and users to extend the Armbian build system without overloading the core with specific functionality.
6 |
7 | It's a simple framework, written in Bash, that **works based on function naming conventions**. It provides the core and the extensions with tracing and debugging, (error control,?) inline documentation and very simple dependency resolution.
8 |
9 | ### Terminology
10 | - The "core" is everything that's in `lib/` directory plus `compile.sh` and some others. It's the spine of the build system.
11 | - An "extension" is a separate Bash source file that contains exclusively functions. Extensions live in `extensions/` or `userpatches/extensions/` directory, but could one day be in a separate repository too.
12 | - An "extension method" (a.k.a "hook") is used by the core to call extensions, via `call_extension_method()`. This will discover all enabled extension methods implementations, order them, and call them one by one.
13 | - The Armbian core already has quite a few of these in strategic spots.
14 | - More are coming as they're identified.
15 | - An "extension method implementation" is a function that will be called when it's extension method is called. It can be defined in extensions, but also in board config, family config, user config, etc.
16 |
17 | #### Example
18 |
19 | ##### Core calls extensions
20 |
21 | The Armbian core build system has an extension method called `run_after_build`, also known as the "`run_after_build` hook". You can find it in `lib/main.sh` around line 546.
22 |
23 | ```bash
24 | # in lib/main.sh:546
25 | call_extension_method "run_after_build" [...]
26 | ```
27 |
28 |
29 | ##### Extension method implementation
30 |
31 | Consider the following function:
32 |
33 | ```bash
34 | function run_after_build__say_congratulations() {
35 | echo "Congrats, the build is finished!"
36 | }
37 | ```
38 |
39 | Such a function is an "extension method implementation" called `say_congratulations` for the extension method `run_after_build`.
40 |
41 | ##### Extension file
42 |
43 | A file `userpatches/extensions/be-festive.sh` containing the above function is an "extension" called `be-festive`.
44 |
45 | ##### Using it
46 |
47 | An user of the build system can enable that extension by adding a call to `enable_extension "be-festive"` on his configuration file, or by passing `ENABLE_EXTENSIONS=be-festive` as a parameter to the build.
48 |
49 |
50 | ### Naming conventions and ordering
51 |
52 | An extension method implementation is just a Bash function that follows the pattern `run_after_build__say_congratulations` where
53 |
54 | - `run_after_build` is the name of the extension method.
55 | - `__` is a marker/separator -- very important -- two underscores, not one, not three.
56 | - `say_congratulations` is the name of the extension method implementation, and should be unique.
57 |
58 | The system will "magically" compose a single `run_after_build()` function, based on all the hook functions that begin with `run_after_build__`.
59 |
60 | Hook functions will be sorted by their numerical value; hook functions that do not begin with a number will receive `500_` prefix automatically.
61 |
62 | So the examples `run_after_build__do_this` and `run_after_build__500_do_this` are equivalent, and will run
63 |
64 | - sooner than `run_after_build__900_do_smth_else`
65 | - later than `run_after_build__300_do_even_another_thing`
66 |
67 |
68 |
69 | ### What is an _extension_?
70 |
71 | A extension is Bash source file that contains **exclusively**:
72 |
73 | - function definitions:
74 | - extension method implementation definitions (with `__` separator)
75 | - other internal functions (for structure and clarity if needed)
76 | - calls to `enable_extension "another-extension"` at the top of the file.
77 | - that's a very simple dependency system, one extension can enable another.
78 |
79 | Specifically, **extension files should not contain any code outside of functions** -- they should do nothing when sourced.
80 |
81 | Extensions can be official Armbian fragments and live in `/extensions`, or can be user-specific
82 | in `/userpatches/extensions`.
83 |
84 | An extension could be implemented in any of the following file/dir structures:
85 |
86 | - `/extensions/our-ext.sh` - an official, single-file extension.
87 | - `/userpatches/extensions/my-ext.sh` - a user-specific, single-file extension.
88 | - `/extensions/our-dir-ext/our-dir-ext.sh` - an official, directory-based extension.
89 | - `/userpatches/extensions/my-dir-ext/my-dir-ext.sh` - a user-specific, directory-based extensions.
90 |
91 | The official extensions can be used by boards, family includes, etc, while the user-specific extensions can only be used by userpatches code or via `ENABLE_EXTENSIONS=my-ext,my-dir-ext` build parameter.
92 |
93 | #### Single-file vs Directory-based
94 |
95 | They're the same, except:
96 |
97 | - Directory-based extensions will be passed a `${EXTENSION_DIR}` environment variable.
98 | - That is useful if there are other files/assets that belong together with that extension. An example would be a template file, some configuration file, or other static asset that is directly related to the extension.
99 | - Using directory-based extensions and `${EXTENSION_DIR}` allows for easy moving and PR'ing of user extensions.
100 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Overview.md:
--------------------------------------------------------------------------------
1 | ## What it does?
2 |
3 | - Builds custom **kernel**, **image** or a Debian based Linux **distribution** optimized for low-resource hardware,
4 | - Include filesystem generation, low-level control software, kernel image and **bootloader** compilation,
5 | - Provides a **consistent user experience** by keeping system standards across different platforms.
6 |
7 | ``` mermaid
8 | graph LR
9 | A[./compile.sh] --> B{Change kernel config};
10 | B ---> |yes| C["HW"];
11 | B ---> |no| C["HW"];
12 | C ---> |branch| D["legacy vendor current edge"];
13 | D --> |base| E["Debian Ubuntu"];
14 | E ---> |type| F["CLI"];
15 | F ---> |type| G["Server"];
16 | F ---> |type| H["Minimal"];
17 | E ---> I["Desktop"];
18 | I ---> K["XFCE"];
19 | I ---> L["Gnome"];
20 | I ---> M["Cinammon"];
21 | I ---> N["KDE Neon"];
22 | ```
23 |
24 | ## Key Advantages
25 |
26 | - Simplicity with interactive graphical interface.
27 | - Generates widely recognized and well maintained userspace
28 | - Fast learning curve for complex operations
29 |
30 | Check other similarities, advantages and disadvantages compared with leading industry standard build software.
31 |
32 | Function | Armbian | Yocto | Buildroot |
33 | |:--|:--|:--|:--|
34 | | Target | general purpose | embedded | embedded / IOT |
35 | | U-boot and kernel | compiled from sources | compiled from sources | compiled from sources |
36 | | Board support maintenance | complete | outside | outside |
37 | | Root file system | Debian or Ubuntu based| custom | custom |
38 | | Package manager | APT | any | none |
39 | | Configurability | limited | large | large |
40 | | Initramfs support | yes | yes | yes |
41 | | Getting started | quick | very slow | slow |
42 | | Cross compilation | yes | yes | yes |
43 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_User-Configurations.md:
--------------------------------------------------------------------------------
1 | # User Configuration
2 |
3 | ## User provided patches
4 |
5 | You can add your own patches outside the build script. Place your patches inside the appropriate directory, for kernel or u-boot. There are no limitations except that all patches must have the file name extension `.patch`. `userpatches` directory structure mirrors directory structure of `patch`. Look for the hint at the beginning of patching process to select the proper directory for patches. Example:
6 |
7 | [ o.k. ] Started patching process for [ kernel sunxi-edge 4.4.0-rc6 ]
8 | [ o.k. ] Looking for user patches in [ userpatches/kernel/sunxi-edge ]
9 |
10 | Patches with the same file name and path in the `userpatches` directory tree override those in the `patch` directory. To _replace_ a patch provided by Armbian maintainers, copy it from `patch` to the corresponding directory in `userpatches` and edit it to your needs. To _disable_ a patch, create an empty file in the corresponding directory in `userpatches`.
11 |
12 | ## User provided configuration
13 |
14 | A configuration file named `userpatches/config-.conf.sh` (`.conf` also allowed) is a bash script that is sourced during the build if `./compile.sh something` is issued. All parameters which normally are passed via command line can be used (`PARAM1=value1` `PARAM2=value`) by using the same syntax, one separate line per `PARAM`. Command-line parameters still can override what is the config file. More advanced use cases can use conditionals, define functions to implement hooks, source other/common config files, etc. A few, quite complex, examples can be found [here](https://github.com/lanefu/armbian-userpatches-example-indiedroid-nova).
15 |
16 | ## Legacy user provided configuration (deprecated, support for this will be removed at some point)
17 |
18 | If the file `userpatches/lib.config` exists, it will be called and can override the particular kernel and u-boot versions. For a comprehensive list of available variables, look through `lib/functions/configuration/main-config.sh`. Some examples of what you can change:
19 |
20 | [[ $LINUXFAMILY == sunxi64 && $BRANCH == edge ]] && BOOTBRANCH='tag:v2017.09' # conditionally change u-boot git branch/tag
21 | KERNELBRANCH="tag:v5.4.28" #always change to this kernel tag
22 |
23 | ## User provided kernel config
24 |
25 | If the file `userpatches/linux-$LINUXFAMILY-$BRANCH.config` exists, it will be used instead of the default one from `config`. Look for the hint at the beginning of the kernel compilation process to select the proper config file name. Example:
26 |
27 | [ o.k. ] Compiling current kernel [ 5.10.47 ]
28 | [ o.k. ] Using kernel config provided by user [ userpatches/linux-rockchip64-current.config ]
29 |
30 | ## User provided sources config overrides
31 |
32 | If file `userpatches/sources/$LINUXFAMILY.conf` exists, it will be used in addition to the default one from `config/sources`. Look for the hint at the beginning of the compilation process to select the proper config file name.
33 | Please note that there are some exceptions for LINUXFAMILY like `sunxi` (32-bit mainline sunxi) and `sunxi64` (64-bit mainline sunxi)
34 |
35 | Example:
36 |
37 | [ o.k. ] Adding user provided sunxi64 overrides
38 |
39 | ## User provided image customization script
40 |
41 | You can run additional commands to customize the created image. Edit this file:
42 |
43 | userpatches/customize-image.sh
44 |
45 | and place your code here. You may test the values of variables noted in the file to use different commands for different configurations. Those commands will be executed in a chroot environment just before finalizing the image.
46 |
47 | To add files to the image easily, put them in `userpatches/overlay` and access them in `/tmp/overlay` from `customize-image.sh`
48 |
49 | Be advised that even though you are compiling an image on an amd64 machine, any additional apt packages you configure or commands you run in customize-image.sh will be automatically installed/executed/virtualized for the architecture of the build target SBC.
50 |
51 | ## Partitioning of the SD card
52 |
53 | In case you define `$FIXED_IMAGE_SIZE` at build time the partition containing the rootfs will be made of this size. Default behaviour when this is not defined is to shrink the partition to minimum size at build time and expand it to the card's maximum capacity at boot time (leaving an unpartitioned spare area of ~5% when the size is 4GB or less to help the SD card's controller with wear leveling and garbage collection on old/slow cards).
54 |
55 | You can prevent the partition expansion from within `customize-image.sh` by a `touch /root/.no_rootfs_resize` or configure the resize operation by either a percentage or a sector count using `/root/.rootfs_resize` (`50%` will use only half of the card's size if the image size doesn't exceed this or `3887103s` for example will use sector 3887103 as partition end. Values without either `%` or `s` will be ignored).
56 |
--------------------------------------------------------------------------------
/docs/Developer-Guide_Welcome.md:
--------------------------------------------------------------------------------
1 | # Welcome to the Armbian build framework documentation!
2 |
3 | Overview:
4 |
5 | ### (ANSI) Logging
6 |
7 | Log output is stored in `output/logs` and provided in a few different formats. ANSI coloring is applied to both the screen and the log files themselves.
8 | _Please_ add `SHARE_LOG=yes` to automatically upload logs to our paste service and provide us with the given url when reporting issues.
9 | That will allows us to check the logs on a web browser and keep to correct formatting.
10 |
11 | ## Command line syntax has changed
12 |
13 | General CLI syntax: `./compile.sh PARAM=value OTHER_PARAM=other_value [ ...] []`
14 |
15 | - where `command` defaults to `build` if not specified; could also be `kernel-config` or `u-boot` etc...
16 | - config file names _must not_ have the same name as a possible `` (system will check & bomb if so)
17 | - also: there is no more `default` config -- you have to be explicit
18 | - also: there is no more `docker` config -- Docker is fully auto-managed now. The system will complain if you have one.
19 | - parameters like `PARAM=value`, `` or `` can be applied in _any order_.
20 |
21 | ## No more `config-default.conf`, config file name needs to be specified in the command line
22 |
23 | - No "default" config is auto-loaded anymore. Default config lead to unreproducible failing builds and was a source of
24 | confusion.
25 | - The configs still go to the same place, `userpatches/config-xyz.conf` -- but the name has to be provided to the build system to,
26 | like `./compile.sh BOARD=xxx xyz`; otherwise works the same.
27 |
28 | ## Artifacts, cache, what the ...?
29 |
30 | The `armbian/build` system is currently undergoing refactoring to improve its structure. Previously, the build system
31 | was a single, very complex bash script that mixed the building of `.deb` packages with the creation of images.
32 |
33 | This was reworked into a `1-to-N` image-to-artifact dependency tree; a certain image build will depend on N possible
34 | "artifacts". Artifacts are either `.deb` packages, a `.tar` of multiple `.deb` packages, or a `rootfs.tar.zstd`. Each
35 | artifact can be individually built, and has a specific name and a _version_.
36 |
37 | Each artifact is also now **cached by default** using OCI storage at ghcr.io (GitHub Container Registry). To achieve
38 | _consistent caching_, each artifact produces a version that includes _hashes_ of its composing files, variables,
39 | patches, hooks, external git SHA1 references, etc. That way we can consistently check the remote OCI cache for previously-built
40 | artifacts, and possibly save image builders from having to build heavy packages just to produce an image.
41 |
42 | ### TL;DR about artifacts and caching:
43 |
44 | - `KERNEL_ONLY=yes` and `KERNEL_ONLY=no` are deprecated. Use the `kernel` CLI command instead.
45 | - `ARTIFACT_IGNORE_CACHE=yes` can help with false positives. Please also report the problem, with a complete logfile.
46 |
47 | ## Automatic Docker/sudo launcher
48 |
49 | - `compile.sh` will prefer to use Docker if it detects Docker is installed and working.
50 | - This handles Docker Desktop and Rancher Desktop (in Docker emulation mode) under macOS/Darwin, including Apple
51 | M1/M2.
52 | - You **don't need and actually can't have the old docker config file**.
53 | - If Docker is not installed, it will try to use `sudo` to run the build as root.
54 | - If you run directly as root, it will give a warning and asks to run without `sudo`.
55 |
56 | ## Kernel Git Trees: shallow vs full
57 |
58 | During the build, depending on which local or remote caches are hit, it might be necessary to build the Linux Kernel from scratch.
59 |
60 | The kernel's git repo is huge. Most build systems resort to fetching "shallow" trees directly from upstream git servers,
61 | to save bandwidth. Unfortunately that creates immense extra CPU load on the git servers. To avoid this problem,
62 | Armbian produces daily automated git tree exports cached in ghcr.io OCI repositories, and only uses `git fetch` to
63 | update the relatively small new changes from the upstream git server.
64 |
65 | There are two types of cached Kernel git trees:
66 |
67 | - `full` is a complete git tree, including all of Torvald's `master` and all of the currently-supported `stable`
68 | branches.
69 | - `full` is very large download and requires a lot of disk space.
70 | - `full` is more useful over time and when building multiple different kernels on the same machine, like for CI
71 | servers or developer workstations.
72 | - `shallow` is a shallow tree for a specific `stable` branch
73 | - `shallow` is a much smaller download and requires less disk space
74 | - `shallow` is appropriate for restricted devices like SBCs which will build a single kernel
75 |
76 | **TL;DR: ** `KERNEL_GIT=full` or `KERNEL_GIT=shallow` or let the system decide for you.
77 |
78 | ## Consider forking before cloning the repo
79 |
80 | Before cloning the repo, consider forking it first. This will allow you to make changes and submit pull requests.
81 | You will need a GitHub account to do this;
82 | see [GitHub's documentation](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) for more
83 | information.
84 | If you fork, make sure to keep your fork up-to-date with the main repo, by rebasing your fork.
85 |
86 | ## Some really confusing stuff still remains
87 |
88 | This is (by far) not a complete list:
89 |
90 | - wifi/other kernel drivers are still using pre-armbian-next code, and are very hard to work with. it is not only the
91 | contents are a mess, the way the whole thing works leads to more and more compounding work. To make it worse, family
92 | patches sometimes need to patch driver code, leading to a cycle of sadness for developers. We are still coming up with
93 | a plan to completely replace this lest most of us go insane.
94 | - although "aggregation" has been rewritten in Python, it still mostly works using the legacy principle, by scanning
95 | directories and files in a very complex and error-prone way. This is a source of many bugs and confusion. We plan to
96 | replace this with pure extensions eventually.
97 | - we have mostly working kernel headers (linux-headers pkg) for 5.10+ including some vendor kernels
98 |
99 | ## Multiple u-boot's for same board
100 |
101 | We can build u-boot twice, using `UBOOT_TARGET_MAP`. Some example I did in https://github.com/armbian/build/blob/main/config/boards/odroidhc4.conf#L15-L20 may help.
102 |
103 |
104 |
--------------------------------------------------------------------------------
/docs/Process_Armbian-Task-Tracking.md:
--------------------------------------------------------------------------------
1 | # Armbian Task Management #
2 |
3 | ## Overview ##
4 | TLDR; Keep task discussions in the forum. GitHub Issues are just for task metadata.
5 |
6 | Tasks associated with code will have an issue created in GitHub, but **all dialog regarding tasks will reside on the forum** in a topic containing the github Issue ID of the task.
7 |
8 | ### What is a task? ###
9 |
10 | A task is something actionable that results in some sort of tangible output. ex: code, documentation, QA findings.
11 |
12 | Example sources of tasks include: feature requests, bugs, QA, general following of development roadmap.
13 |
14 | Not all support issues are tasks, but a support issue can generate a task.
15 |
16 |
17 | ## Task Creation Procedure ##
18 |
19 | 1. Create issue in [Armbian GitHub Repo](https://github.com/igorpecovnik/lib/issues) under appropriate milestone
20 | - 
21 | 1. Copy the numeric ID of issue created
22 | 1. Create new topic under the Tasks subforum on the [Armbian Forums](https://forum.armbian.com/forum/15-tasks/)
23 | - Use the the naming convention of `[ISSUE_ID] - Issue Name`
24 | - 
25 | 1. Copy the URL of task subforum topic just created
26 | 1. Create comment on GitHub Issue with the following Content:
27 |
28 | Please keep all discussion for this issue on the forum topic available below:
29 |
30 | [URL](URL)
31 |
32 | - 
33 |
34 | 1. Lock comments on GitHub Issue
35 |
36 | ## Task tracking with GitHub Issues ##
37 |
38 | GitHub Issues provide an easy method to track and filter tasks by using tags and milestones. Issues also make it easy to easily associate commits and merge requests with a task. Effectively we just use GitHub issues for the metadata for reporting.
39 |
40 | ### Labels ###
41 |
42 | Use labels identify the purpose of a task.
43 |
44 |
45 | * `bug` is used to tag tasks that address Armbian-level bugs
46 | * `not-our-bug` is used to identify tasks that are bugs in upstream code. They are not Armbian bugs, but may impact Armbian.
47 | * `enhancement` is used to identify tasks that are new features for Armbian.
48 |
49 | ### Milestones ###
50 |
51 | Use milestones to divide tasks into claimed and unclaimed work.
52 |
53 | * `claimed tasks` milestone contains tasks which have been assigned.
54 | * `unclaimed tasks` milestone contains tasks that need an owner.
55 |
56 |
57 | ## Forum Tasks ##
58 |
59 | ### Converting a topic to a task ###
60 |
61 | Sometimes support discussions can become tasks. A forum admin can assist in moving the topic to Tasks forum group. A cooresponding issue will need to be created.
62 |
63 | ## Future Process Improvements ##
64 |
65 | Enhancements desired for this process \(This should be a task!\)
66 |
67 | ### Issue Hook ###
68 |
69 | Ideally we can have a forum topic created upon issue creation. This will save some time.
70 |
--------------------------------------------------------------------------------
/docs/Process_Contribute.md:
--------------------------------------------------------------------------------
1 | # Collaborate on the project
2 |
3 | ## Overview
4 |
5 | 1. [Fork](https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo) the project.
6 | 1. Make one or more well commented and clean commits to the repository.
7 | 1. Perform a [pull request](https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request) in Github's web interface.
8 |
9 | If it is a new feature request, do not start the coding first. Remember to [open an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues) to discuss the new feature. If you want to [add code to someone else pull request](https://tighten.co/blog/adding-commits-to-a-pull-request/). Also check collection of [git tips](https://github.com/git-tips/tips) which will make your life easier.
10 |
11 | If you are struggling, check [WEB](https://www.exchangecore.com/blog/contributing-concrete5-github) or [CLI](https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github) step-by-step guide on contributing.
12 |
13 | ## Source code
14 |
15 | - Armbian build framework:
16 | - Armbian configuration utility:
17 | - Armbian documentation:
18 |
19 |
20 | ## Adding a new board?
21 |
22 | There are no detailed instructions on how to add a new board or even a whole new board family to the build script yet. However there are a few commits / pull requests that give clues how to achieve that like
23 |
24 | - [https://github.com/armbian/build/pull/3176/files](https://github.com/armbian/build/pull/3176/files)
25 | - [https://github.com/armbian/build/pull/3138/files](https://github.com/armbian/build/pull/3138/files)
26 |
27 | ## Board maintainer
28 |
29 | If you are interested in being a maintainer please review [Board Support Rules](/User-Guide_Board-Support-Rules/). Then [apply here](https://forum.armbian.com/staffapplications/application/8-single-board-computer-maintainer/) and wait for acceptance. Once accepted you will be added to our infrastructure. For this reason we need [additional information](https://www.armbian.com/maintainer-registry/) to complete your registration process.
30 |
31 | !!! question "Requirements?"
32 |
33 | - You must have access to the hardware you applied to maintain
34 | - You must have a Github ID which should be listed in the documentation
35 | - You must have a forums account
36 | - You must have an Jira account and keep track of issues filed for your board
37 | - You must make sure [Armbian management](https://www.armbian.com/maintainer-registry/) has been informed of all of the above IDs for our documentation
38 | - You should know Armbian basics like how to get an Armbian image run on your hardware and do basic debugging, ideally via serial console
39 | - Knowledge in development, writing code and so on is optional but welcome
40 |
41 | ### Expectations
42 |
43 | Maintainers must not necessarily be persons with development experience. They act as a intersection between end-users and the development team and serve the developers in best-effort manner. They are encouraged to answer basic/simple user questions (if possible, also best effort) without having to bother the development team. They are allowed to record bugs but are not allowed to escalate bugs. Team leaders do.
44 |
45 | Take note that it is still up to development team's discretion what gets attention since Armbian has to plan carefully how to spend its very limited resources.
46 |
47 | - You must participate in release process. Ideally you attend meetings related to releases. On that occasion you are given the chance to point out critical issues with your board.
48 | - You must sign-off that device has been tested, is stable, and ready for release during release process. This basically means you test images that are getting prepared for release
49 |
50 | !!! question "What are we looking for?"
51 |
52 | - does the board boot to both CLI and Desktop?
53 | - is the desktop usable?
54 | - does USB work? (at all or partially)
55 | - other things such as wireless, audio
56 |
57 | If something does not work, this is fine and normal. The important part is that it is documented and we get notified about the issues. Known problems should be placed into the Jira ticket and link placed to the board download page. While not required, you should have a build environment setup so you can build images with the most recent images and test them right away. Your feedback, either positive or negative, is very welcome. You are free to add comments to every commit and pull request.
58 |
59 | Ideally you have multiple microSD cards laying around to test regular updates on current releases and nightly without having to re-flash the same card every time to switch between branches.
60 |
61 | Alternatively you can use auto-built images - they are placed at the ever end of each board download pages under "Rolling releases".
62 |
63 | - You must provide "best effort" support in the forum. Do not let that wording intimidate you. This is not a complicated task. Regarding forums this can include things like answering obvious questions (for example by pointing to our documentation, ideally directly to the solution page), let the questioner know that additional information is needed for further debugging (e.g. request "armbianmonitor -u" output) or for upgrade issues, ask if they can recreate the issue with a fresh untouched image from:
64 |
65 | - You must provide "best effort" support in Jira. Review submitted issues for you board made by Armbian's contributors
66 |
67 | ## Release manager
68 |
69 | This role has additional permission that allows preparation of images for release.
70 |
71 | Release managers:
72 |
73 |
--------------------------------------------------------------------------------
/docs/Process_Managing_Workflow.md:
--------------------------------------------------------------------------------
1 | # Jira
2 |
3 | Jira where development work is entered and prioritized. https://armbian.atlassian.net/
4 |
5 | ## Issue Types
6 |
7 | When creating issues, try to assign issue type most appropriate. Issue type _can_ be changed later so don't worry too much. If possible assign to a "Fix Version" aka Release.
8 |
9 | * **Epic** - useful as placeholders for large requirements. Common objective, overall goals, contains several stories.
10 | * **Story** - Smallest units of functionality that can be achieved in one or two weeks. Non-technical language.
11 | * **Task** - Work that is clearly defined usually by people that will do the work. Specific, technical language.
12 |
13 |
14 | 
15 |
16 | ## Special Issue Type
17 |
18 | * **Bug** - malfunction of the system, an error, flaw, or a default in the system, that causes an incorrect result.
19 |
20 | ## Work Queue
21 |
22 | The easiest way to follow the work queue [Upcoming Release Kanban Board](https://armbian.atlassian.net/secure/RapidBoard.jspa?rapidView=2&projectKey=AR&atlOrigin=eyJpIjoiM2JlNTliN2ZkNTJiNDYzNGI4YzEzOGE4YjhmOWU3MDQiLCJwIjoiaiJ9). This board lists only work select for the upcoming release.
23 |
24 | 
25 |
26 | Use the filter buttons at top to quickly see unassigned work, work assigned to you, bugs, and work recently updated.
27 |
28 | Work is listed in 3 columns, and sorted by priority.
29 |
30 | Columns:
31 | * **Todo**
32 | * Work prioritized to be done next
33 | * Pick up any task from this column
34 | * **In Progress**
35 | * Work In Progress
36 | * **Done**
37 | * Shows **recently** completed work. Has time limit to keep board clean
38 |
39 | ## Managing Work
40 |
41 | All issues for an upcoming release are assigned a "Fix Version" to indicate release number.
42 |
43 | ### Backlog
44 |
45 | With the Kanban Board, there are 2 states for the Upcoming Release backlog.
46 |
47 | * **Todo** - These tasks are visible the **Todo** column of the Kanban board. To keep things simple, there shouldnt be more than 5-10 issues in Todo
48 | * **Backlog** -- Other tasks seleceted for release, but not are not visible on the Kanban board. The purpose of this is to keep the **Todo** column clean and easy to work from. As the **Todo** column clears, prioritize next tasks in backlog by moving them to todo.
49 |
50 | All issues for an upcoming release are assigned a "Fix Version" to indicate release number.
51 |
52 | ## Mobile access
53 | You can download the app for [Android](https://play.google.com/store/apps/details?id=com.atlassian.jira.server) or [iOS](https://apps.apple.com/us/app/id1405353949).
54 | 
55 |
--------------------------------------------------------------------------------
/docs/Quick_facts.md:
--------------------------------------------------------------------------------
1 | # Quick Facts
2 |
3 | ## What is Armbian Linux?
4 |
5 | Armbian Linux provides optimized Debian and Ubuntu Linux images for ARM-based SBCs. There is an incredible ecosystem of small computing platforms that are powerful alternatives to the Raspberry Pi. Armbian's mission is to provide a uniform system offering that is trustworthy to run on any of the dozens of OS-neglected ARM single board computers.
6 |
7 | ## Challenges
8 |
9 | ### Armbian is the opposite of Raspbian
10 |
11 | Raspbian has dozens of contributors to focus on a single SBC platform. Armbian has a dozen contributors to focus on 100+ SBCs spread over 30 platforms.
12 |
13 | ### Balancing Development and Support
14 |
15 | Given the point above, resources are thin. Armbian developers have to focus on the core mission of maintaining the [Armbian Build Platform](https://github.com/armbian/build). We heavily rely on other members of the community to support each other. Although Armbian does provide a lot of [user friendly features](https://github.com/armbian/config), the reality is that Armbian is for more advanced users. If you are really struggling with your SBC, you may want to consider first getting more comfortable with Raspbian Linux on the Raspberry Pi.
16 |
17 | ### More SBCs continuously coming to market
18 |
19 | SBC and TV Box manufacturers love to design and ship new products. Unfortunately they do not like to spend time on software and instead rely on community projects such as Armbian to fill in the gaps.
20 |
21 | ## Benefits
22 |
23 | ### Simple
24 |
25 | BASH or ZSH shell, standard Debian/Ubuntu utilities. Common and specific features can be with minimalistic menu-driven utility. Login is possible via serial, HDMI/VGA or SSH.
26 |
27 | ### Light
28 |
29 | No bloatware or spyware. Special utilities are completely optional. Suitable for newcomers and professionals.
30 |
31 | ### Optimized
32 |
33 | A distributed image is compacted to real data size and starts at around of 1G. Size is optimized for SD card usage. Bigger is better. Installing applications later severely reduces the life of your SD card. They were not designed for this type of usage.
34 |
35 | ### Fast
36 |
37 | Boards are optimized on kernel and userspace level. DVFS optimization, memory log caching, browser profile memory caching, swap usage tuning, garbage commit delay. Our system runs almost read-only and is one of the the fastest Linux for many development boards in just about every case.
38 |
39 | ### Secure
40 |
41 | Security level is on a stock Debian/Ubuntu level and can be hardened with the configuration utility. It provides a good starting point for industrial or home usage. The system is regularly inspected by professionals within the community. Each official stable build is thoroughly tested. Images are a direct base for all 3rd party builders.
42 |
43 | ### Supported
44 |
45 | Providing long term updates, security fixes, documentation, user support.
46 |
47 | ### Smart
48 |
49 | Deep understanding how boards work, how operating system work and how hardware should be designed to run better. Involved in board design. Experience in Linux since early 90'. Specialized in ARM development boards since 2013.
50 |
51 | ### Open
52 |
53 | Open source build script and kernel development, maintenance and distribution for more than [30 different ARM and ARM64 Linux kernels](https://www.armbian.com/kernel/). Powerful build and software development tools. Can run in fully parallel mode. Can run under Docker.
54 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | Markdown files for documentation go here
2 |
--------------------------------------------------------------------------------
/docs/Release_Board-Maintainers.md:
--------------------------------------------------------------------------------
1 | # Board Maintainers
2 |
3 | ## How to become a maintainer?
4 |
5 | If you are interested in being a maintainer please review [Board Support Rules](/User-Guide_Board-Support-Rules/). Then [apply here](https://forum.armbian.com/staffapplications/application/8-single-board-computer-maintainer/) and wait for acceptance. Once accepted you will be added to our infrastruture. For this reason we need [additional information](https://www.armbian.com/maintainer-registry/) to complete your registration process.
6 |
7 | !!! question "Requirements?"
8 |
9 | - You must have access to the hardware you applied to maintain
10 | - You must have a Github ID which should be listed in the documentation
11 | - You must have a forums account
12 | - You must have an Jira account and keep track of issues filed for your board
13 | - You must make sure [Armbian management](https://www.armbian.com/maintainer-registry/) has been informed of all of the above IDs for our documentation
14 | - You should know Armbian basics like how to get an Armbian image run on your hardware and do basic debugging, ideally via serial console
15 | - Knowledge in development, writing code and so on is optional but welcome
16 |
17 | ## Expectations
18 |
19 | Maintainers must not necessarily be persons with development experience. They act as a intersection between end-users and the development team and serve the developers in best-effort manner. They are encouraged to answer basic/simple user questions (if possible, also best effort) without having to bother the development team. They are allowed to record bugs but are not allowed to escalate bugs. Team leaders do.
20 |
21 | Take note that it is still up to development team's discretion what gets attention since Armbian has to plan carefully how to spend its very limited resources.
22 |
23 | - You must participate in release process. Ideally you attend meetings related to releases. On that occasion you are given the chance to point out critical issues with your board.
24 | - You must sign-off that device has been tested, is stable, and ready for release during release process. This basically means you test images that are getting prepared for release
25 |
26 | !!! question "What are we looking for?"
27 |
28 | - does the board boot to both CLI and Desktop?
29 | - is the desktop usable?
30 | - does USB work? (at all or partially)
31 | - other things such as wireless, audio
32 |
33 | If something does not work, this is fine and normal. The important part is that it is documented and we get notified about the issues. Known problems should be placed into the Jira ticket and link placed to the board download page. While not required, you should have a build environment setup so you can build images with the most recent images and test them right away. Your feedback, either positive or negative, is very welcome. You are free to add comments to every commit and pull request.
34 |
35 | Ideally you have multiple microSD cards laying around to test regular updates on current releases and nightly without having to re-flash the same card every time to switch between branches.
36 |
37 | Alternatively you can use auto-built images - they are placed at the ever end of each board download pages under "Rolling releases".
38 |
39 | - You must provide "best effort" support in the forum. Do not let that wording intimidate you. This is not a complicated task. Regarding forums this can include things like answering obvious questions (for example by pointing to our documentation, ideally directly to the solution page), let the questioner know that additional information is needed for further debugging (e.g. request "armbianmonitor -u" output) or for upgrade issues, ask if they can recreate the issue with a fresh untouched image from:
40 |
41 | - You must provide "best effort" support in Jira. Review submitted issues for you board made by Armbian's contributors
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Config.md:
--------------------------------------------------------------------------------
1 | # Armbian Config
2 |
3 | ``` mermaid
4 | flowchart LR
5 | A[armbian-config] -----> B["System"];
6 | A[armbian-config] -----> C["Network"];
7 | A[armbian-config] -----> D["Localisation"];
8 | A[armbian-config] -----> E["Software"];
9 | A[armbian-config] -----> F["Help"];
10 | ```
11 |
12 |
13 |
14 | Utility for configuring your board, adjusting services, and installing applications. It comes with Armbian by default.
15 |
16 | To start the Armbian configuration utility, use the following command:
17 | ~~~
18 | armbian-config
19 | ~~~
20 |
21 | ## Adding a new feature
22 |
23 | Please check [instructions](/Contribute/Armbian-config/).
24 |
25 | ## Sources
26 |
27 |
28 |
29 | ## Installation on 3rd party Linux OS
30 |
31 | This tool is tailored to works best with Armbian Linux but it has also been automatically tested on:
32 |
33 | - Debian Bookworm
34 | - Ubuntu Jammy
35 | - Ubuntu Noble
36 |
37 | In theory it should work on any systemd APT based Linux distributions such as: Linux Mint, Elementary OS, Kali Linux, MX Linux, Parrot OS, Proxmox, Raspberry Pi OS, ...
38 |
39 | ~~~
40 | wget -qO - https://apt.armbian.com/armbian.key | gpg --dearmor | \
41 | sudo tee /usr/share/keyrings/armbian.gpg > /dev/null
42 | cat << EOF | sudo tee /etc/apt/sources.list.d/armbian-config.sources > /dev/null
43 | Types: deb
44 | URIs: https://github.armbian.com/configng
45 | Suites: stable
46 | Components: main
47 | Signed-By: /usr/share/keyrings/armbian.gpg
48 | EOF
49 | sudo apt update
50 | sudo apt -y install armbian-config
51 | ~~~
52 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Config/Localisation.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Localisation
6 |
7 | ## Change Global timezone
8 |
9 |
10 |
11 | [](#)
12 |
13 |
14 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/LOC001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/LOC001-header.md)
15 | __Status:__ Stable
16 | __Architecture:__ x86-64aarch64armhfriscv64
17 | __Maintainer:__ @armbian
18 | __Documentation:__ [Link](https://forum.armbian.com/)
19 |
20 | ~~~ custombash
21 | armbian-config --cmd LOC001
22 | ~~~
23 |
24 |
25 | ~~~ bash title="Change Locales reconfigure the language and character set:"
26 | armbian-config --cmd LOC002
27 | ~~~
28 |
29 |
30 | ~~~ bash title="Change Keyboard layout:"
31 | armbian-config --cmd LOC003
32 | ~~~
33 |
34 |
35 | ~~~ bash title="Change System Hostname:"
36 | armbian-config --cmd LOC005
37 | ~~~
38 |
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software.md:
--------------------------------------------------------------------------------
1 | # Armbian Software
2 |
3 | Lightweight, Secure, and Optimized Services for Embedded Systems
4 |
5 | ## Overview
6 |
7 | **Armbian Software**, accessible via the `armbian-config` utility, empowers you to quickly deploy a variety of **preconfigured applications and advanced services** — from diagnostic tools and media servers to dashboards and container orchestration platforms. Most services are offered as **Docker containers** optimized specifically for Armbian OS and supported hardware, while a subset is available as **native installations** for lightweight or performance-critical setups.
8 |
9 | ## Installation & Maintenance
10 |
11 | Each installation is isolated and designed with **clean setup and teardown** in mind. Key features include:
12 |
13 | - **One-command installs** with sensible defaults
14 | - **No leftover files or dangling containers** after uninstallation
15 | - **Service isolation** via Docker networks and volume mappings
16 | - **Support for both manual and automatic updates**, [including container image refresh](/User-Guide_Armbian-Config/System/#docker-images)
17 | - Daily-tested [CI pipelines](https://github.com/armbian/configng/actions/workflows/unit-tests.yml) ensure that software definitions remain reliable and compatible with the latest system changes
18 |
19 | All configurations are streamlined to work **out of the box**, reducing the need for manual intervention or deep technical know-how.
20 |
21 | ## Security and Management
22 |
23 | Every service runs on a **dedicated Docker network bridge**, isolating app traffic for **enhanced security** and performance. Key management benefits include:
24 |
25 | - Optional automatic restart and image updates
26 | - Native logging integration with `journalctl` or Docker logs
27 | - Clean rollbacks and easy troubleshooting
28 | - Support for encrypted volumes and HTTPS reverse proxies
29 |
30 | These features make the platform suitable for both **prototyping** and **long-term deployments**. However, a few specific services — typically those requiring low-level hardware access or advanced networking features — may still need to run directly on the host network rather than within an isolated Docker bridge.
31 |
32 | ## Hardware Support
33 |
34 | | Architecture | Support Level | Notes |
35 | |--------------|----------------|-------|
36 | | x86_64 | ✅ Full | Ideal for servers, mini PCs |
37 | | arm64 | ✅ Full | Ideal for servers and SBCs |
38 | | armhf | ⚠️ Partial | Limited by upstream container support |
39 | | riscv64 | ⚠️ Partial | Experimental, growing ecosystem |
40 |
41 | Installations may include hardware specific tuning for optimal performance.
42 |
43 | ## Why Use It
44 |
45 | - 🚀 **One-click deployments** of popular, containerized apps
46 | - 🔒 **Curated, tested, and secure** software maintained by the Armbian community
47 | - 🔁 **Clean installs and easy removal** — no system clutter or dependency hell
48 | - 📦 **Optimized for Armbian-supported hardware**, with fine-tuned configurations
49 | - ⚙️ **Minimal overhead**, ideal for embedded, headless, or remote systems
50 | - 🛠️ **Easy maintenance** with integrated update and monitoring tools
51 | - 🌐 **Internet-ready services**, including reverse proxies and network bridges
52 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Armbian.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Armbian infrastructure services
6 |
7 | ## CDN router
8 |
9 |
10 | Router for repository mirror automation
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | The Armbian Router is an intelligent redirector system that optimizes file downloads by automatically directing users to the best available mirror. It evaluates each download request based on geographic location, server health, and file availability, ensuring faster downloads, balanced load distribution, and high availability. This core service underpins Armbian's scalable mirror network, seamlessly routing traffic to improve performance and reliability for end users worldwide.
20 |
21 |
22 |
23 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/ART001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/ART001-header.md)
24 | __Status:__ Stable
25 | __Architecture:__ x86-64aarch64armhfriscv64
26 | __Maintainer:__ @armbian
27 | __Documentation:__ [Link](https://forum.armbian.com/)
28 |
29 | ~~~ custombash
30 | armbian-config --cmd ART001
31 | ~~~
32 |
33 |
34 | ~~~ bash title="Remove CDN router:"
35 | armbian-config --cmd ART002
36 | ~~~
37 |
38 |
39 |
40 | ## GH runners
41 |
42 |
43 | GitHub runners for Armbian automation
44 |
45 |
46 |
47 | [](#)
48 |
49 |
50 |
51 |
52 | This module automates the installation, removal, and status checking of GitHub self-hosted runners for the Armbian project. It supports batch operations and user input through dialog prompts when running interactively.
53 |
54 |
55 |
56 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/GHR001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/GHR001-header.md)
57 | __Status:__ Stable
58 | __Architecture:__ x86-64aarch64armhfriscv64
59 | __Maintainer:__ @armbian
60 | __Documentation:__ [Link](https://forum.armbian.com/)
61 |
62 | ~~~ custombash
63 | armbian-config --cmd GHR001
64 | ~~~
65 |
66 |
67 |
68 | === "Supported Commands"
69 |
70 | - **`install`**
71 | Installs one or more GitHub runners using the provided configuration or interactively prompted values.
72 |
73 | - **`purge` / `remove`**
74 | Removes runners based on the provided runner name series and target organization or repository.
75 |
76 | - **`status`**
77 | Quietly checks if any `actions.runner` services are currently running on the system.
78 |
79 | === "Available Switches"
80 |
81 | | Switch | Description |
82 | |--------------------|-----------------------------------------------------------------------------|
83 | | `gh_token` | GitHub token with admin rights to manage self-hosted runners. |
84 | | `runner_name` | Name prefix for the runner series (default: `armbian`). |
85 | | `start` | Start index of the runner series (e.g., `01`). |
86 | | `stop` | End index of the runner series (e.g., `05`). |
87 | | `label_primary` | Labels for the first runner (default: `alfa`). |
88 | | `label_secondary` | Labels for additional runners (default: `fast,images`). |
89 | | `organisation` | GitHub organization name (default: `armbian`). |
90 | | `owner` | GitHub user or organization owner (used for repo-level runners). |
91 | | `repository` | GitHub repository name (used for repo-level runners). |
92 |
93 | === "Behavior"
94 |
95 | - Prompts the user for missing switches via `dialog` **only in interactive mode**.
96 | - Supports bulk installation of runners using sequential numbering (`start` to `stop`).
97 | - Calls internal `actions.runner.install` and `actions.runner.remove` helpers.
98 | - Returns `0` if any runner services are active, `1` otherwise (for scripting use).
99 | - Suppresses errors and outputs when checking status to remain quiet in background use.
100 |
101 |
102 |
103 |
104 | ~~~ bash title="Remove GitHub runners for Armbian automation:"
105 | armbian-config --cmd GHR002
106 | ~~~
107 |
108 |
109 |
110 | ## Rsyncd server
111 |
112 |
113 |
114 | [](#)
115 |
116 |
117 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/RSD001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/RSD001-header.md)
118 | __Status:__ Stable
119 | __Architecture:__ x86-64aarch64armhfriscv64
120 | __Maintainer:__ @armbian
121 | __Documentation:__ [Link](https://forum.armbian.com/)
122 |
123 | ~~~ custombash
124 | armbian-config --cmd RSD001
125 | ~~~
126 |
127 |
128 | ~~~ bash title="Remove Armbian rsyncd server:"
129 | armbian-config --cmd RSD002
130 | ~~~
131 |
132 |
133 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Backup.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Backup solutions for your data
6 |
7 | ## Duplicati
8 |
9 |
10 | Duplicati install
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | Duplicati is a versatile and secure backup tool designed for everyone, including:
20 |
21 | - Users new to backup systems who need a simple and reliable solution.
22 | - Experienced users who want full control over encrypted backups and storage destinations.
23 | - System administrators who require automated, encrypted backups across multiple platforms.
24 |
25 | Duplicati offers powerful features such as strong AES-256 encryption, backup scheduling, and flexible storage support (local folders, NAS, cloud providers like Google Drive, Dropbox, S3, and more).
26 | Through its web-based interface, users can easily configure, monitor, and restore backups from any browser.
27 |
28 | Thanks to Duplicati’s smart design — working through standard protocols and containerized deployment — it fits seamlessly into any environment, from personal setups to enterprise infrastructures.
29 |
30 |
31 |
32 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/DPL001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/DPL001-header.md)
33 | __Status:__ Stable
34 | __Architecture:__ x86-64arm64
35 | __Maintainer:__ @igorpecovnik
36 | __Documentation:__ [Link](https://prev-docs.duplicati.com/en/latest/)
37 |
38 | ~~~ custombash
39 | armbian-config --cmd DPL001
40 | ~~~
41 |
42 |
43 |
44 | === "Access to the web interface"
45 |
46 | The web interface is accessible via port **8200**:
47 |
48 | - URL: `http://:8200`
49 |
50 | === "Directories"
51 |
52 | - Install directory: `/armbian/duplicati`
53 | - Configuration directory: `/armbian/duplicati/config`
54 | - Backup target directory: `/armbian/duplicati/backups`
55 |
56 | === "View logs"
57 |
58 | ```sh
59 | docker logs -f duplicati
60 | ```
61 |
62 |
63 |
64 |
65 | ~~~ bash title="Duplicati remove:"
66 | armbian-config --cmd DPL002
67 | ~~~
68 |
69 |
70 | ~~~ bash title="Duplicati purge with data folder:"
71 | armbian-config --cmd DPL003
72 | ~~~
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Containers.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Docker containerization and KVM virtual machines
6 |
7 | ## Docker
8 |
9 |
10 | Docker minimal
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/CON001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/CON001-header.md)
18 | __Status:__ Stable
19 | __Architecture:__ x86-64arm64armhf
20 | __Maintainer:__ @igorpecovnik
21 | __Documentation:__ [Link](https://wiki.bazarr.media/)
22 |
23 | ~~~ custombash
24 | armbian-config --cmd CON001
25 | ~~~
26 |
27 |
28 |
29 | What is Docker? Docker helps developers build, share, run, and verify applications anywhere - without tedious environment configuration or management.
30 |
31 |
32 |
33 |
34 | ~~~ bash title="Docker engine:"
35 | armbian-config --cmd CON002
36 | ~~~
37 |
38 |
39 | ~~~ bash title="Docker remove:"
40 | armbian-config --cmd CON003
41 | ~~~
42 |
43 |
44 | ~~~ bash title="Docker purge with all images, containers, and volumes:"
45 | armbian-config --cmd CON004
46 | ~~~
47 |
48 |
49 |
50 |
51 |
52 | ## Portainer
53 |
54 |
55 | Portainer container management platform
56 |
57 |
58 |
59 | [](#)
60 |
61 |
62 |
63 |
64 | Portainer simplifies your Docker container management via Portainer web interface. It enables faster deploy of the applications and it gives real time visibility.
65 |
66 |
67 |
68 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/POR001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/POR001-header.md)
69 | __Status:__ Stable
70 | __Architecture:__ x86-64arm64armhf
71 | __Maintainer:__ @schwar3kat
72 | __Documentation:__ [Link](https://docs.portainer.io/)
73 |
74 | ~~~ custombash
75 | armbian-config --cmd POR001
76 | ~~~
77 |
78 |
79 |
80 | === "Access to the web interface"
81 |
82 | The web interface is accessible via port **9002**:
83 |
84 | - URL = `http://:9002`
85 |
86 |
87 |
88 |
89 | ~~~ bash title="Portainer remove:"
90 | armbian-config --cmd POR002
91 | ~~~
92 |
93 |
94 | ~~~ bash title="Portainer purge with with data folder:"
95 | armbian-config --cmd POR003
96 | ~~~
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Desktops.md:
--------------------------------------------------------------------------------
1 | # Desktop Environments
2 |
3 |
4 | ***
5 |
6 | ## XFCE desktop
7 |
8 |
9 | ***
10 |
11 | ### XFCE desktop Install
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | XFCE is a lightweight, fast, and user-friendly desktop environment for Linux, offering a classic interface, essential apps, and customization. It prioritizes performance, simplicity, and efficiency.
20 |
21 |
22 |
23 | Install XFCE:
24 |
25 | Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.
26 |
27 | **Command:**
28 | ~~~
29 | armbian-config --cmd XFCE01
30 | ~~~
31 |
32 | **Author:** @igorpecovnik
33 |
34 | **Status:** Stable
35 |
36 |
37 |
38 | ***
39 |
40 | ### Uninstall
41 | **Command:**
42 | ~~~
43 | armbian-config --cmd XFCE02
44 | ~~~
45 |
46 | **Author:** @igorpecovnik
47 |
48 | **Status:** Stable
49 |
50 |
51 |
52 | ***
53 |
54 | ### Enable autologin
55 | **Command:**
56 | ~~~
57 | armbian-config --cmd XFCE03
58 | ~~~
59 |
60 | **Author:** @igorpecovnik
61 |
62 | **Status:** Stable
63 |
64 |
65 |
66 | ***
67 |
68 | ### Disable autologin
69 | **Command:**
70 | ~~~
71 | armbian-config --cmd XFCE04
72 | ~~~
73 |
74 | **Author:** @igorpecovnik
75 |
76 | **Status:** Stable
77 |
78 |
79 |
80 | ***
81 |
82 | ## Gnome desktop
83 |
84 |
85 | ***
86 |
87 | ### Gnome desktop Install
88 |
89 |
90 | [](#)
91 |
92 |
93 |
94 |
95 | GNOME is a modern, user-friendly desktop environment for Linux, offering a clean interface, essential apps, and customization through extensions. It prioritizes simplicity, accessibility, and efficiency.
96 |
97 |
98 |
99 | **Command:**
100 | ~~~
101 | armbian-config --cmd GNOME01
102 | ~~~
103 |
104 | **Author:** @igorpecovnik
105 |
106 | **Status:** Stable
107 |
108 |
109 |
110 | ***
111 |
112 | ### Uninstall
113 | **Command:**
114 | ~~~
115 | armbian-config --cmd GNOME02
116 | ~~~
117 |
118 | **Author:** @igorpecovnik
119 |
120 | **Status:** Stable
121 |
122 |
123 |
124 | ***
125 |
126 | ### Enable autologin
127 | **Command:**
128 | ~~~
129 | armbian-config --cmd GNOME03
130 | ~~~
131 |
132 | **Author:** @igorpecovnik
133 |
134 | **Status:** Stable
135 |
136 |
137 |
138 | ***
139 |
140 | ### Disable autologin
141 | **Command:**
142 | ~~~
143 | armbian-config --cmd GNOME04
144 | ~~~
145 |
146 | **Author:** @igorpecovnik
147 |
148 | **Status:** Stable
149 |
150 |
151 |
152 | ***
153 |
154 | ## Improve application search speed
155 | **Command:**
156 | ~~~
157 | armbian-config --cmd Xapian
158 | ~~~
159 |
160 | **Author:** @igorpecovnik
161 |
162 | **Status:** Stable
163 |
164 |
165 |
166 | ***
167 |
168 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/DevTools.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Applications and tools for development
6 |
7 | ## Git CLI
8 |
9 |
10 | Install tools for cloning and managing repositories (git)
11 |
12 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/GIT001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/GIT001-header.md)
13 | __Status:__ Stable
14 | __Architecture:__ x86-64aarch64armhfriscv64
15 | __Maintainer:__ @armbian
16 | __Documentation:__ [Link](https://forum.armbian.com/)
17 |
18 | ~~~ custombash
19 | armbian-config --cmd GIT001
20 | ~~~
21 |
22 |
23 | ~~~ bash title="Remove tools for cloning and managing repositories (git):"
24 | armbian-config --cmd GIT002
25 | ~~~
26 |
27 |
28 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Finance.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Manage your finances
6 |
7 | ## Actual Budget
8 |
9 |
10 | Do your finances with Actual Budget
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | [Actual Budget](https://actualbudget.org/) is a **free, open-source personal finance app** built around the **envelope budgeting method**.
20 |
21 | - **Privacy-focused**: Users can self-host their data or use encrypted cloud syncing.
22 | - **Key Features**:
23 | - Multi-account tracking
24 | - Transaction importing
25 | - Customizable financial reports
26 | - Optional syncing via services like PikaPods
27 | - **Ideal for**: Those who want a **transparent**, **self-hosted** alternative to proprietary budgeting tools.
28 |
29 |
30 |
31 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/ABU001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/ABU001-header.md)
32 | __Status:__ Stable
33 | __Maintainer:__ @igorpecovnik
34 | __Documentation:__ [Link](https://actualbudget.org/docs)
35 |
36 | ~~~ custombash
37 | armbian-config --cmd ABU001
38 | ~~~
39 |
40 |
41 |
42 | !!! danger "Warning: HTTPS Certificate Required"
43 |
44 | After initially installing the Actual server, you might get stuck at the step:
45 | **"Initializing the connection to the local database..."**
46 |
47 | The issue is due to the server not having an **HTTPS certificate**.
48 | After activating an HTTPS certificate for the Actual server, everything should work fine.
49 |
50 | If you still encounter issues even after setting up HTTPS, we highly recommend reaching out to the [Actual Budget Discord server](https://discord.gg/actualbudget) — the developers and community there are very kind and helpful.
51 |
52 |
53 |
54 |
55 |
56 | ~~~ bash title="Actual Budget remove:"
57 | armbian-config --cmd ABU002
58 | ~~~
59 |
60 |
61 | ~~~ bash title="Actual Budget purge with data folder:"
62 | armbian-config --cmd ABU003
63 | ~~~
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Music.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Music servers and streamers
6 |
7 | ## Navidrome
8 |
9 |
10 | Navidrome music server and streamer compatible with Subsonic/Airsonic
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | Navidrome is a modern, lightweight, and self-hosted music server and streamer. It's designed to be compatible with the Subsonic and Airsonic APIs, making it a drop-in replacement for users of those systems. With Navidrome, you can stream your personal music collection from anywhere using any compatible Subsonic client (mobile or desktop). It supports multi-user access, real-time updates, album artwork, and is built with performance and simplicity in mind—perfect for organizing and accessing large music libraries.
20 |
21 |
22 |
23 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/NAV001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/NAV001-header.md)
24 | __Status:__ Stable
25 | __Architecture:__ x86-64arm64
26 | __Maintainer:__ @igorpecovnik
27 | __Documentation:__ [Link](https://github.com/pynavidrome/navidrome/wiki)
28 |
29 | ~~~ custombash
30 | armbian-config --cmd NAV001
31 | ~~~
32 |
33 |
34 | ~~~ bash title="Navidrome remove:"
35 | armbian-config --cmd NAV002
36 | ~~~
37 |
38 |
39 | ~~~ bash title="Navidrome purge with data folder:"
40 | armbian-config --cmd NAV003
41 | ~~~
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Netconfig.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Console network tools for measuring load and bandwidth
6 |
7 | ## nload
8 |
9 |
10 | nload - realtime console network usage monitor
11 |
12 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/NLD001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/NLD001-header.md)
13 | __Status:__ Stable
14 | __Architecture:__ x86-64arm64
15 | __Maintainer:__ @igorpecovnik
16 | __Documentation:__ [Link](https://netbox.readthedocs.io/en/stable/)
17 |
18 | ~~~ custombash
19 | armbian-config --cmd NLD001
20 | ~~~
21 |
22 |
23 | ~~~ bash title="nload - remove:"
24 | armbian-config --cmd NLD002
25 | ~~~
26 |
27 |
28 |
29 | ## iperf3
30 |
31 |
32 | iperf3 bandwidth measuring tool
33 |
34 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/IPR001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/IPR001-header.md)
35 | __Status:__ Stable
36 | __Architecture:__ x86-64arm64
37 | __Maintainer:__ @igorpecovnik
38 | __Documentation:__ [Link](https://netbox.readthedocs.io/en/stable/)
39 |
40 | ~~~ custombash
41 | armbian-config --cmd IPR001
42 | ~~~
43 |
44 |
45 | ~~~ bash title="iperf3 remove:"
46 | armbian-config --cmd IPR002
47 | ~~~
48 |
49 |
50 |
51 | ## iptraf-ng
52 |
53 |
54 | iptraf-ng IP LAN monitor
55 |
56 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/IPT001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/IPT001-header.md)
57 | __Status:__ Stable
58 | __Architecture:__ x86-64arm64
59 | __Maintainer:__ @igorpecovnik
60 | __Documentation:__ [Link](https://netbox.readthedocs.io/en/stable/)
61 |
62 | ~~~ custombash
63 | armbian-config --cmd IPT001
64 | ~~~
65 |
66 |
67 | ~~~ bash title="iptraf-ng remove:"
68 | armbian-config --cmd IPT002
69 | ~~~
70 |
71 |
72 |
73 | ## avahi-daemon
74 |
75 |
76 | avahi-daemon hostname broadcast via mDNS
77 |
78 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/AVH001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/AVH001-header.md)
79 | __Status:__ Stable
80 | __Architecture:__ x86-64arm64
81 | __Maintainer:__ @igorpecovnik
82 | __Documentation:__ [Link](https://netbox.readthedocs.io/en/stable/)
83 |
84 | ~~~ custombash
85 | armbian-config --cmd AVH001
86 | ~~~
87 |
88 |
89 | ~~~ bash title="avahi-daemon remove:"
90 | armbian-config --cmd AVH002
91 | ~~~
92 |
93 |
94 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/Printing.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Tools for printing and 3D printing
6 |
7 | ## OctoPrint
8 |
9 |
10 | OctoPrint web-based 3D printers management tool
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | OctoPrint is an open source 3D printer controller application, which provides a web interface for the connected printers. It displays printers status and key parameters and allows user to schedule prints and remotely control the printer.
20 |
21 |
22 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/OCT001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/OCT001-header.md)
23 | __Status:__ Stable
24 | __Architecture:__ x86-64arm64
25 | __Maintainer:__ @igorpecovnik
26 | __Documentation:__ [Link](https://transmissionbt.com/)
27 |
28 | ~~~ custombash
29 | armbian-config --cmd OCT001
30 | ~~~
31 |
32 |
33 |
34 | === "Access to the web interface"
35 |
36 | The web interface is accessible via port **7981**:
37 |
38 | - URL: `https://:7981`
39 |
40 | === "Directories"
41 |
42 | - Install directory: `/armbian/octoprint`
43 |
44 | === "View logs"
45 |
46 | ```sh
47 | docker logs -f octoprint
48 | ```
49 |
50 |
51 |
52 |
53 | ~~~ bash title="OctoPrint remove:"
54 | armbian-config --cmd OCT002
55 | ~~~
56 |
57 |
58 | ~~~ bash title="OctoPrint purge with data folder:"
59 | armbian-config --cmd OCT003
60 | ~~~
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/VPN.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Virtual Private Network tools
6 |
7 | ## WireGuard
8 |
9 |
10 | WireGuard VPN client / server
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. Regarded as the most secure, easiest to use, and simplest VPN solution in the industry.
20 |
21 |
22 | __Edit:__ [footer](https://github.com/armbian/configng/edit/main/tools/include/markdown/WRG001-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/WRG001-header.md)
23 | __Status:__ Enabled
24 | __Architecture:__ x86-64arm64
25 | __Maintainer:__ @igorpecovnik
26 | __Documentation:__ [Link](https://docs.linuxserver.io/images/docker-wireguard/#server-mode)
27 |
28 | ~~~ custombash
29 | armbian-config --cmd WRG001
30 | ~~~
31 |
32 |
33 |
34 | === "Access to the server from internet"
35 |
36 | Remember to open/forward the port 51820 (UDP) through NAT on your router.
37 |
38 | === "Directories"
39 |
40 | - Install directory: `/armbian/wireguard`
41 | - Site configuration directory: `/armbian/wireguard/config`
42 |
43 | === "View logs"
44 |
45 | ```sh
46 | docker logs -f wireguard
47 | ```
48 |
49 | # Install server and enable private network on a client
50 |
51 | 1. Install Wireguard server
52 | 2. It will asks you for peer keywords. It will make a profile for each peer
53 | 3. Download client to your PC, server or mobile phone. Scan OR code or copy credentials to the client.
54 |
55 | Enjoy private network! Its that easy.
56 |
57 | More informations:
58 |
59 |
60 |
61 |
62 |
63 | ~~~ bash title="WireGuard remove:"
64 | armbian-config --cmd WRG002
65 | ~~~
66 |
67 |
68 | ~~~ bash title="WireGuard clients QR codes:"
69 | armbian-config --cmd WRG003
70 | ~~~
71 |
72 |
73 | ~~~ bash title="WireGuard purge with data folder:"
74 | armbian-config --cmd WRG004
75 | ~~~
76 |
77 |
78 |
79 |
80 |
81 | ## ZeroTier
82 |
83 |
84 | ZeroTier connect devices over your own private network in the world.
85 |
86 |
87 |
88 | [](#)
89 |
90 |
91 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/ZTR001-footer.md) [header](https://github.com/armbian/configng/new/main/tools/include/markdown/ZTR001-header.md)
92 | __Status:__ Stable
93 |
94 | ~~~ custombash
95 | armbian-config --cmd ZTR001
96 | ~~~
97 |
98 |
--------------------------------------------------------------------------------
/docs/User-Guide_Armbian-Software/WebHosting.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 |
5 | # Web server, LEMP, reverse proxy, Let's Encrypt SSL
6 |
7 | ## SWAG
8 |
9 |
10 | SWAG reverse proxy
11 |
12 |
13 |
14 | [](#)
15 |
16 |
17 |
18 |
19 | SWAG - Secure Web Application Gateway sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt). It also contains fail2ban for intrusion prevention.
20 |
21 | After entering required information, your server will have auto updating SSL secured website! To this website you can attach several services, for example: https://my.server.com/netdata will run [Netdata](https://www.netdata.cloud/) instance.
22 |
23 | === "Requirements"
24 |
25 | - this computer port 80 and 443 must be open to the internet
26 | - your domain name (myserver.mydomain.com) DNS server should point to your router WAN address
27 | - make sure to set additional .htpasswd username and password as you don't want to expose your services without password
28 |
29 | === "Directories"
30 |
31 | - Config directory: `/armbian/swag/config/`
32 | - Website root folder: `/armbian/swag/config/www/`
33 | - Reverse proxy configuration samples: `/armbian/swag/config/nginx/proxy-confs/`
34 |
35 | === "Advanced setup"
36 |
37 | - Please follow this comprehensive guide:
38 |
39 |
40 |
41 | __Edit:__ [footer](https://github.com/armbian/configng/new/main/tools/include/markdown/SWAG01-footer.md) [header](https://github.com/armbian/configng/edit/main/tools/include/markdown/SWAG01-header.md)
42 | __Status:__ Stable
43 | __Architecture:__ x86-64arm64
44 | __Maintainer:__ @igorpecovnik
45 | __Documentation:__ [Link](https://github.com/linuxserver/docker-swag)
46 |
47 | ~~~ custombash
48 | armbian-config --cmd SWAG01
49 | ~~~
50 |
51 |
52 | ~~~ bash title="SWAG reverse proxy .htpasswd set:"
53 | armbian-config --cmd SWAG02
54 | ~~~
55 |
56 |
57 | ~~~ bash title="SWAG remove:"
58 | armbian-config --cmd SWAG03
59 | ~~~
60 |
61 |
62 | ~~~ bash title="SWAG purge with data folder:"
63 | armbian-config --cmd SWAG04
64 | ~~~
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/docs/User-Guide_Autoconfig.md:
--------------------------------------------------------------------------------
1 | # Automatic first boot configuration
2 |
3 | ## Reading presets from local config
4 |
5 | It is possible to configure your device automatically at first boot. Settings like: root password, IP address, connecting to wireless.
6 |
7 | After flashing an image to boot media, mount it and add a file containing your config to `/root/.not_logged_in_yet`
8 |
9 | ???+ tip
10 | You may also mount the image and edit it prior to flashing, if this is preferable.
11 |
12 | ## Loading a remote config
13 |
14 | It is also possible to load this config file from a remote server, as above, however the **only** directive you should include is:
15 |
16 | ```bash title="/root/.not_logged_in_yet"
17 | PRESET_CONFIGURATION="http://path/to/config/file"
18 | ```
19 |
20 | ## Configuration directives
21 |
22 | - The directives in this file are specified using `key="value"` format.
23 | - To ask for a value interactively, leave it unset or comment out the directive.
24 | - For fully-unattended setup, specify all values.
25 |
26 | !!! caution
27 | No validation of this network config is performed, wrong settings will lead to broken network.
28 | Armbian supports [netplan.io](https://netplan.io), this is the preferred config method.
29 | See [netplan guides](https://netplan.readthedocs.io/en/stable/examples/) for various example configurations.
30 | Netplan config is stored in `/etc/netplan/`.
31 |
32 | | Configuration directive | `[default]` \| `option` | Description: |
33 | | :---------------------- | :-------------- | :----------- |
34 | | `PRESET_CONFIGURATION` | `http://path/to/config/file` | See [Loading a remote config](#loading-a-remote-config) |
35 | | `PRESET_NET_CHANGE_DEFAULTS` | `[0]` \| `1` | Change default network settings if unset, **no network changes will be applied** |
36 | | `PRESET_NET_ETHERNET_ENABLED` | `0` \| `1` | Enable Ethernet, ignored if WiFi enabled |
37 | | `PRESET_NET_WIFI_ENABLED` | `0` \| `1` | Enable WiFi, **takes priority over Ethernet** |
38 | | `PRESET_NET_WIFI_SSID` | `MySSID` | WiFi SSID |
39 | | `PRESET_NET_WIFI_KEY` | `MyWPA-PSK` | WiFi Pre-Shared Key (Password), **stored in plaintext** |
40 | | `PRESET_NET_WIFI_COUNTRYCODE` | `CC` | Country code, **required** for WiFi e.g. `GB`, `US`, `DE`; see [Wikipedia/ISO_3166](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) |
41 | | `PRESET_CONNECT_WIRELESS` | `Y` \| `n` | Set to `Y` for interactive mode, `n` uses values from file |
42 | | `PRESET_NET_USE_STATIC` | `[0]` \| `1` | Use the static IP provided, DHCP is the default Leaving **any** value unset will result in a broken config |
43 | | `PRESET_NET_STATIC_IP` | `xxx.xxx.xxx.xxx` | Static IPv4 address, dotted decimal notation |
44 | | `PRESET_NET_STATIC_MASK` | `xxx.xxx.xxx.xxx` | Subnet mask, typically `255.255.255.0` |
45 | | `PRESET_NET_STATIC_GATEWAY` | `xxx.xxx.xxx.xxx` | Default gateway address |
46 | | `PRESET_NET_STATIC_DNS` | `x.x.x.x x.x.x.x` | DNS Servers to use, separated by a space. If unsure: CloudFlare is `1.1.1.1 1.0.0.1` Google is `8.8.8.8 8.8.4.4` |
47 | | `SET_LANG_BASED_ON_LOCATION` | `Y` \| `n` | "Set user language based on your location?" |
48 | | `PRESET_LOCALE` | `locale` | Locale e.g. `en_GB.UTF-8`, `de_DE.UTF-8`, `zh_TW.UTF-8` |
49 | | `PRESET_TIMEZONE` | `timezone` | Timezone e.g. `Etc/UTC`, |
50 | | `PRESET_ROOT_PASSWORD` | `[1234]` \| `password` | Preset `root` password **Stored in plaintext**, *SSH keys are safer!* |
51 | | `PRESET_ROOT_KEY` | `https://path/to/key.file` | Fetches public key from specified URL for `root` user |
52 | | `PRESET_USER_NAME` | `username` | Username to create |
53 | | `PRESET_USER_PASSWORD` | `password` | Preset created user password **Stored in plaintext**, *SSH keys are safer!* |
54 | | `PRESET_USER_KEY` | `https://path/to/key.file` | Fetches public key from specified URL for created user |
55 | | `PRESET_DEFAULT_REALNAME` | `Real Name` | RealName to use for created user |
56 | | `PRESET_USER_SHELL` | `shell` | Currently only `bash` (default) or `zsh` (`armbian-zsh`) supported |
57 |
58 | ## Sample config file
59 |
60 | The following is an example configuration, it may be used as a template
61 |
62 | ```bash title="/root/.not_logged_in_yet"
63 | #/root/.not_logged_in_yet
64 | # Network Settings
65 | PRESET_NET_CHANGE_DEFAULTS="1"
66 | ## Ethernet
67 | PRESET_NET_ETHERNET_ENABLED="1" # Ignored due to WiFi
68 | ## WiFi
69 | PRESET_NET_WIFI_ENABLED="1"
70 | PRESET_NET_WIFI_SSID="MySSID"
71 | PRESET_NET_WIFI_KEY="MyWiFiKEY"
72 | PRESET_NET_WIFI_COUNTRYCODE="GB"
73 | PRESET_CONNECT_WIRELESS="n"
74 | ## Static IP
75 | PRESET_NET_USE_STATIC="1"
76 | PRESET_NET_STATIC_IP="192.168.0.100"
77 | PRESET_NET_STATIC_MASK="255.255.255.0"
78 | PRESET_NET_STATIC_GATEWAY="192.168.0.1"
79 | PRESET_NET_STATIC_DNS="8.8.8.8 8.8.4.4"
80 |
81 | # System
82 | SET_LANG_BASED_ON_LOCATION="y"
83 | PRESET_LOCALE="en_US.UTF-8"
84 | PRESET_TIMEZONE="Etc/UTC"
85 |
86 | # Root
87 | PRESET_ROOT_PASSWORD="RootPassword"
88 | PRESET_ROOT_KEY=""
89 |
90 | # User
91 | PRESET_USER_NAME="armbian"
92 | PRESET_USER_PASSWORD="UserPassword"
93 | PRESET_USER_KEY=""
94 | PRESET_DEFAULT_REALNAME="Armbian user"
95 | PRESET_USER_SHELL="bash"
96 | ```
97 |
98 | ???+ tip
99 |
100 | If you want to use first run automatic configuration at build time, [check this GitHub pull request](https://github.com/armbian/build/pull/6194).
101 |
102 | tl;dr;
103 |
104 | 1. Copy the template with `cp extensions/preset-firstrun.sh userpatches/extensions/`
105 | 2. Edit the template `userpatches/extensions/preset-firstrun.sh` according to your situation
106 | 3. Build your Armbian image using the additional parameter `ENABLE_EXTENSIONS=preset-firstrun`
107 |
--------------------------------------------------------------------------------
/docs/User-Guide_Board-Support-Rules.md:
--------------------------------------------------------------------------------
1 | ---
2 | comments: true
3 | ---
4 | # Board support Rules
5 |
6 | ## Overview
7 |
8 | Support definitions, criteria and relationships for:
9 |
10 | - [Platinum Support](#platinum-support)
11 | - [Standard support](#standard-support)
12 | - [Community maintained](#community-maintained)
13 | - [Staging](#)
14 |
15 | ## Platinum Support
16 |
17 | Platinum support is reserved for business relationships with the Armbian project and is out of the scope of this document.
18 |
19 | ### Contact us
20 |
21 | Please [contact Armbian](https://www.armbian.com/contact/) management for more information.
22 |
23 | ## Standard Support
24 |
25 | ### Benefits
26 |
27 | * Armbian will publish and distribute "stable" images through its [mirror network](https://github.com/armbian/mirror) (behind automated closest mirror selection)
28 | * Armbian will publish and distribute "rolling" [images](https://github.com/armbian/os/releases/latest) (on GitHub and individual download page)
29 | * best-effort support to SBC maintainer to assure compatibility within the [Armbian Build Framework](https://github.com/armbian/build)
30 | * best-effort team's unique expertise to assist maintainer with general challenges
31 | * best-effort [automated testing](https://github.com/armbian/os#latest-smoke-tests-results) for basic hardware functionality
32 | * best-effort compensation will be provided to maintainer from the "Armbian Community Fund" [[1]](https://github.com/sponsors/armbian) [[2]](https://liberapay.com/armbian) [[3]](https://forum.armbian.com/crowdfunding/)
33 |
34 | ### Requirements
35 |
36 | For a SBC to be considered supported:
37 |
38 | * must be beneficial to the Armbian project
39 | * Armbian team must confirm and agree upon all supported boards statuses
40 | * a named individual as "*maintainer*" with GitHub ID must be preset in the BOARD_MAINTAINER within [Board Configuration File](https://github.com/armbian/build/tree/main/config/boards)
41 | * a named individual must commit to providing "*best effort*" support for their SBC on the Armbian forums
42 | * maintainer must participate in the [Release Process](https://docs.armbian.com/Process_Release-Model/#release-coordinating)
43 | * maintainer must sign-off that device has been tested, is stable, and ready for release during release process
44 | * maintainer must have physical access to the SBC they are supporting
45 | * maintainer can operate under pseudonym but must [reveal his identity](https://www.armbian.com/update-data/) to Armbian management
46 | * maintainer should attend [developers meetings](https://forum.armbian.com/events/) held every Wednesday 7:00 PM CET
47 | * when whole support burden is carried by maintainer and Armbian team, it will be labelled as "Pro bono"
48 |
49 | ???+ Info "Additional Caveats"
50 |
51 | * if the burden placed on the maintainer and Armbian team is too high, [crowdfunding campaign](https://forum.armbian.com/crowdfunding/) success will decide support
52 | * supported is **not** applied to a "board family" or group of related SBCs. It is per board
53 | * a maintainer can support multiple devices but must satisfy all requirements above per SBC
54 | * any individual can be a maintainer for a standard support SBC
55 | * missed major release will result in immediate forfeit of "Armbian Standard support" status and demotion to "Community maintained" status unless Armbian team grants exemption
56 |
57 | ## Community maintained
58 |
59 | Community maintained devices are not under active supervision or development. Support status is unknown to Armbian team. It represents combined former CSC (community supported configuration) and EOS (end of support). Can be removed from Armbian code base at any time. Left as a courtesy in case a community member wants to attempt to resurrect maintenance.
60 |
61 | Community maintained SBCs are exclusively supported by the community.
62 |
63 | ### Benefits
64 |
65 | * Armbian will publish and distribute images through its [mirror network](https://github.com/armbian/mirror)
66 | * Armbian will publish and distribute daily rolling [images](https://github.com/armbian/os/releases/latest)
67 | * periodic packages are built and published into Armbian's apt repository
68 | * images are untested and Armbian team won't respond on troubles or apply any fixes.
69 |
70 | ### Requirements
71 |
72 | * patch or component does not break Armbian Build Framework
73 | * patch or component does not break build of supported boards or other CSCs
74 | * pull requests needs community review. Armbian team will not review any code related to community supported SBC
75 | * generally considered to "work most of the time"
76 | * generally considered to receive periodic maintenance from community and upstream
77 |
78 | ## Staging
79 |
80 | Work in progress (WIP) status is for when a maintainer has committed to a SBC, but is not ready to ship stable images.
81 |
82 | ### Benefits
83 |
84 | All benefits of Community Supported SBCs apply to Staging as well.
85 |
86 | * periodic / nightly CLI images are published by Armbian
87 | * best-effort support to SBC maintainer to assure compatibility within the [Armbian Build Framework](https://github.com/armbian/build)
88 | * best-effort team's unique expertise to assist maintainer with general challenges
89 | * eligible for promotion to Standard Support
90 |
91 | ### Requirements
92 |
93 | * must satisfy standard support criteria
94 | * must show active development
95 | * must compile successfully most of the time
96 |
--------------------------------------------------------------------------------
/docs/User-Guide_Networking.md:
--------------------------------------------------------------------------------
1 | ## Networking
2 |
3 | Armbian uses [**Netplan.io**](https://netplan.io/) to describe networking configurations. Netplan is a utility to easily configure Linux networking, using a declarative approach.
4 | If you want to configure your network manually, it is as simple as editing and creating Netplan yaml files (see the yaml configuration reference at the [Netplan docs](https://netplan.readthedocs.io/en/stable/netplan-yaml/)).
5 |
6 | _Netplan_ is used to configure networks on **all** Armbian images since Release 24.05, no matter if minimal, CLI or desktop, Debian or Ubuntu. However, the networking backends are different based on if you choose a _minimal_ image or not.
7 |
8 | ## Minimal images
9 |
10 | !!! tip "Netplan renderer: networkd"
11 |
12 | _Minimal_ images are using the `systemd-networkd` backend, which has a **smaller footprint** compared to `Network-Manager` which is used in all non-minimal images. `systemd-networkd` is a system daemon that manages network configurations. It detects and configures network devices as they appear; it can also create virtual network devices. This service is great for simple connections, but can also be useful to set up complex network configurations.
13 |
14 | ### Armbian defaults
15 |
16 | All ethernet interfaces are configured for DHCP and will automatically receive an IP address from your router.
17 |
18 | [`/etc/netplan/10-dhcp-all-interfaces.yaml`](https://github.com/armbian/build/blob/main/extensions/network/config-networkd/netplan/10-dhcp-all-interfaces.yaml):
19 |
20 | ```yaml
21 | network:
22 | version: 2
23 | renderer: networkd
24 | ethernets:
25 | all-eth-interfaces:
26 | match:
27 | name: "e*"
28 | dhcp4: yes
29 | dhcp6: yes
30 | ipv6-privacy: yes
31 | ```
32 |
33 | ### Configuration examples
34 |
35 | #### Setting a fixed IP address
36 |
37 | When creating an additional .yaml file be sure to remove the default file (/etc/netplan/10-dhcp-all-interfaces.yaml) as the default will overide.
38 |
39 | The following example configures a static IP `192.168.1.199` for the `eth0` interface. Please adjust as necessary.
40 |
41 |
42 | !!! question "How to find your device's Ethernet interface?"
43 |
44 | Use command:
45 |
46 | ```sh
47 | ip addr
48 | ```
49 | It is usually something like `eth0`, `enp4s3` or `lan`.
50 |
51 | `/etc/netplan/20-static-ip.yaml`:
52 |
53 | ```yaml
54 | network:
55 | version: 2
56 | renderer: networkd
57 | ethernets:
58 | eth0: # Change this to your ethernet interface
59 | addresses:
60 | - 192.168.1.199/24
61 | routes:
62 | - to: default
63 | via: 192.168.1.1
64 | nameservers:
65 | addresses:
66 | - 9.9.9.9
67 | - 1.1.1.1
68 | ```
69 |
70 | See also the [Netplan docs](https://netplan.readthedocs.io/en/latest/using-static-ip-addresses/) for reference.
71 |
72 | #### Connecting to WiFI network
73 |
74 |
75 | !!! tip "It is recommended to make a separate config file for wireless network."
76 |
77 | Create the following file:
78 |
79 | `sudo nano /etc/netplan/30-wifis-dhcp.yaml`:
80 |
81 | ```yaml
82 | network:
83 | version: 2
84 | renderer: networkd
85 | wifis:
86 | wlan0:
87 | dhcp4: true
88 | dhcp6: true
89 | access-points:
90 | "Your-SSID":
91 | password: "your-password"
92 | ```
93 |
94 | Replace `SSID` with the name of the network you want to connect to and `wlan0` with the wifi interface used on your system.
95 |
96 | !!! question "How to find your device's WiFi interface?"
97 |
98 | Use command:
99 |
100 | ```sh
101 | iw dev | awk '$1=="Interface"{print $2}'
102 | ```
103 | It is usually something like `wlan0`, `wlo1` or `wlx12334c47dec3`. If you get blank response, it means your WiFi device / dongle is not supported by the kernel.
104 |
105 |
106 | See also the [Netplan docs](https://netplan.readthedocs.io/en/latest/examples/#how-to-configure-your-computer-to-connect-to-your-home-wi-fi-network) for reference.
107 |
108 | ### Applying your configuration
109 |
110 | Once you are done configuring your network, it is time to test syntax and apply it.
111 |
112 | #### Fix file permissions
113 |
114 | According to the [Netplan docs](https://netplan.readthedocs.io/en/stable/security/), the permissions must be restricted to the `root` user.
115 |
116 | ```bash
117 | sudo chmod 600 /etc/netplan/*.yaml
118 | ```
119 |
120 | #### Test syntax
121 |
122 | This will verify the syntax and test if your device can connect
123 |
124 | ```bash
125 | sudo netplan try
126 | ```
127 | If there are no warmings or errors and you hit ENTER as suggested the changes will be made and the next, nextplan apply, step can be skipped.
128 |
129 | #### Apply the configuration
130 |
131 | ```bash
132 | sudo netplan apply
133 | ```
134 |
135 | # CLI and desktop images
136 |
137 | !!! tip "Netplan renderer: Network Manager"
138 |
139 | Server CLI and desktop images are using the `Network-Manager` backend. You can use similar methods for configuring your network as with the `networkd` backend used on minimal images.
140 |
141 | ### Setting a fixed IP address
142 |
143 | The following example configures a static IP `192.168.1.199` for the `eth0` interface. Please adjust the example to your likings.
144 |
145 | !!! question "How to find your device's Ethernet interface?"
146 |
147 | Use command:
148 |
149 | ```sh
150 | ip addr
151 | ```
152 | It is usually something like `eth0`, `enp4s3` or `lan`.
153 |
154 | `/etc/netplan/20-static-ip.yaml`:
155 |
156 | ```yaml
157 | network:
158 | version: 2
159 | renderer: NetworkManager # Different than 'networkd'
160 | ethernets:
161 | eth0: # Change this to your ethernet interface
162 | addresses:
163 | - 192.168.1.199/24
164 | routes:
165 | - to: default
166 | via: 192.168.1.1
167 | nameservers:
168 | addresses:
169 | - 9.9.9.9
170 | - 1.1.1.1
171 | ```
172 |
173 | See also the [Netplan docs](https://netplan.readthedocs.io/en/latest/using-static-ip-addresses/) for reference.
174 |
175 | Alternatively, you can also use Network-Manager directly via the command line or GUI tools on your desktop:
176 |
177 | ```bash
178 | nmtui-edit eth0
179 | ```
180 | ??? note "Display screenshot"
181 | 
182 |
183 | Replace `eth0` with the name of your Ethernet Interface.
184 |
185 | ### Connecting to WiFI network
186 |
187 | For connecting to a wireless network, you can use the same method as mention above for use with `networkd` [on minimal images](#minimal-images). Just make sure to replace `renderer: networkd` with `renderer: NetworkManager`.
188 |
189 | Alternatively, you can also use Network-Manager directly via the command line or GUI tools on your desktop:
190 |
191 | ```bash
192 | nmtui-connect SSID
193 | ```
194 |
195 | ??? note "Display screenshot"
196 | 
197 |
198 | Replace `SSID` with the name of your wireless network.
199 |
--------------------------------------------------------------------------------
/docs/css/armbian-extra.css:
--------------------------------------------------------------------------------
1 | .md-typeset__table {
2 | min-width: 100%;
3 | }
4 |
5 | .md-typeset table:not([class]) {
6 | display: table;
7 | }
8 |
9 | /* Style for only specially tagged bash blocks */
10 | pre.custom-bash-block, code.custom-bash-block {
11 | font-size: 24pt;
12 | }
13 |
14 | @media (max-width: 768px) {
15 | pre.custom-bash-block, code.custom-bash-block {
16 | font-size: 14pt; /* smaller size for tablets/phones */
17 | }
18 | }
19 |
20 | @media (max-width: 480px) {
21 | pre.custom-bash-block, code.custom-bash-block {
22 | font-size: 12pt; /* even smaller for small phones */
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/docs/images/ABU001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/ABU001.png
--------------------------------------------------------------------------------
/docs/images/ACC001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/ACC001.png
--------------------------------------------------------------------------------
/docs/images/ADG001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/ADG001.png
--------------------------------------------------------------------------------
/docs/images/ART001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/ART001.png
--------------------------------------------------------------------------------
/docs/images/BAZ001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/BAZ001.png
--------------------------------------------------------------------------------
/docs/images/BNS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/BNS001.png
--------------------------------------------------------------------------------
/docs/images/BOOT01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/BOOT01.png
--------------------------------------------------------------------------------
/docs/images/CINNAMON01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CINNAMON01.png
--------------------------------------------------------------------------------
/docs/images/CON001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CON001.png
--------------------------------------------------------------------------------
/docs/images/CON001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CON001.webp
--------------------------------------------------------------------------------
/docs/images/CON004.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CON004.webp
--------------------------------------------------------------------------------
/docs/images/CON005.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CON005.webp
--------------------------------------------------------------------------------
/docs/images/CON007.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CON007.png
--------------------------------------------------------------------------------
/docs/images/CPT001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/CPT001.png
--------------------------------------------------------------------------------
/docs/images/DAT001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DAT001.png
--------------------------------------------------------------------------------
/docs/images/DAT005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DAT005.png
--------------------------------------------------------------------------------
/docs/images/DE31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DE31.png
--------------------------------------------------------------------------------
/docs/images/DEL001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DEL001.png
--------------------------------------------------------------------------------
/docs/images/DNS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DNS001.png
--------------------------------------------------------------------------------
/docs/images/DOM001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOM001.png
--------------------------------------------------------------------------------
/docs/images/DOM002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOM002.png
--------------------------------------------------------------------------------
/docs/images/DOW001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW001.png
--------------------------------------------------------------------------------
/docs/images/DOW003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW003.png
--------------------------------------------------------------------------------
/docs/images/DOW005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW005.png
--------------------------------------------------------------------------------
/docs/images/DOW011.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW011.png
--------------------------------------------------------------------------------
/docs/images/DOW013.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW013.png
--------------------------------------------------------------------------------
/docs/images/DOW015.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW015.png
--------------------------------------------------------------------------------
/docs/images/DOW017.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW017.png
--------------------------------------------------------------------------------
/docs/images/DOW019.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW019.png
--------------------------------------------------------------------------------
/docs/images/DOW021.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW021.png
--------------------------------------------------------------------------------
/docs/images/DOW023.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW023.png
--------------------------------------------------------------------------------
/docs/images/DOW025.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW025.png
--------------------------------------------------------------------------------
/docs/images/DOW040.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DOW040.png
--------------------------------------------------------------------------------
/docs/images/DPL001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DPL001.png
--------------------------------------------------------------------------------
/docs/images/DTO001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/DTO001.png
--------------------------------------------------------------------------------
/docs/images/EMB001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/EMB001.png
--------------------------------------------------------------------------------
/docs/images/EVCC01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/EVCC01.png
--------------------------------------------------------------------------------
/docs/images/FIL001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/FIL001.png
--------------------------------------------------------------------------------
/docs/images/GHR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/GHR001.png
--------------------------------------------------------------------------------
/docs/images/GNOME01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/GNOME01.png
--------------------------------------------------------------------------------
/docs/images/GRA001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/GRA001.png
--------------------------------------------------------------------------------
/docs/images/HA001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HA001.png
--------------------------------------------------------------------------------
/docs/images/HA003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HA003.png
--------------------------------------------------------------------------------
/docs/images/HAB001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HAB001.png
--------------------------------------------------------------------------------
/docs/images/HAS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HAS001.png
--------------------------------------------------------------------------------
/docs/images/HEAD01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HEAD01.png
--------------------------------------------------------------------------------
/docs/images/HPG001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HPG001.png
--------------------------------------------------------------------------------
/docs/images/HPS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/HPS001.png
--------------------------------------------------------------------------------
/docs/images/IMM001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/IMM001.png
--------------------------------------------------------------------------------
/docs/images/JEL001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/JEL001.png
--------------------------------------------------------------------------------
/docs/images/JMS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/JMS001.png
--------------------------------------------------------------------------------
/docs/images/KER001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/KER001.png
--------------------------------------------------------------------------------
/docs/images/LID001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/LID001.png
--------------------------------------------------------------------------------
/docs/images/LO001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/LO001.png
--------------------------------------------------------------------------------
/docs/images/LOC001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/LOC001.png
--------------------------------------------------------------------------------
/docs/images/MAN001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MAN001.png
--------------------------------------------------------------------------------
/docs/images/MAN005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MAN005.png
--------------------------------------------------------------------------------
/docs/images/MED001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED001.png
--------------------------------------------------------------------------------
/docs/images/MED003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED003.png
--------------------------------------------------------------------------------
/docs/images/MED010.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED010.png
--------------------------------------------------------------------------------
/docs/images/MED015.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED015.png
--------------------------------------------------------------------------------
/docs/images/MED020.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED020.png
--------------------------------------------------------------------------------
/docs/images/MED030.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED030.png
--------------------------------------------------------------------------------
/docs/images/MED927.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MED927.png
--------------------------------------------------------------------------------
/docs/images/MON001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MON001.webp
--------------------------------------------------------------------------------
/docs/images/MON005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MON005.png
--------------------------------------------------------------------------------
/docs/images/MYA001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/MYA001.png
--------------------------------------------------------------------------------
/docs/images/NAV001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NAV001.png
--------------------------------------------------------------------------------
/docs/images/NAX001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NAX001.png
--------------------------------------------------------------------------------
/docs/images/NBOX01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NBOX01.png
--------------------------------------------------------------------------------
/docs/images/NCT001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NCT001.png
--------------------------------------------------------------------------------
/docs/images/NET001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NET001.png
--------------------------------------------------------------------------------
/docs/images/NET003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NET003.png
--------------------------------------------------------------------------------
/docs/images/NTD001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/NTD001.png
--------------------------------------------------------------------------------
/docs/images/OCT001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/OCT001.png
--------------------------------------------------------------------------------
/docs/images/OMV001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/OMV001.png
--------------------------------------------------------------------------------
/docs/images/OWC001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/OWC001.png
--------------------------------------------------------------------------------
/docs/images/PGSQL1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/PGSQL1.png
--------------------------------------------------------------------------------
/docs/images/PIH001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/PIH001.png
--------------------------------------------------------------------------------
/docs/images/POR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/POR001.png
--------------------------------------------------------------------------------
/docs/images/POR001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/POR001.webp
--------------------------------------------------------------------------------
/docs/images/PRO001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/PRO001.png
--------------------------------------------------------------------------------
/docs/images/RAD001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/RAD001.png
--------------------------------------------------------------------------------
/docs/images/RDR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/RDR001.png
--------------------------------------------------------------------------------
/docs/images/REDIS1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/REDIS1.png
--------------------------------------------------------------------------------
/docs/images/RSD001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/RSD001.png
--------------------------------------------------------------------------------
/docs/images/SABN01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SABN01.png
--------------------------------------------------------------------------------
/docs/images/SHELL1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SHELL1.png
--------------------------------------------------------------------------------
/docs/images/SMB001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SMB001.png
--------------------------------------------------------------------------------
/docs/images/SON001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SON001.png
--------------------------------------------------------------------------------
/docs/images/SSH001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SSH001.png
--------------------------------------------------------------------------------
/docs/images/SSH200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SSH200.png
--------------------------------------------------------------------------------
/docs/images/STC001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/STC001.png
--------------------------------------------------------------------------------
/docs/images/STOR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/STOR001.png
--------------------------------------------------------------------------------
/docs/images/STR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/STR001.png
--------------------------------------------------------------------------------
/docs/images/SW25.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SW25.webp
--------------------------------------------------------------------------------
/docs/images/SWAG01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SWAG01.png
--------------------------------------------------------------------------------
/docs/images/SY001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY001.png
--------------------------------------------------------------------------------
/docs/images/SY005.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY005.png
--------------------------------------------------------------------------------
/docs/images/SY010.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY010.png
--------------------------------------------------------------------------------
/docs/images/SY018.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY018.png
--------------------------------------------------------------------------------
/docs/images/SY101.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY101.png
--------------------------------------------------------------------------------
/docs/images/SY201.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY201.png
--------------------------------------------------------------------------------
/docs/images/SY202.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY202.png
--------------------------------------------------------------------------------
/docs/images/SY204.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY204.png
--------------------------------------------------------------------------------
/docs/images/SY210.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/SY210.png
--------------------------------------------------------------------------------
/docs/images/TRA001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/TRA001.png
--------------------------------------------------------------------------------
/docs/images/UNAT01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/UNAT01.png
--------------------------------------------------------------------------------
/docs/images/UNAT02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/UNAT02.png
--------------------------------------------------------------------------------
/docs/images/UNB001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/UNB001.png
--------------------------------------------------------------------------------
/docs/images/UPD001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/UPD001.png
--------------------------------------------------------------------------------
/docs/images/UPK001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/UPK001.png
--------------------------------------------------------------------------------
/docs/images/UPK001.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/UPK001.webp
--------------------------------------------------------------------------------
/docs/images/USR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/USR001.png
--------------------------------------------------------------------------------
/docs/images/VNS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/VNS001.png
--------------------------------------------------------------------------------
/docs/images/WBM001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WBM001.png
--------------------------------------------------------------------------------
/docs/images/WG001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WG001.png
--------------------------------------------------------------------------------
/docs/images/WG002.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WG002.png
--------------------------------------------------------------------------------
/docs/images/WG003.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WG003.png
--------------------------------------------------------------------------------
/docs/images/WG004.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WG004.png
--------------------------------------------------------------------------------
/docs/images/WRG001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WRG001.png
--------------------------------------------------------------------------------
/docs/images/WTC001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/WTC001.png
--------------------------------------------------------------------------------
/docs/images/XFCE01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/XFCE01.png
--------------------------------------------------------------------------------
/docs/images/ZFS001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/ZFS001.png
--------------------------------------------------------------------------------
/docs/images/ZTR001.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/ZTR001.png
--------------------------------------------------------------------------------
/docs/images/a1-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/a1-logo.png
--------------------------------------------------------------------------------
/docs/images/a2-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/a2-logo.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-1.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-10.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-2.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-3.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-4.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-5.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-6.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-7.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-8.png
--------------------------------------------------------------------------------
/docs/images/armbian-config-9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-config-9.png
--------------------------------------------------------------------------------
/docs/images/armbian-mirror-explication.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/armbian-mirror-explication.png
--------------------------------------------------------------------------------
/docs/images/banana-i2c-display1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/banana-i2c-display1.jpg
--------------------------------------------------------------------------------
/docs/images/banana-spi-display.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/banana-spi-display.jpg
--------------------------------------------------------------------------------
/docs/images/betaimages.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/betaimages.png
--------------------------------------------------------------------------------
/docs/images/budgie.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/budgie.png
--------------------------------------------------------------------------------
/docs/images/build-all-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/build-all-images.png
--------------------------------------------------------------------------------
/docs/images/build-images-ci.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/build-images-ci.png
--------------------------------------------------------------------------------
/docs/images/build-selected-blured.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/build-selected-blured.png
--------------------------------------------------------------------------------
/docs/images/build-single-clean.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/build-single-clean.png
--------------------------------------------------------------------------------
/docs/images/build-train.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/build-train.png
--------------------------------------------------------------------------------
/docs/images/buildselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/buildselected.png
--------------------------------------------------------------------------------
/docs/images/cinnamon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/cinnamon.png
--------------------------------------------------------------------------------
/docs/images/commit-changes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/commit-changes.png
--------------------------------------------------------------------------------
/docs/images/complete-artifact-matrix-standard-support.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/complete-artifact-matrix-standard-support.png
--------------------------------------------------------------------------------
/docs/images/create-pull-reqest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/create-pull-reqest.png
--------------------------------------------------------------------------------
/docs/images/dedicated-applications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/dedicated-applications.png
--------------------------------------------------------------------------------
/docs/images/edit-connection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/edit-connection.png
--------------------------------------------------------------------------------
/docs/images/edit-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/edit-icon.png
--------------------------------------------------------------------------------
/docs/images/forums.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/forums.png
--------------------------------------------------------------------------------
/docs/images/jira-dark-revised.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/jira-dark-revised.png
--------------------------------------------------------------------------------
/docs/images/kanban.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/kanban.png
--------------------------------------------------------------------------------
/docs/images/linterror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/linterror.png
--------------------------------------------------------------------------------
/docs/images/loginprompt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/loginprompt.png
--------------------------------------------------------------------------------
/docs/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/logo.png
--------------------------------------------------------------------------------
/docs/images/logo_middle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/logo_middle.png
--------------------------------------------------------------------------------
/docs/images/lvdsbanana.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/lvdsbanana.png
--------------------------------------------------------------------------------
/docs/images/mr-pipeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/mr-pipeline.png
--------------------------------------------------------------------------------
/docs/images/product-backlog-structure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/product-backlog-structure.png
--------------------------------------------------------------------------------
/docs/images/propose-changes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/propose-changes.png
--------------------------------------------------------------------------------
/docs/images/rolling-releases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/rolling-releases.png
--------------------------------------------------------------------------------
/docs/images/run-worflow-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/run-worflow-button.png
--------------------------------------------------------------------------------
/docs/images/run-workflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/run-workflow.png
--------------------------------------------------------------------------------
/docs/images/sandisk-extreme-a2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/sandisk-extreme-a2.png
--------------------------------------------------------------------------------
/docs/images/sandisk-extremepro-a1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/sandisk-extremepro-a1.png
--------------------------------------------------------------------------------
/docs/images/sandisk-ultra-a1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/sandisk-ultra-a1.png
--------------------------------------------------------------------------------
/docs/images/selected-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/selected-images.png
--------------------------------------------------------------------------------
/docs/images/smoke-tests.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/smoke-tests.png
--------------------------------------------------------------------------------
/docs/images/stable-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/stable-images.png
--------------------------------------------------------------------------------
/docs/images/standard-support-images.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/standard-support-images.png
--------------------------------------------------------------------------------
/docs/images/support-autotest.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/support-autotest.png
--------------------------------------------------------------------------------
/docs/images/taskProcess1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/taskProcess1.png
--------------------------------------------------------------------------------
/docs/images/taskProcess2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/taskProcess2.png
--------------------------------------------------------------------------------
/docs/images/taskProcess3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/taskProcess3.png
--------------------------------------------------------------------------------
/docs/images/taskProcess4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/taskProcess4.png
--------------------------------------------------------------------------------
/docs/images/wait-for-preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/wait-for-preview.png
--------------------------------------------------------------------------------
/docs/images/wifi-connect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/wifi-connect.png
--------------------------------------------------------------------------------
/docs/images/xfce.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/armbian/documentation/fc444b083d40bb97de75e9a86823972dc55c5852/docs/images/xfce.png
--------------------------------------------------------------------------------
/overrides/main.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 |
4 | {% block announce %}
5 |
6 |
7 | {% include ".icons/fontawesome/solid/heart.svg" %}
8 | Become a sponsor to Armbian!
9 |
10 |
11 | {% endblock %}
12 |
13 | {% block content %}
14 | {{ super() }}
15 |
16 | {% if page and page.meta and page.meta.comments %}
17 |