summaryrefslogtreecommitdiff
path: root/distribution/yocto-advanced
diff options
context:
space:
mode:
Diffstat (limited to 'distribution/yocto-advanced')
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/classes/fsl-dynamic-packagearch.bbclass47
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/classes/image_sdcard.bbclass73
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/classes/image_types_fsl.bbclass344
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/conf/distro/mini.conf4
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/conf/machine/beaglebone-black.conf9
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/maxi-mini-image.bb3
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/tiny-image.bb3
-rw-r--r--distribution/yocto-advanced/poky/meta-mini/recipes-kernel/linux-vanilla/linux-vanilla_3.18.5.bb (renamed from distribution/yocto-advanced/poky/meta-mini/recipes-kernel/linux-vanilla/linux-vanilla_3.16.1.bb)10
-rw-r--r--distribution/yocto-advanced/pres_yocto-advanced.tex244
9 files changed, 261 insertions, 476 deletions
diff --git a/distribution/yocto-advanced/poky/meta-mini/classes/fsl-dynamic-packagearch.bbclass b/distribution/yocto-advanced/poky/meta-mini/classes/fsl-dynamic-packagearch.bbclass
deleted file mode 100644
index 40eae6c..0000000
--- a/distribution/yocto-advanced/poky/meta-mini/classes/fsl-dynamic-packagearch.bbclass
+++ /dev/null
@@ -1,47 +0,0 @@
-# Automatically set PACKAGE_ARCH for MACHINE_SOCARCH
-#
-# This allow to easy reuse of binary packages among similar SoCs. The
-# usual use for this is to share SoC specific packages among different
-# boards.
-#
-# MACHINE_SOCARCH_FILTER list all packages associated with
-# MACHINE_SOCARCH and, when match, will set PACKAGE_ARCH as MACHINE_SOCARCH
-#
-# MACHINE_ARCH_FILTER list all packages associated with
-# MACHINE_ARCH and, when match, will set PACKAGE_ARCH as MACHINE_ARCH
-#
-# For example, in meta-fsl-arm, this is used to share GPU packages for
-# i.MX53 boards (as all them share the AMD GPU) and i.MX6 based boards
-# (as all them share Vivante GPU).
-#
-# To use the class, specify, for example:
-#
-# MACHINE_SOCARCH_soc = "${TUNE_PKGARCH}-soc"
-#
-# and the need filters, as:
-#
-# MACHINE_ARCH_FILTER = "virtual/kernel"
-# MACHINE_SOCARCH_FILTER_soc = "virtual/libgles1 ... virtual/libgl"
-#
-# Copyright 2013 (C) O.S. Systems Software LTDA.
-
-python __anonymous () {
- machine_arch_filter = set((d.getVar("MACHINE_ARCH_FILTER", True) or "").split())
- machine_socarch_filter = set((d.getVar("MACHINE_SOCARCH_FILTER", True) or "").split())
- if machine_socarch_filter or machine_arch_filter:
- provides = set((d.getVar("PROVIDES", True) or "").split())
- depends = set((d.getVar("DEPENDS", True) or "").split())
- PN = d.getVar("PN", True)
-
- package_arch = None
- if list(machine_arch_filter & (provides | depends)):
- package_arch = d.getVar("MACHINE_ARCH", True)
- elif list(machine_socarch_filter & (provides | depends)):
- package_arch = d.getVar("MACHINE_SOCARCH", True)
- if not package_arch:
- bb.parse.SkipPackage("You must set MACHINE_SOCARCH as MACHINE_SOCARCH_FILTER is set for this SoC.")
-
- if package_arch:
- bb.debug(1, "Use '%s' as package archictecture for '%s'" % (package_arch, PN))
- d.setVar("PACKAGE_ARCH", package_arch)
-}
diff --git a/distribution/yocto-advanced/poky/meta-mini/classes/image_sdcard.bbclass b/distribution/yocto-advanced/poky/meta-mini/classes/image_sdcard.bbclass
new file mode 100644
index 0000000..f70c4e5
--- /dev/null
+++ b/distribution/yocto-advanced/poky/meta-mini/classes/image_sdcard.bbclass
@@ -0,0 +1,73 @@
+inherit image_types
+
+IMAGE_BOOTLOADER ?= "u-boot"
+
+# Handle u-boot suffixes
+UBOOT_SUFFIX ?= "bin"
+UBOOT_PADDING ?= "0"
+UBOOT_SUFFIX_SDCARD ?= "${UBOOT_SUFFIX}"
+
+# Linux bootstream
+IMAGE_DEPENDS_linux.sb = "virtual/kernel:do_deploy"
+
+# Boot partition volume id
+BOOTDD_VOLUME_ID ?= "Boot ${MACHINE}"
+# Boot partition size [in KiB]
+BOOT_SPACE ?= "8192"
+# Set alignment to 4MB [in KiB]
+IMAGE_ROOTFS_ALIGNMENT = "4096"
+
+IMAGE_DEPENDS_sdcard = "parted-native:do_populate_sysroot \
+ dosfstools-native:do_populate_sysroot \
+ mtools-native:do_populate_sysroot \
+ virtual/kernel:do_deploy \
+ ${@d.getVar('IMAGE_BOOTLOADER', True) and d.getVar('IMAGE_BOOTLOADER', True) + ':do_deploy' or ''}"
+
+SDCARD = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.sdcard"
+
+SDCARD_GENERATION_COMMAND_ti33x = "generate_ti_sdcard"
+
+generate_ti_sdcard () {
+ parted -s ${SDCARD} mklabel msdos
+ parted -s ${SDCARD} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
+ parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
+ parted -s ${SDCARD} set 1 boot on
+ parted ${SDCARD} print
+
+ BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
+ | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }')
+ mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
+
+ # copy files to /boot
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/MLO-${MACHINE} ::/MLO
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.img ::/u-boot.img
+ mmd -i ${WORKDIR}/boot.img ::/boot
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/boot/${KERNEL_IMAGETYPE}
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-am335x-boneblack.dtb ::/boot/am335x-boneblack.dtb
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uEnv.txt ::/uEnv.txt
+
+ # Burn Partition
+ dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
+ dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
+}
+
+IMAGE_CMD_sdcard () {
+ if [ -z "${SDCARD_ROOTFS}" ]; then
+ bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
+ exit 1
+ fi
+
+ # Align boot partition and calculate total SD card image size
+ BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
+ BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
+ SDCARD_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE + ${IMAGE_ROOTFS_ALIGNMENT})
+
+ # Initialize a sparse file
+ dd if=/dev/zero of=${SDCARD} bs=1 count=0 seek=$(expr 1024 \* ${SDCARD_SIZE})
+
+ ${SDCARD_GENERATION_COMMAND}
+}
+
+# The sdcard requires the rootfs filesystem to be built before using
+# it so we must make this dependency explicit.
+IMAGE_TYPEDEP_sdcard = "${@d.getVar('SDCARD_ROOTFS', 1).split('.')[-1]}"
diff --git a/distribution/yocto-advanced/poky/meta-mini/classes/image_types_fsl.bbclass b/distribution/yocto-advanced/poky/meta-mini/classes/image_types_fsl.bbclass
deleted file mode 100644
index deb6573..0000000
--- a/distribution/yocto-advanced/poky/meta-mini/classes/image_types_fsl.bbclass
+++ /dev/null
@@ -1,344 +0,0 @@
-inherit image_types
-
-IMAGE_BOOTLOADER ?= "u-boot"
-
-# Handle u-boot suffixes
-UBOOT_SUFFIX ?= "bin"
-UBOOT_PADDING ?= "0"
-UBOOT_SUFFIX_SDCARD ?= "${UBOOT_SUFFIX}"
-
-#
-# Handles i.MX mxs bootstream generation
-#
-MXSBOOT_NAND_ARGS ?= ""
-
-# IMX Bootlets Linux bootstream
-IMAGE_DEPENDS_linux.sb = "elftosb-native:do_populate_sysroot \
- imx-bootlets:do_deploy \
- virtual/kernel:do_deploy"
-IMAGE_LINK_NAME_linux.sb = ""
-IMAGE_CMD_linux.sb () {
- kernel_bin="`readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
- kernel_dtb="`readlink ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb || true`"
- linux_bd_file=imx-bootlets-linux.bd-${MACHINE}
- if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then
- # When using device tree we build a zImage with the dtb
- # appended on the end of the image
- linux_bd_file=imx-bootlets-linux.bd-dtb-${MACHINE}
- cat $kernel_bin $kernel_dtb \
- > $kernel_bin-dtb
- rm -f ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin-dtb
- ln -s $kernel_bin-dtb ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin-dtb
- fi
-
- # Ensure the file is generated
- rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.linux.sb
- (cd ${DEPLOY_DIR_IMAGE}; elftosb -z -c $linux_bd_file -o ${IMAGE_NAME}.linux.sb)
-
- # Remove the appended file as it is only used here
- rm -f ${DEPLOY_DIR_IMAGE}/$kernel_bin-dtb
-}
-
-# IMX Bootlets barebox bootstream
-IMAGE_DEPENDS_barebox.mxsboot-sdcard = "elftosb-native:do_populate_sysroot \
- u-boot-mxsboot-native:do_populate_sysroot \
- imx-bootlets:do_deploy \
- barebox:do_deploy"
-IMAGE_CMD_barebox.mxsboot-sdcard () {
- barebox_bd_file=imx-bootlets-barebox_ivt.bd-${MACHINE}
-
- # Ensure the files are generated
- (cd ${DEPLOY_DIR_IMAGE}; rm -f ${IMAGE_NAME}.barebox.sb ${IMAGE_NAME}.barebox.mxsboot-sdcard; \
- elftosb -f mx28 -z -c $barebox_bd_file -o ${IMAGE_NAME}.barebox.sb; \
- mxsboot sd ${IMAGE_NAME}.barebox.sb ${IMAGE_NAME}.barebox.mxsboot-sdcard)
-}
-
-# U-Boot mxsboot generation to SD-Card
-UBOOT_SUFFIX_SDCARD_mxs ?= "mxsboot-sdcard"
-IMAGE_DEPENDS_uboot.mxsboot-sdcard = "u-boot-mxsboot-native:do_populate_sysroot \
- u-boot:do_deploy"
-IMAGE_CMD_uboot.mxsboot-sdcard = "mxsboot sd ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \
- ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot.mxsboot-sdcard"
-
-IMAGE_DEPENDS_uboot.mxsboot-nand = "u-boot-mxsboot-native:do_populate_sysroot \
- u-boot:do_deploy"
-IMAGE_CMD_uboot.mxsboot-nand = "mxsboot ${MXSBOOT_NAND_ARGS} nand \
- ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX} \
- ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot.mxsboot-nand"
-
-# Boot partition volume id
-BOOTDD_VOLUME_ID ?= "Boot ${MACHINE}"
-
-# Boot partition size [in KiB]
-BOOT_SPACE ?= "8192"
-
-# Barebox environment size [in KiB]
-BAREBOX_ENV_SPACE ?= "512"
-
-# Set alignment to 4MB [in KiB]
-IMAGE_ROOTFS_ALIGNMENT = "4096"
-
-IMAGE_DEPENDS_sdcard = "parted-native:do_populate_sysroot \
- dosfstools-native:do_populate_sysroot \
- mtools-native:do_populate_sysroot \
- virtual/kernel:do_deploy \
- ${@d.getVar('IMAGE_BOOTLOADER', True) and d.getVar('IMAGE_BOOTLOADER', True) + ':do_deploy' or ''}"
-
-SDCARD = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.sdcard"
-
-SDCARD_GENERATION_COMMAND_mxs = "generate_mxs_sdcard"
-SDCARD_GENERATION_COMMAND_mx25 = "generate_imx_sdcard"
-SDCARD_GENERATION_COMMAND_mx5 = "generate_imx_sdcard"
-SDCARD_GENERATION_COMMAND_mx6 = "generate_imx_sdcard"
-SDCARD_GENERATION_COMMAND_vf60 = "generate_imx_sdcard"
-SDCARD_GENERATION_COMMAND_ti33x = "generate_ti_sdcard"
-
-generate_ti_sdcard () {
- parted -s ${SDCARD} mklabel msdos
- parted -s ${SDCARD} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
- parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
- parted -s ${SDCARD} set 1 boot on
- parted ${SDCARD} print
-
- BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
- | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }')
- mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
-
- # copy files to /boot
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/MLO-${MACHINE} ::/MLO
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.img ::/u-boot.img
- mmd -i ${WORKDIR}/boot.img ::/boot
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/boot/${KERNEL_IMAGETYPE}
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-am335x-boneblack.dtb ::/boot/am335x-boneblack.dtb
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uEnv.txt ::/uEnv.txt
-
- # Burn Partition
- dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
- dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
-}
-
-#
-# Create an image that can by written onto a SD card using dd for use
-# with i.MX SoC family
-#
-# External variables needed:
-# ${SDCARD_ROOTFS} - the rootfs image to incorporate
-# ${IMAGE_BOOTLOADER} - bootloader to use {u-boot, barebox}
-#
-# The disk layout used is:
-#
-# 0 -> IMAGE_ROOTFS_ALIGNMENT - reserved to bootloader (not partitioned)
-# IMAGE_ROOTFS_ALIGNMENT -> BOOT_SPACE - kernel and other data
-# BOOT_SPACE -> SDIMG_SIZE - rootfs
-#
-# Default Free space = 1.3x
-# Use IMAGE_OVERHEAD_FACTOR to add more space
-# <--------->
-# 4MiB 8MiB SDIMG_ROOTFS 4MiB
-# <-----------------------> <----------> <----------------------> <------------------------------>
-# ------------------------ ------------ ------------------------ -------------------------------
-# | IMAGE_ROOTFS_ALIGNMENT | BOOT_SPACE | ROOTFS_SIZE | IMAGE_ROOTFS_ALIGNMENT |
-# ------------------------ ------------ ------------------------ -------------------------------
-# ^ ^ ^ ^ ^
-# | | | | |
-# 0 4096 4MiB + 8MiB 4MiB + 8Mib + SDIMG_ROOTFS 4MiB + 8MiB + SDIMG_ROOTFS + 4MiB
-generate_imx_sdcard () {
- # Create partition table
- parted -s ${SDCARD} mklabel msdos
- parted -s ${SDCARD} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
- parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
- parted ${SDCARD} print
-
- # Burn bootloader
- case "${IMAGE_BOOTLOADER}" in
- imx-bootlets)
- bberror "The imx-bootlets is not supported for i.MX based machines"
- exit 1
- ;;
- u-boot)
- if [ -n "${SPL_BINARY}" ]; then
- dd if=${DEPLOY_DIR_IMAGE}/${SPL_BINARY} of=${SDCARD} conv=notrunc seek=2 bs=512
- dd if=${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX_SDCARD} of=${SDCARD} conv=notrunc seek=42 bs=1K
- else
- dd if=${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX_SDCARD} of=${SDCARD} conv=notrunc seek=2 skip=${UBOOT_PADDING} bs=512
- fi
- ;;
- barebox)
- dd if=${DEPLOY_DIR_IMAGE}/barebox-${MACHINE}.bin of=${SDCARD} conv=notrunc seek=1 skip=1 bs=512
- dd if=${DEPLOY_DIR_IMAGE}/bareboxenv-${MACHINE}.bin of=${SDCARD} conv=notrunc seek=1 bs=512k
- ;;
- "")
- ;;
- *)
- bberror "Unkown IMAGE_BOOTLOADER value"
- exit 1
- ;;
- esac
-
- # Create boot partition image
- BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
- | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }')
- mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/${KERNEL_IMAGETYPE}
-
- # Copy boot scripts
- for item in ${BOOT_SCRIPTS}; do
- src=`echo $item | awk -F':' '{ print $1 }'`
- dst=`echo $item | awk -F':' '{ print $2 }'`
-
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$src ::/$dst
- done
-
- # Copy device tree file
- if test -n "${KERNEL_DEVICETREE}"; then
- for DTS_FILE in ${KERNEL_DEVICETREE}; do
- DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'`
- if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then
- kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
- kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`"
- if [ $kernel_bin = $kernel_bin_for_dtb ]; then
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb
- fi
- fi
- done
- fi
-
- # Burn Partition
- dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
- dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
-}
-
-#
-# Create an image that can by written onto a SD card using dd for use
-# with i.MXS SoC family
-#
-# External variables needed:
-# ${SDCARD_ROOTFS} - the rootfs image to incorporate
-# ${IMAGE_BOOTLOADER} - bootloader to use {imx-bootlets, u-boot}
-#
-generate_mxs_sdcard () {
- # Create partition table
- parted -s ${SDCARD} mklabel msdos
-
- case "${IMAGE_BOOTLOADER}" in
- imx-bootlets)
- # The disk layout used is:
- #
- # 0 -> 1024 - Unused (not partitioned)
- # 1024 -> BOOT_SPACE - kernel and other data (bootstream)
- # BOOT_SPACE -> SDIMG_SIZE - rootfs
- #
- # Default Free space = 1.3x
- # Use IMAGE_OVERHEAD_FACTOR to add more space
- # <--------->
- # 1024 8MiB SDIMG_ROOTFS 4MiB
- # <-------> <----------> <----------------------> <------------------------------>
- # --------------------- ------------------------ -------------------------------
- # | Unused | BOOT_SPACE | ROOTFS_SIZE | IMAGE_ROOTFS_ALIGNMENT |
- # --------------------- ------------------------ -------------------------------
- # ^ ^ ^ ^ ^
- # | | | | |
- # 0 1024 1024 + 8MiB 1024 + 8Mib + SDIMG_ROOTFS 1024 + 8MiB + SDIMG_ROOTFS + 4MiB
- parted -s ${SDCARD} unit KiB mkpart primary 1024 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
- parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
-
- # Empty 4 bytes from boot partition
- dd if=/dev/zero of=${SDCARD} conv=notrunc seek=2048 count=4
-
- # Write the bootstream in (2048 + 4) bytes
- dd if=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.linux.sb of=${SDCARD} conv=notrunc seek=1 seek=2052
- ;;
- u-boot)
- # The disk layout used is:
- #
- # 1M - 2M - reserved to bootloader and other data
- # 2M - BOOT_SPACE - kernel
- # BOOT_SPACE - SDCARD_SIZE - rootfs
- #
- # The disk layout used is:
- #
- # 1M -> 2M - reserved to bootloader and other data
- # 2M -> BOOT_SPACE - kernel and other data
- # BOOT_SPACE -> SDIMG_SIZE - rootfs
- #
- # Default Free space = 1.3x
- # Use IMAGE_OVERHEAD_FACTOR to add more space
- # <--------->
- # 4MiB 8MiB SDIMG_ROOTFS 4MiB
- # <-----------------------> <-------------> <----------------------> <------------------------------>
- # ---------------------------------------- ------------------------ -------------------------------
- # | | | |ROOTFS_SIZE | IMAGE_ROOTFS_ALIGNMENT |
- # ---------------------------------------- ------------------------ -------------------------------
- # ^ ^ ^ ^ ^ ^ ^
- # | | | | | | |
- # 0 1M 2M 4M 4MiB + BOOTSPACE 4MiB + BOOTSPACE + SDIMG_ROOTFS 4MiB + BOOTSPACE + SDIMG_ROOTFS + 4MiB
- #
- parted -s ${SDCARD} unit KiB mkpart primary 1024 2048
- parted -s ${SDCARD} unit KiB mkpart primary 2048 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
- parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
-
- dd if=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.uboot.mxsboot-sdcard of=${SDCARD} conv=notrunc seek=1 skip=${UBOOT_PADDING} bs=$(expr 1024 \* 1024)
- BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
- | awk '/ 2 / { print substr($4, 1, length($4 -1)) / 1024 }')
-
- mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/${KERNEL_IMAGETYPE}
- if test -n "${KERNEL_DEVICETREE}"; then
- for DTS_FILE in ${KERNEL_DEVICETREE}; do
- DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'`
- if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then
- kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`"
- kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`"
- if [ $kernel_bin = $kernel_bin_for_dtb ]; then
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb
- fi
- fi
- done
- fi
-
- dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=2 bs=$(expr 1024 \* 1024)
- ;;
- barebox)
- # BAREBOX_ENV_SPACE is taken on BOOT_SPACE_ALIGNED but it doesn't really matter as long as the rootfs is aligned
- parted -s ${SDCARD} unit KiB mkpart primary 1024 $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} - ${BAREBOX_ENV_SPACE})
- parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} - ${BAREBOX_ENV_SPACE}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
- parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
-
- dd if=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.barebox.mxsboot-sdcard of=${SDCARD} conv=notrunc seek=1 bs=$(expr 1024 \* 1024)
- dd if=${DEPLOY_DIR_IMAGE}/bareboxenv-${MACHINE}.bin of=${SDCARD} conv=notrunc seek=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} - ${BAREBOX_ENV_SPACE}) bs=1024
- ;;
- *)
- bberror "Unkown IMAGE_BOOTLOADER value"
- exit 1
- ;;
- esac
-
- # Change partition type for mxs processor family
- bbnote "Setting partition type to 0x53 as required for mxs' SoC family."
- echo -n S | dd of=${SDCARD} bs=1 count=1 seek=450 conv=notrunc
-
- parted ${SDCARD} print
-
- dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
-}
-
-IMAGE_CMD_sdcard () {
- if [ -z "${SDCARD_ROOTFS}" ]; then
- bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
- exit 1
- fi
-
- # Align boot partition and calculate total SD card image size
- BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
- BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
- SDCARD_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE + ${IMAGE_ROOTFS_ALIGNMENT})
-
- # Initialize a sparse file
- dd if=/dev/zero of=${SDCARD} bs=1 count=0 seek=$(expr 1024 \* ${SDCARD_SIZE})
-
- ${SDCARD_GENERATION_COMMAND}
-}
-
-# The sdcard requires the rootfs filesystem to be built before using
-# it so we must make this dependency explicit.
-IMAGE_TYPEDEP_sdcard = "${@d.getVar('SDCARD_ROOTFS', 1).split('.')[-1]}"
diff --git a/distribution/yocto-advanced/poky/meta-mini/conf/distro/mini.conf b/distribution/yocto-advanced/poky/meta-mini/conf/distro/mini.conf
index cc5b717..bc1a20a 100644
--- a/distribution/yocto-advanced/poky/meta-mini/conf/distro/mini.conf
+++ b/distribution/yocto-advanced/poky/meta-mini/conf/distro/mini.conf
@@ -115,8 +115,10 @@ PNBLACKLIST[core-image-sato] = "not buildable with mini"
PNBLACKLIST[core-image-sato-dev] = "not buildable with mini"
PNBLACKLIST[core-image-sato-sdk] = "not buildable with mini"
PNBLACKLIST[core-image-x11] = "not buildable with mini"
-PNBLACKLIST[qt4e-demo-image] = "not buildable with mini"
+# PNBLACKLIST[qt4e-demo-image] = "not buildable with mini"
PNBLACKLIST[core-image-weston] = "not buildable with mini"
# Disable python usage in opkg-utils since it won't build with tiny config
PACKAGECONFIG_pn-opkg-utils = ""
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-vanilla"
diff --git a/distribution/yocto-advanced/poky/meta-mini/conf/machine/beaglebone-black.conf b/distribution/yocto-advanced/poky/meta-mini/conf/machine/beaglebone-black.conf
index 9fb2b8a..153a1bb 100644
--- a/distribution/yocto-advanced/poky/meta-mini/conf/machine/beaglebone-black.conf
+++ b/distribution/yocto-advanced/poky/meta-mini/conf/machine/beaglebone-black.conf
@@ -4,18 +4,19 @@
require conf/machine/include/ti33x.inc
-IMAGE_FSTYPES += "sdcard ext3 tar.gz"
+IMAGE_FSTYPES += "ext3 tar.gz"
EXTRA_IMAGEDEPENDS += "u-boot"
SERIAL_CONSOLE = "115200 ttyO0"
PREFERRED_PROVIDER_virtual/kernel = "linux-vanilla"
-IMAGE_CLASSES += "image_types_fsl"
-SDCARD_ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
-
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
UBOOT_MACHINE = "am335x_boneblack_config"
UBOOT_ENTRYPOINT = "0x80008000"
UBOOT_LOADADDRESS = "0x80008000"
+
+IMAGE_CLASSES += "image_sdcard"
+SDCARD_ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
+IMAGE_FSTYPES += "sdcard"
diff --git a/distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/maxi-mini-image.bb b/distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/maxi-mini-image.bb
deleted file mode 100644
index bae7f2a..0000000
--- a/distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/maxi-mini-image.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require /home/local/src/poky/meta-mini/recipes-bsp/mini-image/mini-image.bb
-IMAGE_INSTALL = "eglibc hello hellocm autohello"
-DESCRIPTION = ""
diff --git a/distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/tiny-image.bb b/distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/tiny-image.bb
new file mode 100644
index 0000000..ad787d5
--- /dev/null
+++ b/distribution/yocto-advanced/poky/meta-mini/recipes-bsp/mini-image/tiny-image.bb
@@ -0,0 +1,3 @@
+require recipes-bsp/mini-image/mini-image.bb
+IMAGE_INSTALL = "eglibc hello hellocm autohello"
+DESCRIPTION = ""
diff --git a/distribution/yocto-advanced/poky/meta-mini/recipes-kernel/linux-vanilla/linux-vanilla_3.16.1.bb b/distribution/yocto-advanced/poky/meta-mini/recipes-kernel/linux-vanilla/linux-vanilla_3.18.5.bb
index f155da4..3f95bfc 100644
--- a/distribution/yocto-advanced/poky/meta-mini/recipes-kernel/linux-vanilla/linux-vanilla_3.16.1.bb
+++ b/distribution/yocto-advanced/poky/meta-mini/recipes-kernel/linux-vanilla/linux-vanilla_3.18.5.bb
@@ -16,12 +16,12 @@ KERNEL_DEVICETREE_beaglebone-black = "arch/arm/boot/dts/am335x-boneblack.dts"
S = "${WORKDIR}/linux-${PV}"
-SRC_URI = "https://www.kernel.org/pub/linux/kernel/v3.x/linux-${PV}.tar.xz \
- file://defconfig \
+SRC_URI = "\
+https://www.kernel.org/pub/linux/kernel/v3.x/linux-${PV}.tar.xz \
+file://defconfig \
"
-SRC_URI[md5sum] = "e7a985a243b7941b6bc6240fcbc797fc"
-SRC_URI[sha256sum] = "be37dda8ea090525661d64e5c7fc8580f313b7f9ba8592e32120f1332bc57d71"
-
+SRC_URI[md5sum] = "b655fcbc4597aa4b0cbabcfc72983259"
+SRC_URI[sha256sum] = "e4442436e59c74169e98d38d2e2a434c7b73f8eda0aa8f20e454eaf52270fc90"
LINUX_VERSION_EXTENSION = "-linutronix"
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
diff --git a/distribution/yocto-advanced/pres_yocto-advanced.tex b/distribution/yocto-advanced/pres_yocto-advanced.tex
index 881d21f..ee69d0b 100644
--- a/distribution/yocto-advanced/pres_yocto-advanced.tex
+++ b/distribution/yocto-advanced/pres_yocto-advanced.tex
@@ -7,7 +7,7 @@
\frametitle{Agenda}
\begin{itemize}
\item Using BSP layers (beaglebone)
-\item Build a predefined image (sabrelite)
+\item Build a predefined image (beaglebone)
\item Creating a layer
\item Define a distribution
\item Create an image
@@ -163,7 +163,6 @@ BBLAYERS ?= " \
/home/devel/poky/meta-yocto \
/home/devel/poky/meta-yocto-bsp \
/home/devel/poky/meta-ti \
- /home/devel/poky/meta-mini \
"
\end{verbatim}
\pause
@@ -175,7 +174,6 @@ meta /home/devel/poky/meta 5
meta-yocto /home/devel/poky/meta-yocto 5
meta-yocto-bsp /home/devel/poky/meta-yocto-bsp 5
meta-ti /home/devel/poky/meta-ti 5
-meta-mini /home/devel/poky/meta-mini 5
\end{verbatim}
\end{frame}
@@ -225,9 +223,9 @@ to get a list of currently available machines configs:
\begin{verbatim}
poky/build-ti % grep -r '@NAME' ../meta*/conf/machine
\end{verbatim}
-beaglebone-black.conf - seems to be the one for our bord, so set
+beaglebone.conf - seems to be the one for our bord, so set
\begin{verbatim}
-MACHINE ??= "beaglebone-black"
+MACHINE ??= "beaglebone"
\end{verbatim}
in conf/local.conf
\end{frame}
@@ -271,8 +269,6 @@ Currently 4 running tasks (26 of 4459):
\begin{frame}[fragile]
\frametitle{first errors and warnings}
\begin{verbatim}
-WARNING: Host distribution "Debian-8.0" has not been validated with this version
-of the build system; you may possibly experience unexpected failures. It is
recommended that you use a tested distribution.
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker
@@ -358,28 +354,17 @@ if the build is completed the image can be transfered to a sdcard:
poky/build-ti % sudo fdisk /dev/mmcblk0
# create a bootable primary partition with about 100 MB and Windows vFat format
# and a secondary partition with Linux Ext format
-poky/build-ti % sudo mkfs.vfat /dev/mmcblk0p1
-poky/build-ti % sudo dd \
-if=tmp/deploy/images/beaglebone-black/qt4e-demo-image-beaglebone-black.ext3 \
- of=/dev/mmcblk0p2 bs=1M
-poky/build-ti % sudo mount /dev/mmcblk0p2 /mnt
-poky/build-ti % sudo tar xzf tmp/deploy/images/modules-beaglebone-black.tgz -C \
- /mnt
-poky/build-ti % sudo umount /mnt
-\end{verbatim}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{flashing the image}
+poky/build-ti % sudo mkfs.vfat -F 16 -n boot /dev/mmcblk0p1
+poky/build-ti % sudo mke2fs -j -L "root" /dev/mmcblk0p2
poky/build-ti % sudo mount /dev/mmcblk0p1 /mnt
-poky/build-ti % sudo cp -a tmp/deploy/images/beaglebone-black/MLO \
- /dev/mmcblk0p1 /mnt
-poky/build-ti % sudo cp -a tmp/deploy/images/beaglebone-black/u-boot* \
- /dev/mmcblk0p1 /mnt
-poky/build-ti % sudo cp -a tmp/deploy/images/beaglebone-black/zImage \
- /dev/mmcblk0p1 /mnt
-poky/build-ti % sudo cp -a tmp/deploy/images/beaglebone-black/*.dtb \
- /dev/mmcblk0p1 /mnt
+poky/build-ti % sudo cp -a tmp/deploy/images/beaglebone/MLO-beaglebone \
+ /mnt/MLO
+poky/build-ti % sudo cp -a tmp/deploy/images/beaglebone/u-boot-beaglebone.img \
+ /mnt/u-boot.img
+poky/build-ti % sudo umount /mnt
+poky/build-ti % sudo mount /dev/mmcblk0p2 /mnt
+poky/build-ti % sudo tar xjf \
+ tmp/deploy/images/qt4e-demo-image-beaglebone.tar.bz2 -C /mnt
poky/build-ti % sudo umount /mnt
\end{verbatim}
\end{frame}
@@ -409,6 +394,22 @@ poky/meta-mini % git commit -sam 'inital version'
\end{verbatim}
\end{frame}
+\begin{frame}[fragile]
+\begin{verbatim}
+poky/meta-mini % cd ../build-ti
+\end{verbatim}
+edit 'conf/bblayers.conf':
+\begin{verbatim}
+BBLAYERS ?= " \
+ /home/devel/poky/meta \
+ /home/devel/poky/meta-yocto \
+ /home/devel/poky/meta-yocto-bsp \
+ /home/devel/poky/meta-ti \
+ /home/devel/poky/meta-mini \
+ "
+\end{verbatim}
+\end{frame}
+
\subsection{Define a distribution}
\begin{frame}
\frametitle{why define a distribution?}
@@ -515,14 +516,14 @@ it can be used, to simplify image definitions
\end{frame}
\begin{frame}[fragile]
-\frametitle{linutronix distribution}
+\frametitle{minimal distribution}
distros are defined in a layer, e.g.
-meta-mini/conf/distro/linutronix.conf:
+meta-mini/conf/distro/mini.conf:
\begin{verbatim}
-DISTRO = "linutronix"
-DISTRO_NAME = "linutronix 1.0 (for foo devices)"
+DISTRO = "mini"
+DISTRO_NAME = "mini 1.0 (for foo devices)"
DISTRO_VERSION = "1.0"
-DISTRO_CODENAME = "bar"
+DISTRO_CODENAME = "mal"
SDK_VENDOR = "-linutronix"
SDK_VERSION := "${@'${DISTRO_VERSION}'}"
MAINTAINER = "Manuel Traut <manut@linutronix.de>"
@@ -536,16 +537,16 @@ DISTRO_FEATURES_append = " opengl"
\begin{frame}[fragile]
\frametitle{add distro to git repo}
\begin{verbatim}
-poky/meta-mini % git add conf/distro/linutronix.conf
-poky/meta-mini % git commit -sam 'add linutronix distro'
+poky/meta-mini % git add conf/distro/mini.conf
+poky/meta-mini % git commit -sam 'add mini distro'
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
-\frametitle{use linutronix distro}
+\frametitle{use mini distro}
edit DISTRO var in conf/local.conf
\begin{verbatim}
-DISTRO ?= "linutronix"
+DISTRO ?= "mini"
\end{verbatim}
\end{frame}
@@ -561,32 +562,49 @@ packagegroup-core-ssh-dropbear:
packagegroup-core-ssh-openssh:
\end{verbatim}
create the file
-'meta-mini/recipes-bsp/linutronix-image/linutronix-image.bb'
+'meta-mini/recipes-bsp/mini-image/mini-image.bb'
\begin{verbatim}
IMAGE_INSTALL += "openssh"
inherit core-image
\end{verbatim}
to build the image, use:
\begin{verbatim}
-poky/build-ti % bitbake linutronix-image
+poky/build-ti % bitbake mini-image
\end{verbatim}
\end{frame}
+\subsection{Machines}
\begin{frame}[fragile]
- \frametitle{image features}
-t.b.d. use IMAGE\_FEATURES
-% http://www.yoctoproject.org/docs/1.6/ref-manual/ref-manual.html#ref-features-image
+\frametitle{create a beaglebone-black machine config}
+create the file 'meta-mini/conf/machine/beaglebone-black.conf':
+\begin{verbatim}
+#@TYPE: Machine
+#@NAME: BeagleBone Black
+#@DESCRIPTION: Machine configuration for the http://beagleboard.org/bone board
+
+require conf/machine/include/ti33x.inc
-% http://www.yoctoproject.org/docs/1.6/dev-manual/dev-manual.html#usingpoky-extend-customimage-imagefeatures
+IMAGE_FSTYPES += "ext3 tar.gz"
+EXTRA_IMAGEDEPENDS += "u-boot"
+SERIAL_CONSOLE = "115200 ttyO0"
+
+SDCARD_ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
+
+SPL_BINARY = "MLO"
+UBOOT_SUFFIX = "img"
+UBOOT_MACHINE = "am335x_boneblack_config"
+UBOOT_ENTRYPOINT = "0x80008000"
+UBOOT_LOADADDRESS = "0x80008000"
+\end{verbatim}
\end{frame}
\subsection{Writing recipes}
\begin{frame}[fragile]
\frametitle{adding a kernel}
-create the file 'meta-mini/recipes-bsp/linux-sabrelite/linux-sabrelite\_3.16.bb':
+create the file 'meta-mini/recipes-bsp/linux-vanilla/linux-vanilla\_3.18.5bb':
\begin{verbatim}
SECTION = "kernel"
-DESCRIPTION = "Linux 3.16 for sabrelite"
+DESCRIPTION = "Linux vanilla kernel"
LICENSE = "GPLv2"
KERNEL_IMAGETYPE = "uImage"
@@ -594,45 +612,46 @@ inherit kernel
require recipes-kernel/linux/linux-dtb.inc
require recipes-kernel/linux/setup-defconfig.inc
-COMPATILBE_MACHINE = "beaglebone-black"
-KERNEL_DEVICETREE_beaglebone-black = "arch/arm/boot/dts/imx6q-sabrelite.dts"
+COMPATILBE_MACHINE_beaglebone-black = "beaglebone-black"
+KERNEL_DEVICETREE_beaglebone-black = "arch/arm/boot/dts/am335x-boneblack.dts"
+
+S = "${WORKDIR}/linux-${PV}"
-S = "${WORKDIR}/git
-BRANCH = "master"
-SRCREV = "19583ca584d6f574384e17fe7613dfaeadcdc4a6"
-PV = "3.16"
-# cause a rebuild on new kernel version
-MACHINE_KERNEL_PR_append = "d+gitr${SRCPV}"
SRC_URI = " \
-git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux;protocol=git;branch=${BRANCH} \
+https://www.kernel.org/pub/linux/kernel/v3.x/linux-${PV}.tar.xz \
file://defconfig \
-"
+
+SRC_URI[md5sum] = "e7a985a243b7941b6bc6240fcbc797fc"
+SRC_URI[sha256sum] = "be37dda8ea090525661d64e5c7fc8580f313b7f9ba8592e32120f1332bc57d71"
+
KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
-# to modify cmdline, use APPEND += ""
+
+do_configure_prepend () {
+ cp '${WORKDIR}/defconfig' '${S}/.config'
\end{verbatim}
\end{frame}
\begin{frame}[fragile]
\frametitle{adding a defconfig}
copy your .config file to
-'meta-mini/recipes-bsp/linux-sabrelite/files/beaglebone-black/defconfig'
+'meta-mini/recipes-bsp/linux-vanilla/files/beaglebone-black/defconfig'
\end{frame}
\begin{frame}[fragile]
\frametitle{using a specific kernel}
add
\begin{verbatim}
-PREFERRED_PROVIDER_virtual/kernel = "linux-sabrelite"
+PREFERRED_PROVIDER_virtual/kernel = "linux-vanilla"
\end{verbatim}
-to meta-mini/conf/distro/linutronix.conf
+to meta-mini/machine/beaglebone-black.conf
\end{frame}
\begin{frame}[fragile]
\frametitle{Providers}
\begin{verbatim}
---8<- -my-kernel\_3.16.bb --
+--8<- meta/classos/kernel.bbclass --
PROVIDES += "virtual/kernel"
---8<------------------------
+--8<--------------------------------
\end{verbatim}
PREFERRED\_PROVIDER\_virtual/kernel = "linux-yocto"
@@ -642,7 +661,7 @@ PREFERRED\_PROVIDER\_virtual/kernel = "linux-yocto"
\vspace{2em}
also a preferred version can be set:
-PREFERRED\_VERSION\_virtual/kernel = "3.16"
+PREFERRED\_VERSION\_virtual/kernel = "3.18.5"
\end{frame}
\begin{frame}
@@ -656,6 +675,97 @@ PREFERRED\_VERSION\_virtual/kernel = "3.16"
\end{itemize}
\end{frame}
+\subsection{generate a sdcard image}
+\begin{frame}[fragile]
+\frametitle{sdcard generation}
+create the file: 'meta-mini/classes/image\_sdcard.bbclass':
+\begin{verbatim}
+inherit image_types
+
+IMAGE_BOOTLOADER ?= "u-boot"
+
+# Handle u-boot suffixes
+UBOOT_SUFFIX ?= "bin"
+UBOOT_PADDING ?= "0"
+UBOOT_SUFFIX_SDCARD ?= "${UBOOT_SUFFIX}"
+
+# Linux bootstream
+IMAGE_DEPENDS_linux.sb = "virtual/kernel:do_deploy"
+
+# Boot partition volume id
+BOOTDD_VOLUME_ID ?= "Boot ${MACHINE}"
+# Boot partition size [in KiB]
+BOOT_SPACE ?= "8192"
+# Set alignment to 4MB [in KiB]
+IMAGE_ROOTFS_ALIGNMENT = "4096"
+
+IMAGE_DEPENDS_sdcard = "parted-native:do_populate_sysroot \
+ dosfstools-native:do_populate_sysroot \
+ mtools-native:do_populate_sysroot \
+ virtual/kernel:do_deploy \
+ ${@d.getVar('IMAGE_BOOTLOADER', True) and d.getVar('IMAGE_BOOTLOADER', True) + ':do_deploy' or ''}"
+
+SDCARD = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.sdcard"
+
+SDCARD_GENERATION_COMMAND_ti33x = "generate_ti_sdcard"
+
+generate_ti_sdcard () {
+ parted -s ${SDCARD} mklabel msdos
+ parted -s ${SDCARD} unit KiB mkpart primary fat32 ${IMAGE_ROOTFS_ALIGNMENT} $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED})
+ parted -s ${SDCARD} unit KiB mkpart primary $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED}) $(expr ${IMAGE_ROOTFS_ALIGNMENT} \+ ${BOOT_SPACE_ALIGNED} \+ $ROOTFS_SIZE)
+ parted -s ${SDCARD} set 1 boot on
+ parted ${SDCARD} print
+
+ BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
+ | awk '/ 1 / { print substr($4, 1, length($4 -1)) / 1024 }')
+ mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
+
+ # copy files to /boot
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/MLO-${MACHINE} ::/MLO
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.img ::/u-boot.img
+ mmd -i ${WORKDIR}/boot.img ::/boot
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/boot/${KERNEL_IMAGETYPE}
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-am335x-boneblack.dtb ::/boot/am335x-boneblack.dtb
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uEnv.txt ::/uEnv.txt
+
+ # Burn Partition
+ dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
+ dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
+}
+
+IMAGE_CMD_sdcard () {
+ if [ -z "${SDCARD_ROOTFS}" ]; then
+ bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
+ exit 1
+ fi
+
+ # Align boot partition and calculate total SD card image size
+ BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
+ BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
+ SDCARD_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE + ${IMAGE_ROOTFS_ALIGNMENT})
+
+ # Initialize a sparse file
+ dd if=/dev/zero of=${SDCARD} bs=1 count=0 seek=$(expr 1024 \* ${SDCARD_SIZE})
+
+ ${SDCARD_GENERATION_COMMAND}
+}
+
+# The sdcard requires the rootfs filesystem to be built before using
+# it so we must make this dependency explicit.
+IMAGE_TYPEDEP_sdcard = "${@d.getVar('SDCARD_ROOTFS', 1).split('.')[-1]}"
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{configure machine to use sdcard imagetype}
+add the following lines to 'meta-mini/conf/machine/beaglebone-black.conf':
+\begin{verbatim}
+IMAGE_CLASSES += "image_sdcard"
+SDCARD_ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
+IMAGE_FSTYPES += "sdcard"
+\end{verbatim}
+\end{frame}
+
\begin{frame}
\frametitle{adding an own application}
\begin{itemize}
@@ -767,16 +877,6 @@ do_install() {
\end{verbatim}
\end{frame}
-\begin{frame}
-\frametitle{use PR Service}
-bla
-\end{frame}
-
-\begin{frame}
-\frametitle{adding a bootscript}
-bla
-\end{frame}
-
\begin{frame}[fragile]
\frametitle{user and group configuration}
use this in an image recipe: