The goal – to turn a Windows 10 laptop into a dual boot which retains Windows but makes Ubuntu 16.04 the primary OS. Work being performed on parents-in-law’s new laptop.
The solution overview:
- Make recovery disk (on USB)
- Shrink Windows partition from within Windows 10
- Downgrade BIOS
- Set supervisor password on BIOS
- Disable Secure Boot (but not UEFI)
- Make successful 64-bit, EFI-friendly USB
- Install Ubuntu alongside Windows 10
- Add Ubuntu efi files and change boot order so Ubuntu grub efi comes first
- Re-enable Secure Boot, enable F12 Boot Menu, remove supervisor password
- Set up Qualcomm Atheros QCA9377 Wireless Network Adapter.
Make recovery disk (on USB)
Just in case. And you’ll need over 16GB so a 32GB USB should be right. Format as FAT32.
Open Windows, click on Windows button on screen (bottom left), All apps > Acer > Acer Recovery Management > Backup > Create Factory Default Backup. Tick “Back up system files to the recovery drive.”
Wait a long time while system backup prepared.
Shrink Windows partition from within Windows 10
From Windows button on screen > All apps > Windows Administrative Tools > Computer Management > Storage > Disk Management. Right-click on main NTFS partition and select Shrink. The empty space left over will be used by Ubuntu later.
This really matters. Without it I got black screen after getting USB startup disk to provide GRUB option. No amount of mucking around with nomodeset or noapic or noacpi helped. It was the BIOS!
I’ve repeated the content below in case the link ever disappears:
I figured out how to downgrade the bios.
Go to: http://us.acer.com/ac/en/US/content/drivers
Search by Product Model:
Aspire E5-573G (EDIT – or whatever you have)
Change boot order so Ubuntu grub efi comes first
Select the right OS and download a bios. In my case I downloaded 1.15.
Run the ZRT_115.exe.
It will fail.
But before you close the installer, go to C:\Users\name\AppData\Local\Temp\
Search for a folder (random letters).tmp
There should be a H2OFFT-W.exe and zrt.rd file in there.
Just copy this folder and close the failing install.
In that copied folder, edit the platform.ini file.
The VersionFormat value now has ‘XN.DD’ instead of ‘XN.NN’.
This will ignore the fact that 1.25 -> 1.15 is a downgrade.
Prepare for a reboot. I.E. close unnecessary applications. Because it’ll happen automatically after running the installer.
Set supervisor password on BIOS
Upon reboot, you’ll see a bios installing progress bar.
After that is done, press F2 during startup to get to bios. The version should now be 1.15.
At this point I set a password, turned off UEFI, and swapped my hard drive out for a fresh SSD. Ubuntu finally installed.
Set supervisor password on BIOS
The laptop has InsydeH20 BIOS Rev. 5.0 – access this by pressing F2 quickly after bootup. Then move to Security > Set Supervisor Password e.g. ‘a’ (we’ll be removing this later so a short password for convenience makes sense in this use case).
It is necessary to set this password (on Acer machines at least) to alter UEFI settings.
Disable Secure Boot (but not UEFI)
In the BIOS move to the Boot section and disable Secure Boot.
Don’t disable UEFI – that may have been necessary a few years ago but it probably causes more problems that it solves now (assuming it works at all). See http://www.rodsbooks.com/linux-uefi/
Make successful 64-bit, EFI-friendly USB
Download 64-bit ISO image. 32-bit apparently won’t work with UEFI.
I had trouble with unetbootin and the Ubuntu Startup Disk Creator. So I used good old dd to make my startup USB drive. This is probably what solved the “Missing operating system” problem I was having.
Format USB as FAT32 (maybe using Gparted or the general Gnome disk utility Disks).
sudo dd if=”/home/g/Downloads/ubuntu-16.04-beta2-desktop-amd64.iso” of=/dev/sdd
Note — won’t necessarily be sdd. Open Disks, select USB DISK, look at Device setting e.g. /dev/sdc1.
Install Ubuntu alongside Windows 10
In BIOS under Boot change boot order so USB HDD (that’s the USB stick actually) comes above Windows Boot Manager. Insert startup USB and reboot. Choose to install Ubuntu alongside Windows. I needed to do this with an ethernet cable plugged in given wireless wasn’t working for Ubuntu out of the box.
Add Ubuntu efi files and change boot order so Ubuntu grub efi comes first
In the BIOS, Security > Select an UEFI file as trusted for executing. Approve all ubuntu efi files. HDD0 > > > all the .efi files. I name them ubuntuorignameefi so they are easy to identify correctly and reorder in the Boot priority order section e.g. grubx64.efi -> ubuntugrubx64efi. Then in Boot > Boot priority order raise the grubx64 entry to the top.
I had 4 files to set (unlike 3 in some docs I found) – namely: grubx64.efi, fwupx64.efi, shimx64.efi, and MokManager.efi.
Re-enable Secure Boot, enable F12 Boot Menu, remove supervisor password
All straight forward. Remover supervisor password by setting it to an empty string by entering orig password then Enter (to register current password), Enter (to submit empty string as password, Enter again to confirm.
Set up Qualcomm Atheros QCA9377 Wireless Network Adapter.
Identify wireless first:
03:00.0 Network controller: Qualcomm Atheros Device 0042 (rev 30)
Installing the required driver was explained here by @chili555. As another grateful person said “You rock!”.
open a terminal and do:
sudo mkdir /lib/firmware/ath10k/QCA9377/
sudo mkdir /lib/firmware/ath10k/QCA9377/hw1.0
If it reports that the file already exists, that’s fine, just continue.
With a temporary working internet connection:
sudo apt-get install git
git clone https://github.com/kvalo/ath10k-firmware.git
sudo cp board.bin /lib/firmware/ath10k/QCA9377/hw1.0
sudo cp firmware-5.bin_WLAN.TF.1.0-00267-1 /lib/firmware/ath10k/QCA9377/hw1.0/firmware-5.bin
sudo modprobe -r ath10k_pci
sudo modprobe ath10k_pci
Your wireless should be working; if not, try a reboot.
I installed the system load indicator (set to traditional colours with Processor, Network, Harddisk), VLC, Shotwell (loading all photos with copy as the option), and brought thunderbird and firefox data over from old computer (merely copying xxxxxxx.default folders and updating profiles.ini Profile > Path settings. Then setting up icons on launcher and we’re done!