[Help] Verdin iMX8M Plus won’t boot after storage full — need to access eMMC to recover SQLite database

Hi everyone,

I’m currently facing an issue with a Verdin iMX8M Plus module installed in our device.

The system is running a Debian-based Toradex image, and it seems that excessive logging filled up the internal storage, causing the board to stop booting.

I need to recover a SQLite database stored on the eMMC before reflashing a new image.

I also have a Yavia carrier board, but unfortunately the device tree currently installed disables the HDMI output, so I can’t use a display to debug it.

Here are my main questions:

  1. Is there a recommended way to access the eMMC storage directly (e.g. through USB OTG, UART, or U-Boot) to mount the filesystem and copy files off the device?

  2. Can I use the SD card slot on the Yavia to boot from an SD card (for example, with a recovery Debian image) and then access the internal eMMC from that environment?

  3. If that’s possible, could someone point me to a recommended image or procedure for such recovery?

I still have access to the UART serial console, and U-Boot appears to be working fine.

Any advice or experience with similar situations would be greatly appreciated!

Thanks in advance,

Tewfik

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Hello Tewfik,

I understand your situation with the Verdin iMX8M Plus module where excessive logging has filled the internal storage and caused boot issues. Here are several approaches to recover your SQLite database:

1. Serial Console Access and Recovery

Since you have access to the UART serial console and U-Boot is working, this is your primary recovery method (1). The Yavia carrier board provides USB-C debug connectivity that includes the serial console (2).

Serial Console Parameters

Use these settings for your serial connection (1):

  • Baud Rate: 115200
  • Parity: none
  • Bits: 8
  • Stop bits: 1
  • Flow control: none

2. SD Card Boot Recovery

Yes, you can absolutely use the SD card slot on the Yavia carrier board to boot from an SD card (2). The Yavia features a microSD slot that supports 4-bit SDIO/SD/MMC (2).

Recovery Procedure:

  1. Prepare a bootable SD card with a Torizon OS recovery image
  2. Insert the SD card into the Yavia’s microSD slot
  3. Boot from SD card to access a working Linux environment
  4. Mount the internal eMMC from the SD-booted system to access your files

3. eMMC Access Methods

From U-Boot Console:

If U-Boot is accessible, you can potentially use U-Boot commands to access the eMMC and transfer files via the serial console, though this method is limited for large databases.

From SD-Booted Recovery System:

This is the most practical approach:

  1. Boot from SD card with a recovery image
  2. The internal eMMC will appear as a separate storage device (typically /dev/mmcblk0 or similar)
  3. Mount the eMMC partitions to access your SQLite database
  4. Copy the database to the SD card or transfer via network

4. HDMI Output Recovery

If you need HDMI output on the Yavia, you can enable it using device tree overlays. For Verdin iMX8M Plus, the following overlay enables HDMI (3)(4):

  • verdin-imx8mp_hdmi_overlay.dtbo

However, since your current system won’t boot, you’ll need to enable this in your recovery SD card image.

5. Similar Case Reference

Your situation is similar to a documented case where excessive logging caused memory issues and system instability (5). The solution involved accessing the system through alternative boot methods to recover data before reflashing.

Recommended Recovery Steps:

  1. Prepare a Torizon OS recovery image on SD card
  2. Boot from SD card using the Yavia’s microSD slot
  3. Mount the internal eMMC from the recovery environment
  4. Copy your SQLite database to the SD card or transfer over network
  5. Reflash a clean Torizon OS image to the eMMC
  6. Restore your database and implement log rotation to prevent recurrence

The Yavia carrier board’s design makes this recovery process straightforward since it provides both SD card boot capability and serial console access simultaneously (2).

Best regards,
Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

You can switch the internal eMMC to USB Mass Storage (UMS) mode via the U-Boot console. Then, by connecting the Yavia board to a Linux host using the USB OTG port (J7), the Verdin module’s eMMC will appear as a USB drive and can be mounted accordingly

Hello,

Thanks for your help — I’ve successfully backed up my database now :wink:

Here’s the method I used to make my Verdin iMX8M Plus appear as a USB mass storage device on my host machine:

Steps to access the Verdin eMMC as a USB drive (using the Yavia carrier board)

  1. Connect the cables

    Plug in two USB-C data cables to the Yavia board:

    • J7 (Debug) → for the serial console

    • J5 (OTG) → for USB Device mode

      Also connect the power supply to the board.

  2. Find the serial port

    On your host computer, open a terminal and locate the serial device

    (on macOS it appears as /dev/tty.usbserial*).

  3. Start Minicom
    minicom -D /dev/tty.usbserial-011C2CAB0 -b 115200

  4. Reset the Yavia

    When you see boot messages in Minicom, press any key repeatedly to interrupt the boot process and get the U-Boot prompt.

  5. Enable USB Mass Storage mode

    In Minicom, type:
    ums 0 mmc 2
    This command configures the Verdin to expose its internal eMMC as a USB storage device.

  6. Check that your host detects the device

    In another terminal type :
    lsblk

    You should see a new disk (for example /dev/sdc1) with a size of around 29 GB

    1. Mount the eMMC on your host

    sudo mkdir -p /media/emmc
    sudo mount /dev/sdc1 /media/emmc
    You can now browse the eMMC filesystem and retrieve your data.

    That’s it! With this method, I was able to access the eMMC directly from my computer and recover my SQLite database safely.