Commit Graph

20 Commits

Author SHA1 Message Date
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
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
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 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
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