Template:Yocto Build Release TI
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 64-bit and is up to date:
$ sudo apt-get update && sudo apt-get dist-upgrade
For Ubuntu 18.04/20.04 64-bit:
$ 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 $ cd build $ git clone https://git.ti.com/git/security-development-tools/core-secdev-k3.git -b master
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/ && \ export TI_SECURE_DEV_PKG_K3=`pwd`/core-secdev-k3
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:
$ zstdcat arago-tmp-external-arm-glibc/deploy/images/am62x-var-som/var-default-image-am62x-var-som.wic.zst | sudo dd of=/dev/sdX bs=1M && sync
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.zst
Build the image:
$ MACHINE=am62x-var-som bitbake var-recovery-sd-image
Write it to an SD Card:
$ zstdcat arago-tmp-external-arm-glibc/deploy/images/am62x-var-som/var-recovery-sd-image-am62x-var-som.wic.zst | 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