1. Linux for development boardsLinux for development boards
Presented by: Igor PečovnikPresented by: Igor Pečovnik
2. www.armbian.com 2
Little about me
Founder, maintainer & developer @Armbian
Small business entrepreneur
Hamradio & tinkerer enthusiast since childhood
Studied Math and computer science in mid 90’’
Linux since Slackware 1.0
Like to read philosophy and human science
Kids, light sport and strong beer
8. www.armbian.com 8
● Joined Cubieboards community
● Started messing with kernel for Cubietruck
● Collecting useful kernel patches
● Started working on a BASH build script
● Fell into a rapid development cycle
First steps
9. www.armbian.com 9
● 24.12.2013 Debian Wheezy 1.0 Cubietruck
Release notes:
gigabit ethernet operational, sata driver
enabled, root filesystem autoresize, MAC
address fixed at first boot, Kernel 3.4.75, root
password=1234. Bugs: wifi and BT not working
First actual release
10. www.armbian.com 10
● Moving to Github
● Others started to join the project
● Supporting more boards: Banana, Lime, Cubox
● Added Ubuntu Trusty
● Images hosted on public servers
● Project hosting @A20
2014 – doing something
12. www.armbian.com 12
● No infrastructure
● No project name
● No stable kernels
● Few free boards
● Few special knowledge
● Few help from others
2014 - problems
13. www.armbian.com 13
● Dedicated domain
● 17 new boards
● Added Jessie, Xenial
● Dedicated download server
● Packages repository (aptly)
● Forums for technical support (IPS)
● Project hosting @Odroid XU4
2015 – armbian was born
14. www.armbian.com 14
2015 – more knowhow more problems
✔ Old problems were solved
● Bad, false or nonexisting documentation
● Most ARM hw platforms has its own kernel & uboot
● Low code quality on initial board support packages / SDK
● Little to no support from chip and boards markers
● Too small group for the problems and users with little
experience and high expectations
15. www.armbian.com 15
● 3D and accelerated video decoding on Allwinner boards
● Arm64, 24 new boards in 2016 and another 14 in 2017
● Torrent download options
● First notebook support
● Moving to github.com/armbian
● Dedicated build server
● Added twitter/armbian
● Project hosting went to highend servers
2016 – 2017 steady growth
16. www.armbian.com 16
2016 – 2017 problems are mounting up
● Most previous problems remain unsolved
● Strong pressure on our support
● Users failing to use prepared documentation
● Unrealistic users expectations
● Donations does not follow project expansion
● Supporting 59 boards and new keep comming
17. www.armbian.com 17
● We are admired :)
● Armbian become defacto standard Linux on
SBC
● Project might create jobs
2016 - 2017 motivation
19. www.armbian.com 19
Current infrastructure
● Core project developers
● Project website
● Forums for end user support
● Twitter @armbian (in making), IRC (making #armbian official)
● Download server with torrent capabilities
● Code repository, bug tracker for build script & kernels and
documentation: Github
● Organized manually testing just before release.
21. www.armbian.com 21
● Debian or Ubuntu based
● XFCE based desktop with Chromium or CLI
● Serial console enabled on all boards
● Password change is forced, user creation optional at first login
● Auto filesystem expand
● Wireless up and ready to connect
Userspace
22. www.armbian.com 22
● Reduced write frequency: memory for logging, Chromium cache and
profile. Cron sync and on shutdown. Increased fs flushing interval
● Headers and build essentials are installed by default - adding 3rd party
kernel module is quick and simple
● Unified boot with ramdisk, UUID (Universally unique identifier) on most
and DT overlay support in making
● Optimised DVFS (Dynamic voltage and frequency scaling) to achieve
best thermal / performance ratio (kernel)
● Enabled Docker support where possible (kernel)
Optimisations
23. www.armbian.com 23
● Armbianmonitor. Base tool when seeking support. Installs Rpi web based
monitoring, CPU miner, checks SD card speed
● H3consumption – provides various tweaks to bring down consumtion to insane
low values. Limit CPU core count, DRAM speed, disabling video out, …
● Dialog driven configuration utility for inexperienced users
Utilities
24. www.armbian.com 24
● Failed to read warnings and documentation
● Failed to understand powering issues (microUSB)
● Usage of old, low cost or fake SD cards
● Lack of basic Linux knowledge
● Unrealistic expectations
Users problems
26. www.armbian.com 26
Build engine overview
● Language: bash, 3000+ commits, Cross compilation only (speed)
● It needs native Ubuntu X64, fully virtualized (kvm,virtualbox) or
containerised (docker)
● More than 50 board configurations
● 19 source configs with up to 3 kernel/u-boot branches for each SoC
● 6 different external compilers from Linaro. Each source has a variable to
set the compiler version.
● Menu or parameter driven
28. www.armbian.com 28
Build engine optimizations
● apt-cacher for caching packages
● Userspace remain cached (lz4) after debootstrap
● Using compiler cache (CCACHE)
● Building images in memory
● Second build is done in few minutes
29. www.armbian.com 29
Adding new board
● Create a board configuration with boot loader config, available
kernel branches, modules to load, ...
● Add to or define a new family. Define u-boot, kernel sources
and build targets, per board customisation scripts, ...
● Add patches to u-boot and kernel if needed
● Make few tests and create a pull request to share your work