Code Monkey home page Code Monkey logo

documentation's Introduction

Armbian Documentation

Create offline documentation to release

logo

Overview

Documentation is written in markdown and stored in the docs/ subfolder. Images go in docs/images.

This repo is meant for storing and quick glances. Official output is https://docs.armbian.com.

Armbian Documentation is available in the following formats:

Contributing

This site is built with mkdocs and depends on mkdocs-material.

Armbian Documentation naming of document files follows this rules:

[Parent-Topic-Example]_[Child-Topic]-example.md

Parent-Topic-Name and Child-Topic-Name are separated by an underscore _. Hyphens - are automatically converted to space.

Please try to avoid creating new parent topics unless absolutely necessary.

Current Parent Topics:

  • User Guide
  • Hardware notes
  • Developer Guide
  • Contributor Process
  • Release management
  • Community

See the document template before you writing any content.

Working on the content

git clone https://github.com/armbian/documentation
pip install -r requirements.txt
mkdocs build --clean && mkdocs serve

You will be able to make edits to existing files and observe the results in real time.

After changing text in an existing file, use this command to rebuild and view the documentation:

mkdocs build --clean && mkdocs serve

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)

Generate tools

mkArmbianDocs.py

Generate mkdocs.yml based on the contents of docs/ folder

  • Command-line options for input and output directories
  • Requires install requirement
  • You don't need to run it every time unless making changes to the structure of the docs/ folder
  • See mkArmbianDocs.py -h for help

From the parent folder of the repo, run:

python3 tools/mkArmbianDocs.py && mkdocs build

This will generate the mkdocs.yml and publish built HTML to the site/ folder.

documentation's People

Contributors

aaronngray avatar armbianworker avatar clach04 avatar dependabot[bot] avatar evilolaf avatar frauhottelmann avatar g-provost avatar gounthar avatar heisath avatar herrold avatar iav avatar igorpecovnik avatar janprunk avatar kreyren avatar lanefu avatar littlecxm avatar md2000 avatar mhoffrog avatar nexusxe avatar pandermusubi avatar psztoch avatar rmcaninch avatar rpardini avatar teacupx avatar thelinuxbug avatar tonymac32 avatar trsx80 avatar viraniac avatar wmacris avatar zador-blood-stained avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

documentation's Issues

Anybody want to clean up this high-level how Armbian builder works?

from IRC rant a while back.. probably useful if cleaned up

build script has a decent inheritance model for configuration, albeit a few gotchas here and there, and decently subdivided to several libraries of functions....   there's some neat hooks where you can trigger individual functions  from command line if you're crafty enough

General order of operations on a vanilla execution is:

* special command line argument parser function breaks up key=value passed as arguments and sets them as their respective config variable used later
* check basic system requirements (distro, etc)
* install OS dependency packages, ex: build tools, compression tools, 
* carve out some work directories... ex cache, output, hidden tmp, userpatches
* download appropriate cross-compilation toolchains (we maintain our own collection of them for sanity purposes)
* prompt for input for what to build (if not passed via command config or config file)
** board, which flavor of kernel (legacy, stable, edge), which base OS flavor to bootstrap ( ex: debian bullseye, ubuntu focal ), what type of image.. minimal, server, or desktop... if desktop MORE questions
* commend build process
* checkout appropriate sources as defined in inherietence model for device for uboot, kernel, as well as some supplemental packages (firmware etc)
* apply patches to teh checked out code, based on the contents of our patch folders and its heirachy sytem
* apply custom patches provided by user
* compile uboot and kernel... output as deb files
* attempt to retrieve a cached prebuilt version of the respective root filesystem (ex: debian bullseye, server). if yes, mount, chroot, update, and remaining customization for a board etc, and then install kernel and uboot. if no, perform a debootstrap to create that respectiev filesystem then install other stuff
* once filesystem is complete, create actual raw disk image file via a loopback device... partition and create file ssytems as needed... rsync contents of chrooted file system prior into said image....
* perform post steps unique to system... ex: fancy u-boot dances, and assembly of secondary program loaders etc
* water mark image in /etc/armbian-release
* sign
* compress image

Strip out remaining HTML and metacharacters

Some of the markdown docs have old HTML formatting in them... if someone could pull the htML and special characters and replace with markdown.. that would be WONDERFUL.

sometimes they can be difficult to edit.

Build Process page not linked?

Just going through on consistency pass, I came across this.

The file Developer-Guide_Build-Process.md is not linked in the menu in mkdocs.yml?

Is this an oversight, or was it removed on purpose?

Feature request: Include testing procedures

Problem

I have noticed that one key element missing from the official Armbian documentation is formalized testing procedures. I have personally hesitated from contributing certain reports on what I think are issues because I may not be testing for them in the same way as the more experienced Armbian testers and I don't want to flood the forums with ignorant concerns and reports. I would like to enable new and upcoming contributors (like myself!) to confidently provide quality bug reports and new contributions while reducing the strain on existing developers.

A simple example: testing a micro SD card

I own many cards that I can test on various boards. I am able to insert any of them and have an Armbian-powered device recognize it, even if the capacity/brand of card is not officially supported on the website. What does it mean for a card to be "supported"? Here are a few steps I would naturally perform to determine if a functional SD card is fully compatible with the system:

  1. Is the card recognized in lsblk?
  2. Can a file manager recognize the device? (Do I test one file manager? Several? Which ones?)
  3. Can the device be mounted using a file manager?
  4. Can I read existing files on the mounted SD card filesystem?
  5. Can I write new files on the mounted SD card filesystem?
  6. Using a N-GB card, will checksum evaluations pass if I write approximately N * 1 GB files to the card?

Proposed steps for resolution

  1. Identify if formalized test procedures are necessary
  2. Discuss a test procedure and determine a clear and reproducible standard of quality for official Armbian support
  3. Document the procedure and publish it within this repository

typo

OS-negleted -> OS-neglected

Provide a nmcli alternative to create AP

I found this handy, so this could be added to the documentation:
Use
nmcli device show
to get the name of the wifi (eg wlx48022a5)
Then create the access point.
nmcli dev wifi hotspot ifname wlx48022a5 ssid Armbian password "12345678"

PS: I do not know, nor I can test at the moment if this survives reboot

Push base deployment to docs server

i've been delaying thing this too long.. werner will be happy...

  • create chroot jail on server for upload account

@igorpecovnik did you have a method already for managing ssh keys on get gethub?

my old plan was crypt and shenangins

jobs:
  test_secrets_management:
    name: do secrety things
    runs-on: [self-hosted]
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
          path: ci-test
          clean: true
      - name: Do some tests
        shell: bash {0}
        run: |
         eval $(ssh-agent)
         cd ci-test
         TEST_HOST=testhost.example.com
         TEST_USER=rsync_user
         SSH_KEYFILE="secrets/test_ssh_key.cpt"
         ssh-add <(ccat $PWD/${SSH_KEYFILE} -K ${{secrets.keyword}})
         echo "Unique Data $(uuidgen)" > testfile
         rsync -auv testfile ${TEST_USER}@${TEST_HOST}:

Board specifications filtering website doesn't work

On the main website, boards are tagged with labels such as 16GB. When clicking on such a label, only boards with that label should be listed. The user expectation is that this is some sort of filtering and the URL also looks like that.

If you go to https://www.armbian.com/download/?specifications=16GB you see also boards that don't have 16 GB RAM.

(Not sure where to report website issues, hopefully here at documentation is okay. Could not find a more appropriate repo for it.)

Don't recommend balena etcher (includes spyware/adware) for writing/verify images

As balena etcher is growing fat (>400Mb) and ugly (includes tracking, analytics, ads - or "promotend content" the authors like to call it) these days it would be a good move to suggest the users a proper lightweight alternative which does the work without spying and ads.

Their is various FOSS software out their which does exactly the same etcher does (writing and verify). One of them (available for Windows, MacOSX and Linux) is the less than 300Kb small usbimager

image
https://gitlab.com/bztsrc/usbimager#comparition

Etcher is linked on the website ('SD writing tool', faq-section: How to start) and mentioned in the docs:

It could serve as a good example for others: OpenMediaVault-Plugin-Developers/docs#9

Broken keyserver-link when trying to verify download

Doku at https://docs.armbian.com/User-Guide_Getting-Started/#how-to-check-download-authenticity states
gpg --keyserver ha.pool.sks-keyservers.net --recv-key DF00FAF1C577104B50BF1D0093D6889F9F0E78D5

However, keyservers.net are depreciated, and keyserver ha.pool.sks-keyservers.net is not answering:
gpg: keyserver receive failed: No name

Can anybody reproduce this?
(Found the key at some other keyserver, but it gives a bad signature - gonna report this as a separate issue)

EDIT: asc-file gives a good signature when verified directly to the .img.xz and not the .sha file, forget the last sentence

Decouple parent from page name

Currently, each page follows a naming convention, like:

Parent-Topic-Name_Child-Topic-Name.md

  1. Is there something in mkdocs which requires this to function properly, or is this simply some arbitrary convention someone decided on at some point?

Because it seems to me that mkdocs.yaml is the correct place to link pages with their parents.

The problem is, we currently have a number of pages which I think no longer match their parent. For just a couple examples:

  • We claim to be a build system, but building is under Development (I think it should be under User Guide, if we are being consistent, or perhaps a new section).
  • FEL boot (and maybe others) should be moved to Archive / deprecated section
  • maybe others

But above specifics are not the point of this issue, just examples.

If pages were not coupled to their parents (in the file name) I think we can move them around in mkdocs.yaml to new parents whenever we want without breaking links.

Of course I will figure out some way to keep the old links alongside, so as not to break them. Which is another implementation detail to be decided after the main part of this topic (the numbered question, above).

Armbian forum contact

I'm trying to change my email in the forum account but the confirmation link does nothing. It leads to an empty page. Login is not possible, only option is to resend the link which still doesn't do anything.
Also I can't find a help contact address neither on the forum nor on the website so I'm trying here.

Suitable for testing NOT

I get "not ready for production".

One would, however, expect several variants of a build that is marked "suitable for testing" would at least boot with stock hardware.

If it doesn't boot, then the version posted is the wrong version, as it's clearly not suitable for anything.

I get "we don't test nightly builds".

A build that DOES at least boot up, even with known issues, should be available somewhere.

If the build that is posted is expected not to work at all, it should be labeled "experimental" or "nightly" not "suitable for testing"

I would expect two things:

"Suitable for testing" changed to "nightly" or "experimental - unstable"
two:
A version that did at least boot up be posted somewhere, and marked "last known testable version" or other more accurate label.

People can't contribute in the slightest if there is no version available that does anything but create very tiny paperweights.

And a final note, I'm trying to contribute, but when the support thread gets moved and locked, ... how do you expect people to contribute?

I can't even test multiple versions and post which one works!

Add quickstart guide for new users

A lot of the documentation is all over there place.

Maybe a simple quickstart guide, that just quickly goes through the steps of imaging, logging in, setting locales, and running armbian-config to configure hostname etc.

manual u-boot update documented?

In forums I read somewhere that u-boot is not written by apt package update but only replaces some files that are needed to update u-boot by hand or using armbian-config. Is this documented somewhere and should it be documented?

EspressoBin v7 on armbian Bad Linux ARM64 Image magic

Hi eveyone,

first of all thank you so much for this community. I am using armbian a lot on other SBC. However I found out that lately that armbian is no longer officially supported for EspressoBin. However I wanted to try it instead of throwing the SBC to the trash.

Device

  • EspressoBin v7 DDR4 1G 1000_800Mhz

Baseline - What did I do?

  1. Update U-Boot according https://www.armbian.com/espressobin to devel-18.12.3
  2. Flashed SD-Card with armbian Focal via Balena according https://docs.armbian.com/User-Guide_Getting-Started/
  3. Updated Boot Environment according https://www.armbian.com/espressobin/#kernels-archive-all

Problem Description

  • U-Boot Loads and starts over to boot from SD-Card
  • Booting from SD fails with
    Marvell>> boot *** ERROR: serverip' not set
    *** ERROR: serverip' not set Bad Linux ARM64 Image magic!

I would be very grateful for any hints how to get armbian booted on the EspressoBin in 2022!

Happy Holidays to all. cheers

Full Logs

`U-Boot 2018.03-devel-18.12.3-gc9aa92ce70-armbian (Sep 18 2020 - 10:07:21 +0200)

Model: Marvell Armada 3720 Community Board ESPRESSOBin
CPU 1000 [MHz]
L2 800 [MHz]
TClock 200 [MHz]
DDR 800 [MHz]
DRAM: 1 GiB
Comphy chip #0:
Comphy-0: USB3 5 Gbps
Comphy-1: PEX0 2.5 Gbps
Comphy-2: SATA0 6 Gbps
SATA link 0 timeout.
AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl SATA mode
flags: ncq led only pmp fbss pio slum part sxs
PCIE-0: Link up
MMC: sdhci@d0000: 0
Loading Environment from SPI Flash... SF: Detected mx25u3235f with page size 256 Bytes, erase size 64 KiB, total 4 MiB
OK
Model: Marvell Armada 3720 Community Board ESPRESSOBin
Net: eth0: neta@30000 [PRIME]
`

build repo readme should show/tell end result of compile.sh

https://github.com/armbian/build/blob/master/README.md

How about changing the "How to build an image or a kernel?" section, where it says:

apt-get -y install git
git clone https://github.com/armbian/build
cd build
./compile.sh

Maybe we should add something like

when you run ./compile.sh it will:

  • ask the user what they want to build
  • ensure the current environment is suitable to building
  • download tons of source repositories
  • compile the u-boot, kernel, drivers, etc
  • put the root file system together
  • finally, spit out a disk image file to location/filename

OLIMEX Teres-A64: No known limitations -> Update product page

The website https://www.armbian.com/olimex-teres-a64 presents:

teres-no-limits

Which are outdated:

CC @igorpecovnik

User guide Getting Started GPG Issue

Hello!
I have faced an issue with gpg on MacOS 12.3.1, and I currently suspect it's something weird with gpg deciding to use IPv6.

blinov@MacBook-Pro Armbian % gpg --keyserver hkp://keyserver.ubuntu.com --recv-key DF00FAF1C577104B50BF1D0093D6889F9F0E78D5
gpg: keyserver receive failed: No keyserver available

But there are solution:

blinov@MacBook-Pro Armbian % host keyserver.ubuntu.com
keyserver.ubuntu.com has address 162.213.33.9
keyserver.ubuntu.com has address 162.213.33.8
blinov@MacBook-Pro Armbian % gpg --keyserver hkp://162.213.33.9 --recv-key DF00FAF1C577104B50BF1D0093D6889F9F0E78D5
gpg: /Users/blinov/.gnupg/trustdb.gpg: trustdb created
gpg: key 93D6889F9F0E78D5: public key "Igor Pecovnik <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1

After it all works fine. Could you update docs?
Thanks!

To add usb dongle to tested 3rd party hardware

Not sure where to report this. Please let me know if this is the proper channel or procedure.

For https://www.armbian.com/pine64/ this USB Ethernet dongle is working properly: https://www.amazon.com/StarTech-com-USB-Gigabit-Ethernet-Adapter/dp/B0095EFXMC/

It appears in the output of lsusb as ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet

Small improvement for existing supported 3rd party hardware is that the A1 SD card is called 32 MB but the picture is 16 GB.

Outdated documentation MAC address pine64

The text in the line https://github.com/armbian/documentation/blame/master/docs/board_details/pine64.md#L6 is outdated. The file /boot/uEnv.txt is no longer used. Setting ethaddr in there, using all the information from https://docs.armbian.com/User-Guide_Basic-Troubleshooting/#mac-address-conflicts or runninng nmtui does not result in setting a MAC address.

Is the MAC address randomly set each time? If not, where is it stored? I cannot find the MAC address anywhere, however, rebooting results always in the same MAC address. Perhaps the random process is random for the board but is persistent in providing the same address?

Improved board documentation navigation and location

I would like to propose improvements to board documentation. As example, I use PINE64.

  1. On https://www.armbian.com/pine64/ use on the button called Documentation a link to https://docs.armbian.com/boards/pine64/
  2. Migrate contents of https://docs.armbian.com/board_details/pine64/ to https://docs.armbian.com/boards/pine64/ and remove the details page. (Not sure what the reason is to have multiple pages.)
  3. Remove the five bullets on the page https://www.armbian.com/pine64/ as they are incomplete / outdated since more rich info is available in aforementioned page.
  4. Not use what this page is offering https://docs.armbian.com/Hardware_Allwinner-H5-A64/ for PINE64, if it is relevant or not. If not, perhaps also migrate to relevant pages and remove.

This is a proposal to merge scattered data on a board to a single page. Users can get confused and only find a part of the information on a certain page and might stop looking further. To concentrate all info on a page that is managed in git makes it easier for upkeep by the community with PRs and incomplete, outdated or contradicting information is minimized.

Perhaps I'm missing something, but this is at least my experience and conclusion at the moment for PINE64.

device support search results vs 404

Search for a device in the download page. Type a keyword then press "Search". There are only 2 possible results that I can obtain:

  1. Search for a device that dose exist, like pine64 and every device is shown no matter which ones contain the search term

image

[page continues on down the list]

  1. search for a term that is probably not found in the devices, like ladeeda, and you get a 404

image

hope this is the right repo; not certain. I apologize if wrong one.

Issue edited Jul 31 22 to narrow scope. @EvilOlaf points out that there is a pop up under the search box. This issue only occurs when using the "Search" button. Expected behaviour for "Search" button is updated results on the page itself. In situations where results are only available via popup, generally "Search" button is not present. What is the function of the "Search" button here?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.