summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 63bd9fc0b0def31a23af27b245f02b6f14bd5d1c (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
meta-agl-devel layer
======================================================

The meta-agl-devel layer is intended to contain components that are under
testing/development or software packages that OEMs need but to not exist
in AGL.

Here below you can find more information about the components of this layer.

Virtualization support (meta-egvirt)
======================================================

meta-egvirt is the Virtualization Expert Group (EG-VIRT) layer, targeting to enable
virtualization support in AGL.

For more information, see the README.md file included in the layer, or alternatively
visit the EG\_VIRT wiki page at: https://wiki.automotivelinux.org/eg-virt

The OEM needs library for AGL
======================================================

There are some software package that the OEM needs, but not exist in the AGL source.  
This layer is add OEM needs library for AGL.  

The software packages list:
 * boost
 * fixesproto
 * imagemagick
 * iptables
 * Xorg-macros
 * zlib
 * eglibc = glibc
 * libcurl
 * libgif
 * libneon
 * mongoose
 * fuse
 * protocol buffers
 * bsdiff
 * module-init-tools
 * libcroco
 * libtiff
 * librsvg
 * libpcap

Quick start guide
-----------------
To Add these library by add the feature 'agl-oem-extra-libs'

1. Before build you need prepare agl layers:
 * You can read it at meta-agl/README-AGL.md

2. build the agl-demo-platform with 'agl-oem-extra-libs':

```bash
source meta-agl/scripts/aglsetup.sh -m qemux86-64 agl-demo [agl-appfw-smack] [agl-devel] [agl-netboot] agl-oem-extra-libs
```

3. Build agl-demo-platform

```bash
bitbake agl-demo-platform
```

Supported Machines
------------------

Reference hardware:

* QEMU (x86-64) - emulated machine: qemux86-64
* Renesas R-Car Gen2 (R-Car M2) - machine: porter

HMI Framework
======================================================
Quick start guide
-----------------
To Add HMI Framework, it is necessary to add 'hmi-framework' at source command as same as agl-oem-extra-libs

1. Before build you need prepare agl layers:
 * You can read it at meta-agl/README-AGL.md

2. build the agl-demo-platform with 'hmi-framework':

```bash
source meta-agl/scripts/aglsetup.sh -m m3ulcb agl-demo [agl-appfw-smack] [agl-devel] [agl-netboot] hmi-framework
```
ng(ASCII 27 Esc) set(ColourReset "${Esc}[m") set(ColourBold "${Esc}[1m") set(Red "${Esc}[31m") set(Green "${Esc}[32m") set(Yellow "${Esc}[33m") set(Blue "${Esc}[34m") set(Magenta "${Esc}[35m") set(Cyan "${Esc}[36m") set(White "${Esc}[37m") set(BoldRed "${Esc}[1;31m") set(BoldGreen "${Esc}[1;32m") set(BoldYellow "${Esc}[1;33m") set(BoldBlue "${Esc}[1;34m") set(BoldMagenta "${Esc}[1;35m") set(BoldCyan "${Esc}[1;36m") set(BoldWhite "${Esc}[1;37m") endif() # Native packaging name set(NPKG_PROJECT_NAME agl-${PROJECT_NAME}) string(REGEX MATCH "[0-9]+" LINUX_VERSION_CODE ${LINUX_VERSION_CODE_LINE}) math(EXPR a "${LINUX_VERSION_CODE} >> 16") math(EXPR b "(${LINUX_VERSION_CODE} >> 8) & 255") math(EXPR c "(${LINUX_VERSION_CODE} & 255)") set(KERNEL_VERSION "${a}.${b}.${c}") # Include project configuration # ------------------------------ project(${PROJECT_NAME} VERSION ${PROJECT_VERSION} LANGUAGES ${PROJECT_LANGUAGES}) set(PROJECT_LIBDIR "${CMAKE_SOURCE_DIR}/libs" CACHE PATH "Subpath to libraries") set(PROJECT_RESOURCES "${CMAKE_SOURCE_DIR}/data" CACHE PATH "Subpath to data") set(AFB_TOKEN "" CACHE PATH "Default AFB_TOKEN") set(AFB_REMPORT "1234" CACHE PATH "Default AFB_TOKEN") # Check GCC minimal version if (gcc_minimal_version) message (STATUS "${Cyan}-- Check gcc_minimal_version (found gcc version ${CMAKE_C_COMPILER_VERSION}) \ (found g++ version ${CMAKE_CXX_COMPILER_VERSION})${ColourReset}") if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version} OR CMAKE_C_COMPILER_VERSION VERSION_LESS ${gcc_minimal_version}) message(FATAL_ERROR "${Red}**** FATAL: Require at least gcc-${gcc_minimal_version} please set CMAKE_C[XX]_COMPILER") endif() endif(gcc_minimal_version) # Check Kernel mandatory version, will fail the configuration if required version not matched. if (kernel_mandatory_version) message (STATUS "${Cyan}-- Check kernel_mandatory_version (found kernel version ${KERNEL_VERSION})${ColourReset}") if (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version}) message(FATAL_ERROR "${Red}**** FATAL: Require at least ${kernel_mandatory_version} please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.") endif (KERNEL_VERSION VERSION_LESS ${kernel_mandatory_version}) endif(kernel_mandatory_version) # Check Kernel minimal version just print a Warning about missing features # and set a definition to be used as preprocessor condition in code to disable # incompatibles features. if (kernel_minimal_version) message (STATUS "${Cyan}-- Check kernel_minimal_version (found kernel version ${KERNEL_VERSION})${ColourReset}") if (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version}) message(WARNING "${Yellow}**** Warning: Some feature(s) require at least ${kernel_minimal_version}. Please use a recent kernel or source your SDK environment then clean and reconfigure your CMake project.${ColourReset}") else (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version}) add_definitions(-DKERNEL_MINIMAL_VERSION_OK) endif (KERNEL_VERSION VERSION_LESS ${kernel_minimal_version}) endif(kernel_minimal_version) # Project path variables # ---------------------- set(PKGOUT_DIR package CACHE PATH "Output directory for packages") # Define a default package directory if(PKG_PREFIX) set(PROJECT_PKG_BUILD_DIR ${PKG_PREFIX}/${PKGOUT_DIR} CACHE PATH "Application contents to be packaged") else() set(PROJECT_PKG_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PKGOUT_DIR} CACHE PATH "Application contents to be packaged") endif() # Paths to templates files set(TEMPLATE_DIR "${PKG_TEMPLATE_PREFIX}/template.d" CACHE PATH "Subpath to a directory where are stored needed files to launch on remote target to debuging purposes") string(REGEX REPLACE "^(.*)/.*$" "\\1" ENTRY_POINT "${PKG_TEMPLATE_PREFIX}") set(PROJECT_PKG_ENTRY_POINT ${ENTRY_POINT}/packaging CACHE PATH "Where package build files, like rpm.spec file or config.xml, are write.") set(WIDGET_ICON "${ENTRY_POINT}/wgt/${PROJECT_ICON}" CACHE PATH "Path to the widget icon") set(WIDGET_CONFIG_TEMPLATE ${TEMPLATE_DIR}/config.xml.in CACHE PATH "Path to widget config file template (config.xml.in)") # Path to autobuild template set(PROJECT_TEMPLATE_AGL_AUTOBUILD_DIR ${CMAKE_SOURCE_DIR}/conf.d/autobuild/agl CACHE PATH "Subpath to a directory where are stored autobuild script") set(PROJECT_TEMPLATE_LINUX_AUTOBUILD_DIR ${CMAKE_SOURCE_DIR}/conf.d/autobuild/linux CACHE PATH "Subpath to a directory where are stored autobuild script") # Archive target variables set(ARCHIVE_OUTPUT_ARCHIVE ${PROJECT_PKG_ENTRY_POINT}/${NPKG_PROJECT_NAME}_${PROJECT_VERSION}.orig.tar) set(ARCHIVE_OUTPUT ${ARCHIVE_OUTPUT_ARCHIVE}.gz) set(TMP_ARCHIVE_SUBMODULE ${PROJECT_PKG_ENTRY_POINT}/${NPKG_PROJECT_NAME}-sub) set(CMD_ARCHIVE_SUBMODULE \'git archive --verbose --prefix=${NPKG_PROJECT_NAME}-${PROJECT_VERSION}/$$path/ --format tar HEAD --output ${TMP_ARCHIVE_SUBMODULE}-$$sha1.tar\' ) if(OSRELEASE MATCHES "debian" AND NOT DEFINED ENV{SDKTARGETSYSROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) # build deb spec file from template set(PACKAGING_DEB_OUTPUT_DSC ${PROJECT_PKG_ENTRY_POINT}/${NPKG_PROJECT_NAME}.dsc) set(PACKAGING_DEB_OUTPUT_INSTALL ${PROJECT_PKG_ENTRY_POINT}/debian.${NPKG_PROJECT_NAME}.install) set(PACKAGING_DEB_OUTPUT_CHANGELOG ${PROJECT_PKG_ENTRY_POINT}/debian.changelog) set(PACKAGING_DEB_OUTPUT_COMPAT ${PROJECT_PKG_ENTRY_POINT}/debian.compat) set(PACKAGING_DEB_OUTPUT_CONTROL ${PROJECT_PKG_ENTRY_POINT}/debian.control) set(PACKAGING_DEB_OUTPUT_RULES ${PROJECT_PKG_ENTRY_POINT}/debian.rules) endif() # Break After Binding are loaded but before they get initialised set(GDB_INITIAL_BREAK "personality" CACHE STRING "Initial Break Point for GDB remote") # Define some checker binaries to verify input DATA files # to be included in package. Schema aren't checked for now. # Dummy checker about JSON. set(LUA_CHECKER "luac" "-p" CACHE STRING "LUA compiler") set(XML_CHECKER "xmllint" CACHE STRING "XML linter") set(JSON_CHECKER "" CACHE STRING "JSON linter")