diff options
author | Ronan Le Martret <ronan.lemartret@iot.bzh> | 2018-06-22 11:45:20 +0200 |
---|---|---|
committer | Ronan Le Martret <ronan.lemartret@iot.bzh> | 2018-06-22 11:45:20 +0200 |
commit | 5f3571d3c7b3303d9b503a79706c84f773994e66 (patch) | |
tree | 40e711fbcd9915514ed16855187e2ef3d5c34533 | |
parent | c9702a645726424ebfe0fa88a7d773db9a3e9626 (diff) |
Update getting started documentation:
* Fix markdown lint warring.
* Update AGL current version.
* Update Renesas documentation.
Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
-rw-r--r-- | getting-started/machines/R-Car-Starter-Kit-gen3.md | 137 | ||||
-rw-r--r-- | getting-started/machines/intel.md | 23 | ||||
-rw-r--r-- | getting-started/machines/qemu.md | 78 | ||||
-rw-r--r-- | getting-started/machines/raspberrypi.md | 2 | ||||
-rw-r--r-- | getting-started/setup-sdk-environment.md | 4 | ||||
-rw-r--r-- | getting-started/source-code.md | 77 | ||||
-rw-r--r-- | getting-started/troubleshooting.md | 43 | ||||
-rw-r--r-- | platform/working-on-the-master-branch.md | 10 |
8 files changed, 222 insertions, 152 deletions
diff --git a/getting-started/machines/R-Car-Starter-Kit-gen3.md b/getting-started/machines/R-Car-Starter-Kit-gen3.md index c40fcb4..a379897 100644 --- a/getting-started/machines/R-Car-Starter-Kit-gen3.md +++ b/getting-started/machines/R-Car-Starter-Kit-gen3.md @@ -16,13 +16,22 @@ For more information and latest news, please check : * [elinux page for m3ulcb][R-car m3ulcb] * [elinux page for salvator-x][R-car salvator-x] -Note that the Salvator-X has NDA restrictions, so less documentation is available both here and elsewhere. +Infotainment Carrier Board : + +* [elinux page for Kingfisher][R-car Kingfisher] + +**Note**:That the Salvator-X has NDA restrictions, so less documentation is available both here and elsewhere. The following documents may also be helpful: * [Yocto-Gen3 on elinux][R-car yocto] -# Building the AGL Demo Platform for R-Car Starter Kit Gen3 +## BSP Version of R-Car Starter Kit Gen3 + +* AGL master: 3.7 +* AGL eel 5.0.3: 2.23.1 + +## Building the AGL Demo Platform for R-Car Starter Kit Gen3 Before setting up the build environment, you need to download the proprietary drivers. @@ -30,10 +39,16 @@ Before setting up the build environment, you need to download the proprietary dr * If you are building **AGL Daring Dab or older release** download Renesas graphics drivers with a "click through" license from [here][rcar Linux Drivers]. * Under the Target hardware: **R-Car H3/M3** section. +* The version of the driver can be find here: + +```bash +grep -rn ZIP_.= meta-agl/meta-agl-bsp/meta-rcar-gen3/scripts/setup_mm_packages.sh +``` + **Note**: -* You have to register with a free account on MyRenesas and accept the license conditions before downloading them the drivers. - The operation is fast and simple but nevertheless mandatory to access evaluation of non open-source drivers for free. +* You have to register with a free account on MyRenesas and accept the license conditions before downloading them the drivers. + The operation is fast and simple but nevertheless mandatory to access evaluation of non open-source drivers for free. Once you registered, you can download two zip files. * The files must be stored into your download directory (usually $HOME/Downloads, pointed by $XDG_DOWNLOAD_DIR). @@ -47,7 +62,7 @@ ls -1 $XDG_DOWNLOAD_DIR -rw-r--r--. 1 1664 agl-sdk 3,0M Dec 8 15:24 R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-weston2-20170904.zip ``` -## Setting up the build environment +### Setting up the build environment Define the type of R-Car Starter Kit board as a variable: @@ -75,14 +90,15 @@ cd $AGL_TOP source meta-agl/scripts/aglsetup.sh -m $MACHINE -b build agl-devel agl-demo agl-netboot agl-appfw-smack agl-localdev ``` -**IMPORTANT NOTE**: Read the log to be sure you had no error during your setup. +**IMPORTANT NOTE**: Read the log to be sure you had no error during your setup. + In case of missing graphics drivers, you could notice an error message as follow: ```bash [snip] --- fragment /home/working/workspace_agl_master/meta-agl/templates/machine/h3ulcb/50_setup.sh /home/working/workspace_agl_master /home/working/workspace_agl_master/build_gen3 -The graphics and multimedia acceleration packages for +The graphics and multimedia acceleration packages for the R-Car Gen3 board can be downloaded from: https://www.renesas.com/en-us/solutions/automotive/rcar-demoboard-2.html @@ -121,11 +137,11 @@ Configure for Release or Development: * a SFTP server * the TCF Agent for easier application deployment and remote debugging * some extra system tools (usb, bluetooth ...) - * ... + * ... We explicitely activate these debug facilities by specifying the “agl-devel agl-netboot” feature. -## Build your image +### Build your image The process to build an image is simple: @@ -140,9 +156,10 @@ ls -l $AGL_TOP/build/tmp/deploy/images/$MACHINE ``` **Note**: -In case of failure of the build it is safe to first check that the Linux distribution chosen for your host has been validated for version 2.2 of Yocto. -# Booting AGL Image on R-Car Starter Kit Gen3 boards using a microSD card +In case of failure of the build it is safe to first check that the Linux distribution chosen for your host has been validated for the current version of Yocto used by AGL. + +## Booting AGL Image on R-Car Starter Kit Gen3 boards using a microSD card To boot the board using a micro-SD card, there are two operations that must be done prior to first initial boot: @@ -151,19 +168,31 @@ To boot the board using a micro-SD card, there are two operations that must be d For each subsequent build you only need to rewrite the SD-card with the new image. -## Firmware Update +### Firmware Update This proceedure is done in two steps. The first step only needs to be done once per device. The second step should be done, starting with the Eel release, per release. -### Update Sample Loader and MiniMonitor +#### Update Sample Loader and MiniMonitor Follow the documentation on the [eLinux.org wiki][R-car loader update] for the exact list of steps on how to perform the required steps to update to at least version 3.02. This should be done even in the case where a **Kingfisher** or other expansion board will not be connected. -### Update the firmware stack +#### Update the firmware stack -As an AArch64 platform both the **h3ulcb** and **m3ulcb** have a firmware stack that consists of multiple parts. In both cases we have **ARM Trusted Firmware**, **OP-Tee** and **U-Boot** in use. Starting with Eel you must update the firmware to at least the version referenced here. For the exact steps required to flash the device see the eLinux.org wiki for **[h3ulcb][R-car h3ulcb firmware update]** or **[m3ulcb][R-car m3ulcb firmware update]** respectively. In both cases the files listed in the table will be found in the *\$AGL_TOP/build/tmp/deploy/images/$MACHINE* directory as specified in previous steps. The Salvator-X firmware update process is not documented on eLinux. +As an AArch64 platform, both the **h3ulcb** and **m3ulcb** have a firmware stack that consists of multiple parts. -## Prepare the SD-card on the host +In both cases we have **ARM Trusted Firmware**, **OP-Tee** and **U-Boot** in use. + +Starting with Eel you must update the firmware to at least the version referenced here. For the exact steps required to flash the device see the eLinux.org wiki for **[h3ulcb][R-car h3ulcb firmware update]** or **[m3ulcb][R-car m3ulcb firmware update]** respectively. + +In both cases the files listed in the table will be found in the directory: + +```bash +*\$AGL_TOP/build/tmp/deploy/images/$MACHINE* +``` + +The Salvator-X firmware update process is not documented on eLinux. + +### Prepare the SD-card on the host Plug the microSD card and get its associated device by either running *`dmesg | tail -15`* or *`lsblk`*, for example: @@ -193,7 +222,7 @@ lsblk └─sdc2 8:34 1 788M 0 part ``` -**IMPORTANT NOTE**: This is a critical operation, each computer is different and removable devices can change from time to time: +**IMPORTANT NOTE**: This is a critical operation, each computer is different and removable devices can change from time to time: so you should repeat this operation each time you insert the microSD card to confirm the device name. In the example above, we see: @@ -210,38 +239,45 @@ Go to your build directory: cd $AGL_TOP/build/tmp/deploy/images/$MACHINE ``` -The **.wic.xz** file can be uncompressed and written to the device you discovered in the previous step as follows: +You can use bmaptool to copy the **.wic.xz** file to the storage device, discovered in the previous step: + +```bash +bmaptool copy ./agl-demo-platform-$MACHINE.wic.xz /dev/sdc +``` +Or you can be uncompressed and written to the device: ```bash sudo umount /dev/sdc - xzcat agl-demo-platform-$MACHINE.wic.xz | sudo dd of=/dev/sdc bs=4M + xzcat ./agl-demo-platform-$MACHINE.wic.xz | sudo dd of=/dev/sdc bs=4M sync ``` -## Booting the board +Or + +### Booting the board -* Turn the board off using the power switch. -* Insert the microSD-card. +* Turn the board off using the power switch. +* Insert the microSD-card. * Verify that you have plugged in, at least, the following: * External monitor on HDMI port * Input device (keyboard, mouse, touchscreen...) on USB port. -* Turn the board on using the power switch. - After a few seconds, you'll see the AGL splash screen on the display and you'll be able to log in on the console terminal or in the graphic screen. +* Turn the board on using the power switch. + After a few seconds, you'll see the AGL splash screen on the display and you'll be able to log in on the console terminal or in the graphic screen. -# Serial Console Setup +## Serial Console Setup -## Install a serial client on your computer +### Install a serial client on your computer -This can be “screen”, “picocom”, “minicom”. -The lighter of the 3 is “picocom” (it has less dependencies). +This can be “screen”, “picocom”, “minicom”. +The lighter of the 3 is “picocom” (it has less dependencies). -## Plug a USB cable from your computer to the serial CP2102 USB port (micro USB-A) +### Plug a USB cable from your computer to the serial CP2102 USB port (micro USB-A) -With “dmesg” you can check the device created for the serial link. -Usually, it's /dev/ttyUSB0 but the number may vary depending on other USB serial ports connected to the host. -To get it, you must switch the board on. +With “dmesg” you can check the device created for the serial link. +Usually, it's /dev/ttyUSB0 but the number may vary depending on other USB serial ports connected to the host. +To get it, you must switch the board on. For example: ```bash @@ -257,8 +293,8 @@ dmesg | tail [2097783.388658] usb 2-1.5.3: FTDI USB Serial Device converter now attached to ttyUSB0 ``` -The link is attached to the device /dev/ttyUSB0. -It is time to launch your serial client. +The link is attached to the device /dev/ttyUSB0. +It is time to launch your serial client. Example: ```bash @@ -277,9 +313,9 @@ or screen /dev/ttyUSB0 115200 ``` -## Power on the board to see a shell on the console +### Power on the board to see a shell on the console -* For machine h3ulcb: +* For machine h3ulcb: ```bash NOTICE: BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.7 @@ -359,7 +395,7 @@ Hit any key to stop autoboot: 0 => ``` -## Configure U-boot parameters +### Configure U-boot parameters Follow the steps below to configure the boot from microSD card and to set screen resolution: @@ -387,7 +423,7 @@ Follow the steps below to configure the boot from microSD card and to set screen ``` * For machine h3ulcb: - + ```bash => printenv baudrate=115200 @@ -408,7 +444,7 @@ Follow the steps below to configure the boot from microSD card and to set screen ``` * If not, copy line by line: - + ```bash setenv bootargs console=ttySC0,115200 root=/dev/mmcblk1p1 rootwait ro rootfstype=ext4 setenv bootcmd run load_ker\; run load_dtb\; booti 0x48080000 - 0x48000000 @@ -445,14 +481,14 @@ saveenv run bootcmd ``` -## Console boot +### Console boot After booting, you should see the wayland display on the external monitor and a login prompt on the console, such as: * For machine h3ulcb: ```bash -Automotive Grade Linux 3.0.0+snapshot-20161201 h3ulcb ttySC0 +Automotive Grade Linux ${AGL_VERSION} h3ulcb ttySC0 h3ulcb login: root ``` @@ -460,7 +496,7 @@ h3ulcb login: root * For machine m3ulcb: ```bash -Automotive Grade Linux 3.0.0+snapshot-20161201 m3ulcb ttySC0 +Automotive Grade Linux ${AGL_VERSION} m3ulcb ttySC0 m3ulcb login: root ``` @@ -470,22 +506,22 @@ Logging in on the console is easy: * login is 'root' * password is empty (not asked) -## Network access +### Network access -If the board is connected to a local network using ethernet and if a DHCP server is able to distribute IP addresses, +If the board is connected to a local network using ethernet and if a DHCP server is able to distribute IP addresses, you can then determine the Gen3 board IP address and log in using ssh: ```bash m3ulcb login: root Last login: Tue Dec 6 09:55:15 UTC 2016 on tty2 root@m3ulcb:~# ip -4 a -1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default +1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 10.0.0.27/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever -root@m3ulcb:~# +root@m3ulcb:~# ``` Here, IP address is 10.0.0.27. Logging in using SSH is easy: @@ -493,7 +529,7 @@ Here, IP address is 10.0.0.27. Logging in using SSH is easy: ```bash $ ssh root@10.0.0.27 Last login: Tue Dec 6 10:01:11 2016 from 10.0.0.13 -root@m3ulcb:~# cat /etc/os-release +root@m3ulcb:~# cat /etc/os-release ID="poky-agl" NAME="Automotive Grade Linux" VERSION="3.0.0+snapshot-20161202 (chinook)" @@ -501,13 +537,13 @@ VERSION_ID="3.0.0-snapshot-20161202" PRETTY_NAME="Automotive Grade Linux 3.0.0+snapshot-20161202 (chinook)" ``` -# More Documentation +## More Documentation Detailed guides on how to build AGL for Renesas boards and using AGL SDK inside a ready-to-use Docker container: -* [AGL-Devkit-Build-your-1st-AGL-Application.pdf][Iot.bzh AGL-Devkit-Build-your-1st-AGL-Application] +* [AGL-Devkit-Build-your-1st-AGL-Application.pdf][Iot.bzh AGL-Devkit-Build-your-1st-AGL-Application] Generic guide on how to build various application types (HTML5, native, Qt, QML, …) for AGL. -* [AGL-Devkit-HowTo_bake_a_service.pdf][Iot.bzh AGL_Phase2-Devkit-HowTo_bake_a_service] +* [AGL-Devkit-HowTo_bake_a_service.pdf][Iot.bzh AGL_Phase2-Devkit-HowTo_bake_a_service] Generic guide on how to add a new service in the BSP. * [AGL-Kickstart-on-Renesas-Porter-Board.pdf][Iot.bzh AGL-Kickstart-on-Renesas-Porter-Board] * [AGL-Devkit-Image-and-SDK-for-Porter.pdf][Iot.bzh AGL-Devkit-Image-and-SDK-for-Porter] @@ -519,6 +555,7 @@ Detailed guides on how to build AGL for Renesas boards and using AGL SDK inside [R-car h3ulcb firmware update]: https://elinux.org/R-Car/Boards/H3SK#Flashing_firmware [R-car salvator-x]: https://elinux.org/R-Car/Boards/Salvator-X [R-car loader update]: http://elinux.org/R-Car/Boards/Kingfisher#How_to_update_of_Sample_Loader_and_MiniMonitor +[R-car Kingfisher]: https://elinux.org/R-Car/Boards/Kingfisher [R-car yocto]: http://elinux.org/R-Car/Boards/Yocto-Gen3 [rcar Linux Drivers]: https://www.renesas.com/solutions/automotive/rcar-demoboard.html [rcar Linux Drivers 2]: https://www.renesas.com/en-us/solutions/automotive/rcar-demoboard-2.html diff --git a/getting-started/machines/intel.md b/getting-started/machines/intel.md index 5261cb2..9fb5027 100644 --- a/getting-started/machines/intel.md +++ b/getting-started/machines/intel.md @@ -4,7 +4,7 @@ This documentation is aiming at people who want to run Automotive Grade Linux (AGL) on Intel Hardware (HW). -While the reference HW used by AGL project is the Open Source MinnowBoard, this documentation [MinnowBoard wiki](https://minnowboard.org/) can be used to enable most of 64-bit Intel Architecture (IA) platforms using UEFI as boot loader. +While the reference HW used by AGL project is the Open Source MinnowBoard, this documentation [MinnowBoard wiki](https://minnowboard.org/) can be used to enable most of 64-bit Intel Architecture (IA) platforms using UEFI as boot loader. In addition to the MinnowBoard, support for the [upCore & UpSquared boards](http://www.up-board.org/upsquared/) has been added. You need to run the 64-bit version of the UEFI bootloader. MinnowBoard Max and Turbot as well as Joule are both 64-bit capable. @@ -15,12 +15,13 @@ If you are interested in creating ***applications*** to run on AGL, please visit UEFI has evolved a lot recently and you likely want to check that your HW firmware is up-to-date, this is mandatory for both the MinnowBoard-Max and the Joule. Not required on Minnowboard-Turbo and Up boards. -[`https://firmware.intel.com/projects/minnowboard-max`](https://firmware.intel.com/projects/minnowboard-max) +[`https://firmware.intel.com/projects/minnowboard-max`](https://firmware.intel.com/projects/minnowboard-max) [`https://software.intel.com/en-us/flashing-the-bios-on-joule`](https://software.intel.com/en-us/flashing-the-bios-on-joule) ## Where to find an AGL bootable image ### Download a ready made image + AGL provides ready made images for developers. You will find them on [AGL Download web site](https://download.automotivelinux.org/AGL/release) image are located in YourPreferedRelease/intel-corei7-64/deploy/images/intel-corei7-64/ @@ -72,7 +73,7 @@ Once that you repo is initialised either with the stable or WIP, you need to syn #### Building the AGL distro -You are now ready to initialise your Yocto build. +You are now ready to initialise your Yocto build. When running the command: ```bash @@ -86,7 +87,7 @@ You will notice the Intel entries joule ``` -Simply select that entry to replace porter in the -m option. +Simply select that entry to replace porter in the -m option. **Note:** agl-netboot option is required to create the right initramfs even if you do not boot from a network ```bash @@ -105,30 +106,30 @@ internet connection and will required several GB on /tmp as well as on your buil bitbake agl-demo-platform ``` -**Your newly baked disk image (.wic.xz) will be located at**: +**Your newly baked disk image (.wic.xz) will be located at**: `tmp/deploy/images/intel-corei7-64/` ##### Alternative: Download a *ready made* image from AGL web site -The Continuous Integration (CI) process from AGL creates and publish daily and stable builds. +The Continuous Integration (CI) process from AGL creates and publish daily and stable builds. Pointers to both can be found in [AGL supported HW](https://wiki.automotivelinux.org/agl-distro) (see Reference BSP/Intel). Once you have validated your process you can start to play/work with the snapshot pointer. Note that snapshot build may not work. -Follow the directory: +Follow the directory: `intel-corei7-64/deploy/images/intel-corei7-64/` -and download the file: +and download the file: `agl-demo-platform-intel-corei7-64.hddimg` ## Create a bootable media -Depending your target HW you will use an USB stick, an SD card or a HDD/SDD. -The creation process remains the same independently of the selected support. +Depending your target HW you will use an USB stick, an SD card or a HDD/SDD. +The creation process remains the same independently of the selected support. It does require to have access to a Linux machine with `sudo` or root password. ### Insert you removable media in the corresponding interface @@ -143,7 +144,7 @@ It does require to have access to a Linux machine with `sudo` or root password. ### Download the script `mkefi-agl.sh` -This script is present in the directory meta-agl/scripts from blowfish 2.0.4, alternatively you can download it from the following Git repo: +This script is present in the directory meta-agl/scripts from blowfish 2.0.4, alternatively you can download it from the following Git repo: [https://github.com/dominig/mkefi-agl.sh](https://github.com/dominig/mkefi-agl.sh) diff --git a/getting-started/machines/qemu.md b/getting-started/machines/qemu.md index 5a2d426..7bd14c0 100644 --- a/getting-started/machines/qemu.md +++ b/getting-started/machines/qemu.md @@ -9,20 +9,20 @@ bitbake agl-demo-platform By default, the build will produce a compressed *vmdk* image in **tmp/deploy/images/qemux86-64/agl-demo-platform-qemux86-64.vmdk.xz** -# Deploying the AGL Demo Platform for QEMU +## Deploying the AGL Demo Platform for QEMU -## Prepare an image for boot +### Prepare an image for boot Decompress the **agl-demo-platform-qemux86-64.vmdk.xz** image to prepare it for boot. -### Linux +#### Linux ```bash cd tmp/deploy/images/qemux86-64 xz -d agl-demo-platform-qemux86-64.vmdk.xz ``` -### Windows +#### Windows Download [7-Zip](http://www.7-zip.org/) and select **agl-demo-platform-qemux86-64.vmdk.xz** to be decompressed. @@ -30,9 +30,9 @@ Download [7-Zip](http://www.7-zip.org/) and select **agl-demo-platform-qemux86-6 ### QEMU -#### Install +#### Install QEMU -Note: if an AGL crosssdk has been created, it will contain a qemu binary for the host system. This SDK qemu binary has no graphics support and cannot currently be used to boot an AGL image. +**Note**: if an AGL crosssdk has been created, it will contain a qemu binary for the host system. This SDK qemu binary has no graphics support and cannot currently be used to boot an AGL image. *Arch*: @@ -52,68 +52,68 @@ sudo apt-get install qemu-system-x86 sudo yum install qemu-kvm ``` -#### Boot +#### Boot QEMU Boot the **agl-demo-platform-qemux86-64.vmdk** image in qemu with kvm support: ```bash qemu-system-x86_64 -enable-kvm -m 2048 \ - -hda agl-demo-platform-qemux86-64.vmdk \ - -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt \ - -vga virtio -show-cursor \ - -device virtio-rng-pci \ - -serial mon:stdio -serial null \ - -soundhw hda \ - -net nic,vlan=0 \ - -net user,hostfwd=tcp::2222-:22 + -hda agl-demo-platform-qemux86-64.vmdk \ + -cpu kvm64 -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+popcnt \ + -vga virtio -show-cursor \ + -device virtio-rng-pci \ + -serial mon:stdio -serial null \ + -soundhw hda \ + -net nic,vlan=0 \ + -net user,hostfwd=tcp::2222-:22 ``` ### VirtualBox -#### Install +#### Install VirtualBox Download and install [VirtualBox](https://www.virtualbox.org/wiki/Downloads) 5.2.0 or later. -#### Boot +#### Boot VirtualBox Boot the **agl-demo-platform-qemux86-64.vmdk** image in VirtualBox: * Start VirtualBox * Click **New** to create a new machine - * Enter **AGL QEMU** as the *Name* - * Select **Linux** as the *Type* - * Select **Other Linux (64-bit)** as the *Version* - * Set *Memory size* to **2 GB** - * Click **Use an existing virtual hard disk file** under *Hard disk* + * Enter **AGL QEMU** as the *Name* + * Select **Linux** as the *Type* + * Select **Other Linux (64-bit)** as the *Version* + * Set *Memory size* to **2 GB** + * Click **Use an existing virtual hard disk file** under *Hard disk* * Navigate to and select the **agl-demo-platform-qemux86-64.vmdk** image * Ensure that the newly created **AGL QEMU** machine is highlighted and click **Start** ### VMWare Player -#### Install +#### Install VMWare Player Download and install [VMWare Player](https://www.vmware.com/products/player/playerpro-evaluation.html) -#### Boot +#### Boot VMWare Player Boot the **agl-demo-platform-qemux86-64.vmdk** image in VMWare Player: * Start VMWare Player * Select **File** and **Create a New Virtual Machine** - * Select **I will install the operating system later** and click **Next** - * Select **Linux** as the *Guest Operating System*, **Other Linux 3.x kernel 64-bit** as the *Version*, and click **Next** - * Enter **AGL QEMU** as the *Name* and click **Next** - * Leave *disk capacity settings* unchanged and click **Next** - * Click **Finish** + * Select **I will install the operating system later** and click **Next** + * Select **Linux** as the *Guest Operating System*, **Other Linux 3.x kernel 64-bit** as the *Version*, and click **Next** + * Enter **AGL QEMU** as the *Name* and click **Next** + * Leave *disk capacity settings* unchanged and click **Next** + * Click **Finish** * Select/highlight **AGL QEMU** and click **Edit virtual machine settings** - * Select/highlight **Memory** and click **2 GB** - * Select/highlight **Hard Disk (SCSI)** and click **Remove** - * Click **Add** - * Select **Hard Disk** and click **Next** - * Select **SCSI (Recommended)** and click **Next** - * Select **Use an existing virtual disk** and click **Next** - * Browse and select the **agl-demo-platform-qemux86-64.vmdk** image - * Click **Finish** - * Click **Keep Existing Format** - * Click **Save** + * Select/highlight **Memory** and click **2 GB** + * Select/highlight **Hard Disk (SCSI)** and click **Remove** + * Click **Add** + * Select **Hard Disk** and click **Next** + * Select **SCSI (Recommended)** and click **Next** + * Select **Use an existing virtual disk** and click **Next** + * Browse and select the **agl-demo-platform-qemux86-64.vmdk** image + * Click **Finish** + * Click **Keep Existing Format** + * Click **Save** * Ensure that the newly created **AGL QEMU** machine is highlighted and click **Power On** diff --git a/getting-started/machines/raspberrypi.md b/getting-started/machines/raspberrypi.md index 4d8d6b4..e016584 100644 --- a/getting-started/machines/raspberrypi.md +++ b/getting-started/machines/raspberrypi.md @@ -18,7 +18,7 @@ source meta-agl/scripts/aglsetup.sh -m raspberrypi2 agl-demo agl-netboot agl-app bitbake agl-demo-platform ``` -# Booting AGL Demo Platform on Raspberry Pi +## Booting AGL Demo Platform on Raspberry Pi Follow the steps below to copy the image to microSD card and to boot it on Raspberry Pi 2 or 3: diff --git a/getting-started/setup-sdk-environment.md b/getting-started/setup-sdk-environment.md index 286fb65..691702c 100644 --- a/getting-started/setup-sdk-environment.md +++ b/getting-started/setup-sdk-environment.md @@ -1,12 +1,14 @@ # AGL SDK Quick Setup This tutorial explains how to quickly setup an environment suitable to building and packaging AGL Applications using the SDK and a Docker container. + The current tutorial has been tested on Linux, but may work with a few adjustments for Windows or MacOS. ## Step 1: install Docker First install docker on your host, if not already done. General instructions for Linux are available on the [Docker Site](https://docs.docker.com/engine/installation/linux/). + Add yourself to the docker group. ## Step 2: setup persistent workspace @@ -53,6 +55,7 @@ docker images; jenkins latest 55720d63e328 5 weeks ago 711.9 MB hello-world latest c54a2cc56cbb 5 months ago 1.848 kB ``` + Identify the IMAGE_ID you just loaded. In the example above, this is 6fcc19b4e0d7 ```bash @@ -71,7 +74,6 @@ Then, use the 'create_container' script to start a new, fresh container based on * The password for the id 'devel' inside the docker image is 'devel'. - ```bash git clone https://git.automotivelinux.org/AGL/docker-worker-generator; cd docker-worker-generator; diff --git a/getting-started/source-code.md b/getting-started/source-code.md index 9bf1d96..83435e7 100644 --- a/getting-started/source-code.md +++ b/getting-started/source-code.md @@ -24,7 +24,7 @@ The very first step is to ensure that your system can run the build system of th * if your system is Windows© or iOS© you should use a virtualization solution (Virtualbox, VMWare ...) to run a Linux VM on your system. -For AGL 2.1, Yocto Project 2.1, known as krogoth, has been selected for the BSP and build system. +For AGL 6.0, Yocto Project 2.4, known as rocko, has been selected for the BSP and build system. Reference data for configuring your system can be found in the Yocto documentation [Here][yocto ref Manual] @@ -84,14 +84,14 @@ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ socat SDL-devel xterm curl ``` -# Download AGL Source Code +## Download AGL Source Code -The AGL source code and Yocto layers are maintained on the AGL Gerrit server. +The AGL source code and Yocto layers are maintained on the AGL Gerrit server. For information on how to create accounts for gerrit see [Getting Started with AGL][Getting Started with AGL]. -## Setting up the build environment +### Setting up the build environment -In the following, your top level directory is noted as “AGL_TOP”. +In the following, your top level directory is noted as “AGL_TOP”. For example, we will set AGL_TOP to point to a directory “$HOME/workspace_agl”: ```bash @@ -99,10 +99,10 @@ export AGL_TOP=$HOME/workspace_agl mkdir -p $AGL_TOP ``` -## Prepare Repo Tool +### Prepare Repo Tool -AGL Uses the 'repo' tool for managing repositories. -You need to setup layers of AGL. +AGL Uses the 'repo' tool for managing repositories. +You need to setup layers of AGL. You can use the commands below to prepare Repo: ```bash @@ -116,27 +116,17 @@ chmod a+x ~/bin/repo * More information about the tool 'repo' [Here][repo info] -## Download source +### Download source You can choose your source release ### Download Latest Stable Release -To download all layers for the for the latest stable release, eel 5.0.2: +To download all layers for the for the latest stable release, eel 5.0.3: ```bash cd $AGL_TOP -repo init -b eel -m eel_5.0.2.xml -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo -repo sync -``` - -### Download Latest on dab Branch - -To download all layers on the current release branch which may be in the midst of testing or changes prior to the next stable release: - -```bash -cd $AGL_TOP -repo init -b dab -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo +repo init -b eel -m eel_5.0.3.xml -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo repo sync ``` @@ -152,7 +142,8 @@ repo sync ## Set up Build Environment Info -AGL has created a set up script for defining the target build and desired optional features. +AGL has created a set up script for defining the target build and desired optional features. + To get a complete list of the options available run. ```bash @@ -167,18 +158,40 @@ Once you run aglsetup.sh with your desired parameters, you can build any target Here is the list of features for AGL 2.1 that can be specified in the aglsetup.sh command line: * in **meta-agl** - * **agl-archiver**: - * **agl-devel**: activate development options (empty root password, debugger, strace, valgrind …) - * **agl-isafw**: - * **agl-netboot**: enable network boot support through TFTP and NBD (see meta-netboot layer) + * agl-all-features + * agl-appfw-smack: enables IoT.bzh Application Framework + SMACK + Cynara + * agl-archiver + * agl-ci + * agl-ci-change-features + * agl-ci-change-features-nogfx + * agl-ci-snapshot-features + * agl-ci-snapshot-features-nogfx + * agl-devel: activate development options (empty root password, debugger, strace, valgrind …) + * agl-gplv2 + * agl-isafw + * agl-netboot: enable network boot support through TFTP and NBD (see meta-netboot layer) + * agl-profile-graphical + * agl-profile-graphical-html5 + * agl-profile-graphical-qt5 + * agl-profile-hud + * agl-profile-telematics + * agl-ptest + * agl-sota: enable SOTA components and dependencies (meta-sota, meta-filesystems, meta-ruby, meta-rust are added) +* in **meta-agl-demo** + * agl-demo: enable layer meta-agl-demo and meta-qt5 - required to build * agl-demo-platform + * agl-iotivity + * agl-sdl * in **meta-agl-devel** - * **agl-oem-extra-libs**: - * **agl-renesas-kernel**: + * agl-audio-4a-framework + * agl-audio-soundmanager-framework + * agl-egvirt + * agl-hmi-framework + * agl-oem-extra-libs + * agl-renesas-kernel + * agl-telemetry * in **meta-agl-extra** - * **agl-appfw-smack**: enables IoT.bzh Application Framework + SMACK + Cynara - * **agl-demo**: enable layer meta-agl-demo and meta-qt5 - required to build * agl-demo-platform - * **agl-localdev**: add a local layer named “meta-localdev” in meta directory and a local.dev.inc conf file if present - * **agl-sota**: enable SOTA components and dependencies (meta-sota, meta-filesystems, meta-ruby, meta-rust are added) + * agl-localdev: add a local layer named “meta-localdev” in meta directory and a local.dev.inc conf file if present + * blsched For newer features or to get more details on a given feature, take a look at the configuration files stored for each feature and/or each machine in meta-agl/templates and meta-agl-extra/templates. diff --git a/getting-started/troubleshooting.md b/getting-started/troubleshooting.md index a9dcaff..d3ad889 100644 --- a/getting-started/troubleshooting.md +++ b/getting-started/troubleshooting.md @@ -31,14 +31,14 @@ tar --extract --xz --numeric-owner --preserve-permissions --preserve-order --tot ## meta-rust -Due to a known bug in the upstream of meta-rust the Yocto/OE recipe for rust-cross may fail while building RVI SOTA Client or another application written in the Rust programming language. +Due to a known bug in the upstream of meta-rust the Yocto/OE recipe for rust-cross may fail while building RVI SOTA Client or another application written in the Rust programming language. Until the complete resolution of the issue the workaround is to disable all use of the CXX11 ABI by applying the following lines to **conf/local.conf**: ```bash LD_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" TARGET_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0" - + BUILD_CXXFLAGS_remove_pn-gcc-runtime = "-D_GLIBCXX_USE_CXX11_ABI=0" TARGET_CXXFLAGS_remove_pn-gcc-runtime = "-D_GLIBCXX_USE_CXX11_ABI=0" CXXFLAGS_remove_pn-gcc-runtime = "-D_GLIBCXX_USE_CXX11_ABI=0" ``` @@ -96,6 +96,7 @@ To disable IVI-Shell and revert to the "plain old" weston desktop, you can follo * Reboot your target and you should then be able to start apps on the standard weston screen using afm-util ## Adding media files to play with MediaPlayer + AGL include the default MediaPlayer sample app which can be used to play music. The `lightmediascanner.service` by default will search for media under the `/media` folder. So if you plug in any USB stick containing music, they would be recognized and showed in the playlist of the MediaPlayer app menu. The current supported format is OGG. Please convert your files to ogg to play with MediaPlayer. @@ -105,14 +106,18 @@ In case you want to store music in another place, modify the `/usr/lib/systemd/u If you don’t want to touch the ligthmediascanner service, you can also add a folder named "Music" under `/home/root` and put your music files there. ## Configuring the Audio hardware + AGL uses alsa as Audio configuration master. If the correct HW is not setup, the Audio system will fail to start what will also fails the demo Home Screen launch. You need to configure Audio in 2 places + * alsa * 4A HAL - + ### alsa + The file /etc/asound.conf (at the beginning) tells which hardware will be used. For example on an Intel Minnow or UP board your need to enter the following configuration. + ```bash pcm.Speakers { type dmix @@ -120,7 +125,9 @@ You need to configure Audio in 2 places ipc_key 1001 # ipc_key should be unique to each dmix } ``` + The correct value (here hw:PCH,3) can be obtained with the command: + ```bash aplay -l **** List of PLAYBACK Hardware Devices **** @@ -131,22 +138,28 @@ The correct value (here hw:PCH,3) can be obtained with the command: Subdevices: 1/1 Subdevice #0: subdevice #0 ``` -Using hw:PCH rather than hw:0 will avoid you many trouble.<br> -NOTE that the device number is not always 0. If you give no device number, alsa will assume device 0 (and the not the first available device), what can fail your configuration.<br> + +Using hw:PCH rather than hw:0 will avoid you many trouble.\ +NOTE that the device number is not always 0. If you give no device number, alsa will assume device 0 (and the not the first available device), what can fail your configuration.\ As the default is hw:0 (card 0 device 0), it will always fail on a Minnow or UP board. For info HW device for common configuration are: + * for USB Audio -> hw:AUDIO,0 * for Intel Analog output -> hw:PCH,0 (not available on Minnow, Joule, Up boards, ...) * for Intel via -> HDMI hw:PCH,3 * for MOST Unicens -> hw:ep016ch,0 ### 4A HAL configuration + AGL 4A needs to know which HAL shall be used. This is configured in the file: + ```bash /usr/agl-service-audio-4a/ahl-agl-service-audio-4a-config.json ``` + At the beginning of that file you will find the slected HAL (note the there is no correct default value). + ```bash { "version": "0.2.0", @@ -156,7 +169,9 @@ At the beginning of that file you will find the slected HAL (note the there is n "hal_list": ["intel-minnow"], "audio_roles": [ ``` + Here you see "intel-minnow" but common values are: + * Intel laptop -> intel-pc * Intel via HDMI -> intel-minnow * Renesas -> Rcar-M3 @@ -166,28 +181,30 @@ Here you see "intel-minnow" but common values are: More HAL can be found on Gerrit (search projects named as 4a-hal*) ## Installing the Map for the Navigation Application + While the Navigation App is installed with all other demo Apps at first boot, the Maps required to be installed manually. -### a) Method 1 on target download. +### a) Method 1 on target download 1. Install the new image on the target 2. boot a first time to install the demo Apps 3. via ssh or serial connection, execute the script - * /usr/AGL/apps/download_mapdata_uk.sh <br> + * /usr/AGL/apps/download_mapdata_uk.sh\ or - * /usr/AGL/apps/download_mapdata_jp.sh + * /usr/AGL/apps/download_mapdata_jp.sh ### b) At image creation Download on your build machine the desired maps and uncompress them on your target image before 1st boot. This method is quicker and does not require to have the network enabled on the target device. Map can be found here. - * http://agl.wismobi.com/data/japan_TR9/navi_data.tar.gz - * http://agl.wismobi.com/data/UnitedKingdom_TR9/navi_data_UK.tar.gz -Once that you have built your image on the SD card, uncompress the desired map in on the SD card at the position /YourMountPoint/var/mapdata <br> -(YourMountPoint will vary with your build system).<br> +* <http://agl.wismobi.com/data/japan_TR9/navi_data.tar.gz> +* <http://agl.wismobi.com/data/UnitedKingdom_TR9/navi_data_UK.tar.gz> + +Once that you have built your image on the SD card, uncompress the desired map in on the SD card at the position /YourMountPoint/var/mapdata\ +(YourMountPoint will vary with your build system). You can also use the script from the image to install the Mapdata on your SD card but there is little adavange in using that method. e.g. -* download_mapdata_jp.sh /YourMountPoint +* download_mapdata_jp.sh /YourMountPoint diff --git a/platform/working-on-the-master-branch.md b/platform/working-on-the-master-branch.md index 16dae32..31f0c04 100644 --- a/platform/working-on-the-master-branch.md +++ b/platform/working-on-the-master-branch.md @@ -3,14 +3,14 @@ ## Intro This is a quick howto for working on the 'master' branch. Working on the branch -is easy as we maintain all changes through gerrit.automotivelinux.org. +is easy as we maintain all changes through gerrit.automotivelinux.org. If you are unfamiliar with gerrit, please read these fine how-to pages were put together from the Mediawiki community here: <https://www.mediawiki.org/wiki/Gerrit/Tutorial> . This covers the basics very well. Of course we'll work with gerrit.automotivelinux.org instead so apply likewise. ## Installation of tools Install `git` with your distributions package manager. -A very useful tool is "git-review" (cmdline is then `git review`). +A very useful tool is "git-review" (cmdline is then `git review`). Install it from your distro or with `sudo pip install git-review`. ## Prerequisites @@ -58,7 +58,7 @@ Follow these steps to submit a change to the 'master' branch: ```bash git review ``` - + 1. (optional, but highly recommended!) Reset to gerrit/master ```bash @@ -78,7 +78,7 @@ Example for meta-agl: ```bash repo init -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo - repo sync + repo sync cd meta-agl/ git review -d 8233 ``` @@ -104,7 +104,7 @@ This will pull-down change 8233. You can now edit a file: ```bash vi meta-xyz/recipes-foo/bar/baz.bb -git commit -s --amend +git commit -s --amend ``` Don't forget a test build |