summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2019-10-06Revert 'image_type_tezi.bbclass: add OTA provisioning support'Ming Liu
We might not go this way to support aktualizr provisioning, revert it for now, it's to be decided how we are going to do the provisioning. Signed-off-by: Ming Liu <ming.liu@toradex.com>
2019-09-12image_type_tezi.bbclass: set RM_WORK_EXCLUDEMing Liu
The image recipes do not really support rm_work, I have observed a lot of build issues when I modified some do_image tasks while do_rootfs not touched, to give a example: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:buildinfo(d) 0003: File: 'meta/classes/image-buildinfo.bbclass', lineno: 67, function: buildinfo 0063:# Write build information to target filesystem 0064:python buildinfo () { 0065: if not d.getVar('IMAGE_BUILDINFO_FILE'): 0066: return *** 0067: with open(d.expand('${IMAGE_ROOTFS}${IMAGE_BUILDINFO_FILE}'), 'w') as build: 0068: build.writelines(( 0069: '''----------------------- 0070:Build Configuration: | 0071:----------------------- so we set RM_WORK_EXCLUDE to avoid running into those problems. Signed-off-by: Ming Liu <ming.liu@toradex.com>
2019-09-12image_type_tezi.bbclass: fix basehash changed issueMing Liu
This patch mainly aims to reintroduce a old commit 1b5ef0c9: [ image_type_tezi.bbclass: drop some useless code ] which was reverted later on since it did not fix the problem, I refactor that patch to really fix it. This patch mainly aims to reintroduce a old commit d2dc3698: [ image_type_tezi.bbclass: drop some useless code ] which was reverted later on since it did not fix the problem, I refactor that patch to really fix it. I have observed this "basehash changed" issue quite often recently, it could be reproduced easily by the following steps: 1 bitbake imagename 2 change your system time by one day ahead. 3 bitbake imagename After debugging it with bitbake-diffsigs, I found it's still caused by 'DATE' variable changing, as follows: | basehash changed from ecb5b34a4997e7f037f146932728f3eca9af34d70729e4c83cdd920dc21d7677 to | 92ad5341f99ff3a56987f4ccdc34030d5aa3e3ea1365737b5a81a12e6eb83798 | Variable DATE value changed from '20190905' to '20190906' our tricky fix of introducing 'TDX_VERDATE' does not really work, actually it makes things worse, 'DATE' has been deleted when parsing IMAGE_CMD_* tasks, which was introduced by commit 4af13a48 in OE: [ image.bbclass: delete DATE variable too ] which means DATE would not be expanded during recipe parsing, but TDX_VERDATE would, so we should replace TDX_VERDATE with DATE in IMAGE_CMD_teziimg and IMAGE_CMD_teziimg-distro tasks. To fix this annoying issue, the key point is we should avoid expanding 'DATE' during recipe parsing stage, or else the vardepsexclude would not take effect since the 'DATE' has already been expanded, so we should change a DATE reference in rootfs_tezi_json function: d.getVar('DATE') -> d.getVar('DATE', False) And there is seems still some order issue when bitbake handle vardepsexclude of IMAGE_CMD_* tasks, I have to explicitly set it for do_image_teziimg and do_image_teziimg_distro. With the above changes, the error does not show up again. Signed-off-by: Ming Liu <ming.liu@toradex.com>
2019-09-07image_type_tezi.bbclass: add OTA provisioning supportMing Liu
Add two items into image json file: ota_provisioning and ota_credentials. ota_provisioning would be set 'True' if SOTA_PACKED_CREDENTIALS is being set, and ota_credentials would be set to the basename of SOTA_PACKED_CREDENTIALS. These two variables would be checked in Tezi installer to determine whether OTA provisioning is needed. This patch would not cause any functional change in Tezi installer while SOTA_PACKED_CREDENTIALS is not set. Signed-off-by: Ming Liu <ming.liu@toradex.com>
2019-09-04image_type_tezi.bbclass: fix image.json for rawnand devicesMax Krummenacher
The TEZI_KERNEL_IMAGETYPE definition has been removed, however it is still used in the code. Change that to use KERNEL_IMAGETYPE. The results in image.json containing '"zImage"' instead of 'null' as the kernel filename. Fixes c1891e02dc9c. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2019-08-19image_type_tezi.bbclass: use IMAGE_BOOT_FILES to deploy boot filesMing Liu
The changes include: - Introduce tezi_deploy_files helper function, it could be used to install files listed in IMAGE_BOOT_FILES, the install logic is same with how WIC handle IMAGE_BOOT_FILES. - Use WKS_FILE_DEPENDS to handle the dependencies of do_image_teziimg and do_image_teziimg_distro, when USING_WIC is not set, then we need add WKS_FILE_DEPENDS to DEPENDS, or else it would be done in wic image bbclass. - Drop TEZI_KERNEL_IMAGETYPE and TEZI_KERNEL_DEVICETREE, now all the boot files would be controlled by IMAGE_BOOT_FILES. - Use ${IMAGE_LINK_NAME} instead of ${IMAGE_NAME}, to avoid including DATETIME for torizon builds. Patch has been verified on the following machines, the artifacts generated with and wihtout the patch are identical: - apalis-imx6 - apalis-imx8 - apalis-tk1 - apalis-tk1-mainline - colibri-imx6 - colibri-imx6ull - colibri-imx7 - colibri-imx8x Signed-off-by: Ming Liu <ming.liu@toradex.com>
2019-08-11image_type_tezi.bbclass: extend for apalis-imx8Max Krummenacher
The i.MX8 kernel is currently 20MB and doesn't fit in the hard coded 16MB boot partition size. Set the boot partition size dynamically to twice the payload size rounded up to the next power of 2, but at least to 16MB. The Apalis iMX8 needs additional firmware for HDMI in the boot partition. Provide a new MACHINE_BOOT_FILES variable which adds to the list of to be installed files. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2019-08-11Revert "image_type_tezi.bbclass: drop some useless code"Max Krummenacher
With thud I still see "basehash value changed" errors, even though the commit e74158b6c is available in the OE thud branch. This reverts commit 9f84ffa4b42b4d518191116614aef269ab227f0e. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2019-05-22image_type_tezi: check argument to basenameStefan Agner
Check whether argument two is given before passing it to basename. This avoids build failure when building without deploying device trees in the bootfs (e.g. TorizonCore). Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-05-20image_type_tezi: support dtbs in subdirectoriesStefan Agner
Aarch64 typically stores device trees in subdirectories, e.g. freescale/fsl-imx8qm-apalis.dtb. However, the kernel-devicetree.bbclass deploys those files without subdirectory. Make sure the Tezi image class behaves like the kernel-devicetree.bbclass. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-05-14image_type_tezi.bbclass: drop redundant codeMing Liu
There are quite a few common code being shared by rootfs_tezi_rawnand and rootfs_tezi_distro_rawnand, we should merge them to a same function to avoid being redundant. Signed-off-by: Ming Liu <liu.ming50@gmail.com>
2019-05-12image_type_tezi.bbclass: drop hard-coded tar.xzMing Liu
Replace hard-coded tar.xz by TEZI_ROOT_SUFFIX since the rootfs image suffix is being controlled by that variable. Signed-off-by: Ming Liu <liu.ming50@gmail.com>
2019-05-12image_type_tezi.bbclass: drop some useless codeMing Liu
We currently have some tricky code intended to get rid of the "basehash value changed" errors, but they are actually not needed. Since the references to "DATE" only exist in image tasks or their prefuncs, so they would be expanded at task executing time but not recipe parsing time, a 'vardepsexclude' flag would be enough in this case. I guess the reason we introduced this piece of code was that we found we still could see the annoying "basehash value changed" errors with 'vardepsexclude' flag set at that moment, but that's probably was not caused by our code, it's actually another issue now had been fixed in OE by e74158b6cc1d683ab14ef5d47ec531f986fc2259: [ rm_work: sort the value of do_build dependencies ] We can safely drop these useless code per my test. Signed-off-by: Ming Liu <liu.ming50@gmail.com>
2019-05-12image_type_tezi.bbclass: normalize some comment textsMing Liu
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
2019-03-04apalis/colibri-t20 -t30: drop machinesMax Krummenacher
These machines use an old Nvidia provided downstream kernel 3.1.10. They no longer much the way more recent sysroot components, e.g. libc, xserver et. al. The maintance burden to keep the userspace components in their old version becomes simply to high. Keep using the rocko based 2.8 BSP for these machines. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2019-03-04image_type_tezi.bbclass: refactor image size calculating functionsMing Liu
Drop bootfs_get_size since it has a obvious flaw, it's being called in both do_image_teziimg and do_image_teziimg_distro but the boot files of these two tasks are different. Drop rootfs_get_size, it's trying to get the size of IMAGE_ROOTFS directory, but in some cases, that is not correct, for instance, when TEZI_ROOT_SUFFIX is 'ota.tar.gz', the rootfs directory should be OTA_SYSROOT rather than IMAGE_ROOTFS. Introduce get_uncompressed_size function, it reads the image size from a image-size file in ${T} directory, and that image size is written into this file by the image functions when they making the tarballs. Also split the duplicated bootfs tarball creating code to a common function create_bootfs, and it must run as a prefuncs before rootfs_tezi_run_json and rootfs_tezi_run_distro_json, this ensures the image size has been written to the file when the later functions run. Signed-off-by: Ming Liu <liu.ming50@gmail.com> [use _append for tar commands] Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04meta: drop True option to getVar callsMing Liu
Search made with the following regex: getVar ?\((.*), True\), this is to be consistent with OE. This is follows the fix upstream in oe-core commit 7c552996: [ meta: remove True option to getVar calls ] Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: add option to ignore kernel and device treeLuka Pivk
In some cases kernel and device tree may be a part of rootfs and in this case we do not want to install anything related to kernel or device tree. Use TEZI_KERNEL_IMAGETYPE = "" to exclude kernel Use TEZI_KERNEL_DEVICETREE = "" to exclude device tree Signed-off-by: Luka Pivk <luka.pivk@toradex.com>
2019-03-04image_type_tezi.bbclass: drop image_types inheritanceMing Liu
It's redundant to inherit image_types bbclass, it's already done in image.bbclass. Signed-off-by: Ming Liu <liu.ming50@gmail.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: make eMMC the default flash typeStefan Agner
Before the latest changes eMMC was considered the default flash type and therefor not specified for all machines. Make sure that image_type_tezi.bbclass is backward compatible by setting TORADEX_FLASH_TYPE to "emmc" by default. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: implement teziimg for distro bootStefan Agner
Implement a separate teziimg class which support distro boot. This image format uses a layout which allows distro boot on block devices as well as raw NAND devices. It also support multi flash type images by creating two image.json files for each flash type. It requires machine specific meta data e.g.: TORADEX_PRODUCT_IDS = "0032 0033 0039 0041" TORADEX_PRODUCT_IDS[0032] = "imx7s-colibri-eval-v3.dtb,rawnand" TORADEX_PRODUCT_IDS[0033] = "imx7d-colibri-eval-v3.dtb,rawnand" TORADEX_PRODUCT_IDS[0039] = "imx7d-colibri-emmc-eval-v3.dtb,emmc" TORADEX_PRODUCT_IDS[0041] = "imx7d-colibri-eval-v3.dtb,rawnand" TORADEX_FLASH_TYPE = "rawnand emmc" UBOOT_BINARY_TEZI_EMMC = "u-boot.imx-sd" UBOOT_BINARY_TEZI_RAWNAND = "u-boot.imx-nd" UBOOT_ENV_TEZI_EMMC = "uEnv-sd.txt" UBOOT_ENV_TEZI_RAWNAND = "uEnv-nd.txt" Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: use $() instead of backticksStefan Agner
Prefer the $() syntax, it is POSIX and allows nesting. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: allow per flash type U-BootStefan Agner
Allow to use a different U-Boot binary/environment file per flash type. This prepares for a multi flash type image. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: allow custom rootfs image type and labelStefan Agner
Add variables to customize which rootfs image type we use in the Toradex Easy Installer image. Also allow custom root filesystem label. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: generate image.json per flash typeStefan Agner
This prepares support for images with multiple flash types. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: improve message during Tezi image buildStefan Agner
The whole tarball is built as part of the the teziimg CMD. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: break tar commands into multiple linesStefan Agner
Break tar commands for better readability. No functional change. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: move bootfs size calculationStefan Agner
Create a separate function to calculate bootfs size. This allows to reuse bootfs size calculation for distro boot. Signed-off-by: Stefan Agner <stefan@agner.ch>
2019-03-04image_type_tezi: use KERNEL_DEVICETREE variable directlyStefan Agner
Now that OpenEmbedded core does not prefix dtb files names with the type of the kernel image, we can get rid of our intermediate KERNEL_DEVICETREE_FILES variable. Also the tar transformation which removed kernel type prefix is no longer necessary. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2019-03-04image_type_tezi: follow dropped kernel type prefixMax Krummenacher
The following openembedded core commit dropped prefixing the dtb file names with the type of the kernel image. 1860d9d3c62e2e94cd68a809385873ffd8270b6d kernel-devicetree.bbclass: Fix and simplify instalation of DTB files Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2019-03-04image_type_tezi: address basehash/taskhash mismatchMax Krummenacher
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-27image_type_tezi: Use IMAGE_NAME_SUFFIX variableDrew Moseley
Use IMAGE_NAME_SUFFIX variable rather than hardcoded value .rootfs as suffix. Signed-off-by: Drew Moseley <drew.moseley@northern.tech> [use Python in rootfs_tezi_(emmc|rawnand) to get image suffix] Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18image_type_tezi: remove workaround to set prefuncsMax Krummenacher
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11372 With the fix available in rocko we can now replace the workaround with the usual bitbake syntax. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18image_type_tezi: move DATE dereferencing into IMAGE_CMD_teziimgMax Krummenacher
This works around bitbake throwing the following error: | ERROR: When reparsing ...angstrom-lxqt-image.bb.do_image, | the basehash value changed from b2871a71bd4873d31d3fe7de755c753f to 5cf887f9a6518e8cf668fd3f435d1fc1. | The metadata is not deterministic and this needs to be fixed. It looks like the vardepsexclude flag is ignored in general python functions. Compare also with openembedded-core commit ecbc1db7ed1f9848dee69507de8eb289b8ddeba0 and follow-up extensions which uses a different workaround for the do_image code. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18image_type_tezi: set apalis t30 cbootimageMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-06-18image_type_tezi: make emmc root file system type configurableMarcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-06-18image_type_tezi: make device tree optionalStefan Agner
Apalis T30 does not require a device tree. Do not try to deploy device trees if none are specified. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-03-28image_type_tezi: write uEnv.txt as default U-Boot environmentColibri-iMX7_LXDE-Image_2.8b2.97-20180331Colibri-iMX6_LXDE-Image_2.8b2.97-20180331Colibri-iMX6ULL_LXDE-Image_2.8b2.97-20180331Colibri-VF_LXDE-Image_2.8b2.97-20180331Colibri-T30_LXDE-Image_2.8b2.97-20180331Colibri-T20_LXDE-Image_2.8b2.97-20180331Apalis-iMX6_LXDE-Image_2.8b2.97-20180331Apalis-TK1_LXDE-Image_2.8b2.97-20180331Apalis-TK1-Mainline_LXDE-Image_2.8b2.97-20180331Apalis-T30_LXDE-Image_2.8b2.97-20180331Stefan Agner
Use the "u_boot_env" property to write uEnv.txt to flash by default. With that the Toradex Easy Installer will make sure that the default environment of the shipped U-Boot is written on flash. Especially since with 2.8b2 we transition to using zImage, this change will make sure that a correct U-Boot environment is written on flash to boot the zImage. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-03-28image_type_tezi: deploy default U-Boot environmentStefan Agner
Deploy the default U-Boot environment alongside U-Boot itself. This is helpful along with the new u_boot_env property for Toradex Easy Installer image files. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-12-22image_type_tezi: replace depracated IMAGE_DEPENDSMax Krummenacher
with its aquivalent do_image_teziimg[depends]. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-11-27image_type_tezi: make sure Tezi image use the -Tezi suffixStefan Agner
To clearly distinguish between images for Toradex Easy Installer and legacy images we add the suffix -Tezi to the Toradex Easy Installer images. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2017-11-27image_type_tezi: make sure image.json uses RFC 3339 datesStefan Agner
Use RFC 3339 date (2017-11-15) in the release_date field. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2017-10-03image_type_tezi: uboot_binary handling cbootimage for apalis tk1Marcel Ziswiler
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2017-10-03image_type_tezi: configurable payload offsetsMarcel Ziswiler
Use configurable rather than hard-coded boot ROM and SPL payload offsets. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2017-10-03image_type_tezi: make sure UBOOT_BINARY is definedStefan Agner
UBOOT_BINARY is only available in U-Boot recipes and the Toradex image recipes. If the Toradex image recipes are not used, then UBOOT_BINARY is undefined and image.json contains "null" instead of the binary name. Define UBOOT_BINARY with a reasonable default. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-10-03image_type_tezi: generate image.json as a image prefuncStefan Agner
Generate the image description file just before the Tezi image gets generated by attaching rootfs_tezi_json as a prefunc of do_image. It should lead to better root file system size estimation since all do_rootfs post processing functions have been processed at that time. It also allows to move the check whether an Tezi image will be built into the anonymous python function. Later we should be able to get rid of the check by just adding rootfs_tezi_json as a prefunc of do_image_tezirun. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-10-03image_type_tezi: depend on u-bootMax Krummenacher
Without this, if nothing else makes sure that U-Boot got built then image_type_tezi fails. This can happen when one does build core-image-minimal. | NOTE: Create bootfs tarball | tar: SPL: Cannot stat: No such file or directory Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-10-03image_type_tezi: do not discard by defaultStefan Agner
The utility to create ext4 file systems (mkfs.ext4) discards all data on the target partition before creating the file system by default. On some eMMC this operation takes a while several seconds which makes flashing images slow. Often a new image is written to a already (almost) empty eMMC, so there is not a lot of value in discarding all data before flashing. Also, the Toradex Easy Installer has its own option which uses blkdiscard to discard blocks before writing (see "erase" option). Disable discard during file system creation by default using the nodiscard option. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-10-03image_type_tezi: support non-SPL eMMC targetsStefan Agner
Colibri iMX7 Dual 1GB uses eMMC but no SPL. Make sure that Tezi flashes the u-boot.imx binary to the location where the boot loader expects the image. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2017-10-03image_type_tezi: use standard variables as much as possibleStefan Agner
Use OpenEmbedded standard variables such as PV and DATE as much as possible. This allows to reuse the Tezi image class for non- Toradex images with their own versioning scheme. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>