firmware icon indicating copy to clipboard operation
firmware copied to clipboard

Any Linux distro fails to install on Lenovo Thinkpad 11e: mmc0: timeout waiting for hardware interrupt

Open Minater247 opened this issue 3 years ago • 35 comments

Hello! Hopefully this is the right place for this, if not please let me know and I'll continue my search elsewhere!

I've been trying for the past few months to get some form of Linux installed on my Chromebook (Lenovo Thinkpad 11e Yoga), but no matter what I try, it always has issues with the integrated emmc. Windows installs perfectly fine, ran it off of the emmc for a couple weeks with no drive issues. However, when I try and install any linux distro, I get this message:

mmc0: timeout waiting for hardware interrupt

and a state dump. I can install to the SD card slot (mmc1) without issue - just the integrated one that has problems.

I'm running it off an arch USB at the moment, I will be happy to provide any more info if necessary!

Minater247 avatar Nov 26 '21 21:11 Minater247

what board name is shown in the UEFI firmware header?

MrChromebox avatar Nov 27 '21 04:11 MrChromebox

Possibly this is what you're talking about: Lenovo Thinkpad 11e/Yoga Chromebook (G3) () since that's what the UEFI header says, unless I'm mistaken on what you're referring to there.

(upon looking further it seems that other people usually have the board name where the empty parenthesis are on mine...)

Minater247 avatar Nov 27 '21 05:11 Minater247

it doesn't say ULTIMA inside the parentheses? odd.

I don't know why you'd be getting eMMC errors unless the eMMC is dying. Assuming you're trying to boot a relatively recent distro?

MrChromebox avatar Nov 27 '21 19:11 MrChromebox

Nope, just an empty set of parentheses. Tried doing it in the linux terminal with dmidecode too, but most slots were empty, if that matters.

It works fine on chromeOS, unless it's just hiding errors from me. It's the the arch from 2 days ago, yesterday's galliumOS release, Ubuntu 20.04, and the most recent CloudReady.

The drive's only ~4 years old by now, so I don't know how it would be dying - is there any way to check that to be sure, though? All I see are disk/ssd tests.

Also, thought it might be worth a mention that I tried to install neverware cloudready today it it was throwing errors about a bad GPT partition table, but never gave me the emmc timeout message.

Minater247 avatar Nov 28 '21 00:11 Minater247

edit: wait, is this MORPHIUS and you're using RW_LEGACY/AltFw? If so, that makes sense, and nothing can be done currently other than adding a NVMe drive as that works properly

MrChromebox avatar Nov 28 '21 01:11 MrChromebox

Since I've had this since 2019, I don't believe it's a morphius. Going off of this chart it's about a year too early. (sorry for all the editing with the dates, I had to figure out when I got this)

Also, just since you had said so initially, I've done this a couple of times and both times just given up on it and gone back to chromeOS. No trouble there. I have an old photo of the boot screen from an earlier try and it had the same thing, empty parentheses.

Minater247 avatar Nov 28 '21 02:11 Minater247

when running my script from ChromeOS, what board name is reported? I wonder if the string is simply too long and so the insertion of the board name fails...

MrChromebox avatar Nov 28 '21 04:11 MrChromebox

Running the script in galliumos live image to reinstall chromeOS, it says ULTIMA in the parentheses. Is that enough, or should I completely reinstall chromeOS to run the script from there? (would have to find my firmware backup, it's on a USB somewhere in here, not sure if OS changes anything)

Minater247 avatar Nov 28 '21 04:11 Minater247

no, that's enough - it tells me it's just a display bug and not something more serious.

this is the first time anyone has reported an issue with ULTIMA's eMMC. I'll see if there's any tweaking to be done on the firmware side. Does the issue occur when using the stock firmware + RW_LEGACY to boot Linux?

MrChromebox avatar Nov 28 '21 17:11 MrChromebox

It works perfectly on Legacy! Absolutely no issues, gallium install running off of eMMC. I'll hold off installing all my arch stuff until testing is done, so you can do whatever you need to.

Edit: Decided to test arch just to see if it'd work too, just not a full install with my stuff, and noticed something - on the full UEFI firmware, the drive is listed as mmcblk0, while on the stock+Legacy firmware, it's listed as mmcblk1. Thought it worth a mention, might be something.

Another edit: More testing, put in an SD card and that's mmcblk0. There wasn't anything in the slot when I was testing with full UEFI.

Minater247 avatar Nov 28 '21 22:11 Minater247

having this exact issue on ULTIMA with the latest full uefi firmware. windows 10 installs and works fine, but linux distros on kernel 5+ fails to install with this error "mmc0: Timeout waiting for hardware cmd interrupt." (ubuntu 22.04, 20.04, debian bullseye)

chusx avatar Jul 15 '22 05:07 chusx

there is a debian bug with similar symptoms, it seems like aspm handling between the bios and os might be an issue. the suggested fix debug_quirks=0x40 debug_quirks2=0x4 did not work on ULTIMA unfortunately.

chusx avatar Jul 15 '22 05:07 chusx

any updates on this? I am having the same issue on the latest full ROM firmware

mmccall0813 avatar Oct 23 '22 17:10 mmccall0813

I'm pretty sure this isn't a firmware issue - either a Linux kernel or a hardware one

MrChromebox avatar Oct 24 '22 13:10 MrChromebox

ah, that sucks. I ended up just installing Tiny10 and it works fine

mmccall0813 avatar Oct 24 '22 14:10 mmccall0813

I just got a 11e chromebook and I get the same problem. When I booted into chromeos it reported the board name as "ULTIMA" but in the coreboot settings the heading is "Lenovo Thinkpad 11e/Yoga Chromebook (G3) ()" (empty parens). I've tried installing alpine linux and during installation it freezes (I think while it's copying files to the disk) and dmesg contains "mmc0: timeout waiting for hardware interrupt".

gridbugs avatar Mar 27 '23 03:03 gridbugs

coreboot settings the heading is "Lenovo Thinkpad 11e/Yoga Chromebook (G3) ()" (empty parens).

UEFI settings, not coreboot. And 'ULTIMA' isn't shown because the string is too long for the field, not a big deal.

without having one of these on hand, going to be very time consuming to try and figure out what's wrong with the eMMC on some of them with the UEFI Full ROM firmware

MrChromebox avatar Mar 27 '23 15:03 MrChromebox

@MrChromebox I’ve got a few of these 11e 3rd gens being retired from fleet. Happy to powerwash one and donate it to you?

Yorper avatar May 24 '23 03:05 Yorper

@Yorper sounds good, drop me an email at mrchromebox at gmail

MrChromebox avatar May 24 '23 13:05 MrChromebox

@MrChromebox email sent 👍

Yorper avatar May 24 '23 14:05 Yorper

Any updates?

skajmer avatar Oct 21 '23 06:10 skajmer

Given this bug, it would be nice to add the legacy firmware option back to the firmware scripts, as the coreboot option is not really usable today.

superatrain avatar Oct 31 '23 00:10 superatrain

I would like to resurrect this issue. I have done a little digging and have a lead. TLDNR: The kernel is looking for " (dmi_match(DMI_BIOS_VENDOR, "LENOVO") ". My theory is our machines have the Google code names image GOOGLE != LENOVO and so the timeout occurs. I see there is/was a Set Hardware ID function in the MrChromebox script, but I do not see it in the 4.22 version (or maybe its only available to some machines). Then again maybe its not that easy of a fix.

Research: From this post someone found using an older Ubuntu 18.04 (not 18.04.5) allowed successful install. (I have confirmed). Freezing the kernel allowed update further. (https://www.reddit.com/r/chrultrabook/comments/13iydpr/mmc0_timeout_waiting_for_hardware_interrupt/?sort=new) From this post there was a similar issue found for Ubuntu. (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1848883). And a hacky kernel patch was applied. This has made it into the mainline Linux. (https://github.com/torvalds/linux/commit/afd7f30886b0b445a4240a99020458a9772f2b89)

MArabie avatar Jan 05 '24 13:01 MArabie

In theory if I changed the DMI vendor to LENOVO it should match, but looking at the patch, it's only going to match on the Geminilake eMMC controller, not Braswell, since they have different PCI IDs. What I should do is see if it can be disabled in the firmware init

MrChromebox avatar Jan 05 '24 14:01 MrChromebox

Good catch. I missed that GLK is Geminilake. Probably means the workaround kernel patch did not capture the true issue. Or the kernel parch needs an additional OR in the evaluation. Wonder if it affects Appolo Lake Lenovos as well (between Braswell and Gemini)

MArabie avatar Jan 05 '24 15:01 MArabie

AFAIK, Ultima is the only device with the issue, or at least no one else has reported a problem.

This really does seem like a hardware + kernel driver issue, and I don't see a good way to work around it in firmware -- the capabilities registers are read only.

MrChromebox avatar Jan 05 '24 15:01 MrChromebox

Research: From this post someone found using an older Ubuntu 18.04 (not 18.04.5) allowed successful install. (I have confirmed). Freezing the kernel allowed update further. (https://www.reddit.com/r/chrultrabook/comments/13iydpr/mmc0_timeout_waiting_for_hardware_interrupt/?sort=new) From this post there was a similar issue found for Ubuntu. (https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1848883). And a hacky kernel patch was applied. This has made it into the mainline Linux. (torvalds/linux@afd7f30)

I made that comment about 18.04 on that post (I own the SrebrnyBrek64 account), this was pretty hacky and it took like an entire day to do the upgrades.

skajmer avatar Jan 05 '24 15:01 skajmer

So I can also confirm a custom version of windose 10 works on this device; However because of storage constraints you'll always run into issues.

Also I have noticed the SD card gets corrupted for extra storage, I believe there's a bug in the coreboot firmware IMO. Didn't some give MrChromebox one of these to play around with?

At the end of the day I was just trying to save the device from being landfill.

HighOnVoltage avatar Jan 29 '24 19:01 HighOnVoltage

SD Card seems to work fine on my machine, no corruption there. The only thing that happens it sometimes isn't mounted automatically on boot but that's about it.

skajmer avatar Jan 31 '24 15:01 skajmer

I had a bit of time, I heard Linux works on rw_legacy so I decided to test it. And it seems to work. I had to edit the script because you can't use rw_legacy on eol devices. I know it's unsupported, but still it does work. ultimaneofetch

skajmer avatar Feb 16 '24 16:02 skajmer