From 3a57f6fc558159459de2d9d9e075ee3ea9a4803a Mon Sep 17 00:00:00 2001 From: Werner Date: Fri, 24 Apr 2020 13:23:41 +0200 Subject: [PATCH] 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 --- docs/Developer-Guide_Build-Preparation.md | 7 ++-- docs/Developer-Guide_Build-Process.md | 49 ++++++++++------------- 2 files changed, 24 insertions(+), 32 deletions(-) diff --git a/docs/Developer-Guide_Build-Preparation.md b/docs/Developer-Guide_Build-Preparation.md index 6b768781..07cbf265 100644 --- a/docs/Developer-Guide_Build-Preparation.md +++ b/docs/Developer-Guide_Build-Preparation.md @@ -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`. diff --git a/docs/Developer-Guide_Build-Process.md b/docs/Developer-Guide_Build-Process.md index e62631f5..9c812ede 100644 --- a/docs/Developer-Guide_Build-Process.md +++ b/docs/Developer-Guide_Build-Process.md @@ -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