= Yocto on Venice SBCs [[PageOutline]] Yocto is a Linux distribution that was widely used on Ventana SBCs. Gateworks Yocto wiki page is located [wiki:Yocto 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 [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 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. == Witekio Yocto Services If you’re looking to create a custom Yocto distribution and would like to outsource the development, Witekio, an Avnet company, and Gateworks software partner, offer a host of Yocto services that can be tailored for Gateworks hardware including custom development and packaged frameworks. Witekio is a listed Yocto Project consultancy partner and has ten years of experience creating yocto distributions for a range of industries including medical, industrial, EV, home appliances and more. Whether it's optimizing performance, ensuring software compliance, or streamlining development cycles, Witekio can help. You can see more about the Yocto services they offer: [https://witekio.com/custom-embedded-software-development/embedded-software-development-services/yocto-embedded-development-services/ Yocto Embedded Development Services - Witekio ]