If you’ve been on Reddit at all today, you may have noticed that there’s some threads that have blown themselves onto the front page, claiming that Microsoft is forcing PC manufacturers such as Lenovo to ship a BIOS image that prevents users from installing another operating system to it. The user who first reported this, using the nickname “BaronHK”, claims that a Lenovo support representative told him this was the case, and thus the story was created that this was being done maliciously.
As it turns out, there’s only a grain of truth to the accusations – yes, Lenovo is shipping BIOS software in the Yoga 900, 900s, and 710s that prevents you from installing Linux – but it’s not done maliciously.
According to BaronHK, a thread on the Lenovo support forums was taken offline and heavily edited to conceal the truth – that Lenovo was shipping a laptop that is unofficially part of the Windows Signature Edition program, and was forced by the software giant to remove the ability to install other operating systems on the hardware. A number of users who bought the models affected by this issue raised their concerns in three separate threads on the Lenovo forums – one for the Yoga 900, the Yoga 900s, and the Yoga 710s. All three are unable to have Linux installed to their hard drives, and in addition users are unable to even reinstall Windows to these machines. It does look very shady, doesn’t it?
Trawling through the comments left in the thread of the Lenovo forums, one thing was clearly identified as the main issue – that users are unable to switch between RAID and AHCI in the BIOS. Even if they boot into the EFI shell to try change some of the parameters for booting, they’re unable to save their settings. The notebook’s BIOS only defaults to RAID mode for the drive, and doesn’t have any alternative setting.
Reading further into the Lenovo thread, specifically page 8, a representative from Lenovo, “Amy_Lenovo”, writes the following:
“Thank you for confirming it is still not possible to install Linux on Yoga 900-13ISK2 systems.
This issue has been escalated to the Development team. I am unable to offer a timeframe for fix at this stage in the investigation. With previous cases, BIOS fixes have been delivered anywhere from several weeks to several months.
I will post again when I have more information on the investigation.”
The official response was made almost two months ago, however. I can understand that BIOS updates may take time to test, but the long wait seems rather unnecessary. Making these sorts of changes literally happens in less than 10 minutes with the right tools, and motherboard vendors give users who have odd issues a custom BIOS quite often.
Some enterprising users over at BIOS-Mods.com had someone who owned a Yoga 900, and all in the space of two months a BIOS dump was captured, opened, modified, and eventually reconfigured to allow switching the drive to AHCI mode. That user was now able to run and complete a Linux installation (Fedora 24, to be exact), and didn’t have any issues beyond that. Bearing in mind that the Yoga 900 was a year old at this point, I’m surprised that more people weren’t looking into this sooner. But then again, considering that it doesn’t feature on Lenovo’s Linux compatibility list, maybe no-one was that interested to begin with.
Hmmmm. Hey, wait a minute! I’ve seen this before! A SSD that only shows up in Linux in AHCI mode? One that probably requires drivers to be seen by the Windows installer when set to RAID mode, or a BIOS update to be seen as a bootable device? It can only be a NVMe drive. Looking up a disassembly guide for the Yoga 900 confirmed that the SSD used in that system is a Samsung PM951, a NVMe PCI-Express SSD. I’m willing to bet that Lenovo is using the Samsung NVMe driver in their Windows install, and putting the drive into RAID mode to take advantage of all the things NVMe has to offer over AHCI (advanced host controller interface).
As to why there are users experiencing the same issue re-installing Windows 10 to their machines, it’s quite possible that Microsoft has not included the latest drivers for Samsung’s latest batch of SSDs into their ISO images available to the public. For example, watch the video above by PC Perspective, detailing the installation process for Intel’s SSD 750 NVMe drive.
So long as you’re installing it into your PC with Windows 10 or Windows 8.1, it’ll run just fine, and the official driver install is optional (Windows 10 has a native driver that works, but just runs a bit slower because it’s an older driver). If you’re on Windows 7 or 8.0 you need to provide a custom driver when the installer requires it, or slipstream it in using something like NTLite.
In the case of Samsung’s PM951 SSD, it’s not the same as the SM951 drive, which is known as the 950 EVO. I don’t have one to test personally, but perhaps this is a rare case where an OEM drive from Samsung doesn’t get the same love as a consumer drive does. Maybe there just isn’t a generic driver for it in the Windows installer, and Lenovo had to put one in themselves for their new notebooks. Maybe someone from the driver department was sleeping in on the day when they should have been submitting the PM951 driver for inclusion in the next Linux kernel.
While researching for this article, Lenovo replied to queries posted to them by ZDNet, asking about the storage issues and why they’d chosen this route:
“To improve system performance, Lenovo is leading an industry trend of adopting RAID on the SSDs in certain product configurations. Lenovo does not intentionally block customers using other operating systems on its devices and is fully committed to providing Linux certifications and installation guidance on a wide range of products. Unsupported models will rely on Linux operating system vendors releasing new kernel and drivers to support features such as RAID on SSD.”
While it’s certainly a pain in the butt that Lenovo chose to restrict the user from enabling AHCI mode in the BIOS to install Linux, they’re quite right – it’s up to the Linux OS maintainers, either at the kernel level or down at the distribution level, to provide support for newer systems based on Intel’s Skylake processors that use RAID to run NVMe drives without limitations.
I have reached out to Microsoft South Africa for comment, although I don’t think I’ll really need it. This just seems like a mountain made out of a molehill. Carry on, folks!