eMMC failure installing Linux on Asus C302A CAVE

On two separate Asus C302CA (“CAVE”) units, my Linux Mint install is failing with what looks like eMMC I/O instability.

Before attempting install, I booted Linux (live USB) and checked the eMMC “life/EOL” fields:

bash

sudo apt update
sudo apt install -y mmc-utils
sudo mmc extcsd read /dev/mmcblk0 | egrep -i 'life|eol'
Both devices reported good/early-life values.

However, during the Mint install the internal eMMC starts throwing MMC timeouts and then filesystem read failures, and the installer ultimately dies at the bootloader step (GRUB). In dmesg I’m seeing messages like:

  • mmc0: mmc hs400 to hs200 failed, error -110

  • EXT4-fs (mmcblk0pX): unable to read superblock (repeats across multiple partitions)

  • Installer ends with: Executing 'grub-install /dev/mmcblk0' failed

Has anyone seen this on the C302CA specifically, or have a known workaround (e.g., forcing HS200 / disabling HS400, kernel params, different kernel version, etc.)?

Running Linux permanently from an external USB drive isn’t an acceptable long-term solution for me on a laptop—I’m trying to get a reliable internal install.

Thanks!

Similar problem over here. For what it’s worth, in my case I can install just fine (tested Debian 13 and Ubuntu 25.04). But it’s when booting the freshly installed system that, after about 5 minutes, I get kernel errors from the internal eMMC disk and eventually the root partition gets remounted read-only. See the details in the topic I just opened, (Mmc problems on Asus Flip C302 (UEFI Full ROM, Debian & Ubuntu).

I suspect that this did not happen with earlier kernels because I had used Debian 11 on this machine without problems for some time, although this was with RW_LEGACY and now I have UEFI. So now I am not sure whether this is the kernel’s fault or UEFI’s fault.

Cheers,

JL

Thanks JL — this is very similar to what I’m seeing. On my C302CA units the Mint installer fails at grub-install /dev/mmcblk0, and dmesg shows HS400→HS200 timeouts followed by ext4 superblock read failures on multiple mmc partitions.

Your log is even clearer: mmc_select_hs400 failed (-84) / mmc_hs400_to_hs200 failed (-110) repeats, then cache flush error -110I/O error → ext4 journal abort/remount-ro. That could suggest an HS400 stability issue (timing/power/driver/firmware interaction) rather than simple “worn out” eMMC, since life/EOL counters can still look good.

Just in case, I checked the life/EOL of my drive, as you did:

root@asuscb:~# mmc extcsd read /dev/mmcblk0 | egrep -i 'life|eol'
eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x01
eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x01
eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x01

I get the same output from the kernel (of course):

root@asuscb:~# cat /sys/class/mmc_host/mmc0/mmc0\:0001/life_time 
0x01 0x01

root@asuscb:~# cat /sys/class/mmc_host/mmc0/mmc0\:0001/pre_eol_info 
0x01

So the life time is fine (0x01 == 0–10% used) and the EOL is normal (0x01, less than 80% of reserved blocks consumed).

I think the issue has definitely something to to with the eMMC Sampling Tuning, although I’m really out of my depth here. I don’t know if the culprit is the UEFI ROM or the kernel. Searching around for similar problems, some people suggest trying to force the speed to HS200 in the UEFI settings, but I don’t see this setting.

Here’s some older threads that may be useful, although I’m really shooting in the dark here:

I hope someone more knowledgeable in the interaction between the kernel’s mmc module and the UEFI ROM can chime in.

Cheers,

JL