VAR-SOM-MX6 Yocto NAND Recovery V50plus

From Variscite Wiki

Variscite provides a recovery SD card image that can be used to install the pre-built U-Boot, Linux kernel and the UBI file system into the NAND-Flash This SD card image includes a script (nand-recovery.sh) that installs all the boot images and root file-system.

Preparing a rescue SD card

You can either use our pre-built SD image, or our script to create your SD card from Yocto.
Main differences are:
The pre-built SD image also contains Android recovery, in addition to the Yocto recovery options.
Naturally, the pre-built image is more straight forward and easier to use, while the script method is easier to customize.
The pre-built image's rootfs partition size is 3700MiB, which is also the default size when using the script, but the script also has an option to set the rootfs partition size to fill the whole free space of the used SD card. Anyway, you can always resize the partition later with an external tool such as gparted.

Using a pre-built SD image

  • Download mx6-som-nand-recovery-sd.vXX.img.gz (latest which is available on Variscite's FTP)
  • Plug-in the SD card to your Linux HOST PC, run dmesg and see which device is added (i.e. /dev/sdX or /dev/mmcblkX)
$ gunzip mx6-som-nand-recovery-sd.XX.img.gz
$ sudo dd if=mx6-som-nand-recovery-sd.vXX.img of=/dev/sdX bs=128k

(Replace /dev/sdX with your actual device)

Creating the SD card from Yocto

  • Follow the VAR-SOM-MX6_Yocto_Fido_R3_Build_Yocto_release guide and bitbake both fsl-image-qt5-minimal (used for the Yocto-NAND installation) and fsl-image-qt5 (used for the Yocto-eMMC installation and for the SD card itself).
  • Plug-in the SD card to your Linux HOST PC, run dmesg and see which device is added (i.e. /dev/sdX or /dev/mmcblkX)
cd ~/var-som-mx6-yocto-fido/build_x11
sudo ../sources/meta-variscite-mx6/scripts/var_mk_yocto_sdcard/var-create-yocto-sdcard.sh <options> /dev/sdX
(Replace /dev/sdX with your actual device)
options:
  -h            Display help message
  -s            Only show partition sizes to be written, without actually write them
  -a            Automatically set the rootfs partition size to fill the SD card

If you don't use the '-a' option, a default rootfs size of 3700MiB will be used

Recover NAND Flash

  • Power-off the board.
  • Insert the SD card into the SD/MMC slot of the carrier board (DVK)
  • Press and hold the boot-select button, and power-on the board while button is pressed
  • The board will automatically boot into Linux from SD card

Flash from GUI

Applications Fido 10 1.png

  • Click on the right arrowhead on the upper right corner to change the desktop into Utilities.

Utilities Fido 10 1.png

  • Push Android-eMMC to flash Android into eMMC.
  • Push Yocto-NAND to flash Yocto into NAND.
  • Push Yocto-eMMC to flash Yocto into eMMC.

Flash from command line

  • Login as root (no password)
  • From Linux command line, type one of flash options
$ android-emmc.sh 	- Flash Android into eMMC
$ yocto-emmc.sh		- Flash Yocto into eMMC
$ yocto-nand.sh		- Flash Yocto into NAND

SD card image file tree

/media/rootfs/opt/images/
├── Android
│   └── Emmc
│       ├── SPL
│       ├── SPL.mmc
│       ├── boot-imx6q-var-dart.img
│       ├── boot-som-mx6dl-c.img
│       ├── boot-som-mx6dl-r.img
│       ├── boot-som-mx6q-c.img
│       ├── boot-som-mx6q-r.img
│       ├── boot-som-mx6q-vsc.img
│       ├── boot-som-solo-c.img
│       ├── boot-som-solo-r.img
│       ├── boot-som-solo-vsc.img
│       ├── boot.img
│       ├── recovery-imx6q-var-dart.img
│       ├── recovery-som-mx6dl-c.img
│       ├── recovery-som-mx6dl-r.img
│       ├── recovery-som-mx6q-c.img
│       ├── recovery-som-mx6q-r.img
│       ├── recovery-som-mx6q-vsc.img
│       ├── recovery-som-solo-c.img
│       ├── recovery-som-solo-r.img
│       ├── recovery-som-solo-vsc.img
│       ├── recovery.img
│       ├── system.img
│       ├── u-boot-var-imx6-nand.img
│       └── u-boot-var-imx6-sd.img
└── Yocto
    ├── SPL
    ├── SPL.mmc
    ├── rootfs.tar.bz2
    ├── rootfs.ubi.img
    ├── u-boot.img
    ├── u-boot.img.mmc
    ├── uImage
    ├── uImage-imx6dl-var-som-solo-vsc.dtb
    ├── uImage-imx6dl-var-som-solo.dtb
    ├── uImage-imx6dl-var-som.dtb
    ├── uImage-imx6q-var-dart.dtb
    ├── uImage-imx6q-var-som-vsc.dtb
    └── uImage-imx6q-var-som.dtb

Script files located on /media/rootfs/sbin/:

nand-recovery.sh
mkmmc_yocto.sh
yocto-dart.sh
yocto-emmc.sh
yocto-nand.sh
mkmmc_android.sh
android-emmc.sh