This repository contains two Yocto layers designed to support Arduino hardware platforms:
This layer provides Board Support Package (BSP) configurations for Arduino hardware platforms. It includes:
- Device tree overlays.
- Kernel module recipes for Arduino-supported peripherals.
- U-Boot configurations for Arduino boards.
This layer provides specific customizations targeting the Linux Micro Platform (LMP) distribution from Foundries.io (Qualcomm). It includes:
- Custom configurations for LMP.
- Recipes for integrating Arduino-specific features with LMP.
- Initialize and sync the Yocto manifest:
repo init -u https://source.foundries.io/factories/arduino/lmp-manifest.git -m arduino.xml -b devel repo sync -j1 --fail-fast
- Build the Docker image for the Yocto environment:
cd .repo/manifests docker build -t yocto-lmp-v93 . cd ../..
- Set up the Docker environment:
docker run -it -u $UID -v $PWD:/workdir -w /workdir --name yocto-lmp yocto-lmp-v93 bash
- Configure the build environment for
mfgtool-files
:DISTRO=lmp-mfgtool MACHINE=portenta-x9 . setup-environment echo "ACCEPT_FSL_EULA = \"1\"" >> conf/local.conf echo "MFGTOOL_FLASH_IMAGE = \"lmp-devel-arduino-image\"" >> conf/local.conf
- Build the
mfgtool-files
:bitbake mfgtool-files
- Configure the build environment for the image:
DISTRO=lmp-base-xwayland MACHINE=portenta-x9 . setup-environment echo "ACCEPT_FSL_EULA = \"1\"" >> conf/local.conf
- Build the image:
bitbake lmp-devel-arduino-image
lmp-devel-arduino-image
lmp-factory-image
- Initialize and sync the Yocto manifest:
repo init -u https://github.com/nxp-imx/imx-manifest.git -m imx-6.6.3-1.0.0.xml -b imx-linux-nanbield repo sync -j1 --fail-fast
- Clone this repository into the
sources
directory created by the manifest:cd sources git clone https://github.com/Arduino/meta-arduino.git cd meta-arduino && git checkout nanbield
- Set up the Docker environment:
docker run -it -u $UID -v $PWD:/workdir -w /workdir --name yocto-nxp arduino/yocto-lmp-v93 bash # First time only docker start yocto-nxp # Every login, skip first time cd ~/yocto/nxp && docker exec -it yocto-nxp bash # Every login, skip first time
- Configure the build environment:
MACHINE=portenta-x9 DISTRO=fsl-imx-xwayland EULA=yes source ./imx-setup-release.sh -b bld-xwayland # First time only
- Add the layers to your
bblayers.conf
file:echo 'BBLAYERS += "${BSPDIR}/sources/meta-arduino/meta-arduino-bsp"' >> conf/bblayers.conf
- Customize your
local.conf
file to optimize the build environment:BB_NUMBER_PARSE_THREADS = "4" BB_NUMBER_THREADS = "4" PARALLEL_MAKE = "-j 4"
- Portenta X8
- Portenta X9
- Raspberry Pi CM4
- System Electronics Astrial
Run the following commands to build an image:
source setup-environment
bitbake <image-name>
Replace <image-name>
with the desired image recipe, such as arduino-console-image
.
Contributions are welcome! Please submit pull requests or open issues for any bugs or feature requests.
This project is licensed under the GPL-2.0+.