summaryrefslogtreecommitdiffstats
path: root/README-AGL.md
blob: 9ae0ee1e979a7409a3bcebed6a6e5a6edac4df75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
?README-AGL.md: The Automotive Grade Linux Distribution
======================================================

[AGL](https://www.automotivelinux.org/) is creating an automotive specific Linux distribution (AGL UCB)
that unifies the software that has been written in a number of places already,
such as GENIVI and Tizen IVI.

The layer 'meta-agl' provides a minimal set of software
to boot system of AGL Distribution. 'meta-agl' is the minimal
core which is used build AGL profiles on top of it.

The reference UI is part of 'meta-agl-demo'.

Additional components like the security framework are part of 'meta-agl-extra'.

The AGL community appreciates feedback, ideas, suggestion, bugs and
documentation just as much as code. Please join the irc conversation
at the #automotive channel on irc.freenode.net and our mailing list.

For infomation for subscribing to the mailing list
    [automotive-discussions](http://lists.linuxfoundation.org/mailman/listinfo/automotive-discussions)
For information about AGL Distribution, see the
    [AGL Distribution](https://wiki.automotivelinux.org/agl-distro)
For information abount Getting started with AGL
    [here](https://wiki.automotivelinux.org/start/getting-started)
For information about contributing to the AGL Distro
    [here](https://wiki.automotivelinux.org/agl-distro/contributing)

For more documentation about AGL:

* [docs.automotivelinux.org](http://docs.automotivelinux.org)
#bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
require conf/distro/poky.conf

# Insert overrides "agldefaulttune" and "forcedefaulttune" before forcevariable
OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}${LIBCOVERRIDE}:agldefaulttune:forcedefaulttune:forcevariable"

# AGL specific derivations
DISTRO = "poky-agl"
DISTRO_NAME = "Automotive Grade Linux"


# Release flags
DISTRO_CODENAME = "quillback"
AGL_BRANCH = "quillback"
AGLVERSION = "17.1.4"

# switch  devel/release
#AGLRELEASETYPE ?= "agldevelopment"
AGLRELEASETYPE := "aglrelease"

OVERRIDES .= ":${AGLRELEASETYPE}"

#for development
DISTRO_VERSION:agldevelopment := "${AGLVERSION}+snapshot-${METADATA_REVISION}"

#for release
DISTRO_VERSION:aglrelease := "${AGLVERSION}"
DISTRO_BRANCH_VERSION_TAG = "${DISTRO_CODENAME}/${@'${DISTRO_VERSION}'.replace('+snapshot-${METADATA_REVISION}','')}"

# reproducible builds:
# Set the desired timestamps
# E.g. update for (major) releases
export SOURCE_DATE_EPOCH = "1730984121"
REPRODUCIBLE_TIMESTAMP_ROOTFS = "1730984121"


# SDK
SDK_VENDOR = "-aglsdk"

# SDKPATHINSTALL is the folder where the SDK is going to be installed
# Due to an issue with the qt5 environment (see SPEC-1667),
# we add DEFAULTTUNE to the SDKPATH to mitigate the issue.
SDKPATHINSTALL = "/opt/agl-sdk/${SDK_VERSION}-${DEFAULTTUNE}"


MAINTAINER = "AGL https://lists.automotivelinux.org/g/agl-dev-community"

TARGET_VENDOR = "-agl"

# Override these in poky based distros
AGL_DEFAULT_DISTRO_FEATURES = "usrmerge largefile opengl wayland pam bluetooth bluez5 3g polkit"
POKY_DEFAULT_DISTRO_FEATURES := "${AGL_DEFAULT_DISTRO_FEATURES}"
OVERRIDES .= ":${DISTRO_CODENAME}"

DISTRO_FEATURES:remove = "x11"
DISTRO_FEATURES_BACKFILL_CONSIDERED = "pulseaudio"

INIT_MANAGER = "systemd"
# Override default of "systemd-compat-units"
VIRTUAL-RUNTIME_initscripts = ""
# Override default of "busybox-syslog"
VIRTUAL-RUNTIME_base-utils-syslog = ""

# network manager to use (possible values: systemd, connman)
VIRTUAL-RUNTIME_net_manager = "connman"


QEMU_TARGETS ?= "arm aarch64 i386 x86_64 riscv64"
# Other QEMU_TARGETS "mips mips64 mips64el ppc sh4"

MIRRORS =+ "\
bzr://.*/.*      https://download.automotivelinux.org/AGL/mirror/ \n \
cvs://.*/.*      https://download.automotivelinux.org/AGL/mirror/ \n \
git://.*/.*      https://download.automotivelinux.org/AGL/mirror/ \n \
gitsm://.*/.*    https://download.automotivelinux.org/AGL/mirror/ \n \
hg://.*/.*       https://download.automotivelinux.org/AGL/mirror/ \n \
osc://.*/.*      https://download.automotivelinux.org/AGL/mirror/ \n \
p4://.*/.*       https://download.automotivelinux.org/AGL/mirror/ \n \
svn://.*/.*      https://download.automotivelinux.org/AGL/mirror/ \n \
bzr://.*/.*      http://download.automotivelinux.org/AGL/mirror/  \n \
cvs://.*/.*      http://download.automotivelinux.org/AGL/mirror/  \n \
git://.*/.*      http://download.automotivelinux.org/AGL/mirror/  \n \
gitsm://.*/.*    http://download.automotivelinux.org/AGL/mirror/  \n \
hg://.*/.*       http://download.automotivelinux.org/AGL/mirror/  \n \
osc://.*/.*      http://download.automotivelinux.org/AGL/mirror/  \n \
p4://.*/.*       http://download.automotivelinux.org/AGL/mirror/  \n \
svn://.*/.*      http://download.automotivelinux.org/AGL/mirror/  \n \
                 \
ftp://.*/.*      https://download.automotivelinux.org/AGL/mirror/ \n \
http://.*/.*     https://download.automotivelinux.org/AGL/mirror/ \n \
https://.*/.*    https://download.automotivelinux.org/AGL/mirror/ \n \
ftp://.*/.*      http://download.automotivelinux.org/AGL/mirror/  \n \
http://.*/.*     http://download.automotivelinux.org/AGL/mirror/  \n \
https://.*/.*    http://download.automotivelinux.org/AGL/mirror/  \n \
"

# The CONNECTIVITY_CHECK_URI's are used to test whether we can succesfully
# fetch from the network (and warn you if not). To disable the test set
# the variable to be empty.
# Git example url: git://git.yoctoproject.org/yocto-firewall-test;protocol=git;rev=HEAD
CONNECTIVITY_CHECK_URIS ?= ""

# using multiple BSP layers causes dangling bbappends in meta-agl-bsp
# turn it into a warning
#BB_DANGLINGAPPENDS_WARNONLY = "1"

# Not yet upstreamed; should be submitted.
SECURITY_CFLAGS:pn-qtwebengine = "${SECURITY_NO_PIE_CFLAGS}"

#Redefined USER_CLASSES
#Disable prelink. It is unmaintained and likely will go away.
#default: USER_CLASSES ?= "buildstats image-prelink"
USER_CLASSES = "buildstats"

# AGL uses 4 optimization levels
# 2 for ARM 32bit 
#   - a high and a medium setting for the CCARGS
#   - the high setting is default (needs >= cortex-a15)
#   - the medium setting is enabled with: DISTRO_FEATURES:append = " agl-medium-arm-compiler "
# 1 for ARM 64bit / AARCH64
# 1 for x86-64
# 1 for RISC-V 64-bit
require conf/distro/include/${TARGET_ARCH}-tune.inc

# Generic qemu and qemuboot (runqemu) enhancements
# check qemuboot.bbclass
# - use 2G RAM by default
QB_MEM ?= "-m 2048"
# use pulseaudio on the host side - off as qemu-native is built with alsa
#QB_AUDIO_DRV = "pa"
# expose a virtual 'hda' sound card to the guest (arm/aarch64/x86-64)
QB_AUDIO_OPT = "-device intel-hda -device hda-duplex -audiodev alsa,id=agl"

# Board templates can add extra IMAGE_FSTYPES through this.
# It is added (late) through the AGL image recipes.
AGL_EXTRA_IMAGE_FSTYPES ??= ""
AGL_EXTRA_INITRAMFS_FSTYPES ??= ""
#
# Default IMAGE FSTYPES wic.xz
AGL_DEFAULT_IMAGE_FSTYPES ?= "wic.xz wic.bmap wic.xz.sha256sum"
AGL_DEFAULT_IMAGE_FSTYPES:qemuall ?= "${@bb.utils.contains('AGL_FEATURES', 'AGLCI', 'ext4.xz', 'ext4', d)}"
AGL_DEFAULT_IMAGE_FSTYPES:append:netboot = " ${@bb.utils.contains('AGL_FEATURES', 'AGLCI', 'ext4.xz', 'ext4', d)}"
AGL_DEFAULT_INITRAMFS_FSTYPES ?= "ext4.gz"

# DEFAULT IMAGE_FSTYPES for AGL (no - BSPs should not set this)
#
IMAGE_FSTYPES = "${AGL_DEFAULT_IMAGE_FSTYPES} ${AGL_EXTRA_IMAGE_FSTYPES}"
INITRAMFS_FSTYPES = "${AGL_DEFAULT_INITRAMFS_FSTYPES} ${AGL_EXTRA_INITRAMFS_FSTYPES}"
#

# Fix for rpm metadata clash between nativesdk-cmake and nativesdk-qtbase-tools
# (revalidate after 2017-10-15, 2018-06-12: still required)
DIRFILES:pn-nativesdk-cmake = "1"

# For https://jira.automotivelinux.org/browse/SPEC-1629 :
# We exclude the conflicting vars from the sstate task hash.
# This needs to be verified.
do_package_write_rpm[vardepsexclude] += "ARCHIVER_TOPDIR PF"