On 35.6.2, I can generate the capsule for jetson-agx-xavier-devkit. However, regardless if I try to apply it via OTA or manually, the update is not triggered.
FYI,
UEFI updates the bootloader through UEFI capsule update. once the UEFI capsule update is finished, the device reboots to the updated chain; otherwise, the device reboots to the original.
may I also the steps you’ve executed on the target side to trigger capsule update?
here’re the steps we’ve tested for your reference. $ ls -al /dev/disk/by-partlabel/ // Check “esp” partition $ sudo mount /dev/mmcblk0p18 /mnt/ $ cd /mnt/EFI/UpdateCapsule/ $ sudo cp /home/nvidia/TEGRA_BL.Cap . $ cd /sys/firmware/efi/efivars/ $ printf "\x07\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00" > /tmp/var_tmp.bin $ sudo dd if=/tmp/var_tmp.bin of=OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c bs=12;sync $ sudo reboot
mkdir /mnt/efi
sudo mount /dev/mmcblk0p41 /mnt/efi
mkdir /mnt/efi/EFI
mkdir /mnt/efi/EFI/UpdateCapsule/
cd /mnt/efi/EFI/UpdateCapsule/
sudo cp /home/ansible/TEGRA_BL.Cap .
cd /sys/firmware/efi/efivars/
printf “\x07\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00” > /tmp/var_tmp.bin
sudo dd if=/tmp/var_tmp.bin of=OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c bs=12;sync
sudo reboot
However, as previously mentioned, I am getting read-only file system with the dd command and thus OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c is not written into.
Thanks, I will check. This is using the official agx xavier devkit not a custom board. At the end the goal is to have it working on our own board but for the time being, we rely entirely on the official devkit.
mount | grep efivarfs
gives
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
As you can see efivars is RW for orin nx but RO for agx xavier that explains why writting to OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c is fine with orin nx but not with agx xavier.
Is it supposed to be RO on agx xavier and if not what could cause this issue? Is there are different way to trigger the capsule update on agx xavier?
I also see the following if I try to remount with rw:
sudo mount -o remount,rw /sys/firmware/efi/efivars
Firmware does not support SetVariableRT. Cat not remount with rw
I assume there’s a slot to marked as unbootable.
you may check $ sudo nvbootctrl dump-slots-info for the slots info, both of the slots should be normal for running capsule update.
hence..
please try below workaround if there’s a slot marked as unbootable.
for instance, $ sudo nvbootctrl set-SR-BR <slot>
Current version: 35.6.2
Capsule update status: 0
Current bootloader slot: A
Active bootloader slot: A
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
Can you try on your agx xavier devkit the following commands and report back the output?
mount | grep efivarfs
sudo mount -o remount,rw /sys/firmware/efi/efivars
$ sudo nvbootctrl dump-slots-info
Current version: 35.6.2
Capsule update status: 1
Current bootloader slot: B
Active bootloader slot: B
num_slots: 2
slot: 0, status: normal
slot: 1, status: normal
besides, here’s examination of efivars on AGX Xavier for your reference.
$ mount | grep efivarfs
efivarfs on /sys/firmware/efi/efivars type efivarfs (ro,nosuid,nodev,noexec,relatime)
$ sudo mount -o remount,rw /sys/firmware/efi/efivars
[ 221.395666] Firmware does not support SetVariableRT. Can not remount with rw
mount: /sys/firmware/efi/efivars: mount point not mounted or bad option.