(Last updated: Dec 9, 2020)

What makes you think I took this image direct from acer.com?

I recently picked up an Acer Aspire 7 laptop, specifically the Aspire 7 A715-74G-544V. I put Linux on it, of course, and figured I may be able to save someone else a bit of Googling if I put some of its quirks in one place, in terms of getting Linux on here.

BIOS Firmware

My latop shipped with a BIOS Firmware revision of 1.00, and 1.03 was available from acer.com here: https://www.acer.com/ac/en/US/content/support-product/8336

As you might notice from that page, the firmware's only available for download as a Windows executable, and in the end I didn't bother to try and find a way to do the flashing itself from inside Linux. Since the laptop comes preinstalled with Windows 10, I just stepped through the registration process (using a throwaway email address) and ran it from there.

The download, for the record, comes as an unsigned executable alongside a misspelled README, using what's clearly a third-party BIOS flasher, so this is not the most professional experience you will ever have flashing BIOS. It'll reboot the laptop to the actual BIOS installation area, and it at least worked without a hitch.

BIOS Configuration

Accessing BIOS In General

The startup screens give no indication how to get into BIOS. As it turns out, you've got to hit F2 *before* anything's actually been displayed on the screen yet. Just start tapping it as soon as you hit the power button. In my experience, by the time the logo pops up, it's already too late to get into BIOS.

General Tweaks

Apart from the specific tweaks I'm about to mention which are intended to help with getting Linux installed, you might want to toggle the "function key" functionality in the BIOS. By default, apparently, it's set so that the function keys operate by their "special" features (such as screen brightness, volume control, etc) and you have to use the Fn key on the keyboard to access the "real" F1, F2, etc. Personally that sounds awful to me, so I've toggled that over.

Unlocking Secure Boot

It's possible that folks more familiar with UEFI than I am might be able to work with secure boot when installing Linux on these machines, but in order for me to boot into anything else, I just went ahead and disabled it. On the BIOS screens, all the options related to that are greyed out. It turns out that to access them, you've got to (at least temporarily) set an admin password on that screen, after which time it'll let you in to a number of those options. You can feel free to reset the password back to a blank entry, once you're done, if you don't actually care about having a password there.

Unlocking the NVMe Drive (SATA AHCI)

Finally, the last thing you'll want to do in BIOS is turn off some fancier SATA processing which sits in front of the drive. You'll likely see this on the BIOS screen as Optane without RAID, on the SATA Mode line. It's presumably using this thing from Intel, but the problem is that Linux doesn't support it at the moment (as of October 2020). If you boot into livemedia of some sort and take a look at the bootup kernel messages, in fact, you'll see a note telling you to disable it.

The immediate problem is that the option's greyed out and inaccessible by default in the BIOS menu. Fortunately this post (for a different Acer Aspire model laptop) has a solution: hit Ctrl-S while on the "Main" tab (where you see the greyed-out option), and you'll be able to change the HD to just standard SATA AHCI mode. Once you do, and boot into your livemedia of choice, you'll have the hard drive available at the expected /dev/nvme0n1.

Installation Considerations

I actually don't really have much to say here at all. Just install what you like. That said, I am using Arch Linux on here, which stays pretty cutting-edge in terms of releases, so I really don't have a good sense as to what version numbers of kernels/software are required to make use of all the laptop's features (apart from some versions mentioned in the nVidia section).

In terms of disk partitioning, the laptop's HD comes with a 100MB UEFI ESP partition, and I imagine you could probably just re-use that if you like, though with the Windows entries in there by default, there won't be enough room for everything Linux-related in there. You're likely to need at least 90MB of that. Arch's documentation recommends a minimum size of 260MB for the ESP, so I just went ahead and repartitioned the entire disk and formatted the new ESP fresh, rather than re-using the existing one.

Post-Installation: Trackpad (Xorg/X11)

After the above BIOS things, installing Linux to the laptop was as easy as you'd hope it would be (I've currently got Arch on it). One thing I hadn't noticed before the laptop arrived is that the touchpad doesn't actually have any buttons on it. It's a style of trackpad that I've come to associate with Apple products (though it's clearly far more widespread than that), where the trackpad itself can be "clicked" if you press down on it. I'm not especially fond of that, honestly, since it's so easy to accidentally nudge the mouse pointer while doing so, but I can only blame myself for not taking a closer look at the pictures when ordering this thing.

The trackpad *does* automatically at least have a region in the lower right hand corner of the trackpad which is automatically translated into a right click when you press it, and in practice this has been perfectly good enough. It does mean you've got to be a little careful about where on the trackpad you click, but it's not really been a problem for me.

The more annoying problem is that I'm used to using the both-buttons-at-once-equals-middle-click trick for using Xorg's default middle-mouse-button-is-paste-selection-buffer behavior. I use it all the time (and have lamented in the past about the demise of "real" three-button mice), and that's not feasible here. Fortunately the trackpad shows up as a Synaptics device, as you'd hope, and you can configure some multi-finger attributes to assist with this.

So long as you've got the synaptics input driver installed, it probably comes with a standard conf file living somewere like /usr/share/X11/xorg.conf.d/70-synaptics.conf. What you'll want to do is copy that file into /etc/X11/xorg.conf.d and edit it to add some paramerters. You can do a man synaptics to bring up a manpage detailing the options. Specifically, you'll want to edit one of the stanzas which have the MatchDriver "synaptics" line in it. I just chose the touchpad catchall one up at the top.

For me, the single line that I added there was just:

    # Two-finger Click = middle mouse
    Option "ClickFinger2" "2"

When X was next launched, clicking with two fingers now equates to a middle click, and I've been finding that quite satisfactory. I didn't have any luck with the TapButtonX directives in there, but since I'd prefer clicking to tapping anyway, I didn't look into it much.

Post Installation: nVidia Graphics

The laptop comes with a GeForce GTX 1650 for if you want some heavier 3D lifting than you'd find with an Intel-based laptop graphics card, but this laptop does do the hybrid-graphics-card thing where, by default, you'll be using the Intel UHD graphics drivers, and you have to negotiate your way into using the nVidia one, using nVidia Optimus.

There's variety of ways to set that up (see the Arch wiki page about it, for instance), but I just saw the phrase "official method supported by NVIDIA" next to "PRIME render offload" and went with that. It apparently requires at least nVidia driver 435.17, and at least Xorg 1.20.7. If you've got at least those two, it's easy, and apparently just controlled via some environment variables. You can read the details at nvidia.com.

The simple version, though, is encapsulated by taking a look at a little wrapper script provided on Arch by the package nvidia-prime:

#!/bin/bash
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia "$@"

Yep, that's it -- just three environment variables and you're good to go! I have yet to put it through any paces, but it at least reports the stuff you'd expect when running a glxinfo.

General Laptop Thoughts

So, in terms of specific tweaks required to get this laptop up and running with Linux, that's about all I've got so far. Everything else that I've tried has worked fine right out of the box. Here's the basic lspci output for the machine:

00:00.0 Host bridge: Intel Corporation 8th Gen Core 4-core Processor Host Bridge/DRAM Registers [Coffee Lake H] (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #0 (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #1 (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #9 (rev f0)
00:1d.5 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #14 (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #15 (rev f0)
00:1e.0 Communication controller: Intel Corporation Cannon Lake PCH Serial IO UART Host Controller (rev 10)
00:1f.0 ISA bridge: Intel Corporation HM470 Chipset LPC/eSPI Controller (rev 10)
00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M (rev a1)
01:00.1 Audio device: NVIDIA Corporation Device 10fa (rev a1)
06:00.0 Non-Volatile memory controller: Kingston Technology Company, Inc. Device 500c (rev 01)
07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
08:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)

You can see that double VGA card in there, for the split Intel/nVidia GPU setup. (Running glxinfo with the proper environment variables does output the "GTX 1650" text that you'd expect, instead of that TU117M identifier.)

Via /proc/cpuinfo, the CPU shows as 8 cores, all identified like the following:

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 158
model name      : Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz
stepping        : 10
microcode       : 0xd6
cpu MHz         : 800.062
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 0
cpu cores       : 4
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 22
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d
vmx flags       : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
bogomips        : 4801.00
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

The other components that I've interacted with:

  • Wifi: Was solid right out of the box -- didn't have to do any special config on my end for that.
  • Ethernet: Also solid right out of the box -- no configuration required.
  • Bluetooth: I don't use bluetooth much, but I do have one bluetooth speaker set lying around, and the laptop connected to it (and used it) with no problems at all.
  • Sound: It actually looks like there's two sound devices on here? There's the Intel "PCI cAVS," which shows up in Pulseaudio as the "built-in audio" device, but there's also "HDA nVidia." I'm honestly not sure what the difference is, and I've yet to even try out the nVidia option. I've stuck with the built-in default for now. The builtin mic quality seems fine, as well.
  • Webcam: Not the best quality video, but it worked just fine for some videoconferencing. Webcam quality isn't really a concern for me, so it was good enough!

As I mentioned before, I have yet to put the nVidia graphics through their paces, but any gaming on this thing is likely to be pretty minimal anyway, so I'm sure that'll be fine.

In terms of general laptop performance, I've been happy enough with it! I've had it for about two months now, and haven't run into any problems. The battery life seems just fine -- I've honestly not really kept track of exact timing, but I've been able to keep it unplugged for multiple hours of "normal" activity for me, and it can play movie-length videos without running anywhere near empty. Videoconferencing seems to put it through its paces a bit more: a 90-minute call will take the battery pretty low. I've not really done much battery tuning at all, though I've at least done the actions suggested by powertop.

The only other minor thing that I'd feel compelled to bring up is the internal fans are a bit louder than I'd like. Not the actual airy fan noise itself, but there's a bit of a tone which develops sometimes as the fans are spinning harder. It's mostly just noticeable if you're using it in an otherwise quiet room, so it's not awful, but it could be better. I wonder if the fans in here are swappable at all...

Regardless, certainly no major complaints on my end at the moment. Hope this ends up helping someone out!

Changelog

Dec 9, 2020
  • Updates on Ethernet and Battery
Oct 19, 2020
  • Initial post