User Tools

Site Tools


agl-distro:agl-raspberrypi

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
agl-distro:agl-raspberrypi [2017/11/28 12:38]
leonanavi [Download Latest Stable Release]
agl-distro:agl-raspberrypi [2022/10/07 19:37] (current)
vinodahuja
Line 1: Line 1:
 ====== AGL for Raspberry Pi ====== ====== AGL for Raspberry Pi ======
  
-AGL has been initially ported ​to Raspberry Pi 2 and 3 by Leon Anavi thanks to the existing knowledge ​for enabling hardware graphics acceleration in Wayland and Weston from the Tizen Project and GENIVI Development Platform.+Please refer to AGL docs for setting up [[https://​docs.automotivelinux.org/​en/​needlefish/#​0_Getting_Started/​2_Building_AGL_Image/​5_2_Raspberry_Pi_4/​ | AGL on Raspberry Pi]]
  
-Follow the [[agl-distro:​source-code|general steps for building AGL]], download master branch and set **raspberrypi2** or **raspberrypi3** as a machine depending on the version and the model of your Raspberry Pi. 
- 
-====== Introduction:​ Building target AGL image with Yocto project ====== 
- 
-The standard Yocto process is made of the following steps: 
- 
-  * Setting up your operating system. 
-  * Setting up the build environment for R-Car BSP. 
-  * Downloading the proprietary drivers and installing them in the build environment (if needed). 
-  * Build the image. 
-  * Boot using SD-CARD. 
-    * Create an SD-CARD. 
-    * Configure to boot on SD-CARD. 
-    * Copy the image to the SD-CARD. 
-    * Boot the board on it. 
- 
-For convenience,​ the resulting development images are made available [[https://​download.automotivelinux.org/​AGL/​snapshots/​master/​latest/​|Here]] 
- 
-If you want to bypass the build phase and quick boot the board, you can download the image tarball and the kernel then follow the installation procedure. 
- 
-===== Setting up your operating system ===== 
- 
-The very first step is to ensure that your system can run the build system of the Yocto Project. 
- 
-**Important**:​ it only runs on Linux 
- 
-  * 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. 
- 
-Reference data for configuring your system can be found in the Yocto documentation [[http://​www.yoctoproject.org/​docs/​2.0/​ref-manual/​ref-manual.html#​detailed-supported-distros|Here]] 
- 
-Here after an extract of this documentation for most common Linux distributions:​ 
- 
-  * The build system should be able to run on any modern distributions that has the following versions for: 
-    * Python 
-    * Git 1.7.8 or greater 
-    * tar 1.24 or greater 
-    * GCC, … 
- 
-=== Note: === 
- 
-  * Python 2.7.3 or greater excluding Python 3.x, which is not supported. 
- 
-==== Ubuntu and Debian ==== 
- 
-The essential and graphical support packages you need for a supported Ubuntu or Debian distribution are shown in the following command: 
- 
-<​code>​ 
-sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ 
-     ​build-essential chrpath socat libsdl1.2-dev xterm cpio curl 
-</​code>​ 
-=== Note: === 
- 
-  * Also note that for this tutorial, the utility '​curl'​ has been added to the list of packages to install. 
- 
-==== Fedora ==== 
- 
-The essential and graphical packages you need for a supported Fedora distribution are shown in the following command: 
- 
-<​code>​ 
-sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ 
-     ​diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ 
-     ​ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \ 
-     ​SDL-devel xterm curl 
-</​code>​ 
-==== OpenSUSE ==== 
- 
-The essential and graphical packages you need for a supported OpenSUSE distribution are shown in the following command: 
- 
-<​code>​ 
-sudo zypper install python gcc gcc-c++ git chrpath make wget python-xml \ 
-     ​diffstat texinfo python-curses patch socat libSDL-devel xterm curl 
-</​code>​ 
-==== CentOS ==== 
- 
-The essential and graphical packages you need for a supported CentOS distribution are shown in the following command: 
- 
-<​code>​ 
-sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ 
-     ​diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ 
-     socat SDL-devel xterm curl 
-</​code>​ 
-====== Download AGL Source Code ====== 
- 
-The AGL source code and Yocto layers are maintained on the AGL Gerrit server.\\ 
-For information on how to create accounts for gerrit see [[start/​getting-started|Getting Started with AGL]]. 
- 
-===== Setting up the build environment ===== 
- 
-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”:​ 
- 
-<​code>​ 
-export AGL_TOP=$HOME/​workspace_agl 
-mkdir -p $AGL_TOP 
-</​code>​ 
-===== Prepare Repo Tool ===== 
- 
-AGL Uses the '​repo'​ tool for managing repositories.\\ 
-You need to setup layers of AGL.\\ 
-You can use the commands below to prepare Repo: 
- 
-<​code>​ 
-mkdir -p ~/bin 
-export PATH=~/​bin:​$PATH 
-curl https://​storage.googleapis.com/​git-repo-downloads/​repo > ~/bin/repo 
-chmod a+x ~/bin/repo 
-</​code>​ 
-=== Note: === 
- 
-  * More information about the tool '​repo'​ [[https://​source.android.com/​source/​using-repo.html|Here]] 
- 
-===== Download source ===== 
- 
-You can choose your source release 
- 
-==== Download Latest Stable Release ==== 
- 
-To download all layers for the for the latest stable release, dab 4.0.2: 
- 
-<​code>​ 
-cd $AGL_TOP 
-repo init -b dab -m dab_4.0.2.xml -u https://​gerrit.automotivelinux.org/​gerrit/​AGL/​AGL-repo 
-repo sync 
-</​code>​ 
-==== Download Latest on Chinook 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: 
- 
-<​code>​ 
-cd $AGL_TOP 
-repo init -b chinook -u https://​gerrit.automotivelinux.org/​gerrit/​AGL/​AGL-repo 
-repo sync 
-</​code>​ 
-==== Download Master Branch ==== 
- 
-To download all code from master: 
- 
-<​code>​ 
-cd $AGL_TOP 
-repo init -u https://​gerrit.automotivelinux.org/​gerrit/​AGL/​AGL-repo 
-repo sync 
-</​code>​ 
-===== Set up Build Environment Info ===== 
- 
-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. 
- 
-<​code>​ 
-cd $AGL_TOP 
-source meta-agl/​scripts/​aglsetup.sh -h 
-</​code>​ 
-Once you run aglsetup.sh with your desired parameters, you can build any target desired. 
- 
-===== Features supported by aglsetup ===== 
- 
-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) 
-  * in **meta-agl-devel** 
-    * **agl-oem-extra-libs**:​ 
-    * **agl-renesas-kernel**:​ 
-  * 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) 
- 
-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. 
- 
-====== Building the AGL Demo Platform for Raspberry Pi ====== 
- 
-===== Raspberry Pi 3 ===== 
- 
-To build AGL demo platform for Raspberry Pi 3 use machine **raspberrypi3** and feature **agl-demo**:​ 
- 
-<​code>​ 
-source meta-agl/​scripts/​aglsetup.sh -m raspberrypi3 agl-demo agl-netboot agl-appfw-smack 
-bitbake agl-demo-platform 
-</​code>​ 
-===== Raspberry Pi 2 ===== 
- 
-To build AGL demo platform for Raspberry Pi 2 use machine **raspberrypi2** and feature **agl-demo**:​ 
- 
-<​code>​ 
-source meta-agl/​scripts/​aglsetup.sh -m raspberrypi2 agl-demo agl-netboot agl-appfw-smack 
-bitbake agl-demo-platform 
-</​code>​ 
-====== 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: 
- 
-  * Connect your sdcard in your linux machine. 
-  * Copy output image from build machine to linux machine that is connected your sdcard. (Often, those are same machines) 
-  * Output Image location in build machine for Raspberry Pi 2: //​tmp/​deploy/​images/​raspberrypi2/​agl-demo-platform-raspberrypi2.rpi-sdimg//​ 
-  * Output Image location in build machine for Raspberry Pi 3: //​tmp/​deploy/​images/​raspberrypi3/​agl-demo-platform-raspberrypi3.rpi-sdimg//​ 
-  * Unmount the microSD card and after that flash output image to it card with root user: 
- 
-//Note: the sdimage files can also be named rpi-sdimg-ota in case you have the **"​agl-sota"​** feature enabled// 
- 
-<​code>​ 
-sudo umount [sdcard device] 
-sudo dd if=[output image] of=[sdcard device] bs=4M 
-sync 
-</​code>​ 
-  * Plug your microSD card into Raspberry Pi 2 or 3 and boot the board 
- 
-====== Troubleshooting ====== 
- 
-===== Extended attributes MUST be copied ===== 
- 
-**IMPORTANT,​ The extended attribute set during image construction MUST be copied to the SD card.** 
- 
-When using tar to create the SDcard, it is a common error to not copy the extended attributes. Find below instruction for using tar. 
- 
-Verify that **tar** version is 1.28 or newer: 
- 
-<​code>​ 
-tar --version 
-tar (GNU tar) 1.28 
-[snip] 
-</​code>​ 
-If it is not the case, a native up-to-date version of tar is also generated while building AGL distribution:​ 
- 
-<​code>​ 
-tmp/​sysroots/​x86_64-linux/​usr/​bin/​tar-native/​tar --version 
-tar (GNU tar) 1.28 
-[snip] 
-</​code>​ 
-To copy Automotive Grade Linux (AGL) files AND EXTENDED ATRIBUTES onto the SDcard using tar the command is: 
- 
-<​code>​ 
-tar --extract --numeric-owner --preserve-permissions --preserve-order --totals \ 
-           ​--xattrs-include='​*'​ --directory=DESTINATION_DIRECTORY --file=agl-demo-platform.....tar.bz2 
-</​code>​ 
-===== 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.\\ 
-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**:​ 
- 
-<​code>​ 
-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"​ 
-</​code>​ 
-===== Disabling Homescreen in AGL 3.0.x CC release ===== 
- 
-**Problem**:​ new installed applications are not available on Homescreen and even if started manually through afm-util, the application starts but no surface appears. 
- 
-**Answer**: this is due to IVI-Shell integration with Qt and Homescreen. 
- 
-To disable IVI-Shell and revert to the "plain old" weston desktop, you can follow the 4 steps below: 
- 
-  * Modify ///​etc/​xdg/​weston/​weston.ini//​ and comment the line mentioning IVI-shell. For example on Porter board: 
- 
-<​code>​ 
-           ​[core] 
-           ​backend=drm-backend.so 
-           #​shell=ivi-shell.so 
-           ... 
-</​code>​ 
-  * modify ///​usr/​lib/​systemd/​user/​afm-user-daemon.service//​ and comment the line specifying QT Wayland backend: 
- 
-<​code>​ 
-           ... 
-           #​Environment=QT_WAYLAND_SHELL_INTEGRATION=ivi-shell 
-           ... 
-</​code>​ 
-  * disable Homescreen services: 
- 
-<​code>​ 
-           # systemctl disable HomeScreenAppFrameworkBinderAGL.service 
-           # systemctl disable HomeScreen.service 
-           # systemctl disable InputEventManager.service 
-           # systemctl disable WindowManager.service 
-</​code>​ 
-  * Reboot your target and you should then be able to start apps on the standard weston screen using afm-util 
- 
-====== Commercial Licensed Packages ====== 
- 
-Append to following lines to **conf/​local.conf** to include libomxil under a commercial license to your build: 
- 
-<​code>​ 
-# For libomxil 
-LICENSE_FLAGS_WHITELIST = "​commercial"​ 
- 
-IMAGE_INSTALL_append = " libomxil"​ 
-</​code>​ 
-====== Raspberry Pi Touchscreen with Rotation ====== 
- 
-If you have Raspberry Pi official 7" touchscreen connected, you can rotate it with these lines in /​etc/​xdg/​weston/​weston.ini 
- 
-<​code>​ 
-root@raspberrypi3:/​etc/​xdg/​weston#​ cat weston.ini 
-[core] 
-backend=drm-backend.so 
-shell=desktop-shell.so 
- 
-[shell] 
-locking=true 
-# Uncomment below to hide panel 
-#​panel-location=none 
- 
-[launcher] 
-icon=/​usr/​share/​weston/​terminal.png 
-path=/​usr/​bin/​weston-terminal 
- 
-[launcher] 
-icon=/​usr/​share/​weston/​icon_flower.png 
-path=/​usr/​bin/​weston-flower 
- 
-[output] 
-name=DSI-1 
-transform=270 
-</​code>​ 
-====== Debugging ====== 
- 
-It is possible to debug AGL images on Raspberry Pi using 3.3V USB to serial cable, such as [[https://​www.olimex.com/​Products/​Components/​Cables/​USB-Serial-Cable/​USB-Serial-Cable-F/​|Olimex USB-Serial-Cable-F]],​ connected to the UART of the board. Follow the instructions below to connect a cable to the board (do it on your own risk, no warranty is provided): 
- 
-  * Connect the BLUE wire if you are using Olimex USB-Serial-Cable-F to pin 6 of Raspberry Pi, 
-  * Connect the RX line of the cable (GREEN wire if you are using Olimex USB-Serial-Cable-F) to pin 8 (TX line) of Raspberry Pi, 
-  * Connect the TX line of the cable (RED wire if you are using Olimex USB-Serial-Cable-F) to pin 10 (RX line) of Raspberry Pi. 
- 
-{{:​agl-distro/​RaspberryPi2-ModelB-debug-serial-cable.jpg| Olimex USB-Serial-Cable-F attached to Raspberry PI 2 for debugging through the serial console}} 
- 
-  * Plug the USB connector of the cable to your computer and use your favorite tool for serial communication,​ for example on Ubuntu and other Linux distributions you may use screen: 
- 
-<​code>​ 
-sudo screen /​dev/​ttyUSB0 115200 
-</​code>​ 
-Pay attention that the colors of the cable may vary depending on the vendor. If you have USB console cable from Adafruit please have a look [[https://​learn.adafruit.com/​adafruits-raspberry-pi-lesson-5-using-a-console-cable/​connect-the-lead|here]]. 
  
agl-distro/agl-raspberrypi.1511872685.txt.gz · Last modified: 2017/11/28 12:38 by leonanavi