eMMC / SD Card Troubleshooting
lsblk does not show the expected device
Identify eMMC vs SD card
| Device | TRAN | MODEL |
|---|---|---|
| eMMC | mmc |
(empty) |
| SD card | mmc |
(vendor string, e.g. SD32G) |
| USB stick | usb |
(vendor string) |
Device numbers vary between boards
On some carrier boards eMMC is mmcblk0, on others mmcblk2. Always verify with lsblk before flashing — never assume.
SD card not detected at all
- Re-seat the card.
- Try a different card — some cards are not compatible with all readers.
- Check that the card is formatted (any filesystem) to confirm the reader sees it.
Flash completes but board still won't boot
Work through this checklist in order.
1. Wrote to disk, not partition
You must write to the raw disk device:
# Correct
sudo dd if=image.wic of=/dev/mmcblk2 ...
# Wrong — writing to a partition destroys the partition table
sudo dd if=image.wic of=/dev/mmcblk2p1 ...
2. Write buffers were flushed
Run this immediately after dd and wait for the prompt to return before removing the media.
3. Boot mode jumpers are set correctly
After flashing eMMC, the board must be in eMMC boot mode. See your board's Hardware Reference Manual.
4. Verify image integrity
Check the image before flashing:
Or compare checksums:
Flash fails or is interrupted mid-way
Power supply instability
An unstable supply during a long dd or UUU session can cause write errors. Use a dedicated power supply — do not power the board through a USB hub.
Retry safely
Both dd and UUU can be retried from scratch. The eMMC will be overwritten cleanly from sector 0.
Check for write errors in dd output
Use status=progress to see transfer rate and detect stalls:
A transfer rate that drops to 0 and hangs indicates a hardware or cable problem.
eMMC not detected at all (not shown in lsblk)
- The eMMC device should always appear, even if blank. If it does not:
- The BSP may be using a different kernel device path — check
dmesg | grep mmc. - The eMMC may be damaged or the board may have a hardware fault.
- Try booting a known-good SD card image to confirm the eMMC controller initialises.
- The BSP may be using a different kernel device path — check
A healthy eMMC will show lines like: