Linux on the Acer Swift 1
Here are a few general observations about the Acer Swift 1, and a few tips on running GNU/Linux on it.
- Is the Acer Swift 1 a good computer?
- Does Linux work on the Acer Swift 1?
- Tweaking the Touchpad
- Enabling Tear Free video
- Disabling Frame Buffer Compression
Is the Acer Swift 1 a good computer?
That really depends on what you want to use it for. The CPU certainly isn't the fastest one out there. It's not for heavy gamers, perhaps not even casual ones. Neither is it suitable as a workstation for heavy duty work of any kind, be it graphics, sound, video editing or software development.
I bought it because I wanted a completely silent machine: the Swift 1 has no cooling fans and no mechanical hard drive. It is dead silent, very light and offers excellent battery time.
I managed to get a hold of a less common model: mine has a Celeron N4100 CPU, 8 gigs of RAM and a 256 gig SSD. The usual configuration seems to be a Pentium N5000 CPU, 4 gigs of RAM and a 128 gig SSD. I would not have bought the 4 gig model, since web browsers these days don't seem to play nice unless they can hog insane amounts of RAM. But I digress.
I use it for the following:
- Web surfing with Firefox
- Recreational programming (typically one-file scripts in node.js or Python)
- Commodore 64 emulation using VICE
- Creating pixel graphics in Grafx2 (native) and Pixcen (Wine)
- Home accounts using GNumeric
The hardware itself feels stable. As of writing, my current uptime is 12 days and there seems to be no problem with sleeping and waking up the computer. I've tried several brands of USB sticks, including a USB-to-Compact Flash adapter, with no issues. I've also connected it to an external monitor with the HDMI port and mirrored the display without trouble using xrandr. My USB mouse and USB keyboard works without issues.
I find the matte screen bright, vivid and pleasant to look at for long amounts of time. The speakers are surprisingly powerful for their size.
Overall, I am pleased with the Swift 1. It's an affordable home computer suitable for the kind of tasks I normally use my home computer for, and it is very reassuring to know there will never be any noise issues whatsoever.
I do have a few gripes with the Swift 1, but they're mostly minor ones.
- The matte black aluminum case is really easy to smudge with your fingers. It looks great out of the box, but just opening and closing the lid will make it look quite filthy.
- The keyboard is kind of small and the key travel is kind of short, but that goes for pretty much all laptops of this size.
- The touchpad is large and very sensitive. I often nudge it while typing. This can of course be countered by turning it off, for example with some kind of touchpad control software.
- Dust quickly collects around the edges of the touchpad.
- It does not wake from sleep when the lid is closed: in this mode, key presses on an external USB keyboard simply does not seem to register. Opening the lid will wake the computer up as expected. This is apparently an issue with most (all?) of Acer's laptops and not Linux related.
Does Linux work on the Acer Swift 1?
Short answer: Yes.
Long answer: Yes, but with reservations.
- Reservation 1: The touchpad works so-so. It's not a major issue for me,
because I almost always use a mouse.
I have also not bothered trying to configure it in any way.
- Reservation 2: I haven't tried the webcam, microphone or fingerprint reader because I don't use them.
- Reservation 3: The Linux kernel and graphics driver seems to have a problem with frame buffer compression on the Gemini Lake architecture. This results in reoccuring flicker in the top few lines of pixels on the screen when TearFree is used to force vsync. It can be fixed by turning off FBC.
No matter the distro, the FBC problem should be present, since it's a driver issue. I opted for Lubuntu 18.04 LTS. It's a suitably lightweight distribution for the Swift 1, with the advantage of Ubuntu's massive package repository. Since I don't generally use a desktop environment, but do enjoy some of the tools that are usually supplied with one, the choice of LXDE feels right. I quickly installed fvwm on the system and, unsurprisingly, it performs very well.
Tweaking the Touchpad
The touchpad actually works very nicely in Windows, but it does have some usability issues in Linux. My normal MO of resting an index finger on the left click button and using my other index finger to move the pointer doesn't work, because the whole area, including the clickable buttons, is touch-sensitive. In Linux, this seems to be a problem.
I find that turning off the "advanced" touchpad mode in the BIOS and exclusively using the tap functionality works best for me.
- Here is a synaptics config with my tweaks. It should reside in /etc/X11/xorg.conf.d/70-synaptics.conf.
- I have also written a bash script to toggle the touchpad on and off.
Enabling Tear Free video
The instructions are for Lubuntu 18.04 LTS. The location of files might differ on your particular distribution.
Vertical blank synchronization is the Achilles heel of X11, but thankfully the Swift 1 has Intel HD graphics and the i915 driver supplied with Lubuntu has an excellent option for mitigating this. The only thing I can't understand is why it's not turned on by default - it's like having a setting called "Fix All Bugs" and leaving it turned off. Anyway, here's how to do it:
As root, create the file /etc/X11/xorg.conf.d/20-intel.conf:
sudo mkdir /etc/X11/xorg.conf.d sudo nano /etc/X11/xorg.conf.d/20-intel.conf
Make it look like this:
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "TearFree" "true" EndSection
- Restart X11 (by logging out of your desktop/window manager session). Log back in and you should have vsynced video.
Disabling Frame Buffer Compression
The instructions are for Lubuntu 18.04 LTS. The location of files or even the method of passing arguments to the kernel might differ on your particular distribution. More information can be found in this bug report on freedesktop.org.
Edit /etc/default/grub as root:
sudo nano /etc/default/grub
The value we're going to add to is GRUB_CMDLINE_LINUX_DEFAULT.
It probably looks something like this:
Add the parameter i915.enable_fbc=0, which will tell the i915 graphics driver
to disable frame buffer compression:
GRUB_CMDLINE_LINUX_DEFAULT="i915.enable_fbc=0 quiet splash"
- Save the file.
- Run update-grub as root:
- Reboot and enjoy flicker-free, tear free graphics.