ASUS MeMO Pad 7 (ME176C(X))
The ASUS MeMO Pad 7 (ME176C) is an x86_64-based Android tablet. With Android 5.0 (Lollipop) it was updated with UEFI boot, which makes it possible to boot any Linux distribution on it. In general, Arch Linux works as-is, but there are additional (custom) packages available for full functionality.
- 1 Overview
- 2 Installation
- 3 Packages
- 4 Tips and tricks
- 5 See also
archlinux-me176c contains a few additional packages that simplify installation and provide additional functionality.
- USB-OTG hub with external power supply (or USB-OTG adapter and USB hub with external power supply?)
- USB keyboard
- USB flash drive
- Consider testing Arch Linux installation using UEFI and systemd-boot on a desktop PC or VM first.
The tablet can boot using UEFI from the internal storage and USB(-OTG). It does not seem to be able to boot directly from an external SD card. However, it is possible to keep only the boot partition on the internal storage and have the root partition on an external SD card for dual/multi boot.
- To boot from internal storage you need an UEFI boot loader. me176c-boot is a fork of systemd-boot with extra features for this tablet. See me176c-boot - Installation.
- There is not enough space on the EFI system partition to use it as a boot partition. Follow me176c-boot - Setting up an additional ESP partition to set up a supplemental ESP on the APD (ASUS Product Demo) partition.
Boot the live environment
The default Arch Linux ISO does not contain the packages from archlinux-me176c. Therefore, WiFi is not working out of the box. For convenience there are custom ISO provided in the archlinux-me176c releases. They do not differ from the default except that they run with linux-me176c and have all me176c packages installed. Look for the latest "archiso" release and download it, then follow USB flash installation media to flash it to your USB flash drive.
Connect the USB keyboard and the USB flash drive to the USB hub, enable the external power supply and connect it to the tablet while it is powered off. Keep pressing
F2 to enter the UEFI setup. There is no need to change anything. Navigate to the
Save & Exit tab and use
Boot Override to boot from the USB flash drive.
Installation instructions are provided in the Installation guide. A few device-specific recommendations and instructions are listed here.
The internal storage is usually available as
/dev/mmcblk2, the external SD card as
/dev/mmcblk0. Check carefully. The internal storage has 16 partitions.
me176c-boot - Example: Dual/multi boot provides an overview about possible partitioning for dual/multi boot setups.
At the very least, you need a single root partition, and
/boot on the ASUS Product Demo (APD) partition. If you have not changed the APD file system to FAT32 yet, do it first:
# mkfs.fat -F32 /dev/disk/by-partlabel/APD # mount ... /mnt # mkdir /mnt/boot # mount /dev/disk/by-partlabel/APD /mnt/boot
After installation, but before rebooting, configure the ME176C unofficial user repository and install the additional packages in the chroot:
# pacman -S me176c
Consider removing as it is not needed when using linux-me176c and will only take up space.
Install (and eventually for
wifi-menu) if you would like to connect to the Internet after installation.
upi_ug31xx.service (from AUR) if you have chosen to install it.
Boot loader configuration
There is no need to install any boot loader when using me176c-boot. However, you need to create a loader configuration for your Arch Linux installation. The configuration needs to reside on the main EFI system partition. While in the chroot, mount the ESP at
# mount /dev/disk/by-partlabel/ESP /mnt
Then create a new loader configuration in
/mnt/loader/entries. Make sure to reference the APD partition, correct kernel and additional initrds:
title Arch Linux volume 80868086-8086-8086-8086-000000000007 linux /vmlinuz-linux-me176c initrd /acpi-me176c.img initrd /initramfs-linux-me176c.img options root=PARTUUID=... rw
Consider setting up Intel Microcode updates.
me176cpackage group, so you can install all of them with:
pacman -S me176c
- linux-me176c is a fork of with additional patches and battery/charging drivers ported from the stock kernel.
- ACPI DSDT that is necessary for Touchscreen, Bluetooth, Battery/Charging and other functionality. Installs additional initrd
AUR contains a patched
- AUR contains additional WiFi/Bluetooth firmware from the stock ROM.
factorypartition and provides udev rules/systemd units to automatically apply them while booting.
AUR loads the WiFi/Bluetooth MAC address from the
- systemd units for the battery daemon
upi_ug31xxused on the stock ROM. It may be needed for the battery driver to work correctly. Start/enable
- thermald based on values from the stock ROM. Start/enable
thermald.service. AUR provides a custom configuration for
factory partition during the boot process and applied to the controllers. This is necessary for Bluetooth to work, because it does not have a unique MAC address otherwise. If you would like to use MAC address spoofing you may need to disable this feature by masking
firstname.lastname@example.org. The MAC addresses are loaded using
me176c-factory.service and are available in
/run/me176c. See me176c-factory.
Tips and tricks
The tablet has only very little RAM, so you almost certainly want to set up some kind of swap space. However, keep in mind SD cards are slow and flash storage in general has only a limited amount of write cycles. Using it as swap space may kill it quickly. An alternative is ZRAM, which compresses parts of the RAM to provide additional space at the cost of higher CPU usage.
# alsaucm -i -c bytcr-rt5640 alsaucm>> reset alsaucm>> set _verb HiFi alsaucm>> set _enadev Speaker
WiFi and Bluetooth share the same antenna, so the chip switches between WiFi and Bluetooth when they are both active at the same time. This appears to be broken in newer firmware versions included in old version and place it in
If you have a case that closes magnetically and automatically wakes/puts the device to sleep, it may trigger too early/often and suspend your device unexpectedly. To disable this, edit