ROOTFS_AB does not switch to APP_B partition
Issue Overview
Users have reported an issue with the Nvidia Jetson Orin Nano Dev board where the ROOTFS_AB does not switch from the active boot slot A to boot slot B as intended. The symptoms include:
- After flashing the device with a root filesystem (rootfs) configured for A/B partitions, the system boots into rootfs A, which is mounted on
/dev/nvme0n1p1
. - When attempting to switch to slot B using the command
nvbootctrl -t rootfs set-active-boot-slot B
, the system acknowledges the switch upon reboot; however, it still mounts the root directory on/dev/nvme0n1p1
instead of/dev/nvme0n1p2
. - This issue occurs consistently every time users attempt to switch slots, impacting their ability to utilize the second partition effectively for testing or recovery purposes.
The users involved are operating on a custom board with Jetpack version 5.1.1 (L4T 35.3.1). The problem arises during the setup phase after flashing and is critical as it prevents proper partition management and system recovery.
Possible Causes
Several potential causes have been identified for this issue:
- Configuration Errors: Incorrect configuration in the
extlinux.conf
file may lead to improper mounting of partitions. - Driver Issues: Potential bugs in the nvbootctrl or related drivers could prevent proper switching between boot slots.
- User Errors: Misuse of commands, such as using
dd
to overwrite partitions, can corrupt partition UUIDs, leading to incorrect mount points. - Environmental Factors: Power supply inconsistencies or overheating could affect device performance during boot operations.
- Hardware Defects: Faulty hardware components on custom boards may lead to unexpected behavior during boot.
Troubleshooting Steps, Solutions & Fixes
To address this issue, follow these troubleshooting steps:
-
Verify Current Boot Slot:
Execute the following command to check which slot is currently active:nvbootctrl get-active-boot-slot
-
Check extlinux.conf Configuration:
- Mount the second partition:
mount /dev/nvme0n1p2 /media
- Navigate to the extlinux directory and view the configuration:
cd /media/boot/extlinux/ cat extlinux.conf
- Ensure that the
APPEND
line correctly references the PARTUUID for slot B.
- Mount the second partition:
-
Correct UUIDs if Necessary:
If you previously useddd
to overwrite partitions and suspect corruption, you may need to restore or update UUIDs inextlinux.conf
. Useblkid
to find current UUIDs and update them accordingly. -
Reflash Root Filesystem:
If configuration issues persist, consider reflashing the root filesystem using:sudo ROOTFS_AB=1 ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1 -c tools/kernel_flash/flash_l4t_nvme_rootfs_ab.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit internal
-
Driver Updates:
Check for any available driver updates or patches that might resolve known issues with nvbootctrl or filesystem mounting. -
Best Practices for Future Prevention:
- Always back up configurations before making changes.
- Avoid using
dd
for partition management unless fully aware of its implications. - Regularly check for updates from Nvidia regarding Jetpack and driver releases.
-
Documentation and Support Links:
For further assistance, refer to Nvidia’s official documentation on Jetson Linux Developer Guide for detailed instructions on flashing and configuring your device. -
Unresolved Aspects:
Users may need additional support if none of these steps resolve their issue. Engaging with Nvidia’s developer forums can provide insights from other users who may have faced similar problems.
By following these structured troubleshooting steps, users should be able to identify and resolve issues related to switching between root filesystem partitions on their Nvidia Jetson Orin Nano Dev board effectively.