Skip to content

Latest commit

 

History

History
126 lines (107 loc) · 3.63 KB

ota.md

File metadata and controls

126 lines (107 loc) · 3.63 KB

RAUC OTA support

Applicable platforms: STM32MP257-EV1, STM32MP157-DK1, STM32MP157-DK2, STM32MP135-DK

OTA support is only enabled in the demo configurations.

RAUC is configured to use symmetric with two rootfs.0 and rootfs.1 partition.

Use rauc status command to see the current boot state.

# rauc status
=== System Info ===
Compatible:  stm32mp157d-dk1-mx
Variant:
Booted from: rootfs.0 (A)

=== Bootloader ===
Activated: rootfs.0 (A)
zsh:1: command not found: :w
=== Slot States ===
o [rootfs.1] (/dev/mmcblk0p6, raw, inactive)
	bootname: B
	boot status: good

x [rootfs.0] (/dev/mmcblk0p5, raw, booted)
	bootname: A
	boot status: good

Buildroot generates an update bundle in the image directory: output/images/rootfs.raucb. To deploy this RAUC update bundle onto the target board, employ connectivity options such as WiFi, USB, or any applicable method. Once transferred, utilize the rauc info command to glean information from the update bundle, like its content and configuration.

# rauc info /mnt/rootfs.raucb
rauc-Message: 00:01:12.201: Config option 'statusfile=<path>/per-slot' unset, falling back to per-slot status
rauc-Message: 00:01:12.202: Using per-slot statusfile
rauc-Message: 00:01:12.203: valid /etc/rauc/system.conf found, using it
rauc-Message: 00:01:12.203: Reading bundle: /mnt/rootfs.raucb
rauc-Message: 00:01:12.252: Verifying bundle signature...
rauc-Message: 00:01:12.547: Verified inline signature by 'O = Bootlin, CN = rauc-demo'
Compatible:	'stm32mp157d-dk1-mx'
Version:	'2023.02.6-3-gae4a6e0c24'
Description:	'(null)'
Build:		'(null)'
Hooks:		''
Bundle Format:	verity
  Verity Salt:	'c88b391fa796abe2911e30fc66faa45189693d486f48001351be619d83bcc1c6'
  Verity Hash:	'b861d8c44839515de6ca2cb0411810f6bfc2638c31437b471f743287b53a8bc7'
  Verity Size:	397312

1 Image:
  [rootfs]
	Filename:  rootfs.squashfs
	Checksum:  e098279524c721c1365b84084251c0fc54959e2dac17719282027d929bcc3def
	Size:      50573312
	Hooks:

Certificate Chain:
 0 Subject: O = Bootlin, CN = rauc-demo
   Issuer: O = Bootlin, CN = rauc-demo
   SPKI sha256: F3:02:8A:1A:92:B2:8C:66:E4:64:D8:7B:70:6C:61:71:EA:73:31:D7:B0:84:D2:D8:64:1C:63:20:3F:5A:B8:6C
   Not Before: Dec  6 10:49:57 2023 GMT
   Not After:  Dec  5 10:49:57 2027 GMT

Use rauc install command to install the new rootfs and reboot.

# rauc install /mnt/rootfs.raucb
installing
  0% Installing
  0% Determining slot states
 20% Determining slot states done.
 20% Checking bundle
 20% Verifying signature
 40% Verifying signature done.
[  562.642672] loop0: detected capacity change from 0 to 98716
 40% Checking bundle done.
[  562.688265] loop0: detected capacity change from 98716 to 98712
 40% Checking manifest contents
 60% Checking manifest contents done.
[  562.746322] device-mapper: verity: sha256 using implementation "stm32-sha256"
 60% Determining target install group
 80% Determining target install group done.
 80% Updating slots
 80% Checking slot rootfs.1
 90% Checking slot rootfs.1 done.
 90% Copying image to rootfs.1
 99% Copying image to rootfs.1 done.
 99% Updating slots done.
100% Installing done.
idle
Installing `/mnt/rootfs.raucb` succeeded
# reboot

Then use rauc status command to verify the boot partition.

# rauc status
=== System Info ===
Compatible:  stm32mp157d-dk1-mx
Variant:
Booted from: rootfs.1 (B)

=== Bootloader ===
Activated: rootfs.1 (B)

=== Slot States ===
x [rootfs.1] (/dev/mmcblk0p6, raw, booted)
	bootname: B
	boot status: good

o [rootfs.0] (/dev/mmcblk0p5, raw, inactive)
	bootname: A
	boot status: good

You can look at the Rauc documentation to discover all the update features offered by RAUC.