Yocto Build Release TI: Difference between revisions

From Variscite Wiki
No edit summary
Line 24: Line 24:
         libz1:i386 g++-multilib \
         libz1:i386 g++-multilib \
         git python3-distutils python3-apt
         git python3-distutils python3-apt
By default Ubuntu uses “dash” as the default shell for /bin/sh. You must reconfigure to use bash by running the following command:
  $ sudo dpkg-reconfigure dash
  $ sudo dpkg-reconfigure dash
Be sure to select “No” when you are asked to use dash as the default system shell.


= Install Toolchains to home directory =
= Install Toolchains to home directory =

Revision as of 18:46, 9 March 2023

Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release am62-yocto-dunfell-5.10.140_08.06.00.42-v1.0.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release

Introduction

This guide walks through the process for building Variscite's reference Yocto image from source code. It is derived from TI's guide Overview Building the SDK

Installing required packages

Please make sure your host PC is running Ubuntu 18.04/20.04/22.04 64-bit and is up to date:

 $ sudo apt-get update && sudo apt-get dist-upgrade

Then, install the following packages:

$ sudo dpkg --add-architecture i386
$ sudo apt update && sudo apt install build-essential autoconf \
       automake bison \
       flex libssl-dev bc u-boot-tools \
       python diffstat \
       texinfo gawk chrpath dos2unix \
       wget unzip socat doxygen libc6:i386 \
       libncurses5:i386 libstdc++6:i386 \
       libz1:i386 g++-multilib \
       git python3-distutils python3-apt

By default Ubuntu uses “dash” as the default shell for /bin/sh. You must reconfigure to use bash by running the following command:

$ sudo dpkg-reconfigure dash

Be sure to select “No” when you are asked to use dash as the default system shell.

Install Toolchains to home directory

$ cd ~
$ wget  && \
   tar -Jxvf  -C $HOME && \
   wget  && \
   tar -Jxvf  -C $HOME

Download Yocto and setup environment

Download the source code:

$ mkdir ~/var-ti-yocto && cd ~/var-ti-yocto
$ git clone  tisdk
$ cd tisdk
$ ./oe-layertool-setup.sh -f 

Next, setup the environment. The above commands are only required for the very first build setup: whenever restarting a newer build session (from a different terminal or in a different time), you can skip the full setup and just run:

$ cd build
$ . conf/setenv
$ export TOOLCHAIN_PATH_ARMV7=$HOME/ && \
     export TOOLCHAIN_PATH_ARMV8=$HOME/

Build GUI demo image

$ MACHINE=am62x-var-som bitbake var-default-image

Create a bootable SD card

The wic image fully supports booting from an SD Card. Use the command below to write it to an SD Card:

$ xzcat arago-tmp-external-arm-glibc/deploy/images/am62x-var-som/var-default-image-am62x-var-som.wic.xz | sudo dd of=/dev/sdX bs=1M && sync
NOTE: The wic image does not support all features booting from eMMC. For example, /etc/fw_env.config is configured for the SD Card (/dev/mmcblk1)

Create a Recovery SD card

As mentioned above, the wic image only supports booting from an SD card. To flash an image to eMMC, Variscite provides an image var-recovery-sd-image, which inherits var-default-image and adds the following files needed for installing to eMMC:

/usr/bin/install_yocto.sh
/usr/bin/echos.sh
/opt/images/Yocto/
/opt/images/Yocto/boot
/opt/images/Yocto/boot/u-boot.img
/opt/images/Yocto/boot/tiboot3.bin
/opt/images/Yocto/boot/wificfg
/opt/images/Yocto/boot/tispl.bin
/opt/images/Yocto/boot/uEnv.txt
/opt/images/Yocto/rootfs.tar.xz

Build the image:

$ MACHINE=am62x-var-som bitbake var-recovery-sd-image

Write it to an SD Card:

$ xzcat arago-tmp-external-arm-glibc/deploy/images/am62x-var-som/var-recovery-sd-image-am62x-var-som.wic.xz | sudo dd of=/dev/sdX bs=1M && sync

Note: Some SD card duplicator machines do not support 64-bit filesystems. To build a recovery SD card image with 32-bit filesystems, add MKE2FS_NO_64="y" to conf/local.conf and rebuild the image:

$ echo 'KE2FS_NO_64="y"' >> conf/local.conf