= Yocto on Venice SBCs Yocto is a Linux distribution. 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. == 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 [https://www.nxp.com/design/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX 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. [wiki:venice/ubuntu Link Here] Download the Yocto demo binary [http://dev.gateworks.com/venice/images/venice-yocto-kirkstone-sample-full-image.ext4.gz here] and place 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 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 }}}