wiki:venice/yocto

Version 2 (modified by Ryan Erbstoesser, 14 months ago) ( diff )

add disclaimer and email Gateworks for prebuilt

Yocto on Venice SBCs

Yocto is a Linux distribution that was widely used on Ventana SBCs. Gateworks Yocto wiki page is located here

Gateworks does not formally include Yocto in the Venice BSP, but it is possible to use the NXP Yocto root filesystem with the Gateworks kernel to boot Yocto on a Venice SBC as a sample.

Demo / Sample Pre-Built Binary

To install a pre-built binary of Yocto on the Venice SBC as a demo, please use the following binary and instructions.

The Gateworks demo binary includes the NXP Linux 5.15.71_2.2.0 Yocto 4.0 Kirkstone EVK / RootFS for the i.MX8M Mini and the Gateworks 5.15 kernel.

NOTE, please first install a full Ubuntu image as a base on the Venice SBC to get the bootloader and everything setup. Link Here

Download the full Yocto demo binary by emailing Gateworks support and placing it on TFTP server.

Once Ubuntu is booting, then work on loading the Yocto demo binary through TFTP. Note that the binary is quite large at 1.2GB, and thus a Venice SBC with 4GB of DRAM is required to load over the network. If using a 1GB DRAM SBC, it will be required to load from removable storage.

setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.2
setenv image venice-yocto-kirkstone-sample-full-image.ext4.gz
run update_rootfs

After the transfer is complete, reboot the board into Yocto.

Example output once booted:

root@localhost:~# uname -a
Linux localhost 5.15.15-gc3a6ad5a1338 #1 SMP Thu Dec 29 20:29:26 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
root@localhost:~# cat /etc/os-release 
ID=fsl-imx-xwayland
NAME="NXP i.MX Release Distro"
VERSION="5.15-kirkstone (kirkstone)"
VERSION_ID=5.15-kirkstone
PRETTY_NAME="NXP i.MX Release Distro 5.15-kirkstone (kirkstone)"
DISTRO_CODENAME="kirkstone"

Assembling Binary

If trying to use a different rootfs or different kernel, use the following instructions as a guideline to create a custom rootfs image file:

# Get a root filesystem from NXP's Linux BSP download page: (REQUIRES NXP LOGIN)
# For standard Venice SBCs, use the i.MX 8M Mini EVK download link
# Extract the download to reveal all the pieces
https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX

# get mkfs tool and make it executable
wget https://raw.githubusercontent.com/Gateworks/bsp-venice/master/mkfs
chmod +x mkfs

# get Gateworks Linux kernel
wget http://dev.gateworks.com/venice/kernel/linux-venice.tar.xz

# build ext4 fs using the imx-image-full-imx8mmevk.tar.zst file and Gateworks kernel
sudo ./mkfs ext4 imx-image-full.ext4 4096M LF_v5.15.71-2.2.0_images_IMX8MMEVK/imx-image-full-imx8mmevk.tar.zst linux-venice.tar.xz

# get bootscript
wget https://raw.githubusercontent.com/Gateworks/bsp-venice/master/boot.scr -O boot.scr.txt

# create uImage version of boots cript
mkimage -A arm64 -T script -C none -d boot.scr.txt boot.scr

# inject it into the ext4fs
sudo e2cp -G 0 -O 0 boot.scr imx-image-full.ext4:/boot/

# delete the default /etc/hostname which contains 'imx8mmevk'
sudo e2rm imx-image-full.ext4:/etc/hostname

# you can either mount the ext4 locally and continue to manipulate it,
or use e2cp/e2mkdir/e2rm as I've done above; ie /etc/issue and
/etc/issuenet contain 'NXP i.MX Release Distro 5.15-krikstone'

# compress it to be used on Gateworks SBC
gzip imx-image-full.ext4

#Transfer imx-image-full.ext4 to a TFTP server and use the update_rootfs script to flash it toe the Venice SBC as shown in the instructions above

Next Steps

Gateworks simply provided a sample demo for testing purposes. Using Yocto for a full production environment with the ability to customize and update is at the sole discretion of the user.

Note: See TracWiki for help on using the wiki.