Signed-off-by: David Oberhollenzer <david.oberhollenzer@tele2.at>
3.4 KiB
Build System Layers
The layer configuration is currently organized into 4 different kinds of layers:
- BSP layers that configure the toolchain and kernel build for a specific board. All other layers are stacked on top.
- Mid-level program layers that simply add generic programs of some kind.
For instance
pygos-cli
configures packages for a simple, command line based system on top of a BSP layer. - Product base layers that add hardware independent configuration for a
specific kind of product. For instance
router-base
adds programs and configurations for therouter
group of products, but that don't depend on the specific board. - Product and board specific layers that add the missing configuration for a
product running on a specific board. For instance
router-rpi3
adds the final configurations to therouter-base
product for the Raspberry Pi 3.
As an example, the product router-rpi
currently uses the following layer
configuration:
bsp-rpi3
pygos-cli
pygos-cli-net
router-base
router-rpi3
Layer Index
This section contains an overview of the currently available configuration layers.
BSP Layers
-
bsp-alix
configures the cross toolchain for the AMD Geode LX based PC Engines brand ALIX 2d3 or 2d13 board (3 Ethernet ports, real time clock). A main line LTS kernel is used. The kernel configuration is tuned for usage as some kind of network appliance. The release package is calledrelease-alix
and contains a shell script for installing on a CF card or generating a disk image that can be dumped onto a CF card. -
bsp-rpi3
configures the cross toolchain for the Raspberry Pi 3. The output is 32 bit ARM code. The kernel is a recent vendor kernel supplied by the Raspberry Pi foundation. The kernel config is mostly based on the upstream default config with additional networking options enabled and many options not used by the Pygos system disabled (filesystem drivers, etc.). The release package is calledrelease-rpi3
and contains a shell script for installing on a micro SD card or generating an image for a micro SD card. -
bsp-qemu64
configures the cross toolchain for a generic 64 bit x86 target. The main line LTS kernel with a stripped down default and kvm config. The release package is calledrelease-qemu
and contains a shell script for running the system using direct kernel boot in a KVM accelerated Qemu with a virtio GPU, virtio network card with user mode networking and overlay partition on a 9PFS mounted host directory.
Mid-level Program Layers
-
pygos-cli
is the base layer for command line interface based images. It adds thebash
shell, the init system and basic command line programs likecoreutils
. -
pygos-cli-net
adds command line programs for networked systems such asldns
,nftables
oriproute2
.
Product Specific Layers
-
router-base
contains basic configuration for the router class of products. It addsunbound
,dnsmasq
,openssh
,nginx
andtcpdump
. The kernel parameters are configured to enable IP forwarding,resolv.conf
is set to resolve names through the local DNS resolver. -
router-alix
extendsrouter-base
with interface configuration for the ALIX board and appropriate nftable rules. -
router-rpi3
addshostapd
and extendsrouter-rpi3
with interface and wireless configuration for the Raspberry Pi 3 and appropriate nftable rules.