I have a Lenovo Y510P, and it's running Linux (Antergos). I've read that I need to have windows running to update the BIOS. I'm guessing it's a no because it is a sandboxed environment, but I want to be sure because I've had a lot of trouble with the boot menus installing new OSes.
-
1Why do you even want to upgrade the firmware? Are you experiencing any problems?– Daniel BFeb 3, 2018 at 16:15
-
I do a lot of distro swapping and my older bios is missing some features, at least I think it is. It's blocking me from switching priority between UEFI and legacy as well, so I'm hoping to refresh it with a different version.– user869075Feb 3, 2018 at 16:19
-
2There should be ways to update the BIOS outside of the installed OS. Not everyone runs Windows.– I say Reinstate MonicaFeb 3, 2018 at 16:20
-
Have you seen Y510p bios update without Windows? (It says "no" and the linked thread explains what to do.)– Andrew MortonFeb 3, 2018 at 16:21
-
2Well, that’s not going to happen, sorry. It’s super rare for hardware manufacturers to add features to BIOS/UEFI. // You could probably use Windows PE to do this. For example start the Windows Setup, bring up a command prompt and do the update from there.– Daniel BFeb 3, 2018 at 16:22
1 Answer
Technically, yes, it is possible. Practically, not with any VM I’ve tried.
The problem is, that you need to
- Know which hardware devices the BIOS updater writes to. (Like some NVRAM device.)
- Make your host OS aware of that hardware. (Like having them as a file in /dev/. A driver is only required for devices it is attached to… like a bus, for example.)
- Make your VM pass these devices through to the guest.
With Linux as the host, steps 1 and 2 should be doable, if the hardware is not something proprietary or very exotic. (E.g. NVRAM is easy.) The problem is that no VM I know of can pass through arbitrary hardware. They can do USB and PCI and drives, etc. But not just any random piece of hardware. Because, and that is my answer: The VM software would also need a kind of “driver” to know how to actually do the passing through while policing what the client is allowed.
So in practice, there are two choices:
- Hardware that Linux can see as “normal” hardware… E.g. NVRAM may be presented as just a normal block device that you can
dd
to. You don’t need a VM at all, and can do the update straight from Linux. (Though beware, as the original BIOS updaters usually do some very important checks, like it being actually compatible with the hardware, etc. Otherwise you may end up with a brick.) - Anything else, where you’d have to contribute to KVM/qemu and add passthrough for your specific hardware.
TL;DR: Everything is possible, if you’ve got all the time to do it. Unless it’s outside of your event horizon. ;)
Or even shorter: No.