VAR-SOM-AM43 Yocto Krogoth GS

From Variscite Wiki
VAR-SOM-AM43 Yocto 2.1 (Krogoth) Distribution User's Guide

About this Manual

This document describes how to install Variscite's Yocto release for the VAR-SOM-AM43.

The Yocto distribution provides a fundamental software platform for development, deployment and execution on VAR-SOM-AM43. It abstracts the functionality provided by the hardware.

In this context, the document contains instructions to:

  • Install the release on a development machine.
  • Build the sources included in this release.
  • Instaling the binaries on the VAR-SOM-AM43.
  • Booting the VAR-SOM-AM43.

Installation

Prerequisites

Before starting the installation, make sure below system requirements are met:


The Linux host is used for the following:

  • Recompiling U-Boot / kernel.
  • Hosting the NFS server to boot the EVM with NFS as root filesystem.


Either of Windows or Linux host can be used for:

  • Hosting the TFTP server required for downloading the kernel and file-system images from U-Boot using Ethernet.
  • Running a serial console terminal application


Building the Yocto distribution via Bitbake will produce a complete set of downloaded source code + binaries for each component:

  • Yocto build environment
  • Downloaded Linux kernel source code + build kernel binaries (DTB and zImage) for VAR-SOM-AM43.
  • Downloaded U-Boot source code + build U-boot binaries (MLO and U-boot) for VAR-SOM-AM43.
  • Linux root file-system.

Install the Linaro toolchain

$ wget --no-check-certificate https://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/arm-linux-gnueabihf/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz
$ sudo tar xf gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf.tar.xz -C /opt

Install development tools

$ sudo apt-get install git build-essential diffstat texinfo gawk chrpath gcc-multilib wget socat libsdl1.2-dev mtd-utils dos2unix

Download TI's Yocto Krogoth Distribution

$ mkdir ~/yocto_varsomam43
$ cd ~/yocto_varsomam43
$ git clone git://arago-project.org/git/projects/oe-layersetup.git tisdk

Downloading VAR-SOM-AM43 Support

Download the VAR-SOM-AM43 Yocto support installation from github:

$ mkdir ~/yocto_varsomam43/tisdk/sources
$ cd ~/yocto_varsomam43/tisdk/sources
$ git clone https://github.com/varigit/meta-variscite-amx3 -b krogoth

Downloading the YOCTO Krogoth 2.1 configuration

Download the YOCTO Krogoth 2.1 sources as follows:

$ cd ~/yocto_varsomam43/tisdk
$ ./oe-layertool-setup.sh -f sources/meta-variscite-amx3/conf/var-som-amx3_sdk-03.00.00-config.txt

local.conf customizations

Edit you local.conf file:

$ cd ~/yocto_varsomam43/tisdk/build
$ gedit conf/local.conf 

Change your parallel build and download directory:

Parallel build

Set the build parameters to fully utilize your host machine BB_NUMBER_THREADS = '4'
PARALLEL_MAKE = '-j 6' BB_NUMBER_THREADS should be your host machine's number of threads minus 2 or same. PARALLEL_MAKE should be the number of threads your host machine has plus two.

Download directory

Recommended to save download time and space. DL_DIR = "/home/<uname>/yocto_dl"

Building the VAR-SOM-AM43 Yocto image

First, change directory to the build directory of Yocto:

$ cd ~/yocto_varsomam43/tisdk/build

The developer can build the tisdk-rootfs-image image as follows:

$ export PATH=/opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin:$PATH
$ . conf/setenv
$ MACHINE=varsomam43 bitbake tisdk-rootfs-image

After the image was built, all images will be located in: ~/yocto_varsomam43/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images/varsomam43

Build Results

Image Name
Description
zImage Compressed kernel image
zImage-var-som-am43.dtb The VAR-SOM-AM43 kernel device tree
MLO The MLO is pre-u-boot SW component, required for DDR initialization
u-boot.img U-Boot bootloader
tisdk-rootfs-image-varsomam43.tar.gz Compressed rootfs tarball


If the rootfs directory already exists - Please make sure to erase all its content before extracting a new rootfs image into it:

$ sudo rm -rf ~/yocto_varsomam43/rootfs/*

Extract the rootfs as follows:

 $ sudo mkdir ~/yocto_varsomam43/rootfs
 $ sudo tar xvf ./arago-tmp-external-linaro-toolchain/deploy/images/varsomam43/tisdk-rootfs-image-varsomam43.tar.gz -C ~/yocto_varsomam43/rootfs

This creates a rootfs directory for the Yocto / VAR-SOM-AM43 build.

Create a bootable SD-Card

The below procedure will result in a bootable SD-Card:

  • SD-Card will be partitioned into 2 partitions:
    • FAT32 Boot partition: includes MLO and U-boot required for initial boot
    • ext3 file system: includes zImage, kernel device tree and a complete rootfs
  • All NAND flash binaries will be copied to rootfs under /opt/TISDK directory, for NAND Flash burning if required.

Please follow the below steps:

  • Insert a 4GB+ SD-Card to host computer
  • Run dmesg command to identify which /dev/sdX was created
  • To generate the SD-Card - Run script (and choose the correct /dev/sdX of the 4GB SD-Card inserted):
$ cd ~/yocto_varsomam43/tisdk/sources/meta-variscite-amx3/utils
$ sudo ./create-sdcard-am43.sh ~/yocto_varsomam43/tisdk ~/yocto_varsomam43/rootfs/

Boot

The Kernel and root the file-system can be booted either from NAND or SD-Card.

Following sections describe various kernel boot options possible.


NOTE:
Pleaes make sure your target board debug serial is connected to host PC with hyperterminal, as described in the quick-start guide.


Boot from MMC/SD

For creating a bootable SD , follow instructions on Creating a bootable SD-Card

To boot the bootable SD-Card, follow the steps below:

  • Power-off board
  • Insert the SD card into the SD-Card slot of the custom board
  • Press and hold the boot select switch while powering ON the board. Booting without pressing the boot-select button, CPU will boot from NAND-Flash. While currently our NAND is either empty, or has older revisions.
  • Login as root (no password)

Boot from NAND

Push SW1 to NAND mode (Off), and SW2 to non-eMMC (off)
Make sure NAND-Flash binaries were flashed to NAND-Flash : NAND Flash Burning

Flash binaries to NAND

Please refer to : NAND Flash Burning

Pre-built NAND Recovery SD-Card

Variscite provides a sample bootable NAND-recovery rescue SD-Card
Image can be downloaded and mounted on SD-Card from Variscite's FTP, please refer to :
VAR-SOM-AM43 Yocto NAND Recovery

Build U-Boot out of yocto tree

Please refer to : Build u-boot out of yocto tree

Building Linux kernel out-of-yocto tree

For manually building the Linux kernel, out of the yocto build system, please refer to :
Build linux kernel out of yocto tree


Out-of-tree Kernel Modules

NOTE:
Some drivers like the SGX and WLAN drivers are delivered as modules outside of the kernel tree. These drivers binaries are already included in the pre-built root file-systems provided by Variscite.

Support carrier boards without a Touch screen

In order to skip the Touch screen calibration on the first boot on carrier boards without a Touch screen -

Please insert the SD-Card to a Linux machine (or VM) after creating the SD-Card and type the following command to disable touch screen calibration at the first boot:

$ sudo touch /media/boot/ws-calibrate.rules