ASUS MeMO Pad 7 (asus-me176c)

From postmarketOS
Jump to navigation Jump to search
ASUS MeMO Pad 7 (ME176C(X))
asus-me176cx running postmarketOS
asus-me176cx running postmarketOS
Manufacturer ASUS
Name MeMO Pad 7 (ME176C(X))
Codename asus-me176c
Released 2014
Category community
Original software Android 4.4 KitKat (updated to 5.0 Lollipop + UEFI)
postmarketOS kernel 5.4 (LTS)
Hardware
Chipset Intel Bay Trail T Z3745
CPU Intel® Atom™ CPU Z3745 @ 1.33GHz
GPU Atom Processor Z36xxx/Z37xxx Series Graphics & Display
Display 7" 800x1280 IPS LCD
Storage 8/16 GB
Memory 1 GB
Architecture x86_64
Unixbench Whet/Dhry score 1664.4
Features
USB Networking
Works
Flashing
Works
Touchscreen
Works
Display
Works
WiFi
Works
Xwayland
Works
FDE
Works
Mainline
Works
Battery
Works
3D Acceleration
Works
Audio
Works
Bluetooth
Works
Camera
Broken
GPS
Broken
Mobile data
Unavailable
SMS
Unavailable
Calls
Unavailable
USB OTG
Works
NFC
Unavailable
Sensors
Accelerometer
Works
Magnetometer
Ambient Light
Proximity
Hall Effect
Misc
Ir TX
Unavailable
TrustZone



Contributors

Users owning this device


Installation

Preparation

The device has a locked Android bootloader. To boot other operating systems, you need to replace the bootloader entirely with a custom one.

  1. Make sure that you are running Android 5.0 (Lollipop) - older versions did not have UEFI firmware.
  2. Install me176c-boot.
  3. Set up the APD partition as additional ESP (EFI System Partition), see me176c-boot - Setting up an additional ESP partition.

Pre-built image

Choose an image for your device from the download page.

Download 2 files:

  1. <date>-...-asus-me176c-bootpart.img.xz (boot partition)
  2. <date>-...-asus-me176c.img.xz (rootfs)

Unpack them using unxz *.xz.

Note Note: The default username is user, and the default password is 147147.

pmbootstrap

  1. Follow the Installation guide.
  2. Use pmbootstrap export to get the same files as in the pre-built images section.

Flashing boot partition

The bootloader cannot boot directly from a SD card, therefore the boot partition must be always on internal storage.

Boot into Fastboot mode, and use fastboot flash APD asus-me176c-bootpart.img (or pmbootstrap flasher flash_kernel with pmbootstrap) to flash the boot partition. Then you need to create a boot entry for postmarketOS. Create a file pmos.conf:

title    postmarketOS
volume   80868086-8086-8086-8086-000000000007
linux    /vmlinuz
initrd   /intel-ucode.img
initrd   /acpi-me176c.img
initrd   /initramfs
# Comment this out to get more output on screen while booting
options  console=null

Note: for pre-built >~20210929-edge, asus-me176c-bootpart.img contents have changed. Filenames must be adjusted in pmos.conf, else expect boot hang with failed to open file: initramfs-asus-me176c or similar console messages. Inspect bootpart.img directly or examine APD contents after flashing.

To install the new boot entry, boot into TWRP recovery, mount the ESP partition, and push the new configuration using ADB: adb push pmos.conf /esp/loader/entries/

Now you can choose if you would like to install the root partition (asus-me176c(-root).img) on internal storage or a SD card.

Internal Storage

Normally you should be also able to flash the rootfs using Fastboot:

  • System partition: fastboot flash system asus-me176c.img (pmbootstrap flasher flash_rootfs)
  • Data partition (larger): fastboot flash data asus-me176c.img (pmbootstrap flasher flash_rootfs --partition=data)

However, if you get an error you may need to flash it using dd via the TWRP recovery instead:

$ gzip -c ...-asus-me176c.img | adb shell "zcat | dd of=/dev/block/by-name/data bs=4m"

If the flashing error above is Invalid sparse file format at header magic, deviceinfo may need editing Invalid sparse file.

SD card

Write the root partition image to a partition on your SD card:

  1. Find the correct block device $ lsblk (usually /dev/mmcblkXpY but sometimes /dev/sdXY)
  2. Write the image to the partition (Warning: Existing data will be erased): dd if=asus-me176c-root.img of=/dev/mmcblkXpY bs=4M
  3. Check resulting rootfs filesize resize2fs -M /dev/mmcblkXpY and use resize2fs to make better use of the partition.

Hardware details (hwtest)

Category Model Path Status Value
framebuffer i915drmfb /sys/class/graphics/fb0 Working
drm /sys/class/drm/card0-HDMI-A-1 Working Not connected
drm /sys/class/drm/card0-DSI-1 Working 800x1280
drm /sys/class/drm/card0-DP-1 Working Not connected
magnetometer i2c-AKM9911:00 /sys/bus/iio/devices/iio:device0 Working -0.1, -0.12, 0.31 gauss
accelerometer i2c-KXJ2109:00 /sys/bus/iio/devices/iio:device1 Working 0.4, -4.58, -8.6 g
input Video Bus /dev/input/event5 Working
input bytcr-rt5640 Headset /dev/input/event4 Working
input Goodix Capacitive TouchScreen /dev/input/event3 Working
input gpio-keys /dev/input/event2 Working
input gpio-keys /dev/input/event1 Working
input ASUS Lid Cover /dev/input/event0 Working

The accelerometer orientation differs from what iio-sensor-proxy expects. The following hack corrects auto-rotation. If you know the proper way to do this in a postmarketOS device package, please consider pushing a patch.

$ cat /lib/udev/hwdb.d/61-sensor-local.hwdb
# source: https://github.com/systemd/systemd/blob/master/hwdb.d/60-sensor.hwdb
sensor:modalias:acpi:KXJ2109*:dmi:*:svnASUSTeK*:pnME176C:*
  ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

$ cp /etc/udev/hwdb.bin ~/hwdb.bin.BAK # save a pristine backup!
$ sudo udevadm --debug hwdb --update
$ diff ~/hwdb.bin.BAK /etc/udev/hwdb.bin # they should differ now
$ monitor-sensor  # test: tilt or rotate the screen

Sofware issues

Phosh tweaks / gotchas

  • Auto-rotate landscape is inverted. Static workaround: long press on icon to portrait, orient screen as desired, then tap to landscape.
  • Unlock button is not accessible for lockscreen rewake in landscape mode with large display scales (150%, 175%). Power cycle seems to be required.
  • Auto-rotate lockscreen orientation is fixed at locking.

See also