Skip to content

Instantly share code, notes, and snippets.

@volcanoauthors
Last active January 6, 2024 13:54
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save volcanoauthors/c7c9480dc78f1ba55d589d2125db4832 to your computer and use it in GitHub Desktop.
Save volcanoauthors/c7c9480dc78f1ba55d589d2125db4832 to your computer and use it in GitHub Desktop.
How to install Ubuntu Linux on an Acer Spin 1 SP111-32N

How to install Ubuntu Linux on an Acer Spin 1 SP111-32N

BIOS Key

The first thing you encounter is how to get into the BIOS. Hold down the little blue Fn key, and press F2. If you do this as soon as you press the power button, then keep pressing F2 a lot, it gets into the BIOS reliably.

In the BIOS, you don’t need to change the Secure Boot settings (yet). Just remember that you have to hold down the little blue Fn key to change the boot order with F5 and F6.

The live USB should boot up just fine. Do not select “Install ubuntu” from the GRUB menu. Let the default option start up, “Try ubuntu without installing.”

Live USB

The next thing is that the screen rotation very unhelpfully gets it wrong and everything is sideways, unless you rotate the device sideways.

Hold down the Windows key and press O, after you’ve rotated the device sideways. That engages the rotation lock. (For some reason I couldn’t get the lock to engage using the little icon in the sound/battery/restart menu in the corner of the screen. But Windows + O works.)

Display sleep

If the device sits idle in the Ubuntu live environment, it goes to sleep. Ubuntu wakes up just fine but won’t let you log in.

Change the Display sleep setting to never go to sleep, or just keep pressing buttons / using the mouse.

If the device does go to sleep, or you get stuck anywhere, you can force a reboot with Alt + PrtSc + B. But if the mouse stops moving for up to 3 minutes, don’t panic and force that reboot. Just wait, the Live USB environment is just very, very slow to respond.

Installation problems

Because the Acer Insyde H2O BIOS is broken, grub-install will fail. Frustratingly, this happens after it has spent 15 minutes copying files to your hard drive. Even more frustratingly, it makes it look like it simply failed to install grub-efi-amd64-signed and shim-signed, when what really happened was:

  1. grub-efi-amd64-signed installed fine
  2. The post-install script runs grub-install
  3. The Acer Insyde H2O BIOS is broken, so as soon as it runs efibootmgr to create a boot entry,
  4. The Acer Insyde H2O BIOS tries to write to random memory
  5. The linux kernel catches it red-handed
  6. There’s a kernel panic in the logs - https://bugs.launchpad.net/kernel/+bug/1835664 or https://bugzilla.kernel.org/show_bug.cgi?id=204289
  7. The kernel decides to stop all BIOS EFI activity (basically an “EFI safe mode”)
  8. If you try to manually run grub-install or efibootmgr to diagnose the issue, you get a cryptic “Interrupted System Call” error
  9. If you reboot, you’re back to the same problem (if you looked in /var/log/syslog the very first time you tried it)
  10. The solution is: pass --no-nvram to grub-install so it doesn’t touch the EFI boot selection
  11. But... any time in the future that an update helpfully re-runs grub-install (like after you’ve installed) your kernel goes into “EFI safe mode” again
  12. You can permanently tell the system to always use --no-nvram with the debconf “grub2/update_nvram” by following the weird steps I outline below.

Install - but do not install the bootloader

First do the system install without installing a bootloader.

  1. Just to be clear, UEFI Secure Boot is turned on in the BIOS right now.
  2. If you ran into trouble such as what’s described above, reset your BIOS by setting a supervisor password, choosing “Erase all Secure Boot Settings” then “Restore Secure Boot to Factory Default”, then clear the supervisor password, then go to the exit screen and choose “Load Setup Defaults.” Then Exit Saving Changes. Then press Fn+F2 to get back in the BIOS and start from there.
  3. Boot the Live USB “Try ubuntu without installing,” stop the screen from rotating with Windows+O, turn off display sleep
  4. Open a terminal by pressing the Windows key on its own, then type “terminal” then press Enter
  5. Start the installer from the command line, because you want to tell it to NOT install a bootloader. Type “ubiquity --no-bootloader”

Installing in Ubiquity

  1. Select your language, keyboard layout, and do NOT connect to the internet (it’s not needed, and downloading updates may break grub, below)
  2. Select a minimal installation, do NOT install third-party drivers
  3. You may get a prompt “The installer has detected that the following disks have mounted partitions” - click Yes. (This should only happen if you already have a Linux install on the disk.)
  4. Choose “Erase disk and install Ubuntu.” Heed the warning: this is going to WIPE ALL YOUR DATA on this disk. The reason for using this is to be sure mmcblk1p1 and mmcblk1p2 are correct below.
  5. Leave all check-boxes unchecked on the “Erase disk” page. Just click “Install Now”
  6. You then get another warning, because this is going to WIPE ALL YOUR DATA on this disk. You are fully responsible for any data you lose at this point, and so click Continue when you are sure.
  7. Set your location, your name, username, computer name, password, and whether to log in automatically
  8. Wait about 20 minutes while it copies files from the USB to the device
  9. It pops up “Installation Complete” - VERY IMPORTANT: click “Continue Testing.” We have more work to do.

Install The Bootloader

The bootloader is not yet installed. To do it, go to the terminal.

  1. sudo -s
  2. mkdir /target/media/cdrom
  3. mount /dev/mmcblk1p1 /target/boot/efi
  4. for i in /dev /dev/pts /proc /sys /run /media/cdrom; do mount -B $i /target$i; done
  5. chroot /target
  6. sed -i -e 's/^#deb cdrom/deb cdrom/' /etc/apt/sources.list
  7. apt-get install grub-efi-amd64-bin efibootmgr
  8. apt-get download grub-efi-amd64-signed # ignore the scary “permission denied” error
  9. dpkg --unpack grub-<press TAB>
  10. rm /var/lib/dpkg/info/grub-efi-amd64-signed.postinst
  11. dpkg --configure grub-efi-amd64-signed
  12. grub-install --no-nvram /dev/mmcblk1
  13. update-grub
  14. sed -i -e 's/^deb cdrom/#deb cdrom/' /etc/apt/sources.list
  15. exit # exit chroot
  16. for i in /media/cdrom /run /sys /proc /dev/pts /dev /boot/efi; do umount /target$i; done
  17. exit # exit sudo
  18. exit # exit terminal

And reboot

Conclusions

That fix doesn’t persist, but fortunately if grub-install tries to set the boot variables, because of some package updates, the Acer Insyde H2O BIOS fails, and... everything just keeps on working.

Although, it will complain that grub-efi-amd64-signed is broken. You’ll just need to:

  1. sudo rm /var/lib/dpkg/info/grub-efi-amd64-signed.postinst
  2. sudo apt-get install -f # fix installed packages

Notes

There are answers out there that claim if you do: echo “grub-pc grub2/update_nvram boolean false” > t.txt debconf-set-selections t.txt

The claim is it will magically pass --no-nvram to grub-install. It won’t - try dumping the contents of /var/lib/dpkg/info/grub-efi-amd64-signed.postinst before you rm it. It doesn’t care about debconf at all. It just runs grub-install. (That’s probably a bug for the debian guys, if you want to pursue it.)

Or, don’t buy a laptop with Insyde. Their BIOS is just plain full of bugs and spyware.

@dotcomboom
Copy link

The manual grub install worked like a charm getting 21.10 on my 32gb SP111-31. Thanks so much!

@mmazur
Copy link

mmazur commented Jul 13, 2022

If anybody attempting to install Fedora ends up here, here are instructions (at the end of the bug report) on how I got my Fedora 36 working – https://bugzilla.redhat.com/show_bug.cgi?id=2091986

@picu63
Copy link

picu63 commented Sep 15, 2022

Manual grub installation works also for me. Ubuntu 22.04 on SP111-32N. Thank you!

@idkaaa
Copy link

idkaaa commented Oct 6, 2022

This worked for me and was "slightly" less typing installing Ubuntu 22.04: https://askubuntu.com/a/876153

Just replace any references from --> to:

  • /mnt --> /target
  • /dev/sda2 --> /dev/mmcblk1p2
  • /dev/sda1 --> /dev/mmcblk1p1

Note: /dev/mmcblk1p2 was already mounted on /target

@brandleesee
Copy link

/mnt -- remained same
/dev/sda2 --> /dev/mmcblk0p2
/dev/sda1 --> /dev/mmcblk0p1

The following is the exact list of commands I used:

sudo mount /dev/mmcblk0p2 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/mmcblk0p1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done

sudo modprobe efivarfs

sudo apt-get install --reinstall grub-efi-amd64
sudo grub-install --no-nvram --root-directory=/mnt

sudo chroot /mnt
update-grub

cd /boot/efi/EFI
cp -R ubuntu/* BOOT/
cd BOOT
cp grubx64.efi bootx64.efi

https://askubuntu.com/questions/862946/unable-to-install-ubuntu-on-acer-aspire-es1-533

@brickZA
Copy link

brickZA commented Dec 31, 2023

I finally gave up and tried updating my Spin 1 SP111-31's bios from the version that was shipped with the laptop (v1.02) with the latest from acer.com. I used the feature where they ask for your laptop's serial number and got directed to https://www.acer.com/za-en/support/product-support/SP111-31/NX.GL5EA.004/downloads. You probably want to do the same (insert your serial number) to avoid getting a potentially incompatible BIOS.

The bad news is that the solutions for flashing BIOS without Windows all looked complicated and scary, so I gave in, and did a sacrifical Windows 10 install just to flash the bios.

The good news is that the new BIOS seems to fix the problem -- I can now install Ubuntu using the default installer with no further manual hacks, and grub updates normally when I install new kernels.

I added a bit more detail in an answer here: https://askubuntu.com/a/1498587/196546

@mortalinstrument
Copy link

Thank you for your help!

do you have any experience with fixing lid closed and tablet mode? these are still bugging me bbout the sp111 32n

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment