Matthew Garrett ([personal profile] mjg59) wrote2013-05-28 17:20
Entry tags:

Secure Boot isn't the only problem facing Linux on Windows 8 hardware

There's now no shortage of Linux distributions that support Secure Boot out of the box, so that's a mostly solved problem. But even if your distribution supports it entirely you still need to boot your install media in the first place.

Hardware initialisation is a slightly odd thing. There's no specification that describes the state ancillary hardware has to be in after firmware→OS handover, so the OS effectively has to reinitialise it again. This means that certain bits of hardware end up being initialised twice, and that's slow in some cases. The most obvious is probably USB, which has various timeouts as you wait for hardware to settle. Full USB support in the firmware probably adds a couple of seconds to boot time, and it's arguably wasted because the OS then has to do the same thing (but, thankfully, can at least do other things at the same time). So, looking for USB boot media takes time, and since the overwhelmingly common case is that users don't want to boot off USB, it's time that's almost always wasted.

One of the requirements for Windows 8 certified hardware is that it must complete firmware initialisation within a specific amount of time, something that Microsoft refer to as "Fast Boot". Meeting these requirements effectively makes it impossible to initialise USB, and it's likely that certain other things will also be skipped. If you've got a USB keyboard then this obviously means that your keyboard won't work until the OS starts, but even i8042 setup takes time and so some laptops with traditional PS/2-style keyboards may not set it up. That means the system will ignore the keyboard no matter how much you hammer it at boot, and the firmware will boot whichever OS it finds.

For a newly purchased device, that's going to be Windows 8. It's not too much of a problem with a fully installed Windows 8, since you can hold down shift while clicking the reboot icon and get a menu that lets you reboot into the firmware menu. Windows sets a flag in a UEFI variable and reboots the system, the firmware sees that flag and does full hardware initialisation and then drops you into the setup environment. It takes slightly longer to get into the firmware, but that's countered by the time you save every time you don't want to get into the firmware on boot.

So what's the problem? Well, the Windows 8 setup environment doesn't offer that reboot icon. Turn on a brand new Windows 8 system and you have two choices - agree to the Windows 8 license, or power the machine off. The only way to get into the firmware menu is to either agree to the Windows 8 license or to disassemble the machine enough that you can unplug the hard drive[1] and force the system to fall back to offering the boot menu.

I understand the commercial considerations that result in it ranging from being difficult to impossible to buy new hardware without Windows pre-installed, but up until now it was still straightforward to install an alternative OS without agreeing to the Windows license. Now, installing alternative operating systems on many new systems will require you to give up certain rights even if you want nothing other than to reach the system firmware menu.

I'm firmly of the opinion that there are benefits to Secure Boot. I'm also in favour of setups like Fast Boot. But I don't believe that anyone should be forced to agree to a EULA purely in order to be able to boot their own choice of OS on a system that they've already purchased.

[1] Which is a significant and probably warranty-voiding exercise on many systems, and that's assuming that it's not an SSD soldered to the motherboard…

What about live-cds?

(Anonymous) 2013-05-28 22:35 (UTC)(link)
Most distros these days come with a livecd, are newer firmware's not set to boot to CD if there's one in the drive?

Re: What about live-cds?

(Anonymous) - 2013-05-29 01:49 (UTC) - Expand
(screened comment)
ewen: (Default)

Tying

[personal profile] ewen 2013-05-29 01:51 (UTC)(link)
That sounds quite a bit like "tying" the hardware purchase to an OS contractual arrangement in the way that competition law (eg, anti-monopoly) is likely to be relevant. Possibly the way to tackle it is through one of the jurisdictions (EU? USA?) that has issued related consumer choice rulings?

The simplest technical solution would seem to be to not do FastBoot until after the first successful boot-to-full-running-OS, so "out of the box" systems (in "late first install" mode) go through the slow path that enables the keyboard in the pre-boot environment. Or (possibly in addition) implement something like the Apple Macintosh hold-key-to-boot-from-CD in the early OS environment (ie, that when the early OS environment initialises the keyboard, it can notice that the key is held down and then issue the reboot-from-CD; the Mac does it in the firmware IIRC, but it'd be workable in the early OS environment from a one-off usability point of view).

Ewen

Re: Tying

(Anonymous) 2013-05-29 09:32 (UTC)(link)
It seems like the mentioned "UEFI variable" is in nvram, and as such will survive on a powered-off system. It would make sense then to use such a flag for indicating, as Ewen suggests after a full install and successful boot, that FastBoot should be used from then on. But yeah, obviously that would go against any possible scheme, as is suggested in this thread, to make it complicated to install a different OS.

Reboot to firmware menu

(Anonymous) 2013-05-29 03:22 (UTC)(link)
On a tangential topic, does the Linux reboot process have a way of setting that UEFI flag to request a reboot into the firmware menu?

Re: Reboot to firmware menu

(Anonymous) 2014-04-15 16:42 (UTC)(link)
Depends on the system, but on my ThinkPad X220, 'efibootmgr' lists an option to go into the ROM Setup. You just tell it to set it as a "BootNext" choice, and on next boot it'll go straight into the ROM Setup tool. As long as that's the case (not all, but many, do), it's easy enough to do.

For example, with mine, running 'efibootmgr -n 0000' selects the ROM Setup to boot on next reboot (and boots it only once).

A system's design shows it's true intent

(Anonymous) 2013-05-29 03:28 (UTC)(link)
The Spaniards should submit this as evidence to the European Commission. Forced licensing and obstruction of basic hardware functionality. (mouse,keyboard)

shift f10

(Anonymous) 2013-05-29 03:39 (UTC)(link)
Have you tried pressing shift-F10 at the EULA screen? At various points in setup, that key combination will bring up a command prompt. Not sure about the specific screen you're talking about though.

Re: shift f10

(Anonymous) 2013-06-01 19:27 (UTC)(link)
No, that key combo only works in PE. This EULA screen is during OOBE.

(Anonymous) 2013-05-29 06:11 (UTC)(link)
I've yet to see a machine that doesn't have a key combination at start that allows selecting boot device etc. Are there really those around? Lots of them? Or is this just a theoretical thing?

(Anonymous) 2013-05-29 07:30 (UTC)(link)
Thats pretty much the problem he is describing. Maybe that combination is there. But how are you going to press it if you can't use your keyboard?

GPIO-connected key?

(Anonymous) - 2013-05-29 09:44 (UTC) - Expand

Re: GPIO-connected key?

(Anonymous) - 2013-05-31 04:51 (UTC) - Expand

No keyboard

[identity profile] jnareb.myopenid.com - 2013-05-29 07:36 (UTC) - Expand

Boon for ransomware, by the looks of it

(Anonymous) 2013-05-29 09:52 (UTC)(link)
Speaking as someone who's often had to boot up RescueCD to rescue a PC from malware or so, and having just read recently about ransomeware, it strikes me that Microsoft's UEFI shenanigans are a boon for ransomeware. If there is no way to get around such a fixed sequence of boot events except by expensive radical open-heart computer surgery, instead of the quick-and-easy reboot with a secure OS from CD or USB stick and running anti-malware software from it, a time-tried-and-proved method, then we have yet another few years of malware supremacy to look forward to: MSWin9x revivus.

Wesley Parish

ALT Linux Rescue

(Anonymous) 2013-12-06 16:58 (UTC)(link)
Try booting http://en.altlinux.org/Rescue -- recent builds (as of end of November 2013) will cope with UEFI SB left on.

--
Michael Shigorin

With legal problems, lawyers are the solution

[identity profile] pavelmachek.livejournal.com 2013-05-29 11:28 (UTC)(link)
They can't force the EULA on you, that's why you have to agree to it. (Is the copy of EULA somewhere?) It probably says something like "if you don't like this EULA, remove windows without running it". If it turns out that can not be done... well it turns agreement into blackmail. Antitrust lawyers are probably way to go.

Or perhaps you can argue that EULA is invalid because you were blackmailed into it. That should give you some attention.

Re: With legal problems, lawyers are the solution

(Anonymous) 2013-05-29 12:05 (UTC)(link)
It's clearly invalid. There was no meeting of the minds. But, of course, proving that likely requires expensive legal shenanigans, much more expensive than sucking up the cost of the Windows license for the OS you're never going to use.

Not at *all* like Prenda Law. Oh no.

Re: With legal problems, lawyers are the solution

(Anonymous) - 2013-05-29 13:07 (UTC) - Expand

what did you mean is :

(Anonymous) 2013-05-29 11:42 (UTC)(link)
"you still need to boot your install media in the first place."
this make no sense.
still need to boot your install media?
boot the "install media"? "install media" is media, or as we call it , data. you cant boot data, its not a computer. booting data is "clearing it?"

im not sure what you ment there.

Re: what did you mean is :

(Anonymous) 2013-05-29 11:51 (UTC)(link)
Media is not data. Media is that which hosts the data. The install media is the media which hosts the install data. It can be a CD, an USB key, a special recovery partition, a network resource...

does shift-F10 work at the EULA screen?

(Anonymous) 2013-05-29 13:33 (UTC)(link)
can you bring up a command prompt when you see the EULA?

Try to make it crash?

(Anonymous) 2013-05-29 14:15 (UTC)(link)
Someone mentioned at hackernews that a failure to boot should make it turn off fast boot. So how about trying this:

Boot to the EULA screen, and while at it, hold the power button firmly until it powers down (power down forced by the hardware, the same one you would use if it stopped responding). This would look like a crash (no normal shutdown), so it is possible that it would allow you to get to the firmware on the next power on.

Re: Try to make it crash?

(Anonymous) 2013-05-29 14:50 (UTC)(link)
The problem with this method still in it being a "workaround", that most probably a "techie friend" would know how to deal with, not a normal person "who heard about 'Unbun-something'" to replace Windows.

It isn't show as an simple option for the user =/

Re: Try to make it crash?

(Anonymous) - 2013-06-01 19:32 (UTC) - Expand

Press power button for 5 seconds

(Anonymous) 2013-05-29 14:37 (UTC)(link)
Hello, I didn't even notice the issue. I simply kept pressed the power off button for 5 seconds and the PC did a full initialization allowing me to press F12 to get into the bios. The problem I have now with secure boot is that the text console is only on the laptop internal panel, so with a dual monitor setup and a docking station in the office I'm not able to see the text consoles on the external monitor. I need to re-open the lid and look at the laptop.... bah.

Re: Press power button for 5 seconds

(Anonymous) 2013-05-30 07:02 (UTC)(link)
Exactly, this is what I was thinking as I read this.
I've got an Intel board with 67 chipset, which has comparable tech in it.
The way to do a full initialise, i.e. turn off all the optimisations, is to press and hold the power button for about 4 seconds (it gives off four beeps). Then you are in a full BIOS/UEFI environment, and you can change the optimisations to allow booting from USB.

(Anonymous) 2013-05-29 14:52 (UTC)(link)
Simple answer build your own, dont get stuck in the neverending mish mash of complexity that is Windows

Build your own?

(Anonymous) 2013-05-29 16:02 (UTC)(link)
Yeah, that's a great idea.

Unless you want, you know, a laptop. Or a netbook.

Re: Build your own?

(Anonymous) - 2014-01-29 16:31 (UTC) - Expand

You can bypass Fast Boot

(Anonymous) 2013-05-29 15:29 (UTC)(link)
On my Dell Inspiron 14z I just press F12 to get the boot menu, or F2 to head straight into firmware. I think there's a very very tiny window for pressing the shortcut key but it's there. Once those tiny dots start spinning you're out.

Once in there you can disable Secure Boot and enable Legacy boot devices to get good ol' BIOS behaviour. I don't know if this is true of all Windows 8 machines but it seems Secure Boot must be disabled or there's no option to boot to anything but Windows or network

Re: You can bypass Fast Boot

(Anonymous) - 2013-05-30 06:34 (UTC) - Expand

Recent example

(Anonymous) 2013-05-29 17:40 (UTC)(link)
See http://people.skolelinux.org/pere/blog/How_can_I_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8_.html and http://people.skolelinux.org/pere/blog/How_to_install_Linux_on_a_Packard_Bell_Easynote_LV_preinstalled_with_Windows_8.html for a recent example of that.

hardware switch

(Anonymous) 2013-05-29 19:42 (UTC)(link)
why not use an hardware switch right on the motherboard or next to the power button for switching fast boot on or off?

this would of course have to be implemented on the next generation of motherboards and/or computer chassis and is not a solution viable solution right now but for the future i think it seems simple and practical, dont you?

Long Press

(Anonymous) 2013-05-29 20:45 (UTC)(link)
Why not disable fast-boot if the power-button is pressed longer than 1 sec on poweron. The Powerbutton is basically connected to a GPIO pin, so it can be detected very easily.

Re: Long Press

(Anonymous) 2013-05-30 02:40 (UTC)(link)
That's one of the most reasonable things in this conversation. Do you know what the feasibility is of adding this kind of detection to the uEFI setup, is the power button state not easily accessible or readable in early firmware initialization and can this be overloaded with the other function of long-press which is power-off.

Firmly of the opinion...

(Anonymous) 2013-05-29 21:55 (UTC)(link)
It's like, if you were a slave building the egyptian pyramids, and you'd be complaining how it's unfair that you have to be whipped all the time, because you'd totally be willing to help with the pyramids anyway because "there are definitely benefits to building them".

There is no benefit to SB, not in it's current form, not as long as we have to accept Microsoft as any kind of authority. Develop tools that are in the user's control, not in Microsoft's. That's the only way for any meaningful security.

Microsoft signing keys will be compromised. Secure boot will be broken. It's only a matter of time.

Re: Firmly of the opinion...

[identity profile] pjakma.wordpress.com 2013-05-29 23:42 (UTC)(link)
Secure Boot provides no security, regardless of whether MS' keys are compromised or not. By far the weakest link in the chain is the kernel - it is swiss cheese, riddled with security holes and more keep being added.

Secure Boot doesn't buy anything, until and *UNLESS* you have something secure to boot. And we don't.

Re: Firmly of the opinion...

(Anonymous) - 2013-05-30 02:42 (UTC) - Expand

Re: Firmly of the opinion...

(Anonymous) - 2013-06-01 14:22 (UTC) - Expand

(Anonymous) 2013-05-29 22:31 (UTC)(link)
This just shows that it's important to buy systems that don't come with a proprietary operating system pre-installed. It's bad for your freedom. Instead, buy systems with a free GNU/Linux distribution like the FSF-endorsed Trisquel distro pre-installed. Try to support companies that at least try to do the right thing. If you can't help support freedom, then at least buy a computer with no operating system, that's at least neutral. If you can't do that or at least remove the drive and erase it beforehand so that nothing is found to boot from and thereby short circuiting the whole "I must click agree" deal.

Windows 8 EULA

(Anonymous) 2013-05-30 01:38 (UTC)(link)
Since one can return the entire system for a full refund if you don't want to agree to the EULA it might grab the large vendors attention if many, many customers did just that.

Re: Windows 8 EULA

(Anonymous) 2013-05-30 04:37 (UTC)(link)
That is bad...last week I was checking an acer notebook...It has UEFI but the secure boot was gray out...Trying to partition the harddisk makes it unusable...

Examples of models that have this problems

(Anonymous) 2013-05-31 07:44 (UTC)(link)
I'm going to submit a complaint to the competionoffice and consumerNPO here in Sweden about this. I need some examples, could you write down some models in this thread if you had this problem, thanks.

Re: Examples of models that have this problems

(Anonymous) 2013-05-31 07:48 (UTC)(link)
Should be "competition" above, sorry.

Re: Examples of models that have this problems

(Anonymous) - 2013-06-01 19:37 (UTC) - Expand

(Anonymous) 2013-06-03 20:14 (UTC)(link)
how about PXE boot? I guess that will suffer the same problem, since fast boot will ignore everything except the hard drive?

(Anonymous) 2013-06-17 11:05 (UTC)(link)
I am not surprised what Microsoft does - it does that all the time in order to maintain its rule.
So, I don't think too much, and I don't waste time on "fixing" the issues they've imposed on their customers. If I encounter a hardware with win8 preinstalled, first thing I do is wipe off the hard drive, to make sure all Microsoft excrements are gone for good (excuse me for tough words, but this is least how we should behave towards someone who takes our money and spits in our face)

Linus on Windows 8 hardware.

(Anonymous) 2013-07-15 08:06 (UTC)(link)
I have a VAIO Duo 11 and to get to the boot menu for a USB you need to press an Assist key that is entirely different to the power button and in a location that you would not normally expect - under the front part of the device/ keyboard. You then get a menu for BIOS or USB, or Ethernet boot. This will only work if you fully shut down the device - not it's typical anticipated mode of operation. It still doesn't boot from the USB.

I have a Toshiba P50T (4th gen i7) and cannot get it to boot from a bootable USB.

The USB is a bootable Ubuntu instance (current at time of posting).

I have tried disabling secure boot in the Sony BIOS, but it made no difference.

A legacy Toshiba Satellite Pro A120 boots from the USB not problems e.g. the USB is verified.

The result is I have two high end very much contemporary devices that are useless for booting anything other than Windows 8.

Page 1 of 2

<< [1] [2] >>