Jump to content

Flash a Yocto Image to Toradex Verdin i.MX95 (eMMC or SD Card)

From RidgeRun Developer Wiki

Follow us on: YouTube Twitter LinkedIn Email Share this page

Share This Page




This guide explains how to flash a Yocto-built image onto the Toradex Verdin i.MX95. Use the Toradex Easy Installer (TEZI) `.tar` artifact to install an image to eMMC; use the compressed `.wic.gz` artifact to write a bootable image to an SD card. The commands and example output below are the RidgeRun engineer-tested procedure; they target the Verdin i.MX95 and must not be assumed to apply to the NXP i.MX95 EVK or other modules.

Choose the right image for the storage device

After a successful build, the deployment files are in:

build/deploy/images/verdin-imx95/

This is the output directory from the preceding Yocto image build guide. Use the artifact that matches the storage you intend to boot or install:

Verdin i.MX95 image artifact by target storage
Target Build artifact Use
eMMC `Verdin-iMX95_Reference-Minimal-Image-Tezi_<version>.tar` or `Verdin-iMX95_Reference-Minimal-Image-Tezi.tar` This is the preferred method. Install with Toradex Easy Installer. See Offline installation of a pre-built image using GUI.
SD card `Verdin-iMX95_Reference-Minimal-Image.wic.gz` and `Verdin-iMX95_Reference-Minimal-Image.wic.bmap` Write the Wic disk image to removable storage. This is the alternative method.

The names shown are for the minimal reference image; the exact generated names depend on the image recipe and BSP release. Check the actual files in `build/deploy/images/verdin-imx95/` before flashing. The artifact list above reproduces the names in RidgeRun's tested page.

Install the image to eMMC with Toradex Easy Installer

For eMMC installation, use the matching TEZI `.tar` artifact. Toradex Easy Installer is the recommended route described by this guide for installing an operating system image to the module's eMMC. Follow RidgeRun's offline GUI installation instructions for preparing and using the installer media.

Write the Wic image to an SD card

The `.wic.gz` file is a compressed whole-disk image. Writing it to the SD card overwrites the card's existing partition table and data. Verify the whole-device path carefully before running the `dd` command. Do not substitute a partition path such as `/dev/sda1` for the whole device `/dev/sda`.

The paired `.wic.bmap` file is listed with the SD-card artifacts, but the tested RidgeRun command below uses `gunzip` and `dd`; it does not use the bmap file. Do not change the tested procedure without validating the alternative on the target setup.

Identify the SD card

Connect the SD card to the Linux host and identify its device with:

lsblk

The tested example output is:

sdba           8:16   1  58.2G  0 disk
├─sda1        8:17   1   256M  0 part /media/carguedas/boot
└─sda2        8:18   1     2G  0 part /media/carguedas/root

The sample device name is not universal. Confirm the SD card by its size and mounted partitions on your host. The commands below use `/dev/sda` because that is the device in the engineer-tested example; replace it only after identifying the correct SD card.

Optional partition-table reset shown in the tested procedure

The following procedure helps ensure that the SD-card structure has the expected layout. It erases the selected device's existing partition table and data.

1. Unmount the existing partitions:

sudo umount /dev/sda1
sudo umount /dev/sda2

2. Recreate the partition table:

sudo fdisk /dev/sda

3. Enter the following sequence in `fdisk`:

Welcome to fdisk (util-linux 2.39.3).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): o
Created a new DOS (MBR) disklabel with disk identifier 0x51cde645.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-124669951, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-124669951, default 124669951):

Created a new partition 1 of type 'Linux' and of size 59.4 GiB.

Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): c
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

4. The original procedure optionally creates a FAT32 filesystem if needed:

sudo mkfs.vfat -F 32 -n TEZI /dev/sda1

The `TEZI` label in this command does not make the Wic image a Toradex Easy Installer image. The artifact format and installation workflow are determined by the image file selected.

Write the compressed image

Once the correct whole-device path is identified, write the SD-card image using the tested command:

gunzip -c Reference-Minimal-Image-verdin-imx95.rootfs.wic.gz | sudo dd of=/dev/sda bs=4M conv=fsync status=progress

This command decompresses the image to standard output and writes it to `/dev/sda`.

The tested example output is:

467894272 bytes (468 MB, 446 MiB) copied, 2 s, 234 MB/s
685395968 bytes (685 MB, 654 MiB) copied, 2.69174 s, 255 MB/s

0+20908 records in
0+20908 records out
685395968 bytes (685 MB, 654 MiB) copied, 48.5262 s, 14.1 MB/s

The transfer-rate lines are sample output, not a performance guarantee. The final reported rate depends on the host, card, reader, and image size; the original page does not record these test conditions.

When the write completes, safely eject the SD card, insert it into the Verdin Development Board, and power on the system. For instructions to access the running system, continue to Getting into the Board.

Check the boot order in U-Boot

If the board does not boot from the SD card, inspect the U-Boot `boot_targets` environment variable. Interrupt autoboot when this message appears:

Hit any key to stop autoboot

At the U-Boot prompt, run:

printenv boot_targets

The original example output is:

boot_targets=mmc1 mmc0 usb0 dhcp

In this example, `mmc1` is the SD card and `mmc0` is eMMC. The listed order places the SD card before eMMC. Confirm the device mapping and boot behavior on the actual board and bootloader build; the example is not a substitute for confirming the active hardware configuration.

Troubleshooting

First checks when flashing or booting fails
Symptom Check
The expected image is missing Confirm the selected image recipe and inspect `build/deploy/images/verdin-imx95/` for its actual artifact names.
The SD card does not boot Confirm that the image was written to the SD card's whole-device node, then inspect `boot_targets` in U-Boot and confirm the SD card's `mmc` mapping.
The write command reports that the input file cannot be opened Compare the command's filename with the files actually present in the deploy directory. The filename in the preserved test command differs from the artifact list on this page.
The eMMC installation workflow is unclear Follow the linked TEZI GUI procedure and make sure the selected artifact is the TEZI `.tar`, not the `.wic.gz` file.

FAQ

Which Yocto image should I use to flash eMMC on the Verdin i.MX95?
Use the generated Toradex Easy Installer `.tar` image and follow RidgeRun's offline GUI installation procedure.
Why does the SD card fail to boot after flashing?
Check that the image write completed, then inspect `boot_targets` in U-Boot. In the example on this page, `mmc1` is the SD card and should appear before `mmc0` (eMMC) to try SD first.
Can I use this procedure on the NXP i.MX95 EVK?
No. The commands here target the Toradex Verdin i.MX95. The EVK uses a different board support package and flashing workflow.

Related pages

References

For RidgeRun engineering assistance with Yocto BSP integration or image deployment, contact RidgeRun.





Cookies help us deliver our services. By using our services, you agree to our use of cookies.