ASUS MeMO Pad 7 (ME176C(X))
Hardware | PCI/USB ID | Working? |
---|---|---|
SD card | Yes | |
GPU | Yes | |
Touchscreen | Yes | |
Battery | Yes | |
Audio | Yes | |
Wireless | Yes | |
Bluetooth | Yes | |
USB-OTG | Yes | |
Sensors | Yes | |
Backlight | Yes | |
Camera | No | |
GPS | No |
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.
Overview
archlinux-me176c contains a few additional packages that simplify installation and provide additional functionality.
Installation
Requirements
- 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.
Boot loader
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.
Partitioning
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
Additional packages
After installation, but before rebooting, configure the ME176C unofficial user repository[broken link: invalid section] and install the additional packages in the chroot, install me176c
group from unofficial user repository.
Consider removing linux as it is not needed when using linux-me176c and will only take up space.
Install wpa_supplicant (and eventually dialog for wifi-menu
) if you would like to connect to the Internet after installation.
Enable upi_ug31xx.service
(from me176c-batteryAUR) 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 /mnt
:
# 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.
Packages
me176c
package group, so you can install all of them.- linux-me176c is a fork of linux with additional patches and battery/charging drivers ported from the stock kernel.
-
me176c-acpiAUR contains a patched ACPI DSDT that is necessary for Touchscreen, Bluetooth, Battery/Charging and other functionality. Installs additional initrd
/acpi-me176c.img
. - me176c-firmwareAUR contains additional WiFi/Bluetooth firmware from the stock ROM.
-
me176c-factoryAUR loads the WiFi/Bluetooth MAC address from the
factory
partition and provides udev rules/systemd units to automatically apply them while booting. -
me176c-batteryAUR provides systemd units for the battery daemon
upi_ug31xx
used on the stock ROM. It may be needed for the battery driver to work correctly. Start/enableupi_ug31xx.service
. -
thermald-me176cAUR provides a custom configuration for thermald based on values from the stock ROM. Start/enable
thermald-me176c.service
instead ofthermald.service
.
These packages are maintained on GitHub and are available through the AUR or through the ME176C unofficial user repository[broken link: invalid section]. Older versions are available on GitHub Releases.
me176c-factory
With me176c-factoryAUR installed, the WiFi/Bluetooth MAC address is loaded from the 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 me176c-factory-wifiaddr@wlan0.service
and/or me176c-factory-bdaddr@hci0.service
. The MAC addresses are loaded using me176c-factory.service
and are available in /run/me176c
. See me176c-factory.
Tips and tricks
Swap
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.
Audio
Unless you are using PulseAudio, you need to configure a few ALSA mixers to make audio working. This is done using alsaucm
:
# alsaucm -i -c bytcr-rt5640 alsaucm>> reset alsaucm>> set _verb HiFi alsaucm>> set _enadev Speaker
Using ALSA some audio files (especially MP3/AAC) are not played correctly when converted to float
format instead of s16
. This does not happen when using PulseAudio.
WiFi/Bluetooth
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 linux-firmware. WiFi may stop working entirely while Bluetooth is active. In this case, the only known workaround is to manually downgrade the WiFi firmware. Download the old version and place it in /lib/firmware/brcm/brcmfmac43362-sdio.bin
.
Screen rotation
See Automatic Rotation. To rotate the Linux console, add the kernel parameter fbcon=rotate:<direction>
, e.g. fbcon=rotate:1
to rotate 90° (see fbcon.html).
Hall sensor
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 /etc/systemd/logind.conf
with HandleLidSwitch=ignore
.
See also
See also
- XDA-Developers Forum Thread
- Project Overview for ASUS MeMO Pad 7 (ME176C(X))
- archlinux-me176c (source code for packages)
- me176c-boot (documentation, examples and source code)
- linux-me176c (shared code and Linux kernel source code)