You've already forked documentation
mirror of
https://github.com/armbian/documentation.git
synced 2026-01-06 10:13:36 -08:00
Push to Focal (#68)
* Push to Focal adjust example * Push to Focal, cosmetics Maybe the video could be renewed. I'll may take a look into that. * Torrent info * Link fix * Update Developer-Guide_Build-Preparation.md * Missing dot
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
- [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)**,
|
||||
- Setting up VirtualBox and compile environment is easy following our [Vagrant tutorial](https://docs.armbian.com/Developer-Guide_Using-Vagrant/),
|
||||
- [Docker](Developer-Guide_Building-with-Docker.md) environment is also supported for building kernels and full OS images,
|
||||
- **The officially supported** compilation environment is [Ubuntu Bionic 18.04 x64](http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso) **only!** (Support for Ubuntu 20.04 is implemented but experimental, no support!),
|
||||
- **The officially supported** compilation environment is [Ubuntu Focal 20.04 x64](http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/images/netboot/mini.iso) **only!** (Support for Ubuntu 18.04 will be there until either we run into issues we do not want to waste time on or upstream support ends),
|
||||
- installed basic system, OpenSSH and Samba (optional),
|
||||
- no spaces in full path to the build script location allowed,
|
||||
- superuser rights (configured `sudo` or root shell).
|
||||
@@ -70,19 +70,18 @@ This is a typical board configuration:
|
||||
MODULES_NEXT="brcmfmac bonding"
|
||||
#
|
||||
KERNEL_TARGET="legacy,current,dev"
|
||||
CLI_TARGET="buster,bionic:current"
|
||||
CLI_TARGET="buster,bionic,focal:current"
|
||||
DESKTOP_TARGET="stretch:legacy,current"
|
||||
|
||||
CLI_BETA_TARGET=""
|
||||
DESKTOP_BETA_TARGET=""
|
||||
#
|
||||
RECOMMENDED="Ubuntu_bionic_legacy_desktop:90,Debian_stretch_current:100"
|
||||
#
|
||||
BOARDRATING=""
|
||||
CHIP="http://docs.armbian.com/Hardware_Allwinner-A20/"
|
||||
HARDWARE="https://linux-sunxi.org/Banana_Pi"
|
||||
FORUMS="https://forum.armbian.com/forum/7-allwinner-a10a20/"
|
||||
BUY="http://amzn.to/2fToHjR"
|
||||
You can find more information about those variables [here](https://github.com/armbian/build/blob/master/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 depenendend from `KERNEL_TARGET` definitions and supported userlands: `buster`, `bionic`, `stretch`.
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
# What is behind the build process?
|
||||
# What happens behind the build process?
|
||||
|
||||
Build process summary:
|
||||
### Build process summary:
|
||||
|
||||
- creates development environment on top of AMD64 Ubuntu 16.04 LTS,
|
||||
- downloads proven sources, applies patches and uses tested configurations,
|
||||
- cross-compiles universal boot loader (u-boot), kernel and other tools and drivers,
|
||||
- packs kernel, uboot, dtb and root customizations into debs,
|
||||
- debootstraps minimalistic Debian Wheezy, Jessie and Ubuntu Trusty into SD card image,
|
||||
- creates development environment on top of amd64 Ubuntu 20.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 Buster and Ubuntu Focal 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.
|
||||
|
||||
## Creating compile environment ##
|
||||
|
||||
At first run we are downloading all necessary dependencies.
|
||||
### 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 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, ...
|
||||
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 where are the sources and where they need to be the download / update process starts. This might take from several minutes to several hours.
|
||||
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 patching process we are appling patches to sources. The process is defined in:
|
||||
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
|
||||
@@ -34,46 +34,39 @@ In patching process we are appling patches to sources. The process is defined in
|
||||
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.
|
||||
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 root filesystem is ready we need to install kernel image with modules, board definitions, 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.
|
||||
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 distributin has it's own way of doing things:
|
||||
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 withing the image. Consider this feature as experimental. Hardware acceleration on Allwinner boards is working within kernel 3.4.x only.
|
||||
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.
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user