Commit Graph

32 Commits

Author SHA1 Message Date
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 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
Arturo Buzarra 5eb88b8c5d sumo migration: meta-digi: replace the deprecated base_conditional function
Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2019-01-11 13:26:44 +01:00
Jose Diaz de Grenu 7416361505 rocko migration: remove rng-tools
This tool was only needed for old kernels, newer kernels use the hardware
random number generator themselves.

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

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2018-01-12 15:59:12 +01:00
Arturo Buzarra d76db197e1 initramfs: launch rngd depending on kernel version
Use the kernel version to decide to launch the rngd tool
for kernels previous to v3.17

https://jira.digi.com/browse/DEL-5362
https://jira.digi.com/browse/DEL-5363

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2017-11-28 09:24:34 +01:00
Arturo Buzarra 8c14ae877f meta-digi recipes: adjust machine overrides for new platform
This commit modifies different recipes to support the new platform
ccimx6qpsbc and adapt it to maintain the support to ccimx6sbc.

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

Signed-off-by: Arturo Buzarra <arturo.buzarra@digi.com>
2017-10-18 09:20:11 +02:00
Jose Diaz de Grenu 270f890494 recovery-initramfs-init: remove parted dependency
Turns out that the busybox' fdisk applet is also able to parse the GPT
partition tables. This saves around 0.5 MiB of space.

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

Signed-off-by: Jose Diaz de Grenu <Jose.DiazdeGrenu@digi.com>
2017-08-29 18:15:43 +02:00
Isaac Hermida 4618c76208 recovery-initramfs: execute all post installation scripts
In the recovery images we are using a custom init so we are not executing
any post-installation that is required for a correct rootfs setup, so call
all the post installation scripts from our custom init.
The package installation could be ipk, rpm or deb, so call to the
*postint folder.
Given that the recovery rootfs is a ramdisk, there is no need to remove the
post installation scripts.

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

Signed-off-by: Isaac Hermida <isaac.hermida@digi.com>
2017-07-05 13:43:28 +02:00
Tatiana Leon b7facb3ff5 recovery init: log messages to the stderr instead of to stdout
Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-04-11 14:30:17 +02:00
Tatiana Leon 15214a198e recovery init: check the update package before setting a key and/or formatting
The recovery init checks if the configured update package exists and it is valid
before setting a new key and/or formatting the rootfs partition.

This change avoids getting non-booting devices after performing a firmware
update with a non-existing or invalid update package.

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

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-04-11 14:30:17 +02:00
Tatiana Leon f9194019b6 recovery init: detach 'update' MTD device from UBI if volume is not found
If the volume is not found, the partition cannot be wiped since it is attached.

Remove 'update' UBI device in:
 * mdev automount script if volume is not found
 * recovery init script before formatting 'update' partition

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

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-22 15:03:24 +01:00
Mike Engel 3bb5312662 meta-digi-dey: Add mdev support into recovery ramdisk.
This commit adds mdev support into the recovery ramdisk to
mount/unmount storage devices for the firmware up tool.

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

https://jira.digi.com/browse/DEL-3692
2017-03-20 17:08:55 +01:00
David Escalona e3ce215f67 recovery-initramfs: do not generate TrustFence keys in this recipe
- Instead of trying to generate the TrustFence keys in this recipe
  when they are not present, depend on the 'virtual/kernel' to
  ensure they are already generated. This solves a concurrency problem
  when two recipes try to generate TrustFence keys at the same time.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-15 12:02:17 +01:00
Tatiana Leon c4bd0534e2 recovery-utils: add support to set the rootfs encryption key
Internal recovery-utils.git SHA1: 283f6e0768c0

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

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-14 18:01:02 +01:00
Tatiana Leon d7da8794f1 recovery init: add rngd to increase the quantity of entropy
Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-14 17:39:09 +01:00
Tatiana Leon 00d30ee9a0 recovery init: cc6ul: set rootfs enc flag when setting a new key
For CC6UL, when setting a new key, an "enc" flag must be added to the rootfs in
the "mtdparts" U-Boot variable.

After that a reboot is needed, so the recovery command must be modified to
remove the encryption key and proceed with the rest of commands in the next
boot.

When updating the firmware, a format of the rootfs partition is always
performed, independently if a new encryption key has just been configured.

In case only the encryption key is being configured, we also need to reboot to
format the rootfs properly.

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

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-14 17:39:09 +01:00
Tatiana Leon 96d7211a71 recovery init: format rootfs partition (block devices) when setting a new key
https://jira.digi.com/browse/DEL-3277

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-14 17:39:09 +01:00
Tatiana Leon 4085bc8904 recovery init: allow several operations at once (update, key, wipe)
Allow to perform several recovery operations at the same time and set the right
order for them:
 1. New encrypted key
 2. Firmware update
 3. Wipe update partition

https://jira.digi.com/browse/DEL-3277
https://jira.digi.com/browse/DEL-3685

Signed-off-by: Tatiana Leon <tatiana.leon@digi.com>
2017-03-14 17:39:09 +01:00
David Escalona 68430b1297 swupdate: execute swupdate with verification within trustfence images
- While trying to update the system using signed swupdate packages, the
  swupdate binary requires a new parameter (-k) to specify the location
  of the public key that will be used to verify the update package. At
  the moment there is no way to check if a package is signed or not, so
  we asume that the existence of the public key in the recovery initramfs
  is enough to determine that we want to update the system using signed
  packages.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-07 17:04:21 +01:00
David Escalona 6362b99205 swupdate: add public key to the recovery initramfs
- The swupdate binary included in the recovery partition when the
  images to build are trustfence enabled performs a verification
  of the swupdate package. For this verification to suceed, it is
  mandatory to provide to the swupdate binary the public key that
  will be used to verify the swupdate package. This public key must be
  included in the recovery initramfs only when 'TRUSTFENCE_SIGN=1'.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2017-03-07 17:04:21 +01:00
Javier Viguera 3371ed864c recovery init: disable interactivity for 'ubiformat' command
We have seen corner cases (e.g. when the partition to format has already
some corrupted UBI metadata) where ubiformat stops and ask the user for
confirmation to do the format. We cannot have such interactivity in the
recovery ramdisk so use the '-y' argument to assume yes for all
questions.

Also use the '-q' (quiet) parameter instead of the '/dev/null'
redirections to remove command's output.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-25 12:31:48 +01:00
Javier Viguera e80d5b021c recovery init: configure UBIFS update partition to use ZLIB compression
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-24 19:31:36 +01:00
Javier Viguera 7cf8aa6e06 recovery init: change default mountpoint for 'update' partition
So it matches the same mountpoint used in a normal boot.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-24 19:31:36 +01:00
Javier Viguera 0cd1c803ce recovery-utils: reset URI for local SWU update packages
Internal recovery-utils.git SHA1: e30c2a3c9729

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-20 17:34:41 +01:00
Javier Viguera b2abb5bc80 recovery init: search update package in the different partitions
Instead of using a hardcoded path to the SWU update package, just get
the filename and search the file in the different mounted partitions
(giving priority to the internal 'update' partition over other external
media).

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-20 17:34:09 +01:00
Javier Viguera 75f2c00025 recovery init: pass filesystem type to mount command
For block devices we can get the filesystem in the partition using the
'blkid' command.

This cleans up some warnings on mounting:

EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (sda2): couldn't mount as ext2 due to feature incompatibilities
EXT4-fs (mmcblk0p4): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (mmcblk0p4): couldn't mount as ext2 due to feature incompatibilities

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-20 17:33:37 +01:00
Javier Viguera a7a8916018 recovery init: remove trailing slash from USB_MOUNT_DIR variable
Just the same than UPDATE_MOUNT_DIR, which doesn't have a trailing slash.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-20 17:33:04 +01:00
Javier Viguera b0e241d3a3 recovery init: fix device name
"i" variable in the nested loop is expanded to the absolute path
of the device, so prepending it with the ${device} results in
"/dev/sda/dev/sda1" for a 'sda1' partition.

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-20 17:32:33 +01:00
Javier Viguera 9c3f8245e1 meta-digi-dey: add new 'recovery-utils' recipe
recovery-utils allows to configure recovery commands and reboot into
recovery mode.

Internal recovery-utils.git SHA1: 5555d4c736e3

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

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
2017-01-11 17:51:07 +01:00
David Escalona 4e52bab873 recovery: add psplash support to recovery
- Include psplash package in the recovery initramfs recipe.
- Start psplash in the recovery init.
- Add new methods to communicate with psplash from the init script.
- Show psplash progress information from the init script.
- Start progress binary to update psplash during a firmware update.

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

Signed-off-by: David Escalona <david.escalona@digi.com>
2016-12-30 12:42:09 +01:00
David Escalona f4ece3821e recovery: init script mount fixes
- Added a 5 seconds delay before mounting external disks so they have
  time to be recognized in the system.
- Check if UBI volume is mounted before formatting it.
- Check if eMMC block device exists before formatting it.

Signed-off-by: David Escalona <david.escalona@digi.com>
2016-12-30 12:22:41 +01:00
David Escalona f13767ecd3 recovery: add recipe to generate recovery ramdisk file tree
Signed-off-by: David Escalona <david.escalona@digi.com>
2016-12-27 17:37:53 +01:00