https://rocketboards.org/foswiki/Documentation/YoctoDoraBuildWithMetaAltera
First we need to checkout all of the relevant repositories
git clone -b jethro git://git.yoctoproject.org/poky.git pushd poky git clone -b jethro git://github.com/kraj/meta-altera.git git clone -b jethro git://git.linaro.org/openembedded/meta-linaro.git popd
source poky/oe-init-build-env ./buildYou should see something like
### Shell environment set up for builds. ### You can now run 'bitbake <target>' Common targets are: core-image-minimal core-image-sato meta-toolchain meta-toolchain-sdk adt-installer meta-ide-support You can also run generated qemu images with a command like 'runqemu qemux86'
vi conf/bblayers.confChange the file from (and yes, the path should reflect the path to your source files)
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly LCONF_VERSION = "6" BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \ /path/to/poky/meta \ /path/to/poky/meta-yocto \ /path/to/poky/meta-yocto-bsp \ " BBLAYERS_NON_REMOVABLE ?= " \ /path/to/poky/meta \ /path/to/poky/meta-yocto \ "to
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly LCONF_VERSION = "6" BBPATH = "${TOPDIR}" BBFILES ?= "" BBLAYERS ?= " \ /path/to/poky/meta \ /path/to/poky/meta-yocto \ /path/to/poky/meta-yocto-bsp \ /path/to/poky/meta-altera \ /path/to/poky/meta-linaro/meta-linaro-toolchain \ " BBLAYERS_NON_REMOVABLE ?= " \ /path/to/poky/meta \ /path/to/poky/meta-yocto \ "
vi conf/local.confAdd
MACHINE = "cyclone5"to the top of the Machine Selection section like this for the Cyclone5 SoC (use "arria5" for the Arria5 SoC or "arria10" for the Arria 10 SoC)
# # Machine Selection # # You need to select a specific machine to target the build with. There are a selection # of emulated machines available which can boot and run in the QEMU emulator: # MACHINE = "cyclone5" #MACHINE ?= "qemuarm" ......
On my machine I also had to comment out the following:
#ASSUME_PROVIDED += "libsdl-native"
Now add in support for the linaro toolchain:
For older kernels from linux-altera-ltsi_3.10 to linux-altera_4.2 use the 4.9 toolchainGCCVERSION = "linaro-4.9" DEFAULTTUNE = "cortexa9hf-neon"For the linux-altera-ltsi_4.1 and linux-altera_4.3+ kernels
GCCVERSION = "linaro-5.2" DEFAULTTUNE = "cortexa9hf-neon"
Please note that this does NOT build the altera-image rootfs added in the poky-socfpa git repository on rocketboards.org
First, consider explicitly setting the kernel you wish to build. You can do this by editing conf/local.conf. There are a few kernels available in meta-altera:
PREFERRED_PROVIDER_virtual/kernel = "linux-altera" PREFERRED_VERSION_linux-altera = "4.2%"To specify the 3.10 LTSI kernel:
PREFERRED_PROVIDER_virtual/kernel = "linux-altera-ltsi" PREFERRED_VERSION_linux-altera-ltsi = "3.10%"or to specify the linux-altera-dev kernel:
PREFERRED_PROVIDER_virtual/kernel = "linux-altera-dev"The following build the bootloader, the rootfs, and the kernel.The first one takes a while b/c it will build to toolchain and all prerequisites.
bitbake virtual/bootloader Parsing recipes: 100% |##############################################################################################| Time: 00:00:29 Parsing of 910 .bb files complete (0 cached, 910 parsed). 1265 targets, 54 skipped, 0 masked, 0 errors. WARNING: No recipes available for: /data/dwesterg/socfpga/test/poky/meta-altera/recipes-core/netbase/netbase_5.0.bbappend NOTE: Resolving any missing task queue dependencies Build Configuration: BB_VERSION = "1.20.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Fedora-20" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "socfpga_cyclone5" DISTRO = "poky" DISTRO_VERSION = "1.5.1" TUNE_FEATURES = "armv7a vfp neon" TARGET_FPU = "vfp-neon" meta meta-yocto meta-yocto-bsp = "dora:0a6f0dbf9476dcb4a17a210af90e2dd1a43b61aa" meta-altera = "angstrom-v2013.12-yocto1.5:f53e9a9e5701392e178b93deeeca9e22554f2b1c" meta-linaro-toolchain = "dora:503b1fe68f90a8e2b43c456ddd17a0a90816cf9c" NOTE: Preparing runqueue NOTE: Executing SetScene Tasks NOTE: Executing RunQueue Tasks WARNING: Checksum failure encountered with download of http://www.yoctoproject.org/downloads/pseudo/pseudo-1.5.1.tar.bz2 - will attempt other sources if available WARNING: Renaming /data/dwesterg/socfpga/test/build/downloads/pseudo-1.5.1.tar.bz2 to /data/dwesterg/socfpga/test/build/downloads/pseudo-1.5.1.tar.bz2_bad-checksum_27e7397b57f401655762a055a69c3c7e Currently 1 running tasks (209 of 222): 0: gcc-runtime-linaro-4.8-r2013.12 do_compile (pid 7081) .......and the rest
bitbake virtual/kernellastly,
bitbake core-image-minimal
The results of your hard work can be found in tmp/deploy/images.You can follow any of the other guides on rocketboards.org to create the preloader and sdcard images specific to your design.
Please note that there is a plethora of literature on yoctoproject.org that describes adding, modifying, and extending layers.Thanks,dw
Log data follows: | DEBUG: Executing python function sstate_task_prefunc | DEBUG: Python function sstate_task_prefunc finished | DEBUG: Executing python function do_package_write_rpm | DEBUG: Executing python function read_subpackage_metadata | DEBUG: Python function read_subpackage_metadata finished | DEBUG: Executing python function do_package_rpm | DEBUG: Executing python function write_specfile | NOTE: Creating RPM package for libgcc1 | NOTE: Creating RPM package for libgcc-s-dev | NOTE: Creating RPM package for libgcc-s-dbg | DEBUG: Python function write_specfile finished | DEBUG: PKGWRITEDIR: /home/user/soc/yocto/jethro/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/libgcc/linaro-5.2-r2015.11-2/deploy-rpms/cortexa9hf_vfp_neon | DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common'] | DEBUG: Executing shell function BUILDSPEC | error: line 4: invalid tag value("^[A-Za-z0-9+._]+$") Release: Release: r2015.11-2 | error: Package has no %description: libgcc-linaro+5.2.cortexa9hf_vfp_neon | Building target platforms: cortexa9hf_vfp_neon-poky-linux-gnueabi | WARNING: exit code 1 from a shell command. | DEBUG: Python function do_package_rpm finished | DEBUG: Python function do_package_write_rpm finished | ERROR: Function failed: BUILDSPEC (log file is located at /home/user/soc/yocto/jethro/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/libgcc/linaro-5.2-r2015.11-2/temp/log.do_package_write_rpm.27765)
Edit conf/layers.conf and change the package type to ipk.
# # Package Management configuration # # This variable lists which packaging formats to enable. Multiple package backends # can be enabled at once and the first item listed in the variable will be used # to generate the root filesystems. # Options are: # - 'package_deb' for debian style deb files # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" # We default to rpm: PACKAGE_CLASSES ?= "package_rpm"
becomes
# # Package Management configuration # # This variable lists which packaging formats to enable. Multiple package backends # can be enabled at once and the first item listed in the variable will be used # to generate the root filesystems. # Options are: # - 'package_deb' for debian style deb files # - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager) # - 'package_rpm' for rpm style packages # E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk" # We default to rpm: PACKAGE_CLASSES ?= "package_ipk"
ERROR: QA Issue: gcc-runtime: Files/directories were installed but not shipped in any package: /usr/lib/libstdc++fs.la /usr/lib/libstdc++fs.a Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. gcc-runtime: 2 installed and not shipped files. [installed-vs-shipped]Apply the patch for this (abandoned) issue: https://review.linaro.org/#/c/11606/