mirror of
https://github.com/pygos/build.git
synced 2024-11-21 18:49:46 +01:00
Add README
Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
This commit is contained in:
parent
3907b48c1f
commit
bcf72a04d8
5 changed files with 110 additions and 0 deletions
106
README.md
Normal file
106
README.md
Normal file
|
@ -0,0 +1,106 @@
|
|||
# Pygos GNU/Linux
|
||||
|
||||
## Overview
|
||||
|
||||
This directory contains the build system for Pygos GNU/Linux, a small, heavily
|
||||
customizable operating system for embedded devices and other special purpose
|
||||
systems.
|
||||
|
||||
The build system generates a compressed, read only root filesystem image, boot
|
||||
loader, kernel binary and a setup script for installing the system on the target
|
||||
board, all bundled up in a release tar ball.
|
||||
|
||||
An additional disk partition or UBI volume is created for mutable configuration
|
||||
files with overlay mount points for directories like /etc or /var/lib.
|
||||
|
||||
For details on the Pygos file system layout, see
|
||||
[docs/filesystem.md](docs/filesystem.md).
|
||||
|
||||
An automated firmware update mechanism is currently still in development.
|
||||
For details, see [docs/update.md](docs/update.md).
|
||||
|
||||
The build system in this directory downloads the necessary source packages,
|
||||
builds a cross compiler toolchain and compiles the entire system from scratch
|
||||
for the intended target.
|
||||
|
||||
For details on how the build system works or how to add or configure packages,
|
||||
see [docs/build.md](docs/build.md).
|
||||
|
||||
For an overview of the available documentation see [docs/index.md](docs/index.md).
|
||||
|
||||
|
||||
## Target configuration
|
||||
|
||||
The Pygos build system is driven by toolchain and package configurations
|
||||
that are divided into three categories:
|
||||
|
||||
- Common settings shared by all targets
|
||||
- Contains things like a bare minimum default package set
|
||||
- Board specific settings
|
||||
- Mostly board specific cross toolchain and kernel configuration
|
||||
- Can add additional packages required for that board
|
||||
- Product specific settings
|
||||
- Specifies a list of boards for which the product can be built
|
||||
- Specifies and configures extra packages needed
|
||||
- Can override board settings and provide configuration files
|
||||
specific to *that* product running on *that* board
|
||||
|
||||
### Demo configuration
|
||||
|
||||
The system currently contains configurations that allows it to run on the
|
||||
following boards:
|
||||
|
||||
- Raspberry Pi 3 (ARM, 32 bit)
|
||||
- pc-engines ALIX board (x86, 32 bit)
|
||||
|
||||
The following demo products for those boards are planned, but currently
|
||||
still in development:
|
||||
|
||||
- "router" builds for all of the above boards. A DHCP server offers
|
||||
addresses on two of the ALIX boards Ethernet ports or on the
|
||||
Raspberry Pi 3 wireless interface. A DHCP client configures the
|
||||
remaining interface, uses it as default route and does NAT routing.
|
||||
DNS queries are resolved via a local root resolver.
|
||||
|
||||
|
||||
## How to build the system
|
||||
|
||||
The system can be built by running the mk.sh script as follows:
|
||||
|
||||
mk.sh <board> <product>
|
||||
|
||||
This will start to download and builds the cross toolchain and system in the
|
||||
current working directory. The command can (and should) be run from somewhere
|
||||
outside the source tree.
|
||||
|
||||
Once the script is done, the final release package is stored in the following
|
||||
location (relative to the build directory):
|
||||
|
||||
deploy/release-<board>/release-<board>.tar.gz
|
||||
|
||||
## Directory overview
|
||||
|
||||
The build system directory contains the following files and sub directories:
|
||||
|
||||
- board/
|
||||
Contains the board specific configuration files. E.g. board/alix/ holds
|
||||
files specific for the ALIX board.
|
||||
- docs/
|
||||
Contains further documentation that goes into more detailed aspects of
|
||||
the build system and the final Pygos installation itself.
|
||||
- pkg/
|
||||
Contains package build scripts. Each package occupies a sub directory
|
||||
with a script named "build" that is used to download, compile and
|
||||
install the package.
|
||||
- product/
|
||||
Contains product specific configuration files. E.g. product/router/ holds
|
||||
files for the "router" product.
|
||||
- util/
|
||||
Contains utility scripts used by mk.sh
|
||||
- LICENSE
|
||||
A copy of the GNU GPLv3
|
||||
- mk.sh
|
||||
The main build script that builds the entire system
|
||||
- README.md
|
||||
This file
|
||||
|
1
docs/build.md
Normal file
1
docs/build.md
Normal file
|
@ -0,0 +1 @@
|
|||
# The Pygos Buildsystem
|
1
docs/filesystem.md
Normal file
1
docs/filesystem.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Pygos Filesystem Layout
|
1
docs/index.md
Normal file
1
docs/index.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Documentation Index
|
1
docs/update.md
Normal file
1
docs/update.md
Normal file
|
@ -0,0 +1 @@
|
|||
# Firmware updates
|
Loading…
Reference in a new issue