Commit Graph

356 Commits

Author SHA1 Message Date
Tatiana Leon 3912f76f59 ccimx8m: ccmp1: cc6ul: cloudconnector: update store certificates in '/etc/ssl/certs'
Cloud Connector configuration file sets:
  * 'edp12.devicecloud.com' as the URL to connect to (this end point uses client
    certificates)
  * '/mnt/data' as the directory to store downloaded certificates, now that
    this is also available in emmc platforms (see
    62d937df42)

This commit:

  * reverts a0842cbcfd to keep
    'edp12.devicecloud.com' URL that uses certificates for ccimx8m platforms.

  * reverts fd94f10c0b since now the cloud connector
    configuration file sets '/mnt/data' as the place to store downloaded
    certificates, so no need to modify it for ccmp1 platforms.

  * It also configures '/etc/ssl/certs' as the certificates directory for cc6ul
    devices. Although by default, these devices are connecting to
    'remotemanager.digi.com' that not uses certificates, we prefer to use an
    existing directory in that setting. See commit
    063a946e7c.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon dba8dbdab4 dualboot: change the way to determine if device is using nand or emmc
'environment' partition is not available in the ccmp15.

The solution suggested is read the "/proc/mounts" and check if the 'rootfs' is
'ubifs' mounted.

Related to commits 7c07b15370 and
678eaaf0fc4ce74e67682387e3465eb29659bd47

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon eca521f505 dualboot: update-firmware: get current active system not using U-Boot variable
This commit adds a new function to get the active system in a dualboot device
without using 'active_system' U-Boot variable.
This way the script always knows the real active system even when the variable
'active_system' has the value of the next boot active system, for example, after
performing a 'update-firmware --swap-active-system'.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon ccc4680924 dualboot: update-firmware: new option to swap active system ('--swap-active-system')
This allows to remove the script 'on-the-fly-swap-partition.sh'.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon 1b17e8f657 dualboot: update-firmware: new script option ('-s')
This option combined with '-a' ('--active') only prints the active block: a or b

The purpose an output to be consumed by other scripts or programs.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon 556bda6d57 dualboot: update-firmware: update the check of nand or emmc system
Check the second ('/') and third ('ubifs') field of 'rootfs' entry in
'/proc/mounts' as the first one ('rootfs_a' or 'rootfs_b') may be changed by
custormers:

    root@ccmp15-dvk:~# cat /proc/mounts
    ubi0:rootfs_b / ubifs rw,relatime,assert=read-only,ubi=0,vol=5 0 0
    [...]

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon 006138e134 dualboot: update-firmware: rework the script to use functions and avoid repetitions
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon e37d52ebd7 dualboot: update-firmware: add '--no-reboot' option to avoid the reboot of the system
This is required for the firmware update using Digi Remote Manager. The reboot
is commanded by the server, it that does not happen the update process is not
ended for DRM.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Tatiana Leon d7f9cfb718 dualboot: update-firmware: add long options to the tool usage
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-04-03 14:44:35 +02:00
Hector Palacios 661f59967c trustfence: add function to generate a PKI tree if it doesn't exist
The stand-alone signing script 'trustfence-sign-artifact.sh' checks
if a valid PKI tree exists (by checking the existance of four SRK
files) and if they don't, it calls trustfence-gen-pki.sh (which is
a wrapper over different generators (for HAB or AHAB) to create one.

Recipes such as 'dualboot' or 'recovery-initramfs' may need to call
openssl functions over the PKI tree. These recipes do not currently
generate the PKI tree; they expect it to be already in place.
This might not be the case if the trustfence-sign-artifact.sh script
has not been called yet.

Originally, a fake dependency on virtual/kernel recipe was made to
force it, but it doesn't quite work since the calling only happens
on deploy() while regular DEPENDS doesn't wait for this task.
If the PKI does not exist, a recipe that requires the PKI tree will
fail.

The solution is to create a function on the trustfence.bbclass that
allows any recipe to check for the existance of a PKI tree and
generate it if it doesn't exist. This is repeated inside the
trustfence-sign-artifact.sh, but it needs to be in both places
because this script must work stand-alone.

The generation of the PKI tree takes some seconds so this commit
adds a lock dir to prevent race conditions when called from
different recipes.

It also removes the fake dependency on virtual/kernel and adds a
dependency on trustfence-cst-native (which is the recipe that
provides the PKI generation tool).

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

https://onedigi.atlassian.net/browse/DEL-8430
(cherry picked from commit 6a8bf7afff)
2023-03-21 13:36:58 +01:00
Javier Viguera 4ef4794f20 Merge tag 'dey-4.0-r2.2' into dey-4.0/master
Digi Embedded Yocto 4.0-r2.2

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-03-20 11:05:11 +01:00
Francisco Gil b59f31c114 meta-digi: update revisions for dey-4.0-r2.2
Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2023-03-10 15:46:34 +01:00
Arturo Buzarra 358a7cc414 meta-digi: revert revisions to AUTOREV
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-03-08 18:59:27 +01:00
Arturo Buzarra de3ba53ef3 meta-digi: update revisions for dey-4.0-r2.1
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-03-08 18:58:58 +01:00
Tatiana Leon a0842cbcfd ccimx8m: cloudconnector: connect to 'remotemanager.digi.com' not to use certificates
This commit modifies the cloud connector configuration to use
'remotemanager.digi.com' URL since it does not use certificates for the
connection.
'edp12.devicecloud.com' only allows connections with certificates.
The certificate is downloaded during the first device connection to DRM and
stored in '/etc/ssl/certs' directory inside the 'rootfs' partition.
Following connections must use this certificate.

After a firmware update 'rootfs' partition is re-programmed (standard boot)
or changed to use the corresponding partition of the other block (dual boot). In
any case the certificate downloaded is not available anymore, so the device is
not able to reconnect.

Currently there is no a 'immutable' partition to store the certificate, that is,
a place where the certificate is not removed during a firmware update and can
be used by the cloud connector (similar to the 'data' partition on a ccmp1)

Related to commit 063a946e7c.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-03-08 12:05:52 +01:00
Tatiana Leon ef9e14ab5b pulseaudio: launch pulseaudio in system mode
By launching in system mode it is possible to play music from a shell using
pulseaudio. With change all platforms and images (with or without graphical
support) have pulseaudio working.

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-03-08 12:05:52 +01:00
Arturo Buzarra aae03774ab Merge branch 'dey-4.0/master' into dey-4.0/maint 2023-02-27 16:34:53 +01:00
Javier Viguera adbb511484 meta-digi: remove True option to getVar
True is the default since long time ago, and thus not necessary. This
follows similar changes done in other layers.

Command used:

sed -e 's|\(d\.getVar \?\)( \?\([^,()]*\), \?True)|\1(\2)|g' -i $(git grep -E 'getVar ?\( ?([^,()]*), ?True\)' | cut -d':' -f1 | sort -u)

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-02-24 16:24:47 +01:00
Javier Viguera 711d9b5883 meta-digi-dey: add missing runtime dependence for some packages
Packages bluez5-init, cloudconnector, and connectcore-demo-example-webkit
provide a launcher script that is used regardless of the init system being
systemd or sysvinit. Those launcher scripts use the '/etc/init.d/functions'
file, which is provided by the 'initscripts-functions' runtime package,
so add that runtime dependence.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-02-24 12:16:02 +01:00
Tatiana Leon be17cb5bc2 ccimx6ul: pulseaudio: fix error during boot
On boot, ConnectCore 6UL was failing to start pulse audio since it was trying
to use journalctl as log target when systemd is not included.

Boot error:

   Starting Dropbear SSH server: dropbear.
   W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
   E: [pulseaudio] log.c: Invalid log target.
   E: [pulseaudio] cmdline.c: Invalid log target: use either 'syslog', 'stderr' or 'auto' or a valid file name 'file:<path>', 'newfile:<path>'.
   E: [pulseaudio] main.c: Failed to parse command line.
   Starting bluetooth: bluetoothd.

While on it change the 'connectcore-demo-server' priority to be launched after
pulseaudio when not using systemd.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-02-14 12:05:50 +01:00
Tatiana Leon 3f9c93ecdf connectcore-demo: move video and webgl example recipes
Move 'video-examples' and 'webglsamples' recipes outside dynamic-layers/webkit
so platforms without 'webkit' support (such as ConnectCore 6UL) are able to
include and build successfully the complete 'connectcore-demo-example'

Related to 0b9b73afc8

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-02-10 11:41:30 +01:00
Tatiana Leon 0b9b73afc8 connectcore-demo: separate in several packages
This commit separates the original 'connectcore-demo-example' package in 3
packages:

  1. 'server' package. It contains the 'demoserver.py' script and its
     corresponding systemd service and init script.
     This script is required for the local demo and to be used with the
     Bluetooth application (during the get started process)

  2. 'example' package. It contains the html and required resources (images,
     javascript, etc.) to use the demo locally, except for the multimedia
     resources.
     This package depends (in runtime) on the 'server' package.

  3. 'multimedia' package. It contains the multimedia html and required
     resources (images, javascript, videos, etc.) to use the multimedia demo
     features locally.
     This package depends (in runtime) on the 'example' package and also on
     'video-examples' and 'webglsamples' packages.

This split allows to select the required demo packages per platform and image
type.

By default, the 'multimedia' package is the one included in the webkit images,
but the 'example' package is the one included in the rest of images.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-02-07 14:00:52 +01:00
Tatiana Leon feea2179ad ccmp15: connectcore demo: fix autostart of demo application on top of weston
This commit is similar to those required to launch crank applications on top of
weston in ConnectCore MP 15 platform, it must wait for the socket
'/run/user/0/wayland-1' after weston is initialized.

See commits 7de8270beda64236cdd1c46857906315a37dc4fe and
1ec5cc172c.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-02-07 14:00:52 +01:00
Javier Viguera 20eb907de0 dualboot: fix runtime dependences
Several fixes to the runtime dependences:

* Use new override syntax with ':'
* There is not "dualboot-init" package only "dualboot"
* Delete dependence on trustfence-tool

While on it, define do_configure and do_compile as noexec, because those
tasks do not need to execute, and remove the wrong PACKAGE_ARCH entry
(as this package is arch/machine agnostic)

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2023-02-02 10:21:21 +01:00
Arturo Buzarra c4f2fce4d3 dey-examples: connectcore-demo: remove unused images to reduce package size
This commit removes unused platform images to reduce the final size in the
rootfs.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2023-01-30 17:02:46 +01:00
Hector Palacios 3a1a7dd47c aws: remove aws from dey-core and dey-examples packagegroups
AWS has been removed from the documentation for having little use.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
2023-01-24 09:27:39 +01:00
Mike Engel 35b56653cd cloudconnector: remove post installation scripts when building squashfs
This commit removes the on-target post installation function for read-only rootfs,
as it will fail trying to edit files.

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

Signed-off-by: Mike Engel <Mike.Engel@digi.com>
2023-01-16 10:29:30 +01:00
Tatiana Leon 5a3376af21 libconfuse: use recipe in meta-openembedded
Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2023-01-11 19:04:48 +01:00
Francisco Gil 54f3aebd2c ccmp13: dey-examples: update the configuration file for ccmp13
Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-12-21 11:01:08 +01:00
Javier Viguera cfa581c958 meta-digi: add override files for ccimx93
These are just a verbatim copy of the ccimx8mm ones, so the project is
buildable. This file list should be revisited and adapted for the
ccimx93.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-12-20 14:50:54 +01:00
Javier Viguera db5067371e meta-digi: get rid of ccimx8mp-dvk
Platform not supported.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-11-30 18:06:57 +01:00
Javier Viguera 83a3aa22e4 Merge tag 'dey-4.0-r1.2' into dey-4.0/master
Digi Embedded Yocto 4.0-r1.2

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2022-11-30 15:01:06 +01:00
Arturo Buzarra 93a4dd2db5 meta-digi: revert revisions to AUTOREV
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-11-29 16:35:27 +01:00
Arturo Buzarra 2ca5dfe31e meta-digi: update revisions for dey-4.0-r1.2
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-11-29 16:34:56 +01:00
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 0328295ea8 dualboot: run the script only in dualboot systems
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
Arturo Buzarra 0efbb07107 meta-digi: branch to dey-4.0/maint
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-11-21 17:44:48 +01:00
Tatiana Leon 063a946e7c cc6ul: cloudconnector: use 'remotemanager.digi.com' not to use certificates
This commit modifies the cloud connector configuration to use
'remotemanager.digi.com' URL since it does not use certificates for the
connection.
'edp12.devicecloud.com' only allows connections with certificates.
The certificate is downloaded during the first device connection to DRM and
stored in '/etc/ssl/certs' directory inside the 'rootfs' partition.
Following connections must use this certificate.

After a firmware update 'rootfs' partition is re-programmed (standard boot)
or changed to use the corresponding partition of the other block (dual boot). In
any case the certificate downloaded is not available anymore, so the device is
not able to reconnect.

Currently there is no a 'immutable' partition to store the certificate, that is,
a place where the certificate is not removed during a firmware update and can
be used by the cloud connector (similar to the 'data' partition on a ccmp1)

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2022-11-21 12:39:05 +01:00
Tatiana Leon fd94f10c0b ccmp1: cloudconnector: use '/mnt/data' as the place to store the certificate
The directory '/etc/ssl/certs' is in the 'rootfs_x' partition for dual boot or
'rootfs' for standard boot. In any case this certificate cannot be used after
updating because it is stored in the other block partition (for dual boot) or
because the whole partition has be re-programmed (for standard boot).
So, after a firmware update the device will not be able to reconnect to DRM
unless the user revokes the certificate.

This commit changes the certificate directory to be '/mnt/data' where 'data'
partition is mounted. This is not erased during a firmware update, so cloud
connector can use the already downloaded certificate and the device is able to
reconnect to DRM.

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2022-11-21 12:38:59 +01:00
Francisco Gil 7c07b15370 update-firmware: change the way to determine nand device
The partition "environment" is not available in the ccmp15.

The solution suggested is read the "/proc/mounts" and check if
the "rootfs" is "ubifs" mounted.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-15 07:54:26 +01:00
Francisco Gil 116cb2ac26 swu-images: fix sha256 entry from sw-description file in dualboot
This commit fixes the following build warning with the swupdate v2022.05:

WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.boot.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.boot.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.boot.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.boot.ubifs)
WARNING: dey-image-qt-swu-1.0-r0 do_swuimage: Syntax for sha256 changed,
please use $swupdate_get_sha256(dey-image-qt-wayland-ccmp15-dvk.ubifs)


Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-15 07:51:05 +01:00
Francisco Gil b52339d591 dualboot: move the things to the corresponding class
we can get rid of dualboot.bbclass moving things to different
layers.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-15 07:49:17 +01:00
Arturo Buzarra 9936c192d2 dualboot: fix initialization systemd service
According to the Yocto reference manual, we need to specify the package name
override to indicate the package to which the value applies.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-11-14 10:20:02 +01:00
Francisco Gil 19bf22059f ccmp15: dey-examples: update the configuration file for ccmp15
https://onedigi.atlassian.net/browse/DEL-8151

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-11-09 08:13:51 +01:00
Tatiana Leon 9b1008c7fd libdigiapix: ccimx6ulsbc: update user button GPIO
Cloud Connector opens USER_BUTTON GPIO as an interrupt to listen for rising and
falling edge events and upload them to Remote Manager as data point values.
Having MCA_IO1 as user button and opened by the Cloud Connector (or any other
software) prevents the device to go to sleep when it is not connected (all
MCA GPIOs are wake-up sources when configured as interrupt)

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

Signed-off-by: Tatiana Leon <Tatiana.Leon@digi.com>
2022-11-07 18:43:44 +01:00
Isaac Hermida c7f2960b4e meta-digi: revert revisions to AUTOREV
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2022-11-04 12:38:21 +01:00
Isaac Hermida dad34f1006 meta-digi: update revisions for dey-4.0-r1.1
Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2022-11-03 18:21:46 +01:00
Arturo Buzarra 3b99bf3821 pulseaudio: define runtime user-specific directory XDG_RUNTIME_DIR
This commit exports the environment variable XDG_RUNTIME_DIR if does not exists
for services that require sharing a pulseaudio instance.

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2022-10-31 07:50:33 +01:00
Francisco Gil 8c1b0f8f9e dualboot: get rid of configuration file for dualboot
Now the cloud connector has all the logic to detect if its
running in a dual_boot system, so it is not needed this anymore.

We need to modify on the fly the path to save the image in a
dualboot system.

Signed-off-by: Francisco Gil <francisco.gilmartinez@digi.com>
2022-10-26 11:29:23 +02:00