Creating a bootable Aceruim USB stick

After installing the system, upgrade to Ubuntu version 17.10!


Kernel 4.8.4 for Acer Aspire SW5-012/Fendi2 (Z3537F)

(based on Ubuntu 16.10 Yakkety Yak)

Before installation:

Update BIOS to version 1.20

  • tested, working
Acer Aspire SW5-012 / Fendi2, BIOS V1.20 23/03/2016

Download Aceruim Live USB image

Extract the image by running following command in your downloads directory:

$ tar xzf acerium-live-cd-16.10-kernel_4.8.4.tar.gz

Prepare a Flash Drive:

$ gdisk /dev/sdX

Where X is the letter of your connected USB drive (for example, /dev/sdb).

To find out drive name, run “dmesg | tail” after plugging it in and look for a string like:
“[2096193.109767] sd 15:0:0:0: [sdb] Attached SCSI removable disk”.

Remove all existing partitions (menu item d) and create a big bootable UEFI partition ~1.5G (“n” command).

Don't forget to use “ef00” partition type.

Write the changes (w).

Refresh partitions:

$ partprobe

Create a FAT32 file system on the Flash Drive’s EFI partition:

$ mkfs.vfat -F 32 -n Acerium /dev/sdX1

Where X is the letter of your connected USB drive.

Mount new partition:

$ mount /dev/sdX1 /mnt

Where X is the letter of your connected USB drive.

Copy to the Flash Drive the contents of the image folder:

$ rsync -av /home/user/acerium-live-cd-16.10-kernel_4.8.4/* /mnt

Unmount flash drive:

$ umount /mnt

Now you can boot your Acer Aspire Switch 10 either in Live USB or installation mode and install the system.

* disk image has been tested for installation and should work

Model: MMC HCG8e (sd/mmc)
Disk /dev/mmcblk1: 62,5GB
Sector size (logical/physical): 512B / 512B
Partition Table: gpt
disc Flags:

Number Start End Size File System Name Flags
1 1049kB 120MB 118MB fat32 boot, esp
2 120MB 58,1GB 58,0GB btrfs
3 58,1GB 58,2GB 80,7MB non-fs bios_grub
4 58,2GB 62,5GB 4344MB linux-swap (v1)

Pay attention to partition flags.

If you have wifi chipset RTL8723BS

Download rtl8723bs firmware

Extract the archive and copy all files to /lib/firmware/rtlwifi

  Use kernel module r8723bs,
  add to /etc/modules load r8723bs

  or load from console # sudo modprobe r8723bs


  Add to /etc/modules load btusb
  or load from console # sudo modprobe btusb

  Add to /etc/rc.local

rfkill unblock bluetooth
hciattach /dev/ttyS4 bcm2035 921600 flow


Download, unpack and copy the file to the /etc/acpi/


Brightness up
# /etc/acpi/ up

Brightness down
# /etc/acpi/ down

You can use keyboard shortcuts to system settings.

Screen rotation

Bonuses by Peter Nelson!

I wrote a script to rotate the screen from portrait mode to landscape and back. The tricky bit was getting the touch-screen, touch-pad and mouse axes all properly inverted. It’s really icing on the cake for this little hybrid. With the help of the Onboard keyboard (standard Ubuntu) it makes a really nice portrait-mode tablet, now.

You can grab the script and install instructions from its github page:

Download script

  • /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="crashkernel=128M-:64M ipv6.disable=1 acpi_osi=Linux pcie_aspm=force intel_iommu=on swiotlb=32768"
GRUB_CMDLINE_LINUX="tsc=reliable clocksource=tsc clocksource_failover=tsc i915.modeset=1 systemd.gpt_auto=0"
  • /etc/modprobe.d/blacklist.conf
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist bcm43xx

blacklist cm3218
blacklist cm32181
blacklist ov2722
  • /etc/fstab
# / was on /dev/mmcblk1p2 during installation
UUID=your_disk_UUID / btrfs space_cache,thread_pool=2,compress=lzo,defaults,ssd,autodefrag,subvol=@ 0 1

# /home was on /dev/mmcblk1p2 during installation
UUID=your_disk_UUID /home btrfs space_cache,thread_pool=2,compress=lzo,defaults,noatime,nodiratime,ssd,autodefrag,subvol=@home 0 2
  • /etc/sysctl.conf
# Network
vm.min_free_kbytes = 32768
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 1800
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_mem = 50576   64768   98152
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_orphan_retries = 0
net.ipv4.tcp_syncookies = 1
net.netfilter.nf_conntrack_max = 16777216
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_congestion_control = westwood
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.route.flush = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.wlan0.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.wlan0.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_forward = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 1000
net.core.rmem_default = 65536
net.core.wmem_default = 65536
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
fs.inotify.max_user_watches = 16777216
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.ip_default_ttl = 63
net.ipv4.tcp_ecn = 1
net.core.default_qdisc = fq_codel
# Lowlatency Kernel Tuning
# IO shedulers
  • /etc/network/interfaces
wireless-power off
  • /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
wifi.powersave = 2
  • /etc/rc.local
#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
# In order to enable or disable this script just change the execution
# bits.
# By default this script does nothing.
rfkill unblock bluetooth
hciattach /dev/ttyS4 bcm2035 921600 flow
# Fix brcmfmac error
sleep 20
iwconfig wlan0 power off
exit 0

and run command:

sudo systemctl enable rc-local.service

Fix start X session

Just add to /etc/default/grub


and then regenerate grub cfg with:

And add this cfg file for X, /etc/X11/xorg.conf.d/20-intel.conf:

Section "Device"
Identifier  "Intel Graphics"
Driver      "modesetting"
Option      "AccelMethod"    "glamor"
If start X session fail and error from system journal :

lightdm[1182]: PAM unable to dlopen( 
/lib/security/ cannot open shared object file: No such file or directory

then turn off all the lines containing and in
all the files in this directory /etc/pam.d

Intel – Fix for Atom MMC/GPT warning.

 I had been getting a warning on boot with recent kernels on my 
Intel Atom-based UP system, and found a workaround.
The error flagged is – apparently – harmless, and is due to systemd
not being able to recognise some mmc disk partitions at that stage of the boot process.

[ 5.124250] systemd-gpt-auto-generator[416]: Failed to dissect: Input/output error

The workaround is to add systemd.gpt_auto=0 to the kernel command line.


Update kernel from my build (DEB packages):

BUILDBOX automatically builds the packages. Look at the file date and the build number.

Kernel 4.14.* for Acer Aspire SW5-012/Fendi2 ONLY!

  • Forked from XanMod: Linux kernel source code tree - Xanmod Project

  • Acerium is a mainline Linux kernel distribution with custom settings.
  • Optimized to take full advantage of high-performance for Acer Aspire SW5-012/Fendi2.
  • Supports all recent 64-bit versions of Debian and Ubuntu-based systems.

Main Features:

  • Tuned CPU for ATOM platform.
  • Tuned CPU Core Scheduler & I/O Block Layer for responsiveness.
  • Caching, Virtual Memory Manager and CPU Governor Improvements.
  • General-purpose Multitasking Kernel.
  • Built on the latest GCC 7.
  • DRM Optimized Performance.
  • Westwood+ TCP Congestion Control.
  • Intel CPUFreq (P-State passive mode).
  • AUFS, BFQ and Ureadahead support available.

Download packages

Read this before installing

GitHUB Repo

Old kernel version:

Kernel 4.8.17-27.29-acerium+MuQSS [EOL]
In this kernel, MuQSS (Multiple Queue Skiplist Scheduler) is enabled by default.

Download packages

GitHUB Repo





Tip Jar:


English version by Alexey Polevoy, updated by Peter Nelson

Written on November 5, 2016