Skip to content

Instantly share code, notes, and snippets.

@lanefu
Last active March 26, 2019 02:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lanefu/44721de86d321f7bf8be3e511331d754 to your computer and use it in GitHub Desktop.
Save lanefu/44721de86d321f7bf8be3e511331d754 to your computer and use it in GitHub Desktop.
armbian support notes

Overview

This is meant to be a summary of concrete statements (not rhetorical questions) from board support / project aims thread. I'm only focusing on trying to capture formalities regarding:

  • Mission Statement
  • Definition of Boad Support
  • Policy around release management
  • Ownership and Roles

Note: I did a lot of pruning, but I did my best to be unbiased and to misrepresent the discussion

The need for this breakdown is probably best captured by Tido:

Captain Chaos, I don't have the time to read each time 10 posts and make notes to find out where we are standing form one post and topic to the next. https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=64051

mission

zador

I see it as Ubuntu/Debian + bootloader with customizations + available kernel(s) with customizations + minimal OS (userspace) customizations and some optional tools/scripts like armbian-config

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=47984

Chwe

my opinion:

armbian is a 'base plate' so that everyone can build his own house on top of it. armbian tries to catch fixes to improve the support situation for the hardware a boardmaker provides

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=47987

TonyMac32

View Armbian as a base, reasonably minimal OS images. https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=47987

Igor

(In response to Zador's view)

Yes, this is a good description, but how users see this? Each Linux distribution is nothing but a mix of just some packages. Some only mix and add a stamp, others do big changes.

Reasonable minimal OS images, exactly.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48073

One of the major goals of the project is to achieve universality among big diversity. Which is good. Now, moving more toward IOT use case would be the way to go. IMO a desktop is good enough and doesn't need more attention. At least not from a primary team. If there are folks, who have the intention to tune this up, perhaps even fix some web acceleration within Chromium ... welcome to play around and fix that overbranding mentioned by @zador.blood.stained Perhaps I really went too far with it.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48391

Lanefu -- FINAL CONCLUSION For Mission

Armbian is a base OS platform for SBCs that other projects can trust to build upon.

definition of supported

chwe

Would it make sense that the generic armbian has no HW acc. decoding but in the buildscript there's a option to activate (where possible) it?

For getting 'full armbian support', would it make sense to define that for minimum X (X<1 in case someone drops out from the project or hasn't the time at the moment) of the maintainers have this board physically at home? Not only a pre-production sample but also the version which is sold to the customers. Doesn't mean that you have to test every build before deploying but in case something breaks someone (experienced enough to use proper powering, sd-card, networking etc.) can confirm/deny it.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48014

If there's no (or only minor) interest from a developer and nobody from the community want to test things which are made for random board, I see no reason to keep support. Maybe this 'motivates' the owners of those boards to 'step in' and help with easy tasks (like testing basic function). When not, @TonyMac32s approach, "freezing", seems to be a good idea

Support proposals are IMO needed when we talk about a new SoCs.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48080

In case there is enough interest in bringing up a 'board support' policy. I can offer to write this down to a readable text/document. But I only do it if you as devs actively peer-review it and if I get enough input from your side to make it happen. I don't feel comfortable to write a draft on without inputs from your side...

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=50596

Igor

When a board can come to a support list:

  • if there are not a lot of problems and most of the stuff already work. At least: network, (HDMI), thermal protection, to run as a server.
  • if there is at least one stable kernel,
  • if we got minimum of two boards/persons to cover, except special cases, where one board is stripped version of the one we already support
  • [new] if we have chosen a responsible person(s), not necessarily a developer, for editing board status and to join perhaps with personal motives and spread responsibility. Technical part of editing is under rework and will be done in some simple manner within a Wordpress only (no more WP + github .conf + github. Putting to other words – if we, as a community, wanted to have longer support for certain boards or their less aggressive moving to »deprecated« section, we need people to take a part in this maintainer/tester role - to take responsibility. BTW: last week I throw out some obvious deprecated candidates, while I still have some left: Odroid C1, Bananapi+, Beelink X2, Lime1. From a kernel perspective: sun4i, sun7i, odroid1

In essence is all about a kernel, not boards. I would rather start talking from there, always. And what @zador.blood.stained already exposed - there is usually a personal motive to work on some board or type of problems and we have to consider that, when doing some plans or talking and organising the work around the project, but certain things, those which might not require a lot of time and energy, could be agreed upon.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48073

Another unwritten rule is that test/beta/nightly downloads starts when basic board functions work. This exists. Download page should only tell them what to expect and inform them with a support status. t is also a possible window to welcome new developers if done properly.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=63133

on dropped boards to csc

My proposition is to write a clear conditions under which a board can come back. To the community supported configuration. This means we will update images, but that's all what can be done.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=64306

Zador

  • if the board satisfies the "to be supported" criteria (enough samples, no serious design flaws, good BSP or based on already supported platform) then it gets the WIP status,

  • if the board was added by a community contributor, if there is no interest in making stable/supported releases then it gets the CSC status,

  • anything else gets the WIP status that can be later changes to CSC.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48090

Tonymac32

  • We have no requirement to support any board. If it is not in our personal interest or benefit it simply won't happen. I think some of the "regular devs" feel pressure and get frustrated that they can't satisfy the whims of the general public.
  • We have too small of a team to deal with demands and general Linux questions.
  • the code is all public and opensource, anyone can contribute/fork to do whatever they like board support wise.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=72945

LaneFu FINAL CONCLUSION for Definition of Supported

"Supported" is not a gaurantee. "Supported" implies a particular SBC is at a high level of software maturity, and should perform well under normal circumtances. Supported Board do receive preferential treatment to bugfix, improve, or add additional functionality based on any of the following, non-excluse criteria:

  1. The discretion of the "Armbian Development Team"
  2. The availability of the "Armiban Development Team"
  3. The availability of sample boards and ease of testing
  4. The mainline kernel maturity for the particular SoC or SBC platform
  5. Paid engagements or long-term sponsorship to the Armbian Project or developers.
  6. Vendor or 3rd party has a designated resource providing support for a SBC or platform ON BEHALF OF THE COMMUNITY and is contributing to the project.

ownership / roles

Igor

  • [new] if we have chosen a responsible person(s), not necessarily a developer, for editing board status and to join perhaps with personal motives and spread responsibility. Technical part of editing is under rework and will be done in some simple manner within a Wordpress only (no more WP + github .conf + github. Putting to other words – if we, as a community, wanted to have longer support for certain boards or their less aggressive moving to »deprecated« section, we need people to take a part in this maintainer/tester role - to take responsibility. BTW: last week I throw out some obvious deprecated candidates, while I still have some left: Odroid C1, Bananapi+, Beelink X2, Lime1. From a kernel perspective: sun4i, sun7i, odroid1

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48073

Let's simply reuse this term and - at the new web - expose this as a non-technical necessity "maintainer wanted" to move from WIP to supported section.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48391

Instead of telling people what to do. Let's ask people if they want to take responsibility as such:

  • source code maintainer - adjust kernel configurations, patches, ... help on what we do,

  • project manager: development and testings overview, samples redistribution

  • code cleaner - sweeping our build script code round the clock

  • documentation editor - as a title implies

  • marketing manager - to help communicate project specific services, new features, changes, ...

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=63278

There was never a formal team. More like a strong common passion and interest to do something valuable, to push things forward, to help, to show how things should look like. IMO it worked very well until the level of self-fulfillment and happines was high enough and a mountain of problems low enough.

Armbian might not need major build script or infrastructure development, but both need regular maintenance. We are short already for that. Not hardware, not software but responsibility.

Personally, I need to look on a project from a distance and leave super (hardware) details behind. It might give me an opportunity to better see the problems we have.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=63605

Zador

Mainline u-boot and kernel (and some other projects) have "MAINTAINERS" files (example) to track who is responsible for specific files and directories in the repository and so who should ACK or NAK any changes that are about to be merged there, so we could have something similar - at least GitHub name + file/dir path + status and a list of things that can be added without unneeded discussions (i.e. activate kernel config options related to third party hardware support, make a repository-wide refactoring/rework which involves adding/renaming/removing variables, etc.).

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48117

in response to marketing manager role

or rather an "unmarketing manager" to reduce the attention to the project to help developers catch their breath

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=64147

Chwe

E.g. 'maintainership' includes proper testing of boards before each 'major' release (e.g. subversion kernel change for next, or u-boot change) testing and adjusting patches in dev after every sublevel jump.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=64049

process

Igor

The idea is marvelous, just how to get it up and rolling? I think we need a moderator/project manager for this section, something like @chwe is doing in this thread. Someone who transforms our ideas and babble into tasks? We are already under heavy load, I tend to be lazy when things jump outside of a primary goal and pessimistic that someone will just take and resolve some task.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=48391

response to tkaiser about bleeding edge kernel updates

No, we don't. Current Allwinner next branch has yet another problem. sun8i support was merged into sunxi and now it is a bit difficult to go back until upstream gets solved. The idea is to stay still on 4.14.y and apply bugfix patches only.

Regarding u-boot I vote for a conservative approach. We don't update it unless it's tested very well or necessary. This will require switching repository upgrading to semi-manual mode.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=50864

TonyMac32 agreed to above see https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=50865

on kernel promotion

DEV becomes NEXT when the time is right.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=62428

Tido

on releases and updates

Can we agree on a definition - and once we have it outlined put it into the readme.md and documentation?

I suggest future upgrade procedure:

stable only receives security updates - low maintenance effort but high stability
after 6,7,8,9,10 (to be defined) months a freeze in development -> beta.armbian.com 
the community does tests of the BETA (2 weeks), (still freeze in dev) report bugs
bugfixes period for 3 weeks (devs cannot work day and night, family, job, etc.) = RC1
the community does tests RC1 (2 weeks), (still freeze in dev) report bugs
another round as in 4.  or ready for stable release update

Update Distribution:

Google first delivers new Android to 1-5% of the devices for us this could mean only one SBC per SoC (ie. OPi Zero H2+ | OPi PC H3 | BPi A20 etc.) for one week. We get information on different-update-scenario's (from us untested, who knows) and SBC usage, diverse/unforeseen feedback (as in my past the IBM AS400 welcomed me: No News - Good News)

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=50582

TonyMac32

on patch placement

I would argue that any patches going into the main kernel patch directory for a given kernel should be "board agnostic" and be things like device driver additions/updates, dtsi/dts bugfixes, etc. For a specific board then, come the "ugly" hack job patches, that would be a problem to maintain no matter where they were.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=50597

tkaiser

on update policy

The main area we should focus on IMO is 'upgrade experience' since while it's quite OK if new images don't work or are malfunctioning users get it that there's something wrong rather quick -- they might only loose some time. But with updates ending up with bricked boards it's a real mess since we destroy productive (server) installations.

Do we need to force bleeding edge mainline kernel always? There's a reason Debian and Ubuntu use their own kernels and backport fixes. That's not a solution for us

Paraphrase above: We do not need to force bleeding edge mainline kernels.

https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=50863

technical debt

tracked by chwe and tido https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=63065

other action items

tracked by chwe and tido https://forum.armbian.com/topic/6281-board-support-general-discussion-project-aims/?do=findComment&comment=63065

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment