meta-atmel
. The source for this layer are hosted on Linux4SAM GitHub account: https://github.com/linux4sam/meta-atmel
git-lfs
to the package requirement list from whichever Linux distribution you use.
For instance, on Ubuntu or debian, these packages need to be installed on your development host:
sudo apt-get install gawk wget git-core git-lfs diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ pylint3 xterm
meta-atmel
layer. This file in the meta-atmel layer repository must be considered as the reference and the following copy can be out-of-sync.
starting with Linux4SAM 2021.04
release, the meta-atmel
layer supports Yocto templates, so make sure you create a new build environment using oe-init-build-env
This layer provides support for Microchip microprocessors (aka AT91) ==================================================================== For more information about the Microchip MPU product line see: http://www.microchip.com/design-centers/32-bit-mpus Linux & Open Source on Microchip microprocessors: http://www.linux4sam.org Supported SoCs / MACHINE names ============================== Note that most of the machine names below, have a SD Card variant that can be built by adding an "-sd" suffix to the machine name. - SAMA5D2 product family / sama5d2-xplained, sama5d2-xplained-emmc, sama5d27-som1-ek-sd, sama5d27-som1-ek-optee-sd, sama5d2-ptc-ek, sama5d2-icp, sama5d27-wlsom1-ek-sd, sama5d29-curiosity-sd - SAMA5D4 product family / sama5d4ek, sama5d4-xplained - SAMA5D3 product family / sama5d3xek, sama5d3-xplained - AT91SAM9x5 product family (AT91SAM9G15, AT91SAM9G25, AT91SAM9X25, AT91SAM9G35 and AT91SAM9X35) / at91sam9x5ek - AT91SAM9RL / at91sam9rlek - AT91SAM9G45 / at91sam9m10g45ek - SAM9X60 / sam9x60ek, sam9x60-curiosity - SAMA7G5 / sama7g5ek-sd, sama7g5ek-emmc, sama7g5ek-ospi - SAM9X75 / sam9x75eb, sam9x75-curiosity Sources ======= - meta-atmel URI: https://github.com/linux4sam/meta-atmel.git Branch: kirkstone Tag:linux4microchip-2024.04 Dependencies ============ This Layer depends on : - poky URI: https://git.yoctoproject.org/poky Branch: kirkstone Tag:yocto-4.0.17 - meta-openembedded URI: https://git.openembedded.org/meta-openembedded Branch: kirkstone Tag/commit:8bb16533532b6abc2eded7d9961ab2a108fd7a5b - meta-arm (for optee components) URI: https://git.yoctoproject.org/meta-arm Branch: kirkstone Tag:yocto-4.0.2 Build procedure =============== 0/ Create a directory mkdir my_dir cd my_dir 1/ Clone yocto/poky git repository with the proper branch ready git clone https://git.yoctoproject.org/poky && cd poky && \ git checkout -b kirkstone yocto-4.0.17 && cd - 2/ Clone meta-openembedded git repository with the proper branch ready git clone git://git.openembedded.org/meta-openembedded && \ cd meta-openembedded && git checkout -b kirkstone 8bb165 && cd - 3/ Clone meta-atmel layer with the proper branch ready git clone https://github.com/linux4sam/meta-atmel.git git checkout -b kirkstone linux4microchip-2024.04 && cd - 4/ Clone meta-arm layer with the proper branch ready git clone https://git.yoctoproject.org/meta-arm && cd meta-arm && \ git checkout -b kirkstone yocto-4.0.2 && cd - 5/ Enter the poky directory to configure the build system and start the build process cd poky If not created yet, add a new "build-microchip" directory: mkdir build-microchip Else, if it's the first time you use Yocto Project templates, and if the build-microchip directory remains from a previous use, we advise you to start from a fresh directory. Keep your build-microchip/conf/local.conf file for reference. 6/ Inside the .templateconf file, you will need to modify the TEMPLATECONF variable to match the path to the meta-atmel layer "conf" directory: export TEMPLATECONF=${TEMPLATECONF:-../meta-atmel/conf} 7/ Initialize build directory source oe-init-build-env build-microchip 8/ To build a small image provided by Yocto Project: [MACHINE=] bitbake core-image-minimal Example for sama5d2-xplained-sd SD card image: MACHINE=sama5d2-xplained-sd bitbake core-image-minimal 9/ To build the microchip image with no graphics support: [MACHINE= ] bitbake microchip-headless-image Example for sama5d2-xplained-sd SD card image: MACHINE=sama5d2-xplained-sd bitbake microchip-headless-image 10/ To build the microchip image with graphics support (EGT): [MACHINE= ] bitbake microchip-graphics-image Example for sama5d2-xplained-sd SD card image: MACHINE=sama5d2-xplained-sd bitbake microchip-graphics-image Typical bitbake output ====================== Build Configuration: BB_VERSION = "2.0.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "sam9x75-curiosity-sd" DISTRO = "poky-atmel" DISTRO_VERSION = "4.0.17" TUNE_FEATURES = "arm armv5 thumb dsp" TARGET_FPU = "soft" meta meta-poky meta-yocto-bsp = "heads/kirkstone-4.0.17:6d1a878bbf24c66f7186b270f823fcdf82e35383" meta-oe meta-networking meta-webserver meta-python meta-initramfs = "8bb16533532b6abc2eded7d9961ab2a108fd7a5b:8bb16533532b6abc2eded7d9961ab2a108fd7a5b" meta-atmel = "heads/linux4microchip-2024.04-rc2:fd6500c866002b78e8ec752e11e34cff0acbc044" meta-multimedia = "8bb16533532b6abc2eded7d9961ab2a108fd7a5b:8bb16533532b6abc2eded7d9961ab2a108fd7a5b" meta-arm meta-arm-toolchain = "heads/yocto-4.0.2:96aad3b29aa7a5ee4df5cf617a6336e5218fa9bd" Contributing ============ To contribute to this layer you should submit the patches for review to: the github pull-request facility directly or the forum. Anyway, don't forget to Cc the maintainers. Microchip Forum: https://www.microchip.com/forums/f542.aspx for some useful guidelines to be followed when submitting patches: http://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded Maintainers: Hari Prasath G E Nicolas Ferre When creating patches insert the [meta-atmel] tag in the subject, for example use something like: git format-patch -s --subject-prefix='meta-atmel][PATCH'
populate_sdk
.
bitbake -c populate_sdk microchip-graphics-imageor
bitbake -c populate_sdk microchip-headless-imageIt will produce a comprehensive SDK script (auto-extracting archive) available in the deployment directory: from the build directory it is usually located in
tmp/deploy/sdk
.tmp/deploy/sdk/poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.17.sh
Kirkstone
branch of OpenEmbedded present in Linux4SAM 2024.04
:
$ ./poky-atmel-glibc-x86_64-microchip-graphics-image-cortexa5t2hf-neon-vfpv4-sama5d27-wlsom1-ek-sd-toolchain-4.0.17.sh Poky (Yocto Project Reference Distro) SDK installer version 4.0.17 ================================================================= Enter target directory for SDK (default: /opt/poky-atmel/4.0.17): You are about to install the SDK to "/opt/poky-atmel/4.0.17". Proceed [Y/n]? [sudo] password for dharma: Extracting SDK........................................................................................................................................................................................................................done Setting it up...done SDK has been successfully set up and is ready to be used. Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /opt/poky-atmel/4.0.17/environment-setup-cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi
cd /opt/poky-atmel/4.0.17/ source environment-setup-cortexa5t2hf-neon-vfpv4-poky-linux-gnueabiYou can check your new environment
export | less [...] declare -x AR="arm-poky-linux-gnueabi-ar" declare -x ARCH="arm" declare -x AS="arm-poky-linux-gnueabi-as " declare -x CC="arm-poky-linux-gnueabi-gcc -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a5 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky-atmel/4.0.17/sysroots/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi" declare -x CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types " declare -x CONFIGURE_FLAGS="--target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=/opt/poky-atmel/4.0.17/sysroots/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi" declare -x CONFIG_SITE="/opt/poky-atmel/4.0.17/site-config-cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi" declare -x CPP="arm-poky-linux-gnueabi-gcc -E -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a5 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky-atmel/4.0.17/sysroots/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi" declare -x CROSS_COMPILE="arm-poky-linux-gnueabi-" declare -x CXX="arm-poky-linux-gnueabi-g++ -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a5 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/poky-atmel/4.0.17/sysroots/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi" declare -x CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types " declare -x LD="arm-poky-linux-gnueabi-ld --sysroot=/opt/poky-atmel/4.0.17/sysroots/cortexa5t2hf-neon-vfpv4-poky-linux-gnueabi" declare -x LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now" [...] declare -x OECORE_DISTRO_VERSION="4.0.17" [...]To be able to compile the EGT demo applications provided in the Linux4SAM release, SDK needs to be generated using a clone of meta-atmel. EGT demo applications can be compiled using the poky SDK by following the below steps
$ source /opt/poky-atmel/4.0.17/environment-setup-armv5e-poky-linux-gnueabi $ git clone --recursive https://github.com/linux4sam/egt.git $ cd egt/ $ ./autogen.sh $ ./configure --host="arm" $ makeTo use the SDK toolchain directly one can refer to the Yocto Project documentation.
bitbake -c listtasks <package_name>You can use one of those tasks to have a fine grained control over the package building.
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Microchip and others, are registered trademarks or trademarks of Microchip Technology Inc. and its subsidiaries.
Arm® and others are registered trademarks or trademarks of Arm Limited (or its affiliates). Other terms and product names may be trademarks of others.
Ideas, requests, contributions ? Connect to LinksToCommunities page.