Jaguar: Portrait of Xena
Valid HTML 4.01 Transitional

Acer Aspire 5, A515-54-51DJ (2019)
Setup

Jim Carter, 2019-10-06

Table of Contents

See also:

In the Box

To do upon receipt:

Windows 10 Media Creation Tool

The goal here is to make it possible to reinstall Windows on the SSD if I need it, but I hope to completely delete Windows from my machine. The Windows 10 Specifications page says 20Gb is required for the 64bit OS (in 2019 it's raised to 32Gb). I'm sure you need more to actually do something. I ended up allowing 50Gb.

In this I'm following the review by TekSyndicus (2015-09-01) on the Amazon product page for the E5-573G.

Quick Checkout

Outcome of the quick checkout, combining both Windows and Linux:

Display

Size is 1920x1080px. It's a beautiful IPS screen. Colors are uniform no matter what direction you look from: ±90° vertical and horizontal. The brightness seems focused toward perpendicular viewing, but there's plenty of light for co-viewers around you at quite broad viewing angles. While it's hard to assess color accuracy without a spectrometer, the colors look accurate and bright. I wanted to immediately start editing photos. Compare to the TFT screen on the E5-573G: colors vary a lot depending on look direction, particularly with vertical tilt. Brightness (set to the default) looked darker compared to the light borders. Comparing the two screens' color rendition, the TFT screen (viewed perpendicular) clearly had less lightness and less saturation. When viewed off-axis even 20° the color was even worse, including hue errors due to different loss of lightness in different primary colors.

Keyboard

Keys are acceptable in feel. However, in fast typing I occasionally (maybe 0.3%) pressed too lightly and got a failure to activate. There were no cases where I had to whack the key hard to get it to register.

On Linux I did a formal test, typing 134 words of sample HTML (one of the paragraphs from this writeup) and pushing on speed. As noted above, I have a habit of pressing too lightly, but there were no real failures to activate, and no double strikes. The text was byte for byte identical except for whitespace and for one transposed pair of letters which was my fault.

Touchpad

With the default settings, a quick swipe corner to corner on the pad moves the cursor from corner to corner of the display; however, it needs to be quick, and the old laptop when reaching the opposite corner would still have room on the pad. I plan to tweak the acceleration parameters to start accelerating at about 70% slower speed and to accelerate about 1.5x more. Slow motion across the pad takes you corner to center. This is how I normally set up a touchpad.

Next I used a GUI text editor to test both the pad and how well the OS's graphic libraries use it -- Notepad on Windows and Teddy on Linux.

Wired and Wireless Network

In Windows, I never did test Wi-Fi, but with wired Ethernet (IEEE 802.3) it can get the machine's assigned IPv4 and IPv6 addresses, download Windows updates and do other off-site activities (including web browsing wih IPv4 or 6).

I found the civilized way to discover the MAC address in Windows: Settings, Network+Internet, Wi-Fi, Advanced Options, the MAC address is on that page. For wired Ethernet, click on the Connected line.

On Linux, wired and wireless networking worked in the normal way, because I already had the firmware file installed for the QCA6174 Wi-Fi chip, from package kernel-firmware-ath10k.

BIOS Upgrade

To find the Driver Download Page:

Procedure to install the BIOS:

BIOS Setup

To get into BIOS Setup, reboot or turn on power (press the power button). Immediately press F2 (suggested: several times). You need to hit it in the about 2 second interval while the Acer splash screen is showing. It promptly drops into Setup.

Various forum posts give a procedure if you've already booted Windows and don't want to reboot or power cycle (this one is for Win-8.1): open the Settings Charm (Windows-I key combination), pick Change PC Settings, pick Update and Recovery, pick Recovery in the left pane and Advanced Startup + Restart Now on the right. Give it a few seconds. On this screen pick Troubleshoot, then Advanced Options, then UEFI Firmware Settings. Hit Restart. It will shut down Windows and boot directly into Setup. (Wouldn't it have been easier to just reboot the machine?)

BIOS settings on initial receipt:

Later when installing Linux I made these tweaks to the BIOS:

Microcode Update

Modern CPUs contain microcode, that is, tables settable at boot time to control complex instructions. Frequently the microcode has to be updated due to errors (errata) in the hardwired defaults. The BIOS generally contains a copy of the microcode, but there may be a more recent version that's not in the available BIOS, which you need to load every time you boot.

Spoiler alert: BIOS 1.12 apparently contains the latest available microcode, judging from the code's publication date. However, I did the research to (not) install it, so I'm recording the steps here.

On OpenSuSE all you need to do is install the most recent version of the ucode-intel package. For an AMD CPU it would be ucode-amd. The package's post-install script will rebuild your initrd and the microcode (for the specific machine where it's running) will be included. Or you, or other package post-install scripts, can run mkinitrd.

To determine if you have a microcode patch (for Intel), look in /proc/cpuinfo and find your CPU family, model and stepping. Convert them to 2 digit hex numbers; the result for my CPU (Intel Core i5-8265U) is 06-8e-0b, Then within /lib/firmware/intel-ucode/ look for a file with that name.

To determine the currently used firmware version, look at the microcode item(s) in /proc/cpuinfo; it will say something like revision=0x1f. To determine if an update happened, look at /var/log/boot.msg; there will most likely be a note in the first few lines, or if not, search for the word microcode; the driver announces when it applies an update. However, the driver is silent when the CPU already has a revision equal to or greater than the available patch, or if there is no patch for your CPU. So it' hard to be sure if the update procedure is potentially working.

Different distros use a range of techniques to get the microcode into the initrd. SuSE concatenates one initrd containing only the firmware file, followed by the real initrd. Other distros use two initrd commands to Grub, or one command listing both files. Adapt to the style that your distro uses.

The initrd is a mini installation, which the booter (Grub) preloads into memory, containing just enough kernel modules and utilities (and firmware) to mount the real root filesystem, after which service daemons can be started.

Installing Linux, First Try

The initial plan was to wipe the NVMe disc (with Windows) and to overwrite it with the production Linux system. It didn't quite work out that way: the NVMe disc is not visible to the Linux kernel. This general symptom is seen on quite a lot of machines, and the finger of blame points to a BIOS bug feature. I recovered by installing a SATA SSD.

This installation will be the first time I have attempted booting by UEFI (Unified Extensible Firmware Interface). Although SuSE has supported UEFI for several years, on both x86_64 and ARM architectures, I'm expecting a lot of trouble in this area.

But first I need to make some policy decisions.

Disc Partition Table

When I install Linux the first issue is going to be partitioning. The A515-54 comes with a GPT (GUID Partition Table, versus BIOS/MBR).

On a MSDOS-type operating system, the disc begins with a Master Boot Record (MBR), which includes a code area for the booter, and a table giving the boundaries of the partitions. Of course the complete booter won't fit, so the MBR is a multi-layer kludge. One forum poster pointed out that Grub code is spread among the MBR code area, the unallocated space after the MBR, and the Linux boot/root partition, like spaghetti thrown by a baby. Also for people with huge RAID arrays, the MBR has an addressing limit of 232 blocks or 2 terabytes (2e12 bytes).

The more modern partition table is called the GUID Partition Table (GPT) where GUID (Globally Unique IDentifier) refers to a field in each row that designates the role of the partition, which is ignored in Linux. Basically it replaces the partition table in the MBR. On machines whose BIOS is capable of reading a GPT, my policy is now to use the GPT, not the MBR partition table.

With non-UEFI (legacy) booting and a GPT, the first partition needs to extend from the end of the GPT header to at least the first cylinder boundary (1Mb is recommended in Grub docs), and its type needs to be 0x00 bios_grub. The filesystem type is irrelevant (don't format, or use FAT32). With UEFI booting you need a EFI partition. It should be the first partition (the Acer's BIOS will find it even if not first), it needs an actual FAT32 filesystem, and it needs the boot and ESP flags (gparted flag names). Windows installs it with a legacy (MBR) partition type of 0xef, whereas SuSE gives it a type of 0x00.

How big does the EFI partition really have to be? While the relevant Grub files should fit in 1Mbyte, if you're going to dual-boot Windows. the pre-installed Windows allows 100Mb, and 150Mb in a new installation, and the reference given below recommends 200Mb. On the old E5-573G I provided 150Mb. But actual usage ended up like this: Boot 1.13Mb; OpenSuSE (grub) 0.12Mb; Microsoft Boot Manager 18.7Mb, total 20.0Mb. On the A515-54 (new) I gave it 30Mb, successfully. While SuSE puts the kernel(s) in /boot, other distros like Gentoo and Raspbian put them in the EFI partition, and you will need more than 30Mb. For my experiments with Gentoo on ARM I gave it 64Mb (with only one kernel and initrd at a time).

I never dual boot because one of the operating systems becomes the favorite and the other one ends up not getting security updates. However, if other users need dual booting, for a procedure see this AskUbuntu forum thread, O.P. GhostMotleyX (2014-07-20) and particularly the reply by Rod Smith. He recommends using efibootmgr (package efibootmgr on SuSE and Ubuntu) to clean up cruft (avoid deleting important entries though) and particularly to change your boot order so Grub boots first. After a clean installation of OpenSuSE Tumbleseed, and presumably recent Leap and SLES versions, the boot order is preset in this way.

UEFI includes integrity management, referred to as Secure Boot. The kernel must be signed with a key known to the BIOS, and a fraudulently altered kernel cannot be booted, including a kernel created from scratch by the user. Microsoft Windows, and modern Linux distros, have access to a pre-installed acceptable key, but ordinary users need to forge a key and register it with the BIOS. This is feasible (in theory), but I really don't want to get tangled up with that kind of security, so I am going to [try to] turn off Secure Boot. However, if you run a public computer lab, or otherwise are likely to get malware installed on your machine, or if the KGB, Peoples' Liberation Army or NSA would be interested in monitoring your activities, and if you always run the distro's unmodified kernel, you are advised to use this security feature.

Assuming I can turn off Secure Boot, I am going to use UEFI, whether or not I'm also dual-booting Windows. Yeah, sure. How am I going to boot the installer if I have UEFI? I need installation media with a EFI partition -- and I have it, the OpenSuSE installation DVD or net installer on USB.

On a related topic, what filesystem type should I use? The contenders are ext4 and btrfs, which is now the default for OpenSuSE's root partition. They use XFS for /home, though, and I've had bad experiences with XFS. Btrfs has a lot of great features like copy on write, snapshots, and de-duplication (identical blocks in different files are stored only once). However, it has two disadvantages: I would need to learn a lot about its care and feeding, and it is slightly slower than ext4, which I am familiar with. I think I'm going to defer the transition to btrfs to the next machine, and stick with ext4.

NVMe SSD Hosed, Replace With SATA SSD

Gakk, the Linux (OpenSuSE Tumbleweed) installer cannot see the NVMe SSD, and neither can the rescue system. There is a mysterious item in boot messages: ahci 0000:00:17.0 Found 1 remapped NVMe device. Switch your BIOS from RAID to AHCI mode to use them. However, this setting is not available on the Acer A515-54.

Some web research looking for related symptoms.

Selecting and Installing a SATA SSD

Selecting the drive:

Installing the SSD.

Did that help?

Installing Linux, Successful

For me the current production Linux system is Tumbleweed. It is being installed on the provided 256Gb NVMe SSD. (Dreamer!) I will need to prepare a USB memory stick with the net installer's ISO image. I have a Squid proxy. In this installation most of the files will be downloaded only once; but I'm going to (try to) use the proxy anyway, in case that is overly optimistic.

Installing Linux, continued.

Recovering from failure to reboot.

This is going nowhere. I'm going to do a fresh install, not run post_jump, save SuSE's grub.cfg for forensics, and see if the newly installed OS can reboot.

Re-doing post_jump. I'm doing this phase by phase, with package installation in manual mode. First -P 6 to stop before installing wanted packages. Then zypper refresh and audit-pkgs -I. Then -p 8, picking up by removing unwanted packages. The major item that couldn't be installed was rsyslog -- fake news, it did get installed but was wrongly identified as botched. Removing 551 unwanted packages including kernel-firmware-$VENDOR (various, many are clearly irrelevant but maybe not all). Actually removed 549 packages. And we're going to upgrade to kernel-default-5.3.7-1.2. Grub2 was (re)installed as the bootloader (no errors reported). Service daemons: 46 turned on, 19 turned off, 17 reenabled. conffiles.J changed the resume device from /dev /disk/by-label/SWAP-09 to /dev/sda4 (currently the same device). post_jump is supposedly successful. Rebooting: UEFI boot succeeded. startup is reasonably normal except it's using wicked when NetworkManager was wanted. Net did not come up.

checkout.sh discrepancies:

Activating Xena

Basically the new laptop is functioning, but a lot of non-working services aren't going to revive until it has Xena's hostname and host keys. So what is the next step? Here are my goals:

To do the backup test, I will first need to move the old laptop out of the Xena slot. Aurora is an unoccupied hostname. At the same time I will reconfigure the new laptop to become Xena, before it gets its full content. The VM Petra is going to have to go offline until its (new) host, Xena, becomes operational.

VPN check: from Northridge Hospital, which may or may not allow VPNs.

After installation:

Qualcomm-Atheros QCA9377 Wi-fi Firmware

Even on kernel 4.4.0 which supports the wireless NIC, syslog reports Firmware upload failed! The driver looks for several files (alternate names or versions for two firmware files, I think) in /lib/firmware/ath10k/QCA9377/hw1.0 , not found. See this forum post on Ubuntu about QCA9377, Get firmware for hw1.0 from the ath10k firmware site on Github. Change directories through ath10k-firmware/QCA9377/hw1.0 and you will find a set of 3 files: board.bin , firmware-5.bin_WLAN.TF.1.0-00267-1 , and notice.txt_WLAN.TF.1.0-00267-1 (a license file). Click on the first two links and on each page at the bottom is a button titled View Raw. Click on it. The browser should offer to save the binary file. I didn't figure out how to snarf the license file. Make the directory tree /lib/firmware/ath10k/QCA9377/hw1.0 (mkdir -p). Now copy the firmware files into this dir.
Also do: ln -s firmware-5.bin_WLAN.TF.1.0-00267-1 firmware-5.bin
Now: modprobe -v -r ath10k_pci (it also removes 4 dependent modules),
And: modprobe -v ath10k_pci (reloads the same 5 modules).
It tries to load 2 nonexistent firmware file names, but apparently is satisfied with the ones it was given, and /sys/class/net/wlan0 appears.

The Ubuntu post linked above mentions that there as many as 11 variants of the QCA9377 chip sharing the same PCI ID (168c:0042), A major transition is said to have occurred about 2015-08-xx (my manufacture date is 2015-08-19). However, I don't see any evidence of alternative firmware files, or of people complaining that the hw1.0 files don't work on their machines.

Failed UEFI Setup **UPDATE remove this

I tried various ways to install Linux and to have it booted via UEFI. The installation DVD will UEFI boot; why won't the installed system?

Reinstalling Windows

Various steps, presented separately in this document, were actually performed in parallel, and a key step in diagnosing issues with S3 (suspend to RAM) reliability was to reinstall Windows and test S3 there. Also I want to take the time to at least attempt to activate UEFI booting. Here's what I did:

Installing the SSD and Memory

The next step in the plan is to replace the rotating disc with the SSD, and add the second stick of memory. The first sub-step is to disassemble the laptop to gain access to the memory sockets and the drive bay. It would be a good idea to review the procedure, before purchasing the memory and SSD.

I was not able to disassemble the laptop. Thanks to my friend Charlie Chen, who knows a lot more about the insides of laptops and was able to make it work. Here is a summary of the procedure (from memory):

Transfer the Flag

While I was exchanging Xena and Orion, i.e. moving into the new laptop, editing these notes was not possible. Basically I did these steps:

Nasty fly in ointment: I'm using LightDM's webkit greater, which has advantages in my situation but which is not as idiotproof as I would like. When I logged in the greeter said Logging in jimc and just sat there. It turned out that if you auto pick the session type, it picks something (I think icewm) that isn't installed, and things go downhill from there. If I picked the session type explicitly the first time, it let me on and I got a correct ~/.dmrc so I don't have to pick the session type on subsequent logins. Various stuff on my system, including X session startup and package management, are customized, and I'll bet this wouldn't have happened on a showroom stock SuSE installation.

Remaining Items (Unfinished and Finished)

items that need to be finished:

Finished items:

Setting Up the Touchpad

I have had several laptops whose touchpads were compatible with the Synaptics driver, and I have made a file /etc/X11/xorg.conf.d/80-synaptics-J.conf which works almost unchanged on all of them.

Jaguar: Portrait of Xena