Commit Graph

500 Commits

Author SHA1 Message Date
Francisco Gil f308ccfa66 update-firmware: rename the firmware-update from recovery-utils
There is a problem when building the SDK because two binaries
have the same name (update-firmware) and makes the compilation
to fail.

Change the name to update-firmware.recovery and create a wrapper
over the update-firmware to check if the system is not dual boot
to call it.

Rework the code to make it more reliable.

Remove the umount of the alternative linux partition, now it is
not needed because only the active linux partition is mounted now.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-22 11:42:39 +01:00
Francisco Gil cae4c1f1dc recovery: change the name of the file descriptor to check
Now in the file descriptor we have three different names:
platform, primary and secondary.
Also a link from 'platform' to 'single' to keep backward
compatibility.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-22 11:42:39 +01:00
Francisco Gil 6ffbbb390a dualboot: get rid of DUALBOOT_ENABLED configuration
All the dualboot logic will be checked in run time.
To do this:
* Include the altboot.src by default in all the images
* Create a post installation script to change the
firmware_download_path in the cloud connector
* Unify the swupdate file descriptor for dual and single boot

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-22 11:42:39 +01:00
Javier Viguera bbd58825c4 recovery-utils: relax command mode check
As a result of the dualboot support we may end up with two
'update-firmware' commands in the rootfs. To prevent file name clashing,
we may need to install the recovery-utils update-firmware as
update-firmware.recovery, and then the current command mode check would
fail.

Relax the check, by just looking at the first character.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-11-17 16:24:52 +01:00
Tatiana Leon 13f2924399 ccmp15: crank: remove some features from crank image to reduce its size
Generated Crank rootfs image for the ConnectCore MP15 is too big to fit in a
dual boot system. This commit removes gstreamer and package-management features.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2022-11-11 10:08:34 +01:00
Hector Palacios 1105a8fecd dualboot: move contents of meta-digi-dualboot layer into meta-digi as a class
- create dualboot.bbclass that
  - sets DUALBOOT_ENABLED variable
  - defines partition names and function for changing the sw-description
    for swupdate
- move files from layer into meta-digi

https://onedigi.atlassian.net/browse/DEL-7962

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-10-26 11:29:23 +02:00
Javier Viguera cd9e12da32 meta-digi-dey: on CC6UL add connectcore demo only for core-image-base
If we add the demo to the graphical images (dey-image-qt) the resulting
image does not fit on the rootfs partition for the smallest variant.

https://onedigi.atlassian.net/browse/DEL-8004

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-10-18 11:30:26 +02:00
Arturo Buzarra dda302ef77 core-image-base: remove splash package for CCMP13 platform
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-09-27 13:51:35 +02:00
Arturo Buzarra 0380161f02 meta-digi: generalize recipes to support ConnectCore MP13 DVK platform
https://onedigi.atlassian.net/browse/DEL-8078

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-09-15 16:14:30 +02:00
Tatiana Leon 8a81dd87f8 crank: add new crank image
https://onedigi.atlassian.net/browse/DEL-7969

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2022-08-26 13:34:59 +02:00
David Escalona d695a78524 images: include 'connectcore-demo-example' by default in all images
Signed-off-by: David Escalona <david.escalona@digi.com>
2022-07-18 16:32:25 +02:00
David Escalona dc84be34bf meta-digi-dey: busybox: remove default landing web page for ccimx6ulsbc
The ConnectCore Demo web page will be the new default landing page for all products,
so remove the default landing page that was created for the ccimx6ulsbc platform.

Signed-off-by: David Escalona <david.escalona@digi.com>
2022-07-18 16:32:25 +02:00
Arturo Buzarra d261ba301b stm-st-stm32mp: add packagegroup-dey-gstreamer to support STM platforms
https://onedigi.atlassian.net/browse/DEL-7981

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-07-04 16:56:41 +02:00
Arturo Buzarra 0aca74ab23 kirkstone migration: remove legacy clutter-1.0-examples package
Since Yocto 3.4 the package "clutter-1.0" was considered a legacy component,
and moved to meta-gnome.

https://onedigi.atlassian.net/browse/DEL-7981

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-06-29 12:31:11 +02:00
Javier Viguera 2452e85a6b kirkstone migration: cosmetic, clean build warnings
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-21 16:49:56 +02:00
Javier Viguera 1195046abd kirkstone migration: update sysvinit package
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-21 16:49:56 +02:00
Javier Viguera 1f6ece730d kirkstone migration: update busybox package
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-20 11:39:57 +02:00
Javier Viguera 065cf3e9c4 kirkstone migration: general update to the new override syntax
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-06-20 11:39:57 +02:00
Mike Engel 3d704591f5 busybox: add CCMP15 standby files
This commit adds a copy of the standby script used by the
CC6Ul.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2022-05-04 14:01:05 +02:00
Mike Engel d3b7fca933 busybox: add power safe and reboot safe scripts for the MCA
This commit adds power safe and reboot safe script for the MCA
and substitute default reboot and poweroff busybox commands.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://onedigi.atlassian.net/browse/DEL-7828
2022-02-18 18:17:07 +01:00
Gabriel Valcazar 93a4bd0086 hardknott: busybox: re-use files from poky
Even though our busybox recipe (v1.34.1) is backported from poky's honister
branch, it has many elements in common with the recipe provided from poky's
hardknott branch (v1.33.1). To simplify our backport, re-use poky's busybox
files when possible, replacing them only when strictly necessary.

While at it, remove the busybox-inittab recipe, since there are barely any
differences between the honister and hardknott versions.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar 52c37a6fe5 hardknott: meta-digi: replace GPL-2.0 license file with GPL-2.0-only
The common license file GPL-2.0 is now called GPL-2.0-only in poky, so we need
to reflect this name change to avoid errors

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar 1f2d0b8535 hardknott: packagegroup-dey-core: add firmwared dependency
This is a generic package that is currently being used by NXP to load firmware
on the target, so include it in our images as well. Since it only works with
systemd, leave it out of builds that use sysvinit.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar 9a399811cd hardknott: systemd-gpuconfig: sync with meta-imx hardknott-5.10.72-2.2.0 branch
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar 6bf8c97b50 hardknott: sysvinit: update to v2.99
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar 0c9cbf3ca7 hardknott: glib-2.0: remove patch already included in hardknott version
This patch was initially needed for a specific version combination of
NetworkManager (>= v1.22) and glib-2.0 (v2.63.3 - v2.64.X), but since the
hardknott branch of poky now provides glib-2.0 v2.66.7, the patch isn't
needed anymore.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar a627ccb6f3 hardknott: glibc: remove v2.33 recipes and their respective files
The recipes for this version are already provided by poky

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2022-01-05 11:09:46 +01:00
Gabriel Valcazar b97d824d38 busybox: add support to run mdev in daemon mode
This mode is necessary in the recovery initramfs to be able to properly detect
any external storage device that might contain an update package. The
configuration option associated with this mode became explicit after upgrading
busybox to v1.34.1, so enable it in our defconfig.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-11-30 14:08:50 +01:00
Francisco Gil 24063490ea recovery-initramfs-init: fix condition for nand devices
The nand devices doesn't need to call the mount_cryptrootfs
script.

Reported-by: Francisco Gil <francisco.gilmartinez@digi.com>
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-11-25 08:41:03 +01:00
Gabriel Valcazar f3aab304c6 busybox: upgrade to v1.34.1
Backport the recipes from the honister poky branch. This version includes fixes
for several CVEs:

https://thehackernews.com/2021/11/14-new-security-flaws-found-in-busybox.html

Sync our defconfig with the latest version while keeping our custom config
changes.

https://onedigi.atlassian.net/browse/DEL-7728

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-11-16 13:16:34 +01:00
Hector Palacios 116fb5e203 meta-digi-dey: append 'dey' distro override to PACKAGECONFIG_remove
Some recipes were forcibly removing conflicting packages.
This does not allow to add those packages back for users that
want to use meta-digi layer, but a different distro than 'dey'.
With the 'dey' distro override, such removals are only done
if using this distro.

Reported-by: Michael Burr <michael.burr@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7712
2021-11-12 09:01:44 +01:00
Hector Palacios fe2a1f281e Merge branch 'dey-3.2/master' into dey-3.2/maint
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-11-11 16:23:43 +01:00
Arturo Buzarra d81444a574 swu-images: fix support to preinstallation script in swu update package
Since commit 11558352 ("swu-images: add "installed-directly" flag to
sw-description") the swu package images are streamed into the target without
any temporary copy to support devices with low memory available, that forces a
different order according with the swupdate documentation because scripts
should packed before the rest. This means that all the pre, post and shell
scripts will be executed after the images will be installed. This behavior
breaks the current support to mount the cryptorootfs node before install an
encrypted rootfs.

This commit moves the shell script to mount the cryptorootfs node to the
recovery initramfs and modifies the swupdate command line to call the shell
script before the images installation.

https://onedigi.atlassian.net/browse/CC8X-320

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-11-08 08:39:18 +01:00
Arturo Buzarra b03a2af5b2 recovery-initramfs-init: fix support to identify encrypted rootfs images
Since we added support for compressing rootfs images, we need to manage SWU
packages with a regular rootfs image and with compressed images. That support
was missing in the identification process when the SWU packet was verified.
This commit fixes the identification of compressed rootfs images.

https://onedigi.atlassian.net/browse/CC8X-320

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-11-08 08:22:11 +01:00
Hector Palacios 71b3623b59 init-ifupdown: adapt recipe for read-only-rootfs
This recipe had a post install script to do the following:
 - create runlevel symlinks.
 - comment the 'auto' lines of /etc/network/interfaces if running on
   a non-Wi-Fi variant.
 - add Atheros or QCA bridge examples depending on the detected chip.
 - add wlan1 interface only if QCA chip is detected.

This post install cannot run on a read-only-rootfs so the recipe has been
reworked to do the same things at build time:

 - the runlevel symlinks have been removed because they are taken care
   of by a poky class.
 - add a pre-up condition (the existance of a wireless entry on the device
   tree) so that the interface is not brought up if the condition is not met.
 - for the cc6/cc6n, since the Wi-Fi chip can be Atheros or QCA, add
   specific wlan1 and br0 fragments with a pre-up condition basing on the
   detected ID of the Wi-Fi chip

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7708
2021-11-05 11:30:12 +01:00
Javier Viguera c89a66480b meta-digi: remove postinst on target when using read-only-rootfs image feature
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2021-11-05 11:18:16 +01:00
Gabriel Valcazar f3210db348 ccimx6sbc: adapt recipes to support Atheros and Qualcomm wireless chips
Some packages require different scripts, configuration files or installations
depending on the wireless chip assembled on the target. In general, the way
to support both chips in one image is to have the recipes install both
versions of the aforementioned files, then leave only the strictly necessary
version once the wireless chip can be deduced.

In the case of the init-ifupdown recipe, this involves installing temporary
configuration fragments that are later erased. In the case of the standby
script, the logic can be implemented in a single file.

https://onedigi.atlassian.net/browse/DEL-7661
https://onedigi.atlassian.net/browse/DEL-7666

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-11-03 15:58:53 +01:00
Arturo Buzarra 67c1ef2c9e recovery-initramfs-init: fix psplash communication FIFO path
The latest version of psplash changed the default path to store the
communication FIFO with other processes to "/run" to allow keeping the
information between reboots, however we are using this tool from an initramfs
where "/run" does not exist, producing multiple errors trying to write to a
nonexistent path, delaying the update process.

This commit forces psplash to use an existing path like "/tmp" to handle the
communication FIFO, because we don't need to maintain the update information.

https://onedigi.atlassian.net/browse/CC8X-318

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-10-29 11:26:43 +02:00
Arturo Buzarra 4a54512d64 recovery-initramfs-init: fix psplash communication FIFO path
The latest version of psplash changed the default path to store the
communication FIFO with other processes to "/run" to allow keeping the
information between reboots, however we are using this tool from an initramfs
where "/run" does not exist, producing multiple errors trying to write to a
nonexistent path, delaying the update process.

This commit forces psplash to use an existing path like "/tmp" to handle the
communication FIFO, because we don't need to maintain the update information.

https://onedigi.atlassian.net/browse/CC8X-318

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-10-29 09:35:53 +02:00
Hector Palacios cc2df395c5 uboot: ccimx6ul: rename variable for single MTD system partition
Rename from 'ubisysvols' to 'singlemtdsys'.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-29 13:44:50 +02:00
Hector Palacios 6910a11eab recovery: turn is_dualboot_enabled() into generic function
The new function compares the value of the variable with
one given as parameter.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-09-09 17:38:44 +02:00
Hector Palacios ec08b1277a recovery-initramfs-init: add support for ubisysvols
Adapt the format_ubi_volume() function to wipe out UBI volumes
instead of formatting MTD partitions.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7614
2021-09-09 17:38:44 +02:00
Hector Palacios 90706f5d39 recovery: free strings returned by uboot_getenv()
The function uboot_getenv() is a wrapper over libuboot_get_env() and
requires that the returned strings are freed when no longer in use.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7645
(cherry picked from commit 27ce7a4f20)
2021-08-27 12:49:31 +02:00
Hector Palacios c93945c995 recovery: [cosmetic] replace whitespaces with tabs where appropriate
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
(cherry picked from commit f806979c84)
2021-08-27 12:49:25 +02:00
Hector Palacios 846bccc8bf recovery: rework is_dualboot_enabled() function
- The function is only used internally in this file, so make it static.
- Convert the function from 'int' to 'bool', since no other values are
  evaluated.
- Only return true if the variable 'dualboot' is set to 'yes'. Before,
  the function returned true if 'dualboot' was different than 'no'.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
(cherry picked from commit 9a519570ba)
2021-08-27 12:49:22 +02:00
Hector Palacios 53759cd29c recovery: check variable returned by uboot_getenv() is not NULL
The use of this function, which is a wrapper over libuboot_get_env(),
requires checking if the returned string is NULL.
Manipulations of such string without checking whether it's NULL may lead
to segfault errors.
This was seen during firmware update on a device that didn't have the
'dualboot' variable set.

Reported-by: Chandrababu Pigilam <chandrababu.pigilam@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7645
(cherry picked from commit 8a4484bbd6)
2021-08-27 12:49:16 +02:00
Hector Palacios 27ce7a4f20 recovery: free strings returned by uboot_getenv()
The function uboot_getenv() is a wrapper over libuboot_get_env() and
requires that the returned strings are freed when no longer in use.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7645
2021-08-25 16:20:43 +02:00
Hector Palacios f806979c84 recovery: [cosmetic] replace whitespaces with tabs where appropriate
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-08-25 16:20:43 +02:00
Hector Palacios 9a519570ba recovery: rework is_dualboot_enabled() function
- The function is only used internally in this file, so make it static.
- Convert the function from 'int' to 'bool', since no other values are
  evaluated.
- Only return true if the variable 'dualboot' is set to 'yes'. Before,
  the function returned true if 'dualboot' was different than 'no'.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2021-08-25 16:20:43 +02:00
Hector Palacios 8a4484bbd6 recovery: check variable returned by uboot_getenv() is not NULL
The use of this function, which is a wrapper over libuboot_get_env(),
requires checking if the returned string is NULL.
Manipulations of such string without checking whether it's NULL may lead
to segfault errors.
This was seen during firmware update on a device that didn't have the
'dualboot' variable set.

Reported-by: Chandrababu Pigilam <chandrababu.pigilam@digi.com>
Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://onedigi.atlassian.net/browse/DEL-7645
2021-08-25 16:20:24 +02:00
Gabriel Valcazar feec2aa4f7 glib-2.0: backport 2.65 patch to prevent NetworkManager segmentation faults
NetworkManager's main library went through a major overhaul in v1.22, changing
the way it interacts with glib among other things. When using a NetworkManager
version equal or newer than v1.22 along with a glib version between 2.63.3 and
2.65, a race condition can happen, randomly causing segmentation faults.

Since Yocto 3.2 uses NetworkManager 1.22.14 and glib 2.64.5, the race condition
is reproducible, but it can be fixed with the patch introduced in this commit.
The patch in question is commit e4a690f5dd959e74b2d6054826f61509892c8aa7 in the
glib git repo.

https://onedigi.atlassian.net/browse/DEL-7523

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-08-16 15:26:40 +02:00
Gabriel Valcazar 78e8a75ff2 glib-2.0: backport 2.65 patch to prevent NetworkManager segmentation faults
NetworkManager's main library went through a major overhaul in v1.22, changing
the way it interacts with glib among other things. When using a NetworkManager
version equal or newer than v1.22 along with a glib version between 2.63.3 and
2.65, a race condition can happen, randomly causing segmentation faults.

Since Yocto 3.2 uses NetworkManager 1.22.14 and glib 2.64.5, the race condition
is reproducible, but it can be fixed with the patch introduced in this commit.
The patch in question is commit e4a690f5dd959e74b2d6054826f61509892c8aa7 in the
glib git repo.

https://onedigi.atlassian.net/browse/DEL-7523

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-08-11 12:38:10 +02:00
Mike Engel 37832e8b3b glibc: upgrade to version 2.33 for eIQ support
Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2021-08-11 10:39:26 +02:00
Mike Engel c47377df22 recovery-utils: add check into recover library if dualboot is enabled
This commit add a verification into the recovery library to avoid
that it is executed when in dualboot mode.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://onedigi.atlassian.net/browse/DEL-7580
(cherry picked from commit 30aa4a7444)
2021-07-28 17:19:44 +02:00
Mike Engel 30aa4a7444 recovery-utils: add check into recover library if dualboot is enabled
This commit add a verification into the recovery library to avoid
that it is executed when in dualboot mode.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://onedigi.atlassian.net/browse/DEL-7580
2021-07-15 10:17:53 +02:00
Gonzalo Ruiz 3e75c1ed34 recovery-initramfs: launch mdev as daemon
'mdev -s' run on ramfs initialization is able to mount external media already
detected but fails to automatically mount any media detected afterwards.
Running it as a daemon first it will also be able to mount any media detected
after 'mdev -s' is run.

Use argument '-d' to first run mdev as daemon in background.

Move 2 seconds delay to after mdev has been initialized to give external
hardware all the time possible to be successfully detected and mounted.

https://onedigi.atlassian.net/browse/DEL-7285

Signed-off-by: Gonzalo Ruiz <Gonzalo.Ruiz@digi.com>
2021-06-24 10:46:19 +02:00
Mike Engel 5c77cbb502 recovery: add swupdate parameter to select image description.
This commit adds some swupdate parameter to select the sw-description
configuration depending on the used platform.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2021-06-08 16:25:04 +02:00
Gabriel Valcazar d5c696fd5b recovery-utils: only print open device warning when encrypting partitions
Technically, partition unencryption is safe to do in open devices, although it
implies that at least one partition has already been encrypted. If we aren't
going to encrypt any partitions, there's no need to print the warning.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-06-02 14:45:00 +02:00
Gabriel Valcazar 8c19cda181 recovery: change way of deciding if platform uses NAND or eMMC
Instead of checking for the existence of /proc/mtd, which might lead to false
positives, check the "root" parameter in /proc/cmdline. Assume eMMC in case of
any error.

https://onedigi.atlassian.net/browse/DEL-7539

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-06-02 14:45:00 +02:00
Arturo Buzarra 8227a49140 systemd: reduce verbosity of sysv-generator
There are some init packages from the poky layer that remain using only a SysV
init script. Systemd converts these init scripts to systemd service format on
boot and shows an ugly warning for each one. To avoid flooding the console with
this kind of messages, we reduce the verbosity of these messages.

https://onedigi.atlassian.net/browse/DEL-7540

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-06-01 16:26:01 +02:00
Gabriel Valcazar 94551f0c4d recovery-initramfs: correctly set environment variables containing spaces
In the libubootenv implementation of fw_setenv, multiple variables can be set
in one call. When setting a variable with a space-separated list, the app
interprets the list as new variable/value tuples, for example:

    fw_setenv myvar value1 value2 value3

Results in:

    myvar=value1
    value2=value3

This was causing the encrypted eMMC partition mechanism to break, because the
list of encrypted partitions is stored as a space-separated list in an
environment variable. Avoid this by enclosing the variable argument of
set_uboot_var() with double quotes.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-06-01 09:47:39 +02:00
Gabriel Valcazar 737230a2f4 recovery-initramfs: automatically set an encryption key if needed
Before using the encrypted partition functionality, users have to manually
install the encryption key in the system. Failing to install said key will
result in errors later on.

Even though the installation isn't a difficult operation from a user's point of
view, the recovery script has the necessary logic to detect cases where a
partition is going to be encrypted with no key installed. Automatically
generate a key in these cases to avoid undesired behavior and to improve the
overall user experience.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:44 +02:00
Gabriel Valcazar 158a9e1779 trustfence-tool: update to v2.5
This version adds new functionality to check if an encryption key is installed
as well as a fix for an issue that happens when encrypting partitions with long
names (over 12 characters).

https://onedigi.atlassian.net/browse/DEL-7535

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:44 +02:00
Gabriel Valcazar 32984efc90 recovery-utils: ask for confirmation when changing the encryption key
If we trigger a key change while there are partitions that are encrypted,
print a warning and ask for confirmation so users know that the operation will
erase the contents of said partitions.

Like in the partition (un)encryption mechanism, add the possibility to skip
both the warning message and the confirmation prompt.

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:44 +02:00
Gabriel Valcazar e2cd4f6d9a trustfence-initramfs: remove support for platforms with NAND internal storage
This initramfs only makes sense in platforms with an eMMC as the internal
storage, due to how the partition encryption support is implemented. In
plaatforms that use NAND instead, ths initramfs offers no functionality and
increases the recovery image size, so remove it.

https://onedigi.atlassian.net/browse/DEL-7534

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:44 +02:00
Gabriel Valcazar a432a6353a recovery-initramfs: make rootfs encryption status changeable via updates only
If we allow users to manually change the encryption status of the rootfs
partition, we run the risk of wiping it without flashing a proper replacement
image. Because of this, rootfs encryption status should be determined
automatically using information from the update package.

Have the recovery script parse the update package's description to determine
whether to encrypt the rootfs or not.

https://onedigi.atlassian.net/browse/DEL-7174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Gabriel Valcazar 953a376d97 recovery-utils: don't allow manual (un)encryption of rootfs partition
This partition isn't blacklisted, but it should only be (un)encrypted when
providing an update package. Make it so that manual encryption status changes
for this partition aren't possible from the recovery library.

https://onedigi.atlassian.net/browse/DEL-7174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Gabriel Valcazar 82a76a7106 trustfence: split filesystem encryption support into two variables
Previously, TRUSTFENCE_INITRAMFS_IMAGE was the only variable used to configure
rootfs encryption. Now that any partition can be encrypted and the rootfs
encryption still needs to be handled differently, use two variables instead.

    * TRUSTFENCE_ENCRYPT_PARTITIONS to control partition encryption in general
    * TRUSTFENCE_ENCRYPT_ROOTFS to control rootfs encryption

As with most trustfence functionality, enable both by default. Leave
TRUSTFENCE_INITRAMFS_IMAGE as an internal variable only.

https://onedigi.atlassian.net/browse/DEL-7174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Gabriel Valcazar 402f9775b9 recovery-initramfs: manage update partition correctly with partition encryption
Since the update partition might be involved during a software update, we need
to make sure that its contents are accesible and safe when using the partition
encryption feature at the same time.

Mount and unmount the partition correctly if it's encrypted and cancel any
operations that will result in the deletion of the update package.

https://onedigi.atlassian.net/browse/DEL-7174
https://onedigi.atlassian.net/browse/DEL-7422

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Gabriel Valcazar d54510766a recovery-utils: add partition encryption support
Add a new function to the recovery library to be able to encrypt/unencrypt any
partition on the internal storage media. Since it's a destructive operation,
add a warning message and a confirmation prompt that can be skipped if needed.

Reflect this new functionality in the recovery-reboot app. Change the logic so
that an encryption key can be set even if there's no update package, because
now it's possible to encrypt other partitions while leaving the rootfs intact.
Also change the logic so that the app doesn't reboot into recovery mode if
there's no recovery command set.

Implement the same blacklist as the one in the recovery script.

https://onedigi.atlassian.net/browse/DEL-7174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Gabriel Valcazar 59e652ec9b trustfence: extend partition encryption support to any partition
Modify the recovery and trustfence initramfs scripts to be able to encrypt any
partition on the internal storage media, not just the rootfs.

To implement this functionality, add a new recovery command called
'encrypt_partitions'. When used, this command must contain a comma-separated
list of the partitions that are to be encrypted by the end of the recovery
process, including partitions that were already encrypted beforehand. Any
partition that isn't in the list will be unencrypted. If the command is absent,
no changes will be made, but it's possible to pass an empty command to
unencrypt all partitions.

Include a blacklist to avoid encrypting partitions that shouldn't be encrypted,
such as partitions that need to be accessed by the ROM code/U-Boot or
partitions that contain encryption keys.

While at it, remove unnecessary "get_kernel_version" function from the script.

https://onedigi.atlassian.net/browse/DEL-7174

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-27 12:10:43 +02:00
Francisco Gil Martinez 562a00fe2f libgpiod: add libgpiod-tools dependence
Now libgpiod is not added automatically and we need to add the
dependence manually.
For more info see commit 4339c28ff4aa0264c34f4f183349aea20a5ff127 in
meta-openembedded layer.

https://jira.digi.com/browse/DEL-7522

Signed-off-by: Francisco Gil Martinez <francisco.gilmartinez@digi.com>
2021-05-12 08:12:21 +02:00
Arturo Buzarra a686e1f4fa packagegroup-dey-core: fix build error on platforms without systemd for system-monitor recipe
Recipe system-monitor has a dependency with systemd package, however it was
added unconditionally for all platforms. This commit adds a protection to
include this recipe only when systemd is present in the DISTRO_FEATURES

https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-05-05 19:18:11 +02:00
Arturo Buzarra ccaadd7c1b system-monitor: add features_check to fix build warning
This commit fixes the following warning:
    WARNING: system-monitor-0.1-r0 do_package_qa: QA Issue: system-monitor:
    recipe doesn't inherit features_check [unhandled-features-check]

https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-05-05 19:18:11 +02:00
Arturo Buzarra ca5a2cce23 gatesgarth migration: psplash: rework Digi customization to match new version
Commit f7a354d("Generate image headers from their PNG source, while still
including them in dist tarball") provides a default PNG files removing the image
generation in build time. This commit overwrites the default PNG with one
customized by Digi.

https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-05-05 19:18:11 +02:00
Gabriel Valcazar 77039b87df gatesgarth migration: Convert u-boot-fw-utils dependencies to libubootenv dependencies
Modify the recovery-utils code to reflect the change (change in C header and
linked libraries)

https://jira.digi.com/browse/DEL-7410

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-05-05 19:18:11 +02:00
Arturo Buzarra 4342546a01 gatesgarth migration: features_check class replaces distro_features_check
The 'distro_features_check' class has had its functionality expanded, as
a result the class has now been renamed to 'features_check'

https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-05-05 19:18:11 +02:00
Arturo Buzarra b2152d4721 gatesgarth migration: sysvinit: update to recipe v2.97
https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-05-05 19:18:11 +02:00
Arturo Buzarra e6cd16428a gatesgarth migration: packagegroup-dey-core: add networkmanager-nmcli package
NetworkManager recipe split the command line util in a different package, so we
added it in our default images.

https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-04-29 20:07:28 +02:00
Arturo Buzarra 4bff866a5d gatesgarth migration: busybox: update to version 1.32.0
https://jira.digi.com/browse/DEL-7508

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-04-29 20:07:28 +02:00
Gabriel Valcazar de7d43a6f0 systemd-gpuconfig: Update recipe to new NXP BSP release imx_5.4.70_2.3.1
Add missing gpuconfig script elements

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2021-02-17 12:01:00 +01:00
Arturo Buzarra 33cc4729ae busybox: add support to ConnectCore 8M Mini DVK platform
Use the same common files for both ConnectCore 8M platforms

https://jira.digi.com/browse/DEL-7397

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2021-02-04 13:07:07 +01:00
Gabriel Valcazar f7c86fb0a4 busybox: remove default http homepage elements
We're going to be using the busybox http server to house the WebKit examples,
so we need to get rid of any files that might interfere with it. Keep the files
for the ccimx6ul, since it doesn't support WebKit.

https://jira.digi.com/browse/DEL-7314
https://jira.digi.com/browse/DEL-7339

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-12-17 09:33:22 +01:00
Gabriel Valcazar f91cb8d6bd Add support for the dey-image-webkit image
This image is very similar to dey-image-qt, but it includes the WebKit
packagegroup instead of the Qt one. Said packagegroup contains all of the
elements needed to run a WebKit-based browser environment in DEY.

This image requires the meta-webkit layer, so include it in our default
bblayers template. For now, include all WebKit related recipes in a dynamic
layer, because the ccimx6ul doesn't support WebKit and its projects don't need
meta-webkit at all.

https://jira.digi.com/browse/DEL-7339

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-12-14 11:49:33 +01:00
Hector Bujanda 65d184cac3 busybox: standby: ccimx8x/mn: configure power LED for blinking in standby
configure power LED for blinking in standby
configure power LED solid on after resume

https://jira.digi.com/browse/DEL-7330

Signed-off-by: Hector Bujanda <Hector.Bujanda@digi.com>
2020-11-24 11:41:21 +01:00
Hector Bujanda adebdabac9 recipes-core: systemd-gpuconfig: Update recipes to new BSP release imx_5.4.47_2.2.0
Includes:
gpuconfig/rc_gpu.S: Update the lib names of libOpenVG [YOCIMX-4888]

    In imx-gpu-viv 6.4.3, the 2D/3D OpenVG lib names are changed:

      libOpenVG.2d.so – > libOpenVG.2d.so.1.1.0
      libOpenVG.3d.so – > libOpenVG.3d.so.1.1.0

Signed-off-by: Hector Bujanda <Hector.Bujanda@digi.com>
2020-11-02 22:06:27 +01:00
Gabriel Valcazar a872c5f4cd trustfence-tool: update to v2.4
This version includes changes needed to reflect the OTP driver update in the
kernel.

https://jira.digi.com/browse/DEL-7261

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-10-05 13:06:36 +02:00
Gabriel Valcazar 7938ddef8f dey-image-recovery-initramfs: remove openssl-bin from initramfs
This package was being included as a RRECOMMENDS from libcrypto, but we don't
need it in the initramfs at all. Since our recovery image is already pretty big
compared with the recovery partition size on ccimx6ul platforms with 256 MB of
storage, remove it to make sure the image can fit.

https://jira.digi.com/browse/DEL-7253

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-09-29 09:48:16 +02:00
Hector Palacios 8e23fbfd13 Merge branch 'dey-3.0/master' into hpalacio/dey-3.0-merge
Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2020-09-15 08:53:28 +02:00
Mattias Lindblad 89c2e830d8 busybox: standby: update busybox timeout syntax
Signed-off-by: Mattias Lindblad <mattias.lindblad@niradynamics.se>
Reviewed-by: Hector Palacios <hector.palacios@digi.com>
2020-08-25 07:54:57 +02:00
Hector Palacios ff5d0628d9 recovery: change the way to determine if the device is closed
The old fsl_otp driver is deprecated and we need to determine
if the device is closed using a new property of the device tree
called 'digi,tf-closed'.

Assume the device is open if the property is not found.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://jira.digi.com/browse/DEL-7185
(cherry picked from commit fc1a736758)
2020-07-24 13:13:43 +02:00
Hector Palacios fc1a736758 recovery: change the way to determine if the device is closed
The old fsl_otp driver is deprecated and we need to determine
if the device is closed using a new property of the device tree
called 'digi,tf-closed'.

Assume the device is open if the property is not found.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://jira.digi.com/browse/DEL-7185
2020-07-24 13:12:13 +02:00
Gabriel Valcazar 212448fe2d recovery-initramfs: don't format the rootfs partition unless it's necessary
By default, we generate SWU files which update both the linux and rootfs
partitions. This, along with the fact that platforms using NAND as the storage
media require a reboot for the rootfs partition's "enc" flag to take effect,
makes it safe to format the NAND's rootfs partition before performing an
update, regardless of having to encrypt the rootfs or not.

However, customers that wish to use the swupdate feature to update just the
linux partition will find that the rootfs is completely erased after the update
is finished, because a new rootfs hasn't been written in its place.

To avoid this scenario, parse the SWU package's description to verify that it
contains a rootfs image before formatting the partition.

https://jira.digi.com/browse/DEL-7067

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-07-21 09:53:14 +02:00
Gabriel Valcazar 48f8720a23 recovery-initramfs: register mdev regardless of /proc/sys/kernel/hotplug
Busybox's device manager mdev was originally meant to be set up by writing its
path to /proc/sys/kernel/hotplug before launching it, but that entry no longer
exists in Linux v5.4's procfs and mdev can be launched directly.

Since mdev is the element in the recovery initramfs that is in charge of
mounting all partitions where .swu packages can be found (update partition on
the eMMC/MTD, uSD and USB), checking for the existence of the hotplug entry in
the procfs before launching mdev in v5.4 was preventing the partitions from
being mounted, and causing all software updates to fail.

While at it, move the two second delay to before mdev is launched, so all
partitions can be mounted. Otherwise, some devices such as the USB might not
be ready when mdev is launched, causing its partition to not be mounted.

https://jira.digi.com/browse/DEL-7143

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-06-18 13:43:47 +02:00
Hector Bujanda 2efc2c3e42 base-files: fix checks done to execute resize2fs postinst function in kernel 5.4
MMC core block has changed in kernel 5.4 so Replay Protected Memory Block (RPMB)
and boot partitions are not listed under /proc/partitions anymore.

get_emmc_block_device() function in pkg_postinst_ontarget() method was looking
for these entries to identify the MMC partition where to execute resize2fs.

This function has been modified to do the checks inside /dev/mmcblk* where RPMB
and boot entries are still listed.

https://jira.digi.com/browse/DEL-7094

Signed-off-by: Hector Bujanda <hector.bujanda@digi.com>
2020-05-11 16:04:57 +02:00
Hector Palacios ab98e928f5 machines: move common recipes to all packagegroup-dey-core
- u-boot-fw-utils
- cryptodev-module

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2020-05-06 17:02:28 +02:00
Arturo Buzarra 1efd3f9ba8 zeus migration: systemd: update recipe to v243.2
https://jira.digi.com/browse/DEL-7013

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-04-27 16:01:07 +02:00
Arturo Buzarra a5a0a52d18 zeus migration: busybox: update to version 1.31.0
https://jira.digi.com/browse/DEL-7001

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-04-27 16:01:07 +02:00
Francisco Gil Martinez f99ae24162 recovery: allow the user to cancel the recovery process
https://jira.digi.com/browse/DEL-6982

Signed-off-by: Francisco Gil Martinez <francisco.gilmartinez@digi.com>
2020-03-20 08:23:43 +01:00
Hector Bujanda baa4a6f57e packagegroup-dey-core: add libgpiod
Add support for handling the GPIOs through char device and the kernel API.

https://jira.digi.com/browse/DEL-6426
https://jira.digi.com/browse/DEL-6423

Signed-off-by: Hector Bujanda <hector.bujanda@digi.com>
2020-03-09 12:50:22 +01:00
Francisco Gil 1d91d3411b br0: move the br0 interface to the bottom
This interface should be the last item defined in the
/etc/network/interfaces file.

When you try to enable the interface br0 (bridge interface),
all the other interfaces should be available.
If the br0 interface is located before the other interfaces
involved in the bridge, it will fail.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2020-02-24 13:14:53 +01:00
Hector Palacios 8320168821 trustfence: homogenize SIGN_MODE variables
* prefix TRUSTFENCE_ to variable SIGN_MODE for DEY
* prefix CONFIG_ to variable SIGN_MODE for script

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2020-02-12 18:50:19 +01:00
Gabriel Valcazar 6caecc5c53 trustfence-initramfs: use "busybox halt" instead of "poweroff"
The poweroff command is not available in the initramfs due to a missing
sysvinit/systemd dependency. Use the busybox "halt" command, since it's
available regardless of the init manager used. Rework the error message and
script variables accordingly.

https://jira.digi.com/browse/DEL-6983

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-02-12 18:31:33 +01:00
Mike Engel 5beec04b6a trustfence: Add Trustfence support for CCMX8X
This commit adds Trustfence support for the CCMX8X
platform.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-6917
2020-02-04 12:20:38 +01:00
Gabriel Valcazar 0765189c93 systemd: add firmware loading support
Userspace firmware loading support is required for the Linux imx-sdma driver.
The patches that accomplish this were originally in poky, but were removed in
the thud upgrade. Re-work the patches so they apply over systemd v239.

https://jira.digi.com/browse/DEL-6932

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2020-01-16 13:27:54 +01:00
Arturo Buzarra 3c5fd58866 trusfence-initramfs: generalize recipe to avoid redefinitions
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 13:37:39 +01:00
Arturo Buzarra 95c636d327 trustfence-initramfs: add support for ccimx8mn platform
https://jira.digi.com/browse/DEL-6911

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 13:37:39 +01:00
Arturo Buzarra d430cc3bab recovery-initramfs: generalize recipe to avoid redefinitions
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 13:36:21 +01:00
Arturo Buzarra 188df6fee3 recovery-initramfs: add support for ccimx8mn platform
https://jira.digi.com/browse/DEL-6911

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 13:36:21 +01:00
Arturo Buzarra 1fd0e8d6d8 init-ifupdown: generalize recipe to avoid redefinitions
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 13:36:21 +01:00
Arturo Buzarra a93a05a8af init-ifupdown: add support for ccimx8x platform
https://jira.digi.com/browse/DEL-6911

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 13:21:27 +01:00
Arturo Buzarra 8e853e76d1 busybox: add support to ccimx8mn platform
Add initial support cloned from ccimx8x-sbc-pro.

https://jira.digi.com/browse/DEL-6806

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2020-01-10 11:42:58 +01:00
Gabriel Valcazar 2a0636760e systemd: decrease timeout when stopping services
In very rare cases, random services would hang when powering off the system,
causing the poweroff process to stall for 90 seconds before timing out the stop
job. To avoid this behaviour, minimize the effect of these random freezes by
decreasing the timeout.

The default services in our system take well under 15 seconds to stop
gracefully, so we can guarantee that a timeout will never happen under normal
circumstances.

https://jira.digi.com/browse/DEL-6794

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-10-17 16:17:14 +02:00
Javier Viguera 7013acc439 init-ifupdown: p2plink: allow to set persistent parameters
Use ifupdown variable 'p2p-network-id' to pass a WPA supplicant network
id, to pre-populate some parameters (SSID/passphrase) when creating the
group where this device is the GO.

Also replace go_intent=7 with the auto parameter. According to the
documentation:

    "auto" can be used to request wpa_supplicant to automatically
    figure out whether the peer device is operating as a GO and if so,
    use join-a-group operation rather than GO Negotiation.

https://jira.digi.com/browse/DEL-6741

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2019-09-10 11:49:00 +02:00
Mike Engel 3ac4ce1959 meta-digi-dey: fix systemd-cat not found in network scripts
This commit fixes the error message when specific network scripts
are launched.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-6728
2019-09-06 11:03:18 +02:00
Gabriel Valcazar acff25cf80 trustfence-tool: update to v2.3
This version adds support for the ccimx8x.

https://jira.digi.com/browse/DEL-6684

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-09-04 15:12:06 +02:00
Arturo Buzarra d8614f748e recovery-initramfs: Set cryptsetup dependency only for platforms with block devices
Commit 074e3ba3 ("meta-digi-dey: add cryptsetup tool into initramfs") added
the runtime dependency to cryptsetup for all platforms, but it is
required only to encrypt/decrypt block devices.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-07-30 10:29:31 +02:00
Mike Engel 42612e112e meta-digi-dey: base-file: disable file system check on the root file system partition when encrypted
This commit disables file system check on the root file system when it is encrypted.
This prevents the service from failing on encrypted rootfs with the message:

[FAILED] Failed to mount /run/media/mmcblk0p3.
See 'systemctl status run-media-mmcblk0p3.mount' for details.

Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-6655
2019-07-22 09:39:43 +02:00
Arturo Buzarra 1d68514a50 packagegroup-dey-core: add pciutils package for platforms that support PCI
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-07-16 16:38:28 +02:00
Mike Engel 4a3e9531b3 meta-digi-dey: add initramfs-init file to initramfs.
Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-6652
2019-07-08 17:41:01 +02:00
Mike Engel 074e3ba368 meta-digi-dey: add cryptsetup tool into initramfs.
Signed-off-by: Mike Engel <Mike.Engel@digi.com>

https://jira.digi.com/browse/DEL-6652
2019-07-08 17:41:01 +02:00
Gabriel Valcazar 0228ad8587 systemd: don't include systemd-networkd
To avoid possible conflicts with NetworkManager, remove systemd-networkd
entirely.

https://jira.digi.com/browse/DEL-6610

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-06-12 10:54:41 +02:00
Arturo Buzarra 8c0aaf79b6 base-files: add filter to ignore mmc RPMB partitions
The Replay Protected Memory Block (RPMB) is an special storage
partition that cannot be accessed via standard block layer.
When a user space tool like blkid, tries to read it the kernel
suffers buffer I/O errors and timeouts.

This commit modifies the post installation script to filter the RPMB
partitions from the mmc block devices, to avoid multiple kernel
errors during the script execution.

https://jira.digi.com/browse/DEL-6609

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-05-17 10:27:11 +02:00
Arturo Buzarra 1fe9ca04c2 base-files: remove platform dependency to execute the postinst function
Removed the platform dependency to apply the resize to all platforms.

https://jira.digi.com/browse/DEL-6609

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-05-17 10:27:11 +02:00
Jose Diaz de Grenu aad38d49c8 system-monitor: add system-monitor example
This recipe is an example for customer for a system-monitor. Scripts that
verify the system status can be added to /etc/system-monitor.d

The recovery mechanisms can be implemented on those scripts or in the
system-monitor script. The software watchdog systemd support is used to
guarantee that the system-monitor is running.

When using this it is recommended to enable the systemd hardware watchdog
support, refer to the systemd documentation for this.

The systemd service provided by this recipe is not enabled by default as it
is an example that needs customization.

https://jira.digi.com/browse/DEL-6593

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2019-05-17 09:38:24 +02:00
Javier Viguera ba93fb6d76 init-ifupdown: support establishing a P2P link
Co-authored-by: Isaac Hermida <isaac.hermida@digi.com>
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2019-05-17 09:38:24 +02:00
Javier Viguera bc5c64571a busybox http: add systemd service
Currently in a systemd based init, the httpd server is not launched. A
systemd service is needed, so add it.

Also install a CGI script that allows to use the device for the
NetworkManager connectivity check.

https://jira.digi.com/browse/DEL-6577

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2019-05-17 09:38:24 +02:00
Gabriel Valcazar 5a14bd9666 standby: add systemd standby-actions script for ccimx6/ccimx6qp platforms
Even though systemd support is not yet available for these platforms, add the
scripts so bitbake doesn't fail when building the busybox package.

https://jira.digi.com/browse/DEL-6565

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-05-07 09:55:19 +02:00
Gabriel Valcazar f1ce4bfbc8 standby: homogenize standby script across all platforms
* Use the same operation order when resuming interfaces
* Remove unnecessary delay in ccimx6sbc standby script

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-05-07 09:55:19 +02:00
Gabriel Valcazar 982102fb68 core-image-base: don't override default IMAGE_INSTALL values
Otherwise, packagegroup-dey-core won't get included in ccimx6ulstarter images.
This packagegroup contains fundamental OS elements, such as sysvinit, kernel
modules and so on. Use CORE_IMAGE_BASE_INSTALL instead and make sure to append
to the default value instead of overwriting it.

https://jira.digi.com/browse/DEL-6536

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-04-03 18:00:28 +02:00
Gabriel Valcazar df3858f473 systemd: add patch to avoid spurious stalling during reboots
This modifies the behavior of the sd-resolve libsystemd component to prevent
the system from freezing whenever a service that uses said component is
stopped. Even though this doesn't free the terminated thread's resources
properly, this procedure only gets executed during the final moments of a
service's process before it exits, so resource leaks aren't an issue.

https://jira.digi.com/browse/DEL-6523

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-28 18:08:19 +01:00
Hector Palacios 42d28c76cb dey-examples: remove old examples now superseeded by digiapix
This commit removes the following examples that were accessing
hardware interfaces:
 - dey-examples-adc
 - dey-examples-can
 - dey-examples-gpio-sysfs
 - dey-examples-spidev
 - dey-examples-watchdog

The recipe 'dey-examples-digiapix' builds similar examples that make
use of Digi's APIX for accessing the hardware. Add this recipe to images
 - dey-image-qt
 - core-image-base

Signed-off-by: Hector Palacios <hector.palacios@digi.com>

https://jira.digi.com/browse/DEL-5169
2019-03-27 10:58:40 +01:00
Gabriel Valcazar 12e603021c init-ifupdown: add virtwlans script to pre-up and post-down hook directories
This way, the wlan1 interface will only be created whenever a user wants to
bring the interface up with ifupdown. Modify the script to be able to delete
the interface whenever it gets brought down and remove its .sh file extension
so run-parts can run it properly during the ifup process.

https://jira.digi.com/browse/DEL-6353

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-22 09:46:51 +01:00
Gabriel Valcazar 26df169ea2 init-ifupdown: don't bring wlan1 up automatically
Tests have shown that having this interface up hinders wlan0's performance,
so don't bring it up by default.

https://jira.digi.com/browse/DEL-6353

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-22 09:46:51 +01:00
Arturo Buzarra 626d594952 bridgeifupdown: fix bridge initialization timing issue with wireless interface
This script introduces a minor delay when the own script
launch the wpa_supplicant daemon, however this minor delay
is needed in the boot process when the wireless interface
is loaded, if not the bridge mechanism throws an unexpected
error trying to add the interface to the bridge before the
wireless is ready to use.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-03-18 18:41:54 +01:00
Gabriel Valcazar 6e282ec51b bluez: rework bluetooth and bluetooth-init services
Soften the dependencies between the services and start the bluetooth stack
regardless of the existence of a bluetooth chip. Also, update the standby
script to reflect that there is no longer a strong dependency between the
services.

https://jira.digi.com/browse/DEL-6452

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-14 17:27:00 +01:00
Gabriel Valcazar 1ddd7e57ee systemd: add upstream patch to expand the list of rules.d directories
Unlike eudev, which is used on images without systemd, the list of paths
systemd-udev uses to look for rules is very limited. Include an upstream patch
(commit 116b91e8ccfee1d44fc2b140d831d688e3747902 in the systemd repo) that
expands said list.

This fixes an issue with crda's regulatory domain rule file, which was being
excluded due to it being in a path systemd-udev was ignoring (/usr/lib/udev).
Because of this, the regulatory domain was never set properly and hostapd was
failing when configured to use 5GHz channels (which is the default config).

https://jira.digi.com/browse/DEL-6504

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-14 13:34:16 +01:00
Gabriel Valcazar ae2abd926a init-ifupdown: add systemd support
To avoid bringing up interfaces before they're created by udev scripts
(specifically wlan1), wait until udev settles before starting the service.

https://jira.digi.com/browse/DEL-6504

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-14 13:34:16 +01:00
Gabriel Valcazar b957f0ef75 hostapd: add systemd support
When using systemd, putting the wlan1 interface up wasn't working because it
was relying on initscripts that are no longer in the filesystem.

Add a parametrized version of the upstream hostapd service to be able to use a
configuration that's different from the default one. Also, modify the
generation of the wlan1 entry in /etc/network/interfaces to be able to use
different post-up/pre-down hooks depending on the init manager that's being
used.

https://jira.digi.com/browse/DEL-6504

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-03-14 13:34:07 +01:00
Arturo Buzarra bccb5890b8 busybox: generalize bbappend to support different revisions
Latest update to version 1.29.3 in upstream breaks the compatibility
of our bbappend, to avoid it in future updates, this commit
generalizes the bbappend to apply all the 1.29 series.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-26 16:47:06 +01:00
Gabriel Valcazar 803dde16b0 busybox: add suspend-actions script for the ccimx8x and ccimx6ul
This script behaves the same way as our custom standby script, with a few
modifications, for example:

 * instead of using initscripts to stop/start daemons, it uses systemctl calls
 * save variables that are needed when resuming in /tmp, because the script is
executed twice instead of once (when suspending and when resuming)
 * remove the locking/unlocking of the critical section and the actual state
change, since that is handled by systemd-suspend now

Also, add a different standby script for when systemd is enabled. Said script
acts as a wrapper for systemd's suspend mechanism.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Gabriel Valcazar dbd68f87d5 systemd: remove NXP patches
These patches don't apply on the latest version of systemd used in Yocto 2.6.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Gabriel Valcazar 670491e287 systemd: remove patch that makes systemd-logind ignore KEY_POWER events
Without systemd, our KEY_POWER events were handled by the ACPI daemon, which in
turn issued a "poweroff" command. With systemd, the ACPI daemon is no longer
available and the events are handled by systemd-logind instead, which also
powers down the system properly. However, NXP added a patch that prevents
system-logind from handling the events, since they use the sc_powerkey instead.

Remove this patch to be able to power the target off via our power button.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Gabriel Valcazar 2c544a2241 meta-digi: remove initscript package dependencies when systemd is enabled
Otherwise, there will be errors due to missing dependencies.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Gabriel Valcazar c1c8a9a7c7 systemd: add missing systemd recipes
These have been ported directly from NXP's meta-fsl-bsp-release layer.

https://jira.digi.com/browse/DEL-6415

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
2019-02-18 18:01:57 +01:00
Arturo Buzarra ff34c08568 busybox: include reboot config by default in defconfig file
Since poky commit b6fbb3f3d4d6367b0fd7921078f67057551c7ede
reboot config was moved to init.cfg to provide this configuration
when busybox is selected as the init manager, however it is needed
for initramfs images where no init manager is set (see poky commit
ef4a417ab04779bd9fc8a6540a20cca7d14e98cf).

https://jira.digi.com/browse/DEL-6451

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-15 14:54:43 +01:00
Arturo Buzarra 50e3b6db34 packagegroup-dey-core: use VIRTUAL-RUNTIME providers for base-utils package
This change allows overriding the base-utils used in the distribution.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-15 10:57:38 +01:00
Arturo Buzarra 469d852e93 meta-digi-dey: fix busybox-syslog RRECOMENDS dependency
Since commit 4b41d9072a304fadbe1cc37c94575f12a2a47fd3 in poky
busybox removes the RRECOMENDS dependency with busybox-syslog,
then we need to explicitly add this dependency in the recipes.

https://jira.digi.com/browse/DEL-6443

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-15 10:56:46 +01:00
Arturo Buzarra fbc91bf4b7 thud migration: busybox: refresh defconfig file for version 1.29.2
The defconfig file has been refreshed for the current busybox
version 1.29.2 maintaining the same applets enabled.

https://jira.digi.com/browse/DEL-6412

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-04 14:59:46 +01:00
Arturo Buzarra 4bbe69665f thud migration: busybox: update to version 1.29.2
https://jira.digi.com/browse/DEL-6412

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-02-04 14:59:46 +01:00