Another round of documentation cleanup

This commit is contained in:
Igor Pecovnik
2024-10-13 11:36:13 +02:00
committed by Igor
parent e76674abec
commit aeb18dc43a
16 changed files with 1076 additions and 653 deletions

3
docs/Community_Forums.md Normal file
View File

@@ -0,0 +1,3 @@
<https://forum.armbian.com/>
![](images/forums.png)

42
docs/Community_Github.md Normal file
View File

@@ -0,0 +1,42 @@
# Main project repositories
## Armbian Build
<https://github.com/armbian/build>
Framework can build generic Armbian or custom Linux image.
## Armbian Config
<https://github.com/armbian/configng>
Utility for configuring:
- hardware,
- adjusting services,
- installing applications.
## Armbian OS
<https://github.com/armbian/os>
Armbian OS assemly line:
- [daily rolling releases](https://github.com/armbian/os/releases) for supported build targets
- [point releases](https://www.armbian.com/download/?device_support=Standard%20support) for supported build targets
## Armbian Community
<https://github.com/armbian/community>
Armbian OS community assembly line:
- [weekly rolling releases](https://github.com/armbian/community/releases) for build targets without a dedicated mainteiner.
## Armbian Distribution
<https://github.com/armbian/distribution>
Armbian OS with preinstalled:
- [HomeAssistant](https://www.home-assistant.io/),
- [OpenHab](https://www.openhab.org/),
- [KaliLinux](https://www.kali.org/),
- [OpenMediaVault](https://www.openmediavault.org/)

View File

@@ -5,7 +5,7 @@ description: Social media channels maintained by Armbian project team
# Social media
## Armbian on Twitter and Mastodon
## Armbian on X and Mastodon
Armbian short announcements are done via 𝕏 (formerly known as Twitter): <https://twitter.com/armbian> and <https://fosstodon.org/@armbian>

View File

@@ -1,116 +0,0 @@
# Seed our torrents
To secure top download speed around the globe, we need to have as many torrent seeders as possible. Currently we have dedicated seeders in: Estonia, Germany, Pakistan, Slovenia, Argentina, Singapore, USA, ... but we might be slower in China or Japan.
## Prerequisite:
- Armbian or any Debian or Ubuntu based distribution (check instructions how to run `armbian-config` on a generic Debian/Ubuntu)
- `wget` and `unzip` packages installed
- 1TB of free space
a) Installation and auto-config with armbian-config:
login and obtain superuser rights,
execute armbian-config,
select Software -> Softy,
install Transmission server. (use space to confirm and enter to proceed with install)
Leave `armbian-config` and after a few minutes check your torrent server status with the following command:
`transmission-remote -n 'transmission:transmission' -l`
and you should see some progress:
```
ID Done Have ETA Up Down Ratio Status Name
1 0% None Unknown 0.0 0.0 None Idle Armbian_5.25_Bananapi_Debian_jessie_default_3.4.113.7z
2 19% 40.62 MB 10 min 0.0 1085.0 0.0 Downloading Armbian_5.25_Bananapi_Debian_jessie_next_4.9.7.7z
3 0% None Unknown 0.0 0.0 None Idle Armbian_5.25_Bananapim2plus_Debian_jessie_default_3.4.113.7z
4 0% None Unknown 0.0 0.0 None Idle Armbian_5.25_Bananapim2plus_Ubuntu_xenial_default_3.4.113.7z
5 0% None Unknown 0.0 0.0 None Idle Armbian_5.25_Bananapim2plus_Ubuntu_xenial_default_3.4.113_desktop.7z
[...]
158 0% None Unknown 0.0 0.0 None Queued Armbian_5.27_Tinkerboard_Ubuntu_xenial_default_4.4.66_desktop.7z
159 0% None Unknown 0.0 0.0 None Queued Armbian_5.27_Tinkerboard_Ubuntu_xenial_next_4.11.0.7z
160 0% None Unknown 0.0 0.0 None Queued Armbian_5.27_Tinkerboard_Ubuntu_xenial_next_4.11.0_desktop.7z
Sum: 40.62 MB 0.0 1085.0
```
_Note:_
Torrent server installed this way is auto updating - it checks daily for new images, adds new and purge old ones.
b) Installation to an existing Transmission daemon (manual configuration)
Create file:
`sudo nano /etc/cron.daily/seed-armbian-torrent`
with this content:
```
#!/bin/bash
#
# armbian torrents auto update
#
# download latest torrent pack
TEMP_DIR=$(mktemp -d || exit 1)
chmod 700 ${TEMP_DIR}
trap "rm -rf \"${TEMP_DIR}\" ; exit 0" 0 1 2 3 15
wget -qO- -O ${TEMP_DIR}/armbian-torrents.zip https://dl.armbian.com/torrent/all-torrents.zip
# test zip for corruption
unzip -t ${TEMP_DIR}/armbian-torrents.zip >/dev/null 2>&1
[[ $? -ne 0 ]] && echo "Error in zip" && exit
# extract zip
unzip -o ${TEMP_DIR}/armbian-torrents.zip -d ${TEMP_DIR}/torrent-tmp >/dev/null 2>&1
# create list of current active torrents
transmission-remote -n 'transmission:transmission' -l | sed '1d; $d' > ${TEMP_DIR}/torrent-tmp/active.torrents
# loop and add/update torrent files
for f in ${TEMP_DIR}/torrent-tmp/*.torrent; do
transmission-remote -n 'transmission:transmission' -a $f > /dev/null 2>&1
# remove added from the list
pattern="${f//.torrent}"; pattern="${pattern##*/}";
sed -i "/$pattern/d" ${TEMP_DIR}/torrent-tmp/active.torrents
done
# remove old armbian torrents
while read i; do
[[ $i == *Armbian_* || $i == *gcc-linaro-* || $i == *tar.lz4 ]] && transmission-remote -n 'transmission:transmission' -t $(echo "$i" | awk '{print $1}';) --remove-and-delete
done < ${TEMP_DIR}/torrent-tmp/active.torrents
```
Change username(transmission) and password(transmission) if have something else than stock, save and exit, then run:
```
sudo chmod +x /etc/cron.daily/seed-armbian-torrent
sudo /etc/cron.daily/seed-armbian-torrent
```
How to stop seeding torrents?
Remove cron job:
sudo rm /etc/cron.daily/seed-armbian-torrent
Remove torrents:
transmission-remote -n transmission:transmission -t all --remove-and-delete
This command will remove ALL files on your torrent server! If you seed other stuff do a cherry pick.

View File

@@ -2,10 +2,9 @@
## What do I need?
- x86/x64 machine running any OS; at least 4G RAM, SSD, quad core (recommended),
- x86/x64/aarch64 machine running any OS; at least 4G RAM, SSD, quad core (recommended),
- [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or similar virtualization software **(highly recommended with a minimum of 25GB hard disk space for the virtual disk image)**
- **The officially supported** compilation environment is [Ubuntu Jammy 22.04.x amd64](https://www.releases.ubuntu.com/jammy/) **only!**
- Ubuntu Focal can be used for building Bionic, Focal and Buster images as well, unsupported though
- `binfmt_misc` kernel module (some *ubuntu-cloud* images do not have this module. Switch to a generic kernel if that is the case.)
- installed basic system, OpenSSH and Samba (optional)
- no spaces in full path to the build script location allowed
@@ -64,54 +63,9 @@ RELEASE="bullseye"
COMPRESS_OUTPUTIMAGE="sha,gz"
```
## Using our automated build system
If you do not own the proper equipment to build images on your own, you can make use of the automated build system.
Packages are recompiled every night (starting at 00:01 CEST) and a few testing images are produced.
These images are accessible on the [download server](https://dl.armbian.com/) under board folder, subfolder "*Nightly*".
Packages, when successfully built, are published in the *beta* repository.
You can switch to *beta* repository in [armbian-config](User-Guide_Armbian-Config.md) or by changing *apt.armbian.com* to *beta.armbian.com* in /etc/apt/sources.list.d/armbian.list.
Board beta images are defined in board configuration files which are located [here](https://github.com/armbian/build/tree/main/config/boards).
This is a typical board configuration:
```
# A20 dual core 1Gb SoC
BOARD_NAME="Banana Pi"
LINUXFAMILY="sun7i"
BOOTCONFIG="Bananapi_defconfig"
MODULES="hci_uart gpio_sunxi rfcomm hidp sunxi-ir bonding spi_sun7i 8021q a20_tp #ap6211"
MODULES_NEXT="brcmfmac bonding"
#
KERNEL_TARGET="legacy,current,edge"
CLI_TARGET="bullseye,jammy:current"
DESKTOP_TARGET="bullseye:legacy,current"
CLI_BETA_TARGET=""
DESKTOP_BETA_TARGET=""
#
BOARDRATING=""
```
You can find more information about those variables [here](https://github.com/armbian/build/blob/main/config/boards/README.md).
If you want that our automated system start making images for this particular board, you need to alter parameters `CLI_BETA_TARGET` and `DESKTOP_BETA_TARGET`.
Variants are dependent from `KERNEL_TARGET` definitions and supported userlands: `jammy`, `bullseye`.
To edit those parameters you need to push changes to the build script.
You need to [fork a project and create a pull request](Process_Contribute.md) and after it is imported by one of the administrators, images will start to show up in appropriate folder.
If you want to enable Debian Bullseye desktop image with _current_ kernel choose the following:
DESKTOP_BETA_TARGET="bullseye:current"
or for command line interfaces Ubuntu Focal based images with legacy kernel 4.19.x
CLI_BETA_TARGET="focal:legacy"
or for image with latest upstream development/bleeding edge kernel.
DESKTOP_BETA_TARGET="bullseye:edge"
## Using GitHub actions
If you do not own the proper equipment to build images on your own, you can try to use our [official GitHub action](https://github.com/marketplace/actions/rebuild-armbian).
## Using alternate armbian builder repos and branches

View File

@@ -1,112 +0,0 @@
# What happens behind the build process?
## Build process summary:
- creates development environment on top of amd64 Ubuntu 22.04 LTS,
- downloads proven sources, applies patches on top and uses tested configurations,
- cross-compiles universal boot loader (***U-Boot***), kernel and other tools and drivers,
- packs kernel, U-Boot, dtb and root customizations into Debian packages,
- debootstraps minimalistic Debian Bullseye and Ubuntu Jammy into SD card images,
- installs additional packets, applies customizations and shrinks image to its actual size.
Check this image [compiling example](https://youtu.be/zeShf12MNLg) with partial cache.
## Build process details:
### Creating compile environment
First things first. All necessary dependencies are downloaded and installed. This happens though both http and torrent network. Btw. having too much unused traffic? [Help us to reduce ours :)](https://forum.armbian.com/topic/4198-seed-our-torrents/)
### Using board configuration
We need to get some predefined variables about selected the board. Which kernel & uboot source to use, modules to load, which is the build number, do we need to have a single partition or dual with boot on fat, which extra drivers to compile out of the kernel tree ...
All this stuff is predefined for each and every single supported board.
### Downloading sources
When we know which sources to use and where they need to be the download or updated this process starts. This might take from several minutes to several hours.
### Patching
In the patching process we are applying patches to the used sources. The process is - depending on selected board - defined in:
lib/patch/kernel/sun7i-default
lib/patch/kernel/sunxi-dev
...
lib/patch/u-boot/u-boot-default
lib/patch/u-boot/u-boot-neo-default
...
Patch rules for subdirectories are: **KERNEL_FAMILY-BRANCH** for kernel and **U-BOOT-SOURCE-BRANCH** for U-Boot.
### Debootstrap
Debootstrap creates fresh Debian / Ubuntu root filesystem templates or use cached under:
output/cache/rootfs/
To recreate those files you need to remove them manually.
From time to time they will be recreated anyway if Armbian updates their rootfs cache.
### Kernel install
When the root filesystem is ready we need to install the kernel image with modules, board definitions and firmwares. Along with this we set the CPU frequency min/max, hostname, modules, network interfaces templates. Here is also the place to install headers and fix + native compile them on the way.
### Distribution fixes
Each distribution has it's own way of doing things:
- serial console
- different packets
- configuration locations
### Board fixes
Each board has their own tricks: **different device names, firmware loaders, configuration (de)compilers, hardware configurators**
### Desktop installation
You can build a desktop environment withing the image. Consider this feature as experimental. Do not expect to have working hardware acceleration since this is a very complicated task and needs individial care for different boards.
### External applications
This place is reserved for custom applications. There is one example of application: USB redirector.
### Closing image
There is an option to add some extra commands just before closing an image which is also automaticaly shrink to it's actual size with some small reserve.
### Directory structure
It will be something like this:
compile.sh compile execution script
lib/bin/ blobs, firmwares, static compiled, bootsplash
lib/config/ kernel, board, u-boot, hostapd, package list
lib/documentation/ user and developers manual
lib/patch/ collection of kernel and u-boot patches
lib/scripts/ firstrun, arm hardware info, firmware loaders
lib/LICENSE licence description
lib/README.md quick manual
lib/common.sh creates environment, compiles, shrink image
lib/configuration.sh boards presets - kernel source, config, modules, ...
lib/distributions.sh system specific installation and fixes
lib/main.sh user input and script calls
lib/makeboarddeb.sh creates board support package .deb
lib/repo-update.sh creates and updates your local repository
lib/repo-show-sh show packets in your local repository
lib/upgrade.sh script to upgrade older images
sources/ source code for kernel, uboot and other utilities
output/repository repository
output/cache cache for root filesystem and headers compilation
output/debs deb packeges
output/images zip packed RAW image
userpatches/kernel put your kernel patches here
userpatches/u-boot put your u-boot patches here
userpatches/ put your kernel config here
## Additional info
- [Allwinner SBC community](https://linux-sunxi.org/Main_Page)

View File

@@ -1,17 +0,0 @@
It is important for tests to be performed in a consistent manner.
The purpose of formalized testing procedures is to provide a proven, reproducible process for verifying device compatibility and various features within Armbian.
The overall goal is to reduce variance in testing methodologies between individual contributors while enstilling confidence within new contributors and encouraging them to perform quality bug reports and ideally a pull/merge request.
## Hardware: Micro SD card
1. Insert the micro SD card **directly** into the corresponding port on the target device, if possible.
If intermediate hardware such as a microSD/USB adapter is used and the card is not detected, please include details of the adapter within the test results
Verify that the card is recognized in ``lsblk``
2. Verify that the card is recognized by a file manager
(If a device is ejected within the file manager, you may have to physically re-insert the card for it to appear again.)
3. Verify that the card can be mounted within a file manager
4. Navigate to the root directory of the card within a file manager.
Verify that the maximum storage capacity indicated is appropriate given the storage marked on the card
5. Verify that a non-empty text file can be written to the card
6. Verify that existing files may be read on the card
7. Using a N-GB card, verify that checksum evaluations pass if approximately N * 1 GB files are written to the card

View File

@@ -1,27 +1,11 @@
# Welcome to `armbian/build`, the Armbian build system
# Welcome to the Armbian build framework documentation!
Welcome to the Armbian build system (`armbian/build`).
The build system has significantly changed since release 23.02, when the `armbian-next` effort was merged into
our `main` branch.
Please expect some rough edges and report them to us.
## Errors, errors everywhere
Previously, when faced with an error, the build system would simply ignore them, hardly log them anywhere, and continue.
This led to builds completing successfully, but with (sometimes very sneakily) broken packages and images.
Get used to seeing errors stopping builds now. Inspect the whole log, specially the errors, the last few lines, and the
stack trace.
We try, as much as possible given Bash limitations, to show the source of the error, with a "stack trace" of sorts.
The topmost elements of the stack trace are usually the most relevant. Each line is prefixed with the file and line
number where the error occurred.
Open the file and go to the line number to see the source of the error. Most times, this simple inspection is enough to
understand the error.
Overview:
### (ANSI) Logging
Logging is a bit more structured now. Logs are output to `output/logs`, in a few different formats.
We output ANSI color both to the screen and to the logs.
_Please_ add `SHARE_LOG=yes` to share your logs with us when reporting issues, that allows us to check the logs on a web
Logs are output to `output/logs`, in a few different formats. We output ANSI color both to the screen and to the logs.
_Please_ add `SHARE_LOG=yes` to share your logs with our pastebin service when reporting issues, that allows us to check the logs on a web
browser and keep to correct formatting.
## Command line syntax has changed
@@ -112,16 +96,10 @@ This is (by far) not a complete list:
- although "aggregation" has been rewritten in Python, it still mostly works using the legacy principle, by scanning
directories and files in a very complex and error-prone way. This is a source of many bugs and confusion. We plan to
replace this with pure extensions eventually.
- "minimal" images are far from really minimal. It is common to see "extensions" that actually remove stuff put there
by the core. Those should be refactored.
- board-side scripts (armbian-config, firstrun, hwoptimization, etc) haven't really changed with armbian-next, and are
in dire need of a rewrite. They're also a source of many bugs and confusion. They also need to be extensible.
- we've mostly working Kernel headers (linux-headers pkg) for 5.10+ including some vendor kernels; no kernel-headers for
4.x kernels. sorry. We've no plans to support this.
- we've mostly working Kernel headers (linux-headers pkg) for 5.10+ including some vendor kernels
## Multiple u-boot's for same board
Hmm. This is an interesting problem. 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.
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.

View File

@@ -1,18 +1,10 @@
# Rolling releases
## Rolling releases
Armbian makes daily rolliong releases which includes generating daily updates of stable kernels and daily releases of unstable kernels and userspace packages.
Armbian provides automated daily rolling releases of [small selection of images](https://github.com/armbian/os/blob/main/userpatches/targets-release-nightly.yaml) for all supported targets. Images are available at respective board download pages: <https://www.armbian.com/download> Armbian also populates packages repository so updates are available as an upgrade to your existing OS.
<https://github.com/armbian/build/releases>
## Point releases
Images are available at respective board download pages:
<https://www.armbian.com/download>
# Point releases
## Release Dates
Armbian runs "train" based releases. Whatever is ready to board the train, does so. Whatever isn't ready, has to wait for the next train. This enables us to have a predictable release cycles making it easy to plan. It also puts the responsibility on developers to make sure they have features ready on time.
Armbian runs "train" based point releases. Whatever is ready to board the train, does so. Whatever isn't ready, has to wait for the next train. This enables us to have a predictable release cycles making it easy to plan. It also puts the responsibility on developers to make sure they have features ready on time.
Armbian releases quarterly at the end of **February, May, August, November**. Offset is because we all know that nothing happens for half of December. At the beginning of a release cycle, we have a planning meeting and **two weeks before the end of the release we freeze integration of new features**.
@@ -26,17 +18,14 @@ Development epics, stories and bugs for each release are tracked through [Jira](
Branches in Armbian follow this convention:
- **Master branch (master):** Main development will happen on the master branch. This is the latest and greatest branch, but is always "stable" and "deployable". All tests always pass on this branch.
- **Maintenance branch (support):** This is the long-term maintenance branch per release.
- **Bleeding edge branch (edge)**: This is a branch created for lengthy and/or involved feature development that could destabilize master.
- **Main branch (main):** Main development will happen on the main branch. This is the latest and greatest branch, but is always "stable" and "deployable". All tests always pass on this branch.
- **Release branch (v24.08 for example):** This is a branch per release with frozen external sources.
Each Armbian release will have the following version format:
**Format:** `<major>.<minor>.<revision>`
`<major>` and `<minor>` version will be incremented at the end of the release cycles while `<revision>` is incremented for a fix (or set of fixes)
Tags are used in ad-hoc manner.
`<major>` and `<minor>` version are incremented at the end of the release cycles while `<revision>` is incremented for a fix.
## Release Naming
@@ -62,7 +51,14 @@ Tags are used in ad-hoc manner.
| 23.11 | Topi | November | [done](https://armbian.atlassian.net/projects/AR/versions/10016/tab/release-report-all-issues)
| 24.02 | Kereru | February | [done](https://armbian.atlassian.net/projects/AR/versions/10017/tab/release-report-all-issues)
| 24.05 | Havier | May | [done](https://armbian.atlassian.net/projects/AR/versions/10018/tab/release-report-all-issues)
| 24.08 | Yelt | August | planned
| 24.08 | Yelt | August | [done](https://armbian.atlassian.net/projects/AR/versions/10019/tab/release-report-all-issues)
| 24.11 | Stirk | August | planned
| 25.02 | Iiwi | August | planned
| 25.05 | Caiman | August | planned
| 25.08 | Dunnart | August | planned
| 25.11 | Brach | August | planned
| 26.02 | Goa | August | planned
by [https://www.codenamegenerator.com](https://www.codenamegenerator.com) from unusual animals
@@ -215,26 +211,3 @@ following by commiting this code to build framework.
- Point Armbian build system to new release
- Update armbian documentation to reflect current release
- Celebrate
## Release Testing
See [Opportunties for improvement](#opportunities-for-improvement)
## Reflection on Prior Releases
### Opportunities for Improvement
#### wireless driver testing
* wireless is a particularly sensitive issue. We need to test, fix, or at least be able to inform others of what is broken
#### Bug Tracking
#### Testing
#### Image Downloads
### Positive Observations
* Good response from community for testing assistance
* Release was on time

File diff suppressed because it is too large Load Diff

View File

@@ -2,101 +2,129 @@
<iframe width="607" height="342" src="https://www.youtube.com/embed/hFrdyLc4g50" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Mentioned links:
!!! tips "New users"
- [https://gitlab.com/bztsrc/usbimager/](https://gitlab.com/bztsrc/usbimager/)
- [https://forum.armbian.com/topic/4767-powering-through-micro-usb/](https://forum.armbian.com/topic/4767-powering-through-micro-usb/)
- [https://docs.armbian.com/](https://docs.armbian.com/)
- [https://forum.armbian.com/profile/9032-werner/](https://forum.armbian.com/profile/9032-werner/)
- [https://forum.armbian.com/topic/12803-armbian-irc-chat/](https://forum.armbian.com/topic/12803-armbian-irc-chat/)
Please, make sure you have:
## Prerequisites for new users
- a proper power supply according to the board manufacturer requirements
- a reliable SD card (see below "How to prepare a SD card?")
Please, make sure you have:
- a proper power supply according to the board manufacturer requirements (basic usage example: 5V/2A with DC Jack barrel or **thick** USB cable)
- a reliable SD card (see below "How to prepare a SD card?")
## What to download?
### What to download?
The download for each image consists of three separate files:
- **.xz**-compressed image file
- **.sha file** for download verification
- **.asc file** for image authentication
- **.xz** compressed image file
- **.sha file** for download verification (optional)
- **.asc file** for image authentication (optional)
!!! question "How to check download authenticity?"
All our images are digitally signed and therefore it is possible to check their authenticity. You need to issue these commands (Linux/macOS, you might need to install dependencies first, eg. `sudo apt-get install gnupg ` on Debian/Ubuntu or `brew install gnupg ` on macOS. on windows install the current simple gnupg [Gnupg](https://gnupg.org/download/):
```sh
# download public key from the database
gpg --keyserver hkp://keyserver.ubuntu.com --recv-key DF00FAF1C577104B50BF1D0093D6889F9F0E78D5
# perform verification
gpg --verify Armbian_5.18_Armada_Debian_jessie_3.10.94.img.xz.asc
# proper response
gpg: Signature made sob 09 jan 2016 15:01:03 CET using RSA key ID 9F0E78D5
gpg: Good signature from "Igor Pecovnik (Ljubljana, Slovenia) <igor.++++++++++++@gmail.com>"
# wrong reponse. Not genuine Armbian image!
gpg: Signature made Sun 03 Jan 2016 11:46:25 AM CET using RSA key ID 9F0E78D5
gpg: BAD signature from "Igor Pecovnik (Ljubljana, Slovenia) <igor.++++++++++++@gmail.com>"
```
It is safe to ignore the message `WARNING: This key is not certified with a trusted signature!`.
!!! question "How to check download integrity?"
Since it might happen that your download got somehow corrupted we integrate a checksum/hash for the image. You can compare the image's SHA-256 hash with the one contained in the `sha256sum.sha` file.
On Windows, you can download and use the [QuickHash GUI](https://www.quickhash-gui.org/download/quickhash-v3-1-0-windows/) and follow the instructions in the gui.
while on Linux/macOS, in the directory in which you have downloaded the files ,you would do this
```sh
shasum -a 256 -c Armbian_*.img.sha
#good response
Armbian_5.35_Clearfogpro_Debian_stretch_next_4.13.16.img: OK
```
For each board we usually provide various image types:
- **CLI** - server variant without desktop environment
- **minimal** - very lightweight server variant with just the bare minimum, not even includes `armbian-config`. Everything can be installed via `apt`.
- **Desktop** full featured desktop image with either Ubuntu Jammy userspace **or** Debian Bookworm userspace
- **Minimal** - lightweight CLI with bare minimum of packages
- **Server** - server variant with preinstalled standard utilities
- **Desktop** full featured desktop image
Other (unsupported) builds may also be available (like Debian Bullseye/Sid or Ubuntu Lunar/Mantic).
Some boards have different options due to their hardware specialities - router or IoT boards.
For some boards we provide only minimal images due to their hardware limitations.
### Legacy, current or edge?
### Debian or Ubuntu?
- **legacy** is either a vendor provided kernel or an old LTS mainline kernel. Use if either _current_ is not available or something does not work well.
- **current** is usually following current mainline LTS kernel and considered fully supported and can bring up features video acceleration for example
- **edge** is as the name implies cutting-edge and usually following the latest mainline kernel or 3rd party development branch. Untested, unstable, can break at any time, for experienced users only.
If you have no special preferences that require specific versions, we recommend Ubuntu based Armbian.
The level of kernel support however always depends on the board family.
If in your specific case something does not work well, you are always free to try an image with an other kernel included.
### Vendor, current?
### What are testing images *(WIP)*?
In some cases we provide images with different firmware. They differ in level of hardware support. Focus into:
- made from stable branches
- not very well tested
- for end users
- **vendor** contains vendor provided kernel which usually has best hardware support while version can be outdated, containin less general fixes
- **current** is following latest [mainline LTS kernel](https://www.kernel.org/category/releases.html) and is in most cases best choice
**Do not use** testing or edge images in a productive environment. We do appreciate your constructive [feedback to developers](https://forum.armbian.com/forum/4-development/).
And use those if they are the only one / for testings:
### How to check download authenticity?
- **edge** is as the name implies cutting-edge fresh / development / latest stable. It is only automatically tested and can break at any time. Recommended for experienced users.
- **legacy** is old stable current kernel. Use if either _current_ is not available or something does not work well with it.
All our images are digitally signed and therefore it is possible to check their authenticity. You need to issue these commands (Linux/macOS, you might need to install dependencies first, eg. `apt-get install gnupg ` on Debian/Ubuntu or `brew install gnupg ` on macOS. on windows install the current simple gnupg [Gnupg](https://gnupg.org/download/):
# download public key from the database
gpg --keyserver hkp://keyserver.ubuntu.com --recv-key DF00FAF1C577104B50BF1D0093D6889F9F0E78D5
# perform verification
gpg --verify Armbian_5.18_Armada_Debian_jessie_3.10.94.img.xz.asc
The level of kernel support however always depends on the board family. If in your specific case something does not work well, you are always free to try an image with an other kernel included or change kernel within [armbian-config](/User-Guide_Armbian-Config).
# proper response
gpg: Signature made sob 09 jan 2016 15:01:03 CET using RSA key ID 9F0E78D5
gpg: Good signature from "Igor Pecovnik (Ljubljana, Slovenia) <igor.++++++++++++@gmail.com>"
### Rolling releases?
# wrong reponse. Not genuine Armbian image!
gpg: Signature made Sun 03 Jan 2016 11:46:25 AM CET using RSA key ID 9F0E78D5
gpg: BAD signature from "Igor Pecovnik (Ljubljana, Slovenia) <igor.++++++++++++@gmail.com>"
Rolling releases are suitable for Linux enthusiasts who want cutting edge packages and have the skills to fix damage that a bad update might cause. If you want stability in a production environment or low headaches as a novice user, skip rolling releases. They are only at, build and ship, Debian testing / Arch / Manjaro / Suse Tumbleweed / Kali / Gentoo support quality level!
It is safe to ignore the message `WARNING: This key is not certified with a trusted signature!`.
``` mermaid
graph LR
A[Hardware] --> B{Armbian kernel};
B -->|legacy| C["rolling release"];
B -->|vendor| C["rolling release"];
B -->|current| C["rolling release"];
B -->|edge| C["rolling release"];
B -->|legacy| X["point release"];
B -->|vendor| X["point release"];
B -->|current| X["point release"];
B -->|edge| X["point release"];
C ---->|minimal| E[Debian or Ubuntu];
C ---->|server| F[Debian or Ubuntu];
C ---->|desktop| G[Debian or Ubuntu];
### How to check download integrity?
X ---->|minimal| E[Debian or Ubuntu];
X ---->|server| F[Debian or Ubuntu];
X ---->|desktop| G[Debian or Ubuntu];
```
Since it might happen that your download got somehow corrupted we integrate a checksum/hash for the image. You can compare the image's SHA-256 hash with the one contained in the `sha256sum.sha` file.
!!! danger
On Windows, you can download and use the [QuickHash GUI](https://www.quickhash-gui.org/download/quickhash-v3-1-0-windows/) and follow the instructions in the gui.
**Do not use** rollling or edge images in a productive environment. Their purpose is testing and providing constructive [feedback to developers](https://forum.armbian.com/forum/4-development/).
while on Linux/macOS, in the directory in which you have downloaded the files ,you would do this
shasum -a 256 -c Armbian_*.img.sha
#good response
Armbian_5.35_Clearfogpro_Debian_stretch_next_4.13.16.img: OK
## How to prepare a SD card?
## Preparing SD card?
**Important note:** Make sure you use a **good, reliable and fast** SD card. If you encounter boot or stability troubles in over 95 percent of the time it is either insufficient power supply or related to SD card (bad card, bad card reader, something went wrong when burning the image, card too slow to boot -- 'Class 10' highly recommended!). Armbian can simply not run on unreliable hardware so checking your SD card with either [F3](https://fight-flash-fraud.readthedocs.io/en/stable/) or [H2testw](https://www.heise.de/download/product/h2testw-50539) is mandatory if you run in problems. Since [counterfeit SD cards](https://www.happybison.com/reviews/how-to-check-and-spot-fake-micro-sd-card-8/) are still an issue checking with F3/H2testw directly after purchase is **highly recommended**.
Write the **.xz compressed image** with a tool [USBImager](https://gitlab.com/bztsrc/usbimager) or [balenaEtcher](https://www.balena.io/etcher/) on all platforms since, unlike other tools, either can validate written data **saving you from corrupted SD card contents**.
Also important: Most SD cards are only optimised for sequential reads/writes as it is common with digital cameras. This is what the *speed class* is about. The SD Association defined [*Application Performance Class*](https://www.sdcard.org/developers/overview/application/index.html) as a standard for random IO performance.
!!! tip "Also important"
Most SD cards are only optimised for sequential reads/writes as it is common with digital cameras. This is what the *speed class* is about. The SD Association defined [*Application Performance Class*](https://www.sdcard.org/developers/overview/application/index.html) as a standard for random IO performance.
|Application Performance Class|Pictograph|Miniumum Random Read|Minimum Random Write|Minimum Sustained (Seq. Write)|
|---|---|---|---|---|
|Class 1 (A1)|![a1-logo](https://raw.githubusercontent.com/armbian/documentation/master/docs/images/a1-logo.png)|1500 4k IOPS|500 4k IOPS|10MBytes/sec|
|Class 2 (A2)|![a2-logo](https://raw.githubusercontent.com/armbian/documentation/master/docs/images/a2-logo.png)|4000 4k IOPS|2000 4k IOPS|10MBytes/sec|
At the time of this writing A1 and A2 cards are only widely available from SanDisk. Armbian recommends A1 rated SD-Cards **only** now ([A2 rated cards need yet lacking driver support and therefore show lower overall and especially random IO performance](https://github.com/ThomasKaiser/Knowledge/blob/master/articles/A1_and_A2_rated_SD_cards.md)). For example:
We recommend at least A1 rated SD-Cards ([A2 rated cards need yet lacking driver support and therefore show lower overall and especially random IO performance](https://github.com/ThomasKaiser/Knowledge/blob/master/articles/A1_and_A2_rated_SD_cards.md)). For example:
![a1-16gb-card](https://raw.githubusercontent.com/armbian/documentation/master/docs/images/sandisk-ultra-a1.png) ![a1-32gb-card](https://raw.githubusercontent.com/armbian/documentation/master/docs/images/sandisk-extremepro-a1.png) ![a2-64gb-card](https://raw.githubusercontent.com/armbian/documentation/master/docs/images/sandisk-extreme-a2.png)
@@ -164,66 +192,74 @@ In case you have no wired network connection and there is a wireless adaptor det
Generating locales: sl_SI.UTF-8
root@bananapim2pro:~#
## How to update firmware and packages?
## How to install?
![Installer](https://www.armbian.com/wp-content/uploads/2016/12/nandsata.png)
!!! success "Required condition for eMMC/SATA/USB/NVME:"
* onboard eMMC storage
* attached SATA, NVME or USB storage
Start the install script and follow the lead:
armbian-install
!!! tip "Armbian installer provides those scenarios:"
* boot from SD, system on SATA / USB
* boot from eMMC / NAND, system on eMMC/NAND
* boot from eMMC / NAND, system on SATA / USB / NVME
* Boot from SPI - system on SATA, USB or NVMe
* Install/Update the bootloader on SD/eMMC
* Install/Update the bootloader on special eMMC partition
* Install/Update the bootloader on SPI Flash
* Install system to UEFI disk
!!! tip "You can choose the following file system options:"
* ext2,3,4
* btrfs
## How to update?
### Armbian OS?
apt update
apt upgrade
**Update process can take hours in case of using cheap SD card and/or under heavy load.**
**Update process can take some time in case of using old & cheap SD card and/or under heavy load.**
If the kernel was upgraded during this process you will be prompted to reboot at next login.
## How to update u-boot?
### Boot loader?
First you need to update packages described in a previous "How to update" step. Then run armbian-config utility, go to system settings and proceed to:
First you need to update all packages described in a previous step. Then run:
**"Install" "Install to/update boot loader"** -> **Install/Update the bootloader on SD/eMMC**
```bash
sudo armbian-install
```
## How to upgrade distribution (like Focal to Jammy or Bullseye to Bookworm)?
Select:
Fire up `armbian-config` to freeze your firmware packages (if not frozen already, select `System` and `Freeze`).
Then follow generic upgrade instructions specific to your userspace:
Install/Update the bootloader on SD/eMMC
- Like for Debian: [https://www.debian.org/releases/bookworm/arm64/release-notes/ch-upgrading.en.html](https://www.debian.org/releases/bookworm/arm64/release-notes/ch-upgrading.en.html)
- Or Ubuntu: launch `do-release-upgrade`
## How to stay safe?
__Attention:__ Userspaces distribution upgrades are neither tested nor supported. Therefore Armbian cannot provide support if something goes wrong.
Armbian provides firmware package freeze to give you an option to upgrade all packages but firmware. This prevents unplesant surprises on functionality regressions that comes with kernel upgrades. To enable / disable this feature, look for `Enable Armbian kernel/firmware upgrades / Disable Armbian kernel upgrades` within [armbian-config](/User-Guide_Armbian-Config).
## How to adjust hardware features?
## How to upgrade a distribution?
[Use the Armbian configuration utility `armbian-config`](User-Guide_Armbian-Config.md)
When a new userspace is out, we recommend to start with a fresh image. However, it is possible to upgrade, but the process is largerly in the domain of underlaying Debian or Ubuntu user space. However we provide experimental `Distribution upgrades` within [armbian-config](/User-Guide_Armbian-Config)
## How to install to eMMC, SATA, NVME & USB?
![Installer](https://www.armbian.com/wp-content/uploads/2016/12/nandsata.png)
!!! danger
Userspaces distribution upgrades are neither tested nor supported. Therefore Armbian cannot provide support if something goes wrong.
Required condition for eMMC/SATA/USB/NVME:
## How to tune hardware?
* onboard eMMC storage
* attached SATA, NVME or USB storage
Hardware configuration is available within [armbian-config](User-Guide_Armbian-Config.md) utility.
Start the install script:
## How to report bugs?
armbian-install
and follow the guide. Those are all possible scenarios:
* boot from SD, system on SATA / USB
* boot from eMMC / NAND, system on eMMC/NAND
* boot from eMMC / NAND, system on SATA / USB / NVME
* Boot from SPI - system on SATA, USB or NVMe
* Install/Update the bootloader on SD/eMMC
* Install/Update the bootloader on special eMMC partition
* Install/Update the bootloader on SPI Flash
* Install system to UEFI disk
and you can choose the following file system options:
* ext2,3,4
* btrfs
On Allwinner devices after switching to boot from NAND or eMMC clearing the boot loader signature on the SD card is recommended: `dd if=/dev/zero of=/dev/mmcblkN bs=1024 seek=8 count=1` (replace `/dev/mmcblkN` with the correct device node -- in case you run this directly after `armbian-install` without a reboot in between then it's `/dev/mmcblk0`). When booting from eMMC to get SD cards auto-detected on Allwinner legacy images please consider changing `mmc0`'s `sdc_detmode` from 3 to 1 in the board's fex file (see [here](https://forum.armbian.com/topic/1702-orange-pi-plus-2e-where-is-16ghz-and-sd/?tab=comments#comment-13163) for details).
## How to install to NAND?
While in theory writing to NAND should still be possible using `armbian-installer`, this requires running a very old 3.4.y kernel which Armbian as dropped support for several years ago. Therefore this feature is to be considered as deprecated and no support for either 3.4.y systems or NAND installations will be provided.
Follow bug reporting form available [here](https://armbian.com/bugs/) and learn how to collect necessary information and where provide to put your report depending on type of issue. Reports lacking fundamental diagnostics are ignored.

View File

@@ -1,17 +1,19 @@
# Networking
## Networking
Armbian uses [**Netplan.io**](https://netplan.io/) to describe networking configurations. Netplan is a utility to easily configure Linux networking, using a declarative approach.
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/)).
Netplan is used to configure networks on **all** Armbian images since Release 24.05, no matter if minimal or desktop, Debian or Ubuntu. However, the networking backends are different based on if you choose a minimal image or not.
# Minimal images (networkd)
## Minimal images
!!! tip "Netplan renderer: networkd"
Minimal images are using the `systemd-networkd` backend, which has a **smaller footprint** compared to `Network-Manager`. `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.
## Default Armbian configuration
### Armbian defaults
By default, your device will run using DHCP on all ethernet interfaces to be able to automatically receive an IP address from your router.
All ethernet interfaces will automatically receive an IP address from your router.
[`/etc/netplan/10-dhcp-all-interfaces.yaml`](https://github.com/armbian/build/blob/main/extensions/network/config-networkd/netplan/10-dhcp-all-interfaces.yaml):
@@ -28,14 +30,21 @@ network:
ipv6-privacy: yes
```
## Configuration examples
### Configuration examples
### Setting a fixed IP address
#### Setting a fixed IP address
The following example configures a static IP `192.168.1.199` for the `eth0` interface. Please adjust the example to your likings.
> [!TIP]
> Find out the name of your device's Ethernet interface with the command `ip addr`. It is usually something like `eth0`, `enp4s3` or `lan`.
!!! question "How to find your device's Ethernet interface?"
Use command:
```sh
ip addr
```
It is usually something like `eth0`, `enp4s3` or `lan`.
`/etc/netplan/20-static-ip.yaml`:
@@ -58,9 +67,10 @@ network:
See also the [Netplan docs](https://netplan.readthedocs.io/en/latest/using-static-ip-addresses/) for reference.
### Connecting to a wireless network
#### Connecting to WiFI network
It is recommended to make a separate config file for wireless network.
!!! tip "It is recommended to make a separate config file for wireless network."
Create the following file:
@@ -81,16 +91,23 @@ network:
Replace `SSID` with the name of the network you want to connect to and `wlan0` with the wifi interface used on your system.
> [!TIP]
> Find out the name of your device's WiFi interface with the command `ip addr`.
!!! question "How to find your device's WiFi interface?"
Use command:
```sh
ip addr
```
It is usually something like `wlan0`, `wlo1` or `wlx12334c47dec3`.
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.
## Applying your configuration
### Applying your configuration
Once you are done configuring your network, it is time to test syntax and apply it.
#### 1. Fix config file permissions
#### Fix file permissions
According to the [Netplan docs](https://netplan.readthedocs.io/en/stable/security/), the permissions must be restricted to the root user.
@@ -98,18 +115,23 @@ According to the [Netplan docs](https://netplan.readthedocs.io/en/stable/securit
sudo chmod 600 /etc/netplan/*.yaml
```
#### 2. Test if the syntax is correct and if your device can still connect
#### Test syntax
This will verify the syntax and test if your device can connect
```bash
sudo netplan try
```
#### 3. Apply the configuration
#### Apply the configuration
```bash
sudo netplan apply
```
# CLI and desktop images (Network-Manager)
# CLI and desktop images
!!! tip "Netplan renderer: Network Manager"
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.
@@ -117,8 +139,14 @@ Server CLI and desktop images are using the `Network-Manager` backend. You can u
The following example configures a static IP `192.168.1.199` for the `eth0` interface. Please adjust the example to your likings.
> [!TIP]
> Find out the name of your device's Ethernet interface with the command `ip addr`. It is usually something like `eth0`, `enp4s3` or `lan`.
!!! question "How to find your device's Ethernet interface?"
Use command:
```sh
ip addr
```
It is usually something like `eth0`, `enp4s3` or `lan`.
`/etc/netplan/20-static-ip.yaml`:
@@ -146,14 +174,14 @@ Alternatively, you can also use Network-Manager directly via the command line or
```bash
nmtui-edit eth0
```
![](images/edit-connection.png)
??? note "Display screenshot"
![](images/edit-connection.png)
Replace `eth0` with the name of your Ethernet Interface.
### Connecting to a wireless network
### Connecting to WiFI network
For connecting to a wireless network, you can use the same method as mention above for use with [`networkd` on minimal images](#connecting-to-a-wireless-network). Just make sure to replace `renderer: networkd` with `renderer: NetworkManager`.
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`.
Alternatively, you can also use Network-Manager directly via the command line or GUI tools on your desktop:
@@ -161,11 +189,12 @@ Alternatively, you can also use Network-Manager directly via the command line or
nmtui-connect SSID
```
![](images/wifi-connect.png)
??? note "Display screenshot"
![](images/wifi-connect.png)
Replace `SSID` with the name of your wireless network.
# Automatic configuration on first boot
# Automatic configuration
It is possible to network configurations which are automatically applied when you first boot your device after flashing a fresh image by writing to the file `/root/.not_logged_in_yet` which is read at your first login.
@@ -203,9 +232,11 @@ Mount your live image _before your first boot_ and use this example for referenc
If you want to use first run automatic configuration at build time, [check this GitHub pull request](https://github.com/armbian/build/pull/6194).
In short:
1. Copy the template with `cp extensions/preset-firstrun.sh userpatches/extensions/`
2. Edit the template `userpatches/extensions/preset-firstrun.sh` according to your situation
3. Build your Armbian image using the additional parameter `ENABLE_EXTENSIONS=preset-firstrun`
> [!NOTE]
> This method also creates a new user, sets passwords and more!
???+ tip
This method also creates a new user, sets passwords and more!

BIN
docs/images/forums.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 KiB

BIN
docs/images/loginprompt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View File

@@ -4,85 +4,101 @@ Linux for ARM development boards
# Welcome to the Armbian Documentation!
If you are **new to Armbian**, the [_Getting Started_](User-Guide_Getting-Started.md) section
provides a tutorial for everything you need to get Armbian running
and answers many **F**requently **A**sked **Q**uestions.
It then continues on to more advanced topics.
## What is Armbian?
Armbian is highly optimised base operating system specialised for single board computers.
It embodies extremely lightweight hardware features focused Debian-based distribution, extensive build framework and is suitable for industrial or home use.
``` mermaid
graph LR
A[Hardware] --> B{50 x Armbian kernel};
B --> X["point release"];
X ---->|minimal| E[Debian or Ubuntu];
X ---->|server| F[Debian or Ubuntu];
X -->|desktop| H[Debian or Ubuntu];
H -->Q[XFCE];
H -->W[Gnome];
H -->R[KDE];
H -->T[Cinnamon];
```
## Key Advantages
- extreamly lean and standardised Debian-based user space
- extensive build framework with endless capabilities
- fast hybrid assembly of whole operating system
- independednt long term support
- advanced hardware and OS config (armbian-config)
- in house kernel development, improvement and maintaining
- daily automated stress and upgrade testing of key hardware targets
- exlusive support on exotic hardware
- installation is optional and simplifieds
- provides point releases and daily rolling distribution
- world wide download infrastructure with perfect coverage in China mainland
- 1000+ build runners to assist CI automation
- CI supports customized build list per each build target
???+ "Other features and performance tweaks"
- Images are reduced to actual data size and automatically expand across boot media at first boot
- BASH or ZSH shell, preinstalled standard system utilities
- login is possible via serial, HDMI/VGA or SSH
- highly compressed distributed images
- Upgrades are done via standard `apt upgrade` method
- Login script shows: board name with large text, distribution base, kernel version, system load, uptime, memory usage, IP(v6) address, CPU and drive temperature, ZFS, rootfs usage, battery conditions and number of updates to install
- `/var/log` is mounted as compressed device (zram, lzo), log2ram service saves logs to disk daily and on shutdown
- Half of memory is allocated/extended for/with compressed swap
- `/tmp` is mounted as `tmpfs` (optionally compressed)
- Browser profile memory caching is enabled on desktop images
- Optimized IO scheduler (check `/etc/init.d/armhwinfo`)
- Journal data writeback enabled. (`/etc/fstab`)
- ethernet interrupts are using dedicated core
## What is supported?
Armbian distribute stable images for maintained boards through its [mirror network](https://github.com/armbian/mirror). *Supported / maintained* is not a guarantee. It has a named maintainer and implies a particular SBC is at a **high level of software maturity**. Due to the complexity and lack of cooperation in the ecosystem it is unlikely that all specialized functionalities (like 3D, VE, I²C...) are always available.
## Support statuses?
[Platinum Support](https://www.armbian.com/download/?device_support=Platinum%20support){ .md-button .md-button--primary }
At least one person providing maintainance and support.
[Standard Support](https://www.armbian.com/download/?device_support=Standard%20support){ .md-button }
Support is not secured but still good anything from this list.
[Community maintained](https://www.armbian.com/download/?device_support=Community%20maintained){ .md-button }
Most of those will also work, but no warranty as we don't monitor their status.
For more information is see the [Board Support Guide](User-Guide_Board-Support-Rules.md)
## Getting started?
If you are **new to Armbian**, the [_Getting Started_](User-Guide_Getting-Started.md) section provides a tutorial for everything you need to know to get Armbian running. It then continues on to more advanced topics.
If you **need help** and have read through _Getting Started_ check out [_Troubleshooting_](User-Guide_Advanced-Features.md#how-to-troubleshoot).
If you still cannot find what you need here visit the [_Armbian forum_](https://forum.armbian.com/) where your input can help to improve this documentation.
## What is Armbian?
## Software titles
*Armbian is a base operating system platform for single board computers (SBCs) that other projects can trust to build upon.*
You can quickly and easily install popular software! They are ready to run and optimised for Armbian. Here are few highlights:
- Desktops - Install Desktop Environments
- Netconfig - Network tools
- DevTools - Development
- Benchy - System benchmaking and diagnostics
- Containers - Containerlization and Virtual Machines
- Media - Media Servers and Editors
- Management - Remote Management tools
???+ success "Unit testing"
- Lightweight Debian or Ubuntu based Linux distribution specialized for ARM development boards
- Each system is compiled, assembled and optimized by [_Armbian Build Tools_](https://github.com/armbian/build)
- It has powerful build and software development tools to make [_custom builds_](Developer-Guide_Build-Preparation.md)
- A vibrant community
All software targets and functions are automatically tested to catch as many problems as possible.
### What is the difference between Armbian and Debian/Ubuntu?
- Debian or Ubuntu officially do not support most of those boards/boxes. Armbian does.
- Armbian userspace has many small but vital performance or security adjustments
- Armbian fancy some kernel development and a lot of its maintaining. Debian relies on upstream sources for ARM hardware which can be **years** behind and/or lack of many functions
- Armbian userspace is lean, clean but 100% Debian/Ubuntu compatible
- Many stock Debian bugs are fixed on the way, "better than original :)"
- The Armbian build system is a central part of this whole ecosystem. You can DIY. Debian is much harder.
- Dedicated support forums per boards/boxes
- Plug'n'Play vs. complicated install scenarios on stock Debian
- unified development scenarios and user experience vs. mess of different setup instructions scattered all around
### Common features
- Armbian Linux is available as Debian and Ubuntu based images, compiled from scratch
- Images are reduced to actual data size and automatically expand across the SDcard at first boot
- Root password is `1234`. You are forced to change this password and (optional) create a normal user at first login
- Ethernet adapter with DHCP and SSH server ready on default port (22)
- Wireless adapter with DHCP ready (if present) but disabled. You can use `armbian-config` to connect to your router or create an access point
- NAND, SATA, eMMC and USB install script is included (`armbian-install`)
- Upgrades are done via standard `apt upgrade` method
- Login script shows: board name with large text, distribution base, kernel version, system load, uptime, memory usage, IP address, CPU and drive temperature, ambient temperature from Temper if exits, SD card usage, battery conditions and number of updates to install
### Performance tweaks
- `/var/log` is mounted as compressed device (zram, lzo), log2ram service saves logs to disk daily and on shutdown
- Half of memory is allocated/extended for/with compressed swap
- `/tmp` is mounted as `tmpfs` (optionally compressed)
- Browser profile memory caching
- Optimized IO scheduler (check `/etc/init.d/armhwinfo`)
- Journal data writeback enabled. (`/etc/fstab`)
- `commit=600` to flush data to the disk every 10 minutes (`/etc/fstab`)
- Optimized CPU frequency scaling with `interactive` governor (`/etc/init.d/cpufrequtils`)
- 480-1010Mhz @Allwinner A10/A20
- 480-1368Mhz @Allwinner H2+/H3
- 392-996Mhz @Freescale imx
- 600-2000Mhz @Exynos & S905
- eth0 interrupts are using dedicated core (Allwinner based boards)
## What is _supported/maintained_?
Armbian will publish and distribute “stable” CLI images for maintained boards through its mirror network. *Supported/maintained* is not a guarantee. *Supported/maintained* has a named maintainer and implies a particular SBC is at a high level of software maturity. Due to the complexity and lack-of-openness in the ecosystem it is unlikely that all accelerated and specialized functionalities (like 3D, VE, I²C...) will be available.
For more information is see the [Board Support Guide](User-Guide_Board-Support-Rules.md)
### Maintained boards
Check [download page](https://www.armbian.com/download/) for recently maintained list.
## How to report bugs
Due to lack of manpower we unfortunately have to be very picky about bug reports. Make sure to follow the bug reporting form available [here](https://armbian.com/bugs/) to learn how to collect necessary information and where to put your report depending on type of issue. Reports lacking fundamental diagnostics may be ignored.
# Get Involved! #
* [Contribute](Process_Contribute.md)
* [Community](https://forum.armbian.com/)
* [Contact](https://www.armbian.com/#contact)
Our IRC channel is [#armbian](https://web.libera.chat/#armbian) on [Libera.Chat](https://libera.chat/). More details [here](https://docs.armbian.com/Community_IRC/)
For those who prefer some more proprietary way to communicate join our [Discord](https://discord.gg/armbian).
<a href=https://github.com/armbian/configng/actions/workflows/unit-tests.yml><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/armbian/configng/unit-tests.yml?logo=githubactions&label=Unit%20tests&style=for-the-badge&branch=main"></a>

View File

@@ -46,11 +46,11 @@ extra:
plugins:
- search
- with-pdf:
author: Armbian documentation team
copyright: © 2024 by Armbian
cover_title: Armbian documentation
cover_subtitle: Linux for ARM development boards
# - with-pdf:
# author: Armbian documentation team
# copyright: © 2024 by Armbian
# cover_title: Armbian documentation
# cover_subtitle: Linux for ARM development boards
markdown_extensions:
- smarty
@@ -62,7 +62,11 @@ markdown_extensions:
auto_title: true
linenums: true
use_pygments: true
- pymdownx.superfences
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_code_format
- markdown.extensions.admonition # Highlighted warning/info blocks
- markdown.extensions.attr_list # Set custom HTML attributes {: }
- markdown.extensions.footnotes # Footnotes [^1]
@@ -82,7 +86,6 @@ nav:
- 'ARMBIAN OS':
- 'Overview': 'index.md'
- 'Quick facts' : 'Quick_facts.md'
- 'Getting Started' : 'User-Guide_Getting-Started.md'
- 'Armbian Config' : 'User-Guide_Armbian-Config.md'
- 'Networking' : 'User-Guide_Networking.md'
@@ -92,22 +95,27 @@ nav:
- 'Advanced Features' : 'User-Guide_Advanced-Features.md'
- 'Device tree overlays' : 'User-Guide_Armbian_overlays.md'
- 'FAQ' : 'User-Guide_FAQ.md'
- 'Release Model' : 'Process_Release-Model.md'
- 'Changelog' : 'Release_Changelog.md'
- 'ARMBIAN BUILD FRAMEWORK' :
- 'Overview' : 'Developer-Guide_Welcome.md'
- 'Build Preparation' : 'Developer-Guide_Build-Preparation.md'
- 'User Configurations' : 'Developer-Guide_User-Configurations.md'
- 'Extensions Hooks' : 'Developer-Guide_Extensions-Hooks.md'
- 'Welcome' : 'Developer-Guide_Welcome.md'
- 'Board Maintainers' : 'Release_Board-Maintainers.md'
- 'Build Process' : 'Developer-Guide_Build-Process.md'
- 'Building with Multipass' : 'Developer-Guide_Building-with-Multipass.md'
- 'Build Options' : 'Developer-Guide_Build-Options.md'
- 'Building with Docker' : 'Developer-Guide_Building-with-Docker.md'
- 'Adding Board Family' : 'Developer-Guide_Adding-Board-Family.md'
- 'Extensions' : 'Developer-Guide_Extensions.md'
- 'Testing Procedures' : 'Developer-Guide_Testing-Procedures.md'
- 'Build Preparation' : 'Developer-Guide_Build-Preparation.md'
- 'DEVELOPMENT' :
- 'ARMBIAN COMMUNITY' :
- 'Forums' : 'Community_Forums.md'
- 'Github' : 'Community_Github.md'
- 'Chat' : 'Community_IRC.md'
- 'CONTRIBUTE' :
- 'Contribute' : 'Process_Contribute.md'
- 'Managing_Workflow' : 'Process_Managing_Workflow.md'
- 'Armbian Task Tracking' : 'Process_Armbian-Task-Tracking.md'
@@ -117,11 +125,3 @@ nav:
- 'CI' : 'Process_CI.md'
- 'Review_Procedures_and_Guidelines' : 'Development-Code_Review_Procedures_and_Guidelines.md'
- 'OS RELEASES' :
- 'Release Model' : 'Process_Release-Model.md'
- 'Changelog' : 'Release_Changelog.md'
- 'COMMUNITY' :
- 'IRC' : 'Community_IRC.md'
- 'Torrent' : 'Community_Torrent.md'