Age | Commit message (Collapse) | Author |
|
This makes 'config_format' item configurable in different layers.
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
For kernel-yocto, the commit hash of HEAD is different for every run of
do_patch if there is any patch in SRC_URI, this is breaking the recipes
that relying on KERNEL_VERSION which contains scmversion, so we should
let scmversion stick to the original head instead of the HEAD after
do_patch, this will make scmversion stable and hence will make
KERNEL_VERSION stable for the recipes that relying on it.
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
So that one sees in the Toradex Easy Installer which image is which.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
(cherry picked from commit 3d072f3077b67adf293810da51ba951dc4b6c593)
And the squashed fix:
(cherry picked from commit 78d71eea7dd80066067f93445a957f8396b63c6e)
(cherry picked from commit e6e0f885bc858f16a6c49522d91e7b6dc67d2a16)
|
|
Introduce TEZI_DATE variable, it defaults to ${TDX_MATRIX_BUILD_TIME}
but could be overridden in local.conf.
It will be used to set release_date in image json files, hence it must
be excluded by IMAGE_TYPEDEP_teziimg and IMAGE_CMD_teziimg-distro to
avoid running into basehash mismatch problems.
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
Currently we are generating image.json files directly in
${DEPLOY_DIR_IMAGE} which is not correct, since image.json file is a
image specific file so race condition could happen when multiple image
builds write to a same image.json.
Fix it by generating image json files in ${IMGDEPLOYDIR} directory with
IMAGE_BASENAME suffix and copying them to a temporary directory
${WORKDIR}/image-json with the final json names. In this way, the json
files could be handled by sstate and they turn to be image specific.
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
Actually, LOCALVERSION_AUTO needs to be enabled to make the kernel
build system picking up .scmversion. So make sure LOCALVERSION_AUTO
is enabled when we generate a .scmversion file and disabled otherwise.
Fixes: 1bb212d9311a ("toradex-kernel-localversion: disable automatic localversion")
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Introduce a new variable TEZI_IMAGE_NAME to allow a custom image name
for the Tezi tarball. This allows to stick with the default OpenEmbedded
image names for rootfs tarballs etc. while still following custom naming
rules for the final Tezi images.
Default to IMAGE_NAME to retain backward compatibility.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Make sure LOCALVERSION_AUTO is disabled to avoid interference with
our LOCALVERSION. This fixes building of the i.MX 8 kernel recipe.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Make sure TDX_VERSION is defined in case Toradex distro is not used.
This avoids confusing localverisons with just a dash.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The mainline recipe has the .config file ready later then our kernel
recipes. Use kernel_do_configure_append() which seems to work for both
cases.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The blank should be before the value rather than after it, or else we
risk on messing up the values by 'a b' > 'ab'.
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
Use OFFSET_SPL_PAYLOAD to decide if a SPL has to be deployed or not.
This allows a simple integration of machines which have an SPL (as e.g.
verdin-imx8mm has) but do aggregate the SPL and U-Boot proper into one
binary.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
The list of deployed U-Boot artefacts is set in python for the 'distro'
tezi-image, but in the non 'distro' case directly in the tar command.
Unify that to put the list together in python.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
Using PV is not a good idea with the new versioning, especially since
there is a timestamp in the version number. Use the DISTRO_VERSION
variable by default.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Add Toradex specific local version implementation for the Linux
kernel. This implementation is a simplified version from what is in
meta-freescale. It can be used with linux-yocto based Linux recipes
as well as regular OE kernel recipes and linux-fslc based recipes.
This allows us to reuse the class in all Linux recipes used by Toradex.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Add Toradex specific local version implementation. This is very similar
to what meta-freescale carries, but allows us to reuse the class in
all U-Boot recipes used by Toradex.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Currently we use PV of the image recipe as version number for the
Toradex Easy Installer image json. When trying to implement the new
versioning scheme which introduces timestamps in PV uncovered issues
which are quite complex to overcome, see also this mailing list post:
http://lists.openembedded.org/pipermail/openembedded-core/2019-November/289765.html
To be able to implement the new versioning scheme we need to change
the source of the version number used in the Tezi image json. To be
more dynamic this introduces the variable TEZI_VERSION.
So far the class used the "Software Package Version" without the
(mandatory) date identifier. However, we used the full version with
date indentifier in the file name. This changes to use the full
"Software Package Version" in both cases by default.
Also use IMAGE_CMD_xy[vardepexclude] instead of the task name directly.
This makes sure that image.bbclass does remove the variable from the
image store and avoids premature expansion which leads in basehash
value changed issues.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
This patch mainlay aims to refactor bootfs image function, use tar and
xz conversion functions to replace our own create_tezi_bootfs, the
benifit would be we could choose other compression type like Zstandard
easily by setting TEZI_BOOT_SUFFIX and TEZI_ROOT_SUFFIX for bootfs and
rootfs.
Signed-off-by: Ming Liu <ming.liu@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Prefer the $() syntax, it is POSIX and allows nesting.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
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>
|
|
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>
|
|
This prepares support for images with multiple flash types.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
The whole tarball is built as part of the the teziimg CMD.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
Break tar commands for better readability. No functional change.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
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>
|