Add various GH actions and enable upload to new WEB server (#666)
* `Automatic` documentation update * `Automatic` documentation update * Enable upload to new server * Pull useful actions from build repository * Update .github/workflows/clean-workflow-logs.yml * Update clean-workflow-logs.yml * Fix docs preview * Refactor docs at pr
20
.github/labeler.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
# This configures label matching for PR's.
|
||||
#
|
||||
# The keys are labels, and the values are lists of minimatch patterns
|
||||
# to which those labels apply.
|
||||
#
|
||||
# NOTE: This can only add labels, not remove them.
|
||||
# NOTE: Due to YAML syntax limitations, patterns or labels which start
|
||||
# with a character that is part of the standard YAML syntax must be
|
||||
# quoted.
|
||||
#
|
||||
# Please keep the labels sorted and deduplicated.
|
||||
|
||||
"Needs review":
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**'
|
||||
|
||||
"GitHub Actions":
|
||||
- all:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['.github/**/**/*']
|
||||
66
.github/labels.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
- name: "02"
|
||||
color: "76B4D9"
|
||||
description: "Milestone: First quarter release"
|
||||
- name: "05"
|
||||
color: "AADB79"
|
||||
description: "Milestone: Second quarter release"
|
||||
- name: "08"
|
||||
color: "4B649F"
|
||||
description: "Milestone: Third quarter release"
|
||||
- name: "11"
|
||||
color: "D58125"
|
||||
description: "Milestone: Fourth quarter release"
|
||||
- name: "Backlog"
|
||||
color: "d4c5f9"
|
||||
description: "Stalled work that needs to be completed"
|
||||
- name: "Bug"
|
||||
color: "F92C01"
|
||||
description: "Something isn't working as it should"
|
||||
- name: "Discussion"
|
||||
color: "EDFFE3"
|
||||
description: "Being discussed - Voice your opinions :)"
|
||||
- name: "Duplicate"
|
||||
color: "f4bd13"
|
||||
description: "Issue is already present"
|
||||
- name: "Good first issue"
|
||||
color: "ffb3ff"
|
||||
description: "Feel free to contribute :) "
|
||||
- name: "User error"
|
||||
color: "CD456C"
|
||||
description: "A mistake that is made by the user"
|
||||
- name: "size/small"
|
||||
color: "ededed"
|
||||
description: "PR with less then 50 lines"
|
||||
- name: "size/medium"
|
||||
color: "ededed"
|
||||
description: "PR with more then 50 and less then 250 lines"
|
||||
- name: "size/large"
|
||||
color: "ededed"
|
||||
description: "PR with 250 lines or more"
|
||||
- name: "Task/To-Do"
|
||||
color: "2f95f1"
|
||||
description: "Project management: To-Do or task(s) someone is working on"
|
||||
- name: "GitHub Actions"
|
||||
color: "bfd4f2"
|
||||
description: "GitHub Actions code"
|
||||
- name: "Work in progress"
|
||||
color: "29E414"
|
||||
description: "Unfinished / work in progress"
|
||||
- name: "Ready to merge"
|
||||
color: "1d7136"
|
||||
description: "Reviewed, tested and ready for merge"
|
||||
- name: "Help needed"
|
||||
color: "EA1BCE"
|
||||
description: "We need your involvement"
|
||||
- name: "Needs review"
|
||||
color: "AEE054"
|
||||
description: "Seeking for review"
|
||||
- name: "Can be closed?"
|
||||
color: "9b75fc"
|
||||
description: "Ping developers on stalled issue / PR"
|
||||
- name: "Documentation finished"
|
||||
color: "0052CC"
|
||||
description: "New feature was properly added to docs"
|
||||
- name: "Improper usage"
|
||||
color: "CD456C"
|
||||
description: "Provided input is not in the expected data format or structure"
|
||||
28
.github/workflows/clean-workflow-logs.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
name: "Clean Workflow Logs"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * 1" # Runs "At 00:00 on Monday." (see https://crontab.guru)
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
runs_older_than:
|
||||
description: "The amount of days old to delete"
|
||||
default: "21"
|
||||
required: false
|
||||
runs_to_keep:
|
||||
description: "The number of workflow runs to keep"
|
||||
default: "0"
|
||||
required: false
|
||||
env:
|
||||
SCHEDULED_RUNS_OLDER_THAN: "21"
|
||||
SCHEDULED_RUNS_TO_KEEP: "0"
|
||||
|
||||
jobs:
|
||||
clean-logs:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: write
|
||||
steps:
|
||||
- uses: igorjs/gh-actions-clean-workflow@v6
|
||||
with:
|
||||
runs_older_than: ${{ github.event.inputs.runs_older_than || env.SCHEDULED_RUNS_OLDER_THAN }}
|
||||
runs_to_keep: ${{ github.event.inputs.runs_to_keep || env.SCHEDULED_RUNS_TO_KEEP }}
|
||||
36
.github/workflows/labels-from-yml.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
name: Sync Labels from YAML
|
||||
run-name: Sync Labels from YML on ${{ github.event_name }}
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
paths:
|
||||
- ".github/labels.yml"
|
||||
pull_request:
|
||||
paths:
|
||||
- ".github/labels.yml"
|
||||
|
||||
jobs:
|
||||
labeler:
|
||||
permissions:
|
||||
contents: read # for actions/labeler to determine modified files
|
||||
pull-requests: write # for actions/labeler to add labels to PRs
|
||||
issues: write # for actions/labeler to add labels to issues
|
||||
|
||||
if: ${{ github.repository_owner == 'Armbian' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Labeler
|
||||
uses: crazy-max/ghaction-github-labeler@v5
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
yaml-file: .github/labels.yml
|
||||
dry-run: ${{ github.event_name == 'pull_request' }}
|
||||
exclude: |
|
||||
Maintenance*
|
||||
67
.github/workflows/pdf-at-pr.yaml
vendored
@@ -1,65 +1,74 @@
|
||||
# This workflow will install Python dependencies and generate PDF file at PR
|
||||
name: Create offline documentation on PR
|
||||
name: Create docs preview on PR
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened, synchronize, labeled]
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
docs-preview:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [ 3.8 ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout PR branch (documentation)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
path: documentation
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Checkout `www` branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: www
|
||||
path: www
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
python-version: 3.8
|
||||
|
||||
- name: Cache pip dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('documentation/requirements.txt') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
|
||||
- name: Install dependencies
|
||||
working-directory: documentation
|
||||
run: |
|
||||
cd documentation
|
||||
python -m pip install --upgrade pip
|
||||
pip install setuptools wheel
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Run mkdocs --clean
|
||||
- name: Build docs with MkDocs
|
||||
working-directory: documentation
|
||||
run: mkdocs build --clean
|
||||
|
||||
- name: Publish to `www` branch
|
||||
working-directory: www
|
||||
run: |
|
||||
|
||||
cd documentation
|
||||
mkdocs build --clean
|
||||
|
||||
- name: Push to web
|
||||
run: |
|
||||
|
||||
cd www
|
||||
mkdir -p "${{ github.event.number }}"
|
||||
rsync -av ../documentation/site/. ${{ github.event.number }}
|
||||
rsync -av ../documentation/site/. "${{ github.event.number }}"
|
||||
git config user.name github-actions
|
||||
git config user.email github-actions@github.com
|
||||
git add .
|
||||
git commit -m "Updating repo" || true
|
||||
git add .
|
||||
git commit -m "Update docs preview for PR #${{ github.event.number }}" || true
|
||||
git push origin www || true
|
||||
|
||||
- uses: devindford/Append_PR_Comment@v1.1.3
|
||||
- name: Comment on PR with preview link
|
||||
uses: devindford/Append_PR_Comment@v1.1.3
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
body-template: |
|
||||
[](https://github.com/armbian/documentation/actions/workflows/pdf-at-pr.yaml)
|
||||
|
||||
[](https://github.com/armbian/documentation/actions/workflows/pdf-at-pr.yaml)
|
||||
Documentation website preview will be available in few minutes:
|
||||
<a href=https://armbian.github.io/documentation/${{ github.event.number }}><kbd> <br> Open WWW preview <br> </kbd></a>
|
||||
body-update-action: 'suffix'
|
||||
Documentation website preview will be available shortly:
|
||||
|
||||
<a href="https://armbian.github.io/documentation/${{ github.event.number }}"><kbd><br> Open WWW preview <br></kbd></a>
|
||||
body-update-action: suffix
|
||||
60
.github/workflows/pr-auto-labeler.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
name: Automatic Pull Request Labeling
|
||||
run-name: 'Set labels - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")'
|
||||
#
|
||||
# Set labels for pull requests automatically based on size (modified via job 'label-size') and file categories (modified via .github/labeler)
|
||||
#
|
||||
|
||||
on: pull_request_target
|
||||
|
||||
jobs:
|
||||
label-remove:
|
||||
permissions:
|
||||
contents: read # for pascalgn/size-label-action to determine modified files
|
||||
pull-requests: write # for pascalgn/size-label-action to add labels to PRs
|
||||
name: "Remove Ready to merge"
|
||||
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: PauMAVA/add-remove-label-action@v1.0.3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
add: ""
|
||||
remove: "Ready to merge"
|
||||
|
||||
label-category:
|
||||
permissions:
|
||||
contents: read # for actions/labeler to determine modified files
|
||||
pull-requests: write # for actions/labeler to add labels to PRs
|
||||
|
||||
name: "Category labels"
|
||||
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
label-size:
|
||||
permissions:
|
||||
contents: read # for pascalgn/size-label-action to determine modified files
|
||||
pull-requests: write # for pascalgn/size-label-action to add labels to PRs
|
||||
|
||||
name: "Size label"
|
||||
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: size-label
|
||||
uses: "pascalgn/size-label-action@v0.5.5"
|
||||
env:
|
||||
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
with:
|
||||
sizes: >
|
||||
{
|
||||
"0": "small",
|
||||
"50": "medium",
|
||||
"250": "large"
|
||||
}
|
||||
105
.github/workflows/release.yaml
vendored
@@ -1,84 +1,47 @@
|
||||
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
||||
|
||||
name: Create offline documentation to release
|
||||
name: Update documentation website
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
branches: [ main ]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
build-docs:
|
||||
name: "Generate HTML"
|
||||
if: ${{ github.repository_owner == 'Armbian' }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [ 3.8 ]
|
||||
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
with:
|
||||
ref: main
|
||||
fetch-depth: 1
|
||||
|
||||
- name: "Set up Python"
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install setuptools wheel
|
||||
pip install -r requirements.txt
|
||||
- name: Run mkdocs --clean
|
||||
run: |
|
||||
mkdocs build --clean
|
||||
python-version: 3.8
|
||||
|
||||
# - name: Upload pdf
|
||||
# uses: actions/upload-artifact@v4
|
||||
# with:
|
||||
# name: artifact
|
||||
# path: site/pdf/document.pdf
|
||||
# PDF is not built, no need to upload
|
||||
- name: "Install dependencies"
|
||||
run: |
|
||||
|
||||
pip install --upgrade pip
|
||||
pip install setuptools wheel -r requirements.txt
|
||||
|
||||
- name: "Build documentation"
|
||||
run: mkdocs build --clean
|
||||
|
||||
- name: "Install SSH key"
|
||||
uses: shimataro/ssh-key-action@v2
|
||||
with:
|
||||
key: ${{ secrets.KEY_UPLOAD }}
|
||||
known_hosts: ${{ secrets.HOST_APPLICATIONS_KNOWN_HOSTS }}
|
||||
if_key_exists: replace
|
||||
|
||||
- name: "Deploy to servers"
|
||||
timeout-minutes: 3
|
||||
run: |
|
||||
rsync -e "ssh -p ${{ secrets.HOST_APPLICATIONS_PORT }}" \
|
||||
-a site/ \
|
||||
${{ secrets.HOST_APPLICATIONS_USER }}@${{ secrets.HOST_APPLICATIONS }}:storage/docs.armbian.com
|
||||
|
||||
#deploy:
|
||||
#needs: [ build ]
|
||||
#runs-on: ubuntu-20.04
|
||||
#env:
|
||||
# TZ: GMT
|
||||
#steps:
|
||||
# - uses: actions/checkout@v4
|
||||
# - uses: actions/download-artifact@v4
|
||||
# with:
|
||||
# name: artifact
|
||||
# - name: Add
|
||||
# run: |
|
||||
# ls -l
|
||||
# git pull
|
||||
# git add document.pdf
|
||||
# - name: Commit files
|
||||
# run: |
|
||||
# git config --local user.email "info@armbian.com"
|
||||
# git config --local user.name "Armbianworker"
|
||||
# git commit --allow-empty -m "Update github actions" -a
|
||||
# - name: Push changes
|
||||
# uses: ad-m/github-push-action@master
|
||||
# with:
|
||||
# repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# branch: ${{ github.ref }}
|
||||
#- name: Declare vars
|
||||
# id: vars
|
||||
# shell: bash
|
||||
# run: |
|
||||
# echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
# echo "timenow=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
|
||||
#- name: Rename release artifact
|
||||
# shell: bash
|
||||
# run: |
|
||||
# mv -v document.pdf armbian-document-${{ steps.vars.outputs.sha_short }}.pdf
|
||||
#- name: Create Release
|
||||
# uses: ncipollo/release-action@v1
|
||||
# with:
|
||||
# tag: ${{ steps.vars.outputs.sha_short }}
|
||||
# name: ${{ steps.vars.outputs.timenow }}-${{ steps.vars.outputs.sha_short }}
|
||||
# draft: false
|
||||
# prerelease: false
|
||||
# token: ${{ secrets.GITHUB_TOKEN }}
|
||||
# artifacts: armbian-document-${{ steps.vars.outputs.sha_short }}.pdf
|
||||
# artifactContentType: application/pdf
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
***
|
||||
|
||||
## Change Global timezone
|
||||
|
||||
<!--- section image START from tools/include/images/LO001.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/LO001.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd LO001
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
|
||||
## Basic Network Setup
|
||||
|
||||
<!--- section image START from tools/include/images/BNS001.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/BNS001.png --->
|
||||
|
||||
|
||||
<!--- header START from tools/include/markdown/BNS001-header.md --->
|
||||
``` mermaid
|
||||
graph LR
|
||||
@@ -30,22 +35,31 @@ armbian-config --cmd BNS001
|
||||
|
||||
|
||||
<!--- footer START from tools/include/markdown/BNS001-footer.md --->
|
||||
Network configuration is simple and easy to follow:
|
||||
1. **Select Interface:**
|
||||
- Launch the `armbian-config` utility:
|
||||
```bash
|
||||
sudo armbian-config
|
||||
```
|
||||
- Navigate to `Network` and choose the desired network interface (e.g., `eth0` for wired or `wlan0` for wireless).
|
||||
|
||||
1. Choose the interface. If it's a wireless interface, you'll be prompted to select an access point (AP) and enter its password. Leave empty for open network.
|
||||
2. **Wireless Interface Configuration:**
|
||||
- If configuring a wireless interface:
|
||||
- A list of available Access Points (APs) will be displayed.
|
||||
- Select your preferred AP and enter the password when prompted. Leave the password field empty for open networks.
|
||||
|
||||
2. Choose between DHCP (Dynamic Host Configuration Protocol) or static IP configuration.
|
||||
|
||||
- If you select DHCP, the setup is complete. Optionally, you can change the MAC address.
|
||||
|
||||
3. If you choose a static configuration, you'll need to provide:
|
||||
|
||||
- An optional MAC address change
|
||||
- A fixed IP address (e.g., x.x.x.x/y)
|
||||
- A route (default: 0.0.0.0/0)
|
||||
- A gateway (usually x.x.x.1/24)
|
||||
- DNS (default: 9.9.9.9)
|
||||
3. **IP Address Configuration:**
|
||||
- Choose between:
|
||||
- **DHCP (Dynamic Host Configuration Protocol):** Automatically assigns an IP address.
|
||||
- **Static IP:** Manually enter details:
|
||||
- **MAC Address (optional):** Specify if you want spoofing MAC address.
|
||||
- **IP Address:** Use CIDR notation (e.g., `192.168.1.10/24`).
|
||||
- **Route:** Default is `0.0.0.0/0`.
|
||||
- **Gateway:** Typically the router's IP, e.g., `192.168.1.1`.
|
||||
- **DNS:** Default is `9.9.9.9`, but can be changed.
|
||||
|
||||
4. **Finalize Configuration:**
|
||||
- Review and confirm your settings.
|
||||
- The system applies the configurations, and your network should be set up.
|
||||
<!--- footer STOP from tools/include/markdown/BNS001-footer.md --->
|
||||
|
||||
|
||||
@@ -69,6 +83,11 @@ armbian-config --cmd BNS002
|
||||
***
|
||||
|
||||
## View Network Settings
|
||||
|
||||
<!--- section image START from tools/include/images/VNS001.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/VNS001.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd VNS001
|
||||
@@ -244,6 +263,11 @@ More informations:
|
||||
***
|
||||
|
||||
## WireGuard remove
|
||||
|
||||
<!--- section image START from tools/include/images/WG002.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/WG002.png --->
|
||||
|
||||
This operation will remove WireGuard
|
||||
|
||||
**Command:**
|
||||
@@ -260,6 +284,11 @@ armbian-config --cmd WG002
|
||||
***
|
||||
|
||||
## WireGuard clients QR codes
|
||||
|
||||
<!--- section image START from tools/include/images/WG003.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/WG003.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd WG003
|
||||
@@ -274,6 +303,11 @@ armbian-config --cmd WG003
|
||||
***
|
||||
|
||||
## WireGuard purge with data folder
|
||||
|
||||
<!--- section image START from tools/include/images/WG004.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/WG004.png --->
|
||||
|
||||
This operation will purge WireGuard with data folder
|
||||
|
||||
**Command:**
|
||||
|
||||
@@ -9,6 +9,38 @@
|
||||
***
|
||||
|
||||
### Install alternative kernels
|
||||
|
||||
<!--- section image START from tools/include/images/SY201.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY201.png --->
|
||||
|
||||
|
||||
<!--- header START from tools/include/markdown/SY201-header.md --->
|
||||
## Kernel Switching Warning
|
||||
|
||||
Switching between different kernel versions can significantly impact the functionality of your device. A newer or older kernel may introduce changes to hardware compatibility, drivers, and system stability. Some features may stop working, while others may improve or be reintroduced.
|
||||
|
||||
### ⚠️ Important Warning: Kernel changes carry inherent risks!
|
||||
- A mismatched or incompatible kernel may result in **boot failures**, rendering the system unresponsive.
|
||||
- Certain peripherals or hardware components (e.g., Wi-Fi, GPU acceleration, or power management) may no longer function correctly.
|
||||
- Custom configurations or third-party modules might need to be recompiled or adjusted to work with the new kernel.
|
||||
|
||||
### ✅ Precautions Before Switching Kernels
|
||||
Before switching kernels, it is **strongly recommended** to:
|
||||
1. **Back up your system** to prevent data loss.
|
||||
2. **Verify compatibility** of your hardware and essential drivers with the target kernel version.
|
||||
3. **Keep a rescue method available**, such as a bootable SD card / USB drive or serial console access, to recover the system if necessary.
|
||||
|
||||
### 🛠️ Recovery Steps if Boot Fails
|
||||
If your device fails to boot after a kernel change, you may need to:
|
||||
- **Revert to a previous working kernel** using recovery options.
|
||||
- **Use a serial console or debug mode** to diagnose the issue.
|
||||
- **Reinstall the system** if no recovery options are available.
|
||||
|
||||
**⚡ Exercise caution when switching kernels, especially on production systems or devices with limited recovery options.**
|
||||
|
||||
<!--- header STOP from tools/include/markdown/SY201-header.md --->
|
||||
|
||||
Switching between kernels might change functionality of your device.
|
||||
|
||||
It might fail to boot!
|
||||
@@ -27,6 +59,17 @@ armbian-config --cmd SY201
|
||||
***
|
||||
|
||||
### Install Linux headers
|
||||
|
||||
<!--- section image START from tools/include/images/SY204.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY204.png --->
|
||||
|
||||
|
||||
<!--- header START from tools/include/markdown/SY204-header.md --->
|
||||
Linux headers are essential for compiling kernel modules and ensuring compatibility with software that interacts with the kernel.
|
||||
|
||||
<!--- header STOP from tools/include/markdown/SY204-header.md --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd SY204
|
||||
@@ -55,6 +98,11 @@ armbian-config --cmd SY205
|
||||
***
|
||||
|
||||
### Manage device tree overlays
|
||||
|
||||
<!--- section image START from tools/include/images/SY210.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY210.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd SY210
|
||||
@@ -83,6 +131,11 @@ armbian-config --cmd SY300
|
||||
***
|
||||
|
||||
### Edit the boot environment
|
||||
|
||||
<!--- section image START from tools/include/images/SY010.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY010.png --->
|
||||
|
||||
This will open /boot/armbianEnv.txt file to edit
|
||||
CTRL+S to save
|
||||
CTLR+X to exit
|
||||
@@ -107,6 +160,11 @@ armbian-config --cmd SY010
|
||||
***
|
||||
|
||||
### Install to internal storage
|
||||
|
||||
<!--- section image START from tools/include/images/SY001.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY001.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd SY001
|
||||
@@ -121,6 +179,33 @@ armbian-config --cmd SY001
|
||||
***
|
||||
|
||||
### ZFS filesystem - enable support
|
||||
|
||||
<!--- header START from tools/include/markdown/SY220-header.md --->
|
||||
# 📌 ZFS (Zettabyte File System)
|
||||
|
||||
## 🔍 Overview
|
||||
|
||||
**ZFS (Zettabyte File System)** is a high-performance, scalable, and robust file system designed to provide advanced data protection, integrity, and storage management. Developed by Sun Microsystems, ZFS is widely used in enterprise environments, NAS systems, and personal storage solutions due to its unique features.
|
||||
|
||||
## 🛠️ Key Features
|
||||
|
||||
### ✅ Data Integrity
|
||||
- **Copy-on-Write (CoW):** Prevents data corruption by never overwriting live data.
|
||||
- **Checksumming:** Detects and corrects silent data corruption (bit rot).
|
||||
|
||||
### 📦 Storage Management
|
||||
- **Pooled Storage:** Eliminates the need for traditional partitions; all storage is managed dynamically.
|
||||
- **Snapshots & Clones:** Creates instant backups without using extra storage.
|
||||
|
||||
### 🚀 Performance & Scalability
|
||||
- **Efficient Compression & Deduplication:** Reduces storage usage without performance loss.
|
||||
- **Dynamic Striping & Caching:** Distributes data across multiple disks for optimized read/write speeds.
|
||||
|
||||
### 🔐 Advanced Security
|
||||
- **Native Encryption:** Supports dataset-level encryption for secure data storage.
|
||||
- **RAID-Z:** A superior RAID alternative that prevents write-hole issues.
|
||||
<!--- header STOP from tools/include/markdown/SY220-header.md --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd SY220
|
||||
@@ -304,6 +389,11 @@ armbian-config --cmd NFS22
|
||||
***
|
||||
|
||||
### Disable root login
|
||||
|
||||
<!--- section image START from tools/include/images/SY101.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY101.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd SY101
|
||||
@@ -555,6 +645,11 @@ armbian-config --cmd SSH202
|
||||
***
|
||||
|
||||
### Change shell system wide to BASH
|
||||
|
||||
<!--- section image START from tools/include/images/SY005.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY005.png --->
|
||||
|
||||
This will switch system wide shell to BASH
|
||||
|
||||
**Command:**
|
||||
@@ -571,6 +666,19 @@ armbian-config --cmd SY005
|
||||
***
|
||||
|
||||
### Change shell system wide to ZSH
|
||||
|
||||
<!--- header START from tools/include/markdown/SY006-header.md --->
|
||||
**ZSH (Z Shell)** is an extended and highly customizable Unix shell that offers powerful features beyond traditional shells like **Bash**. It is widely used for its user-friendly enhancements, scripting capabilities, and plugin support.
|
||||
|
||||
## 🚀 Key Features
|
||||
|
||||
- **Auto-suggestions & Syntax Highlighting** ✨
|
||||
- **Powerful Tab Completion & Globbing** 🔍
|
||||
- **Customizable Prompt (e.g., with Oh My Zsh)** 🎨
|
||||
- **Shared Command History Across Sessions** 📜
|
||||
- **Built-in Spelling Correction** 🛠️
|
||||
<!--- header STOP from tools/include/markdown/SY006-header.md --->
|
||||
|
||||
This will switch system wide shell to ZSH
|
||||
|
||||
**Command:**
|
||||
@@ -608,6 +716,11 @@ armbian-config --cmd SY009
|
||||
***
|
||||
|
||||
### Enable Armbian firmware upgrades
|
||||
|
||||
<!--- section image START from tools/include/images/SY202.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/SY202.png --->
|
||||
|
||||
This will enable Armbian kernel upgrades that are currently put on hold.
|
||||
|
||||
**Command:**
|
||||
@@ -731,6 +844,11 @@ armbian-config --cmd UNAT01
|
||||
***
|
||||
|
||||
### Configure automatic package updates
|
||||
|
||||
<!--- section image START from tools/include/images/UNAT02.png --->
|
||||
[](#)
|
||||
<!--- section image STOP from tools/include/images/UNAT02.png --->
|
||||
|
||||
**Command:**
|
||||
~~~
|
||||
armbian-config --cmd UNAT02
|
||||
|
||||
BIN
docs/images/BNS001.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
docs/images/LO001.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
docs/images/SY001.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
docs/images/SY005.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
docs/images/SY010.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
docs/images/SY101.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
docs/images/SY201.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
docs/images/SY202.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
docs/images/SY204.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
docs/images/SY210.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |