[Nexus 7 General] Baonks81:
I created Ubuntu MATE 22.04 LTS, Ubuntu MATE 20.04.1 LTS and ArchLinux ARMv7 image kernel-6.1.0-next-postmarketos-grate for Nexus 7 2012 wifi rev. E1565. Following guides:

https://xdaforums.com/t/linux-on-the-acer-iconia-tab-a500-2020-edition.4136023/post-83215067

https://xdaforums.com/t/wip-postmarketos.4025065/

What works:

- flashing

- USB (including OTG)

- WiFi

- Bluetooth

- Sound

- LCD + Touchscreen (with rotation)

- light sensor

- NFC (should work, driver loads, initialize, no NFC device to test)

What doesn't work (yet):

- camera

- 3D support (partial working, es2gears/es2tri/glmark2-es2 run but glxgears crashed)

Dev docs:

- https://wiki.postmarketos.org/wiki/The_Mainline_Kernel

Kernel sources:

- used kernel https://github.com/grate-driver/linux/

Sample picture:

View attachment 5391783

View attachment 5744847View attachment 5831463View attachment 5940193

Contributors

okias, digetx,Clamor-s, Worlblender, Baonks81

Source Code: https://gitlab.com/postmarketOS/pmbootstrap/

ROM OS Version: Linux

ROM Firmware Required: shipped with ROM

Based On: Linux 6.1.0-next-postmarketos-grate

--> Recrypt Tegra GPT <--

GitHub - clamor-s/re-crypt: A tool for re-partitioning Tegra 2 and Tegra 3 based product devices.

A tool for re-partitioning Tegra 2 and Tegra 3 based product devices. - clamor-s/re-crypt

github.com

--> U-boot worked on grouper <--

u-boot/doc/board/asus/grouper_common.rst at master · clamor-s/u-boot

"Das U-Boot" Source Tree with many Tegra 20/30 devices support - clamor-s/u-boot

github.com

Version Information

Status: Testing

Download link:

Ubuntu-24.04-Noble-Numbat-ttyescape+armhf-kernel-6.1.0-postmarketos-grate

Ubuntu-24.04-Noble-Numbat-ttyescape-asus-grouper+kernel-6.1 - Google Drive

drive.google.com

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu-23.10-Mantic-Minotaur-ttyescape+armhf-kernel-6.1.0-postmarketos-grate

Ubuntu-23.10-Mantic-Minotaur-ttyescape+asus-grouper-kermel-6.1.0-armhf - Google Drive

drive.google.com

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu 23.04 Lunar Lobster ttyescape kernel-6.1.0-postmarketos-grate

Ubuntu-23.04-Lunar-Lobster-armhf+asus-grouper-kernel-6.x.0-next-postmarketos-grate - Google Drive

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu MATE 22.10 ext4 kernel-5.19.0-next-20220728-postmarketos-grate

Ubuntu-MATE-22.10-kernel-5.19.0-rc8-next-20220728-postmarketos-grate - Google Drive

drive.google.com

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu 22.04.1/22.10 ttyescape kernel-5.19.0-rc8 grouper rev. E1565 postmarketos-grate

Ubuntu-22.04-Jammy-22.10-Kinetic-ttyescape-grouper-kernel-5.19.0-rc8 - Google Drive

drive.google.com

Default user: passwd

root: ubuntu

oem: ubuntu

Video:

Ubuntu 22.04.1 LTS MATE ext4 kernel-5.19.0-next-20220728-postmarketos-grate

https://drive.google.com/drive/u/0/folders/1uJ_VhBcWXF-9n7T0lH8vlHihjVY_gthV

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu 22.04 LTS Jammy Jellyfish MATE ext4 kernel-5.17.0-next-20220324-postmarketos-grate

Ubuntu-MATE-22.04.1LTS-kernel-5.17.0-next-20220324-postmarketos-grate - Google Drive

drive.google.com

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu 22.04 LTS Jammy Jellyfish MATE/LXQT ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate

Ubuntu 22.04 Jammy Jellyfish+asus grouper-kernel-5.15.0-rc4 - Google Drive

drive.google.com

Default user: passwd

root: ubuntu

oem: ubuntu

Ubuntu MATE 20.04.1 LTS ext4 rootfs kernel 5.15.0-rc4-next-20211011-postmarketos-grate

Ubuntu MATE 20.04.1 LTS kernel-5.15.0-rc4 - Google Drive

drive.google.com

Ubuntu MATE 20.04.1 LTS ext4 rootfs kernel 5.14.0-rc3-next-20210729-grate:

https://drive.google.com/drive/folders/1cLs1q5thzrsuHNVM08OaQ3OWASgf6t-R

Ubuntu MATE 21.10 Impish Indri ext4 kernel 5.15.0-rc4-next-20211011-postmarketos-grate:

Ubuntu MATE 21.10 Impish Indri kernel 5.15.0-rc4 - Google Drive

drive.google.com

Ubuntu 21.10 Impish Indri pre-installed server ext4 kernel 5.15.0-rc4-next-20211011-postmarketos-grate:

https://drive.google.com/folderview?id=1GC9I_hZl3H6LVd2IG_XYJLHrq6Bj-c6C

Archlinux ARMv7 latest kernel-6.1.0-next-postmarketos-grate

ArchLinux-armv7h-ext4-latest+asus-grouper - Google Drive

drive.google.com

User/passwd:

alarm: alarm

su: root

Archlinux ARMv7 latest kernel-5.19.0-rc8-next-20220728-postmarketos-grate

https://drive.google.com/drive/folders/1sHqfA-CuFpSkNcwnW5NGOKlf0a4aHmj6

User/passwd:

alarm: alarm

su: root

ArchLinux ARMv7 kernel 5.15.0-rc4-next-20211011-postmarketos-grate

Archlinux-ARM-kernel-5.15.0 - Google Drive

drive.google.com

ArchLinux ARMv7 kernel 5.14.0-rc3-next-20210729-grate f2fs: https://drive.google.com/drive/folders/13ja5utmNSyNiz4xKTG5qcoBqRNv9qVYw?usp=sharing

ArchLinux ARMv7 kernel 5.14.0-rc3-next-20210729-grate ext4: https://drive.google.com/drive/folders/1szK5trBse8-j1hSIgzZDppL3R6ySNSCP

More distros here:

F2FS:

distros - Google Drive

drive.google.com

OS - Google Drive

drive.google.com

[Testing] Fedora 36 Minimal + Xfce Rawhide armhfp ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate

Fedora 36 armhfp asus grouper kernel 5.15.0-rc4 - Google Drive

drive.google.com

Fedora Xfce 35 armhfp ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate:

Fedora 35 Xfce armhfp asus grouper kernel 5.15.0-rc4 - Google Drive

drive.google.com

Fedora Xfce 34 armhfp ext4 kernel-5.14.0-rc3-next-20210729-grate: https://drive.google.com/drive/folders/1LbffvuU2B2r6ydbaTxvK2KNX_MdLxrrn

openSUSE Leap 15.3/15.4 ARMv7 XFCE/LXQT/X11 kernel-5.15.0-rc4-next-20211011-postmarketos-grate

openSUSE Leap kernel-5.15.0-rc4 - Google Drive

drive.google.com

openSUSE Leap 15.3 ext4 kernel 5.14.0-rc3: https://drive.google.com/drive/folders/19ArXlOwX2xN8-SHjxPMzMQ-kj-Xkvbf0

Debian Trixie/Bookworm ttyescape ext4 kernel-6.1.0-postmarketos-grate

user: mobian

passwd: 1234

RaspberryOS-TwisterOS-armhf+asus-grouper-kernel-6.1.0-postmarketos-grate - Google Drive

drive.google.com

Debian Bulleye ext4 kernel-5.15.0-rc4-next-20211011-postmarketos-grate

Debian Bulleye armhf kernel-5.15.0-rc4 - Google Drive

drive.google.com

Debian ext4: https://drive.google.com/drive/folders/1jhq1v5ejOazDB1wSF-ZS0FxBc_QIPUFD

Install guide for Ubuntu MATE 20.04.1 LTS:

Please check your tablet is grouper or tilapia by command

TWRP (adb shell) $ grep androidboot.baseband=unknown /proc/cmdline && echo grouper || echo tilapia

Checking hardware revision of grouper(E1565 or PM269) <- this is important, because I didn't have any PM269 devices, so I only supported rev. E1565

TWRP (adb shell) $ find /sys/devices/ | grep -c max776 && echo You have E1565

TWRP (adb shell) $ find /sys/devices/ | grep -c tps6591 && echo You have PM269

Reference link here:

Google Nexus 7 2012 (asus-grouper) - postmarketOS Wiki

wiki.postmarketos.org

1. Unlock bootlader and upgrade stock Android 5.1.1 Build LMY47V

2. Install TWRP 3.3.1-0 or later

3. Connect Nexus 7 to PC/Latop. Go to bootloader and flash boot

# adb start-server

# adb reboot bootloader (or press Power button + Volume Down button to come bootloader)

# fastboot flash boot boot.img

4. TWRP -> Advance -> Terminal

# df

# umount /dev/block/mmcblk0p__ <- fill partition number (2 times)

5. Back PC/Laptop,

# unxz -v ubuntu-mate-20.04.1-desktop-armhf+asus-grouper-kernel-5.14-rc3-next-grate.img.xz

# adb push /path/to/ubuntu-mate-20.04.1-desktop-armhf+asus-grouper-kernel-5.14-rc3-next-grate.img /dev/block/mmcblk0p__ <- fill partition number

grouper has likely data on /dev/block/mmcblk0p9 but make sure!

tilapia has likely data on /dev/block/mmcblk0p10 but make sure!

6. Utilities in /opt folder such as: cpufreq, temp_throttle, clear_ram, kde-auto-rotate

7. Install preload, tlp, bleachbit compton compositor in ubuntu source

Compton:

compton --backend glx --vsync opengl-swc --glx-no-stencil --unredir-if-possible --glx-no-rebind-pixmap --glx-swap-method 3 --paint-on-overlay -b

8. Update sysctl and cpufreq

ubuntu mate 22.04/cpufreq.start · main · Baonks81 / Nexus 7 2012 grouper ubuntu mate lxqt 22.04 · GitLab

Config cpifreq vms kernel

gitlab.com

ubuntu mate 22.04/sysctl.conf · main · Baonks81 / Nexus 7 2012 grouper ubuntu mate lxqt 22.04 · GitLab

Config cpifreq vms kernel

gitlab.com

# sudo sysctl -p

# sudo chmod +x /opt/cpufreq.start

# sudo sh /opt/cpufreq.start

9. Remove rpi packages

# sudo apt-get remove --purge libraspberrypi-bin libraspberrypi0 linux-firmware-raspi2 linux-headers-raspi linux-image-raspi linux-raspi pi-bluetooth rpi-eeprom u-boot-rpi flash-kernel linux-headers-5.4.0-1015-raspi linux-image-5.4.0-1015-raspi linux-image-5.4.0-1022-raspi linux-modules-5.4.0-1015-raspi linux-modules-5.4.0-1022-raspi linux-raspi-headers-5.4.0-1022 fwupd fwupd-signed gnome-firmware

10. Install grate-driver: https://launchpad.net/~grate-driver...us_filter=published&field.series_filter=focal

# sudo add-apt-repository ppa:grate-driver/ppa

11. Update sources.list and upgrade Ubuntu MATE 20.04.4 LTS. Enjoy!

Build grate-driver yourself: https://github.com/grate-driver/grate/wiki/Grate-driver#grate-driver-packages

Install chromium without snap:

How to install Chromium without snap?

I just discovered that chromium will only be released as a snap package. How can I continue to get chromium, without snap? Is this possible without building from source? Notes: Please let's keep t...

askubuntu.com

$ sudo nano /etc/apt/sources.list

deb http://deb.debian.org/debian/ bullseye contrib main non-free

# deb http://deb.debian.org/debian-debug/ bullseye-debug contrib main non-free

# deb-src http://deb.debian.org/debian/ bullseye contrib main non-free

deb http://security.debian.org/debian-security bullseye-security main contrib non-free

# deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

# Backports

deb http://deb.debian.org/debian bullseye-backports main contrib non-free

$ sudo apt update && sudo apt install chromium

Insert --use-gel=egl in /usr/share/applications/chromium.desktop at line

Exec=/bin/chromium --use-gl=egl --user-agent="Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.114 Mobile Safari/537.36 Firefox/116.0.1" %U

Exec=/usr/bin/chromium --ignore-gpu-blocklist --force-gpu-rasterization --disable-quic --enable-tcp-fast-open --enable-simple-cache-backend --answer-in-suggest --disable-background-networking --disable-pings --disable-gpu-driver-bug-workarounds --enable-native-gpu-memory-buffers --use-gl=egl --enable-features=VaapiIgnoreDriverChecks --disable-features=UseSkiaRenderer --user-agent="Mozilla/5.0 (Linux; Android 12; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.114 Mobile Safari/537.36 Firefox/116.0.1" --gpu-testing-vendor-id=0x0000 --gpu-testing-device-id=0x0000

Fix chromium authentication keyring:

# sudo apt install seahorse

$ seahorse

Create new Password keyring for application with default name was "Default keyring"

Install guide for ArchLinuxARMv7:

The same install Ubuntu MATE 20.04.1 LTS steps. OTG-USB keyboard requires

User/passwd:

alarm: alarm

su: root

Install dialog and wifi-menu, wpa_passphrase, wpa_supplicant, iwd on USB Internet(pmOS supported)

USB Internet - postmarketOS Wiki

wiki.postmarketos.org

On, Nexus 7:

# ip route add default via 172.16.42.2
# echo nameserver 1.1.1.1 > /etc/resolv.conf

On PC/Laptop connecting usb by Nexus 7:

Fisrt, enable IP forwarding:

# sysctl net.ipv4.ip_forward=1

Then follow the instructions according to the distribution or firewall you use.

iptables (Ubuntu/Arch/Alpine)​

# iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -s 172.16.42.0/24 -j ACCEPT
# iptables -A POSTROUTING -t nat -j MASQUERADE -s 172.16.42.0/24
# iptables-save #Save changes

# ssh alarm@172.42.16.1
Passwd: alarm
# su
Passwd: root
# pacman-key --init
# pacman-key --populate
# pacman-key --refresh-keys
# pacman -Sy archlinux-keyring

# pacman -Syu
# pacman -S dialog wpa_supplicant iwd dhcpcd

Thanks to:

- grate-driver team

- postmarketOS

- Ubuntu MATE for rpi

- ArchLinux armv7h, Fedore armhfp, openSUSE Leap armv7l

Reference link:

https://tinhte.vn/thread/ubuntu-22-...-grouper-rev-e1565-kernel-5-15-0-rc4.3447577/

It's all creating a .desktop at startup applications

# sudo chmod +x /opt/clear_ram

# sudo chmod +x /opt/cpufreq.start

# sudo chmod +x /opt/temp_throttle

# sudo visudo

ALL ALL=(ALL) NOPASSWD: /opt/clear_ram, /opt/cpufreq.start, /opt/temp_throttle

Menu -> Preferences -> Startup Applications

In foreach command create one .desktop:

1. sudo /opt/clear_ram

2. sudo /opt/cpufreq.start

3. sudo /opt/temp_throttle 59 <- this is important, because over 60 degrees, n7 will poweroff

kde-auto-rotate -> readme to install for rotation with sensors

kde-auto-rotate

MediaFire is a simple to use free service that lets you put all your photos, documents, music, and video in a single place so you can access them anywhere and share them everywhere.

www.mediafire.com

Firefox-esr v.91

# sudo add-apt-repository ppa:mozillateam/ppa

# sudo apt-get update

# sudo apt-get install firefox-esr

mobile-config-firefox

# git clone https://gitlab.com/postmarketOS/mobile-config-firefox.git

# sudo make install

# zcat /proc/config.gz | grep SWAP

CONFIG_SWAP=y

CONFIG_MEMCG_SWAP=y

CONFIG_ARCH_USE_BUILTIN_BSWAP=y

# CONFIG_FRONTSWAP is not set

# CONFIG_MTD_SWAP is not set

# CONFIG_NFS_SWAP is not set

I could install dphys-swapfile package

# sudo apt install dphys-swapfile

# zcat /proc/config.gz | grep ZRAM

CONFIG_ZRAM=m

CONFIG_ZRAM_DEF_COMP_LZ4=y

CONFIG_ZRAM_DEF_COMP="lz4"

# CONFIG_ZRAM_WRITEBACK is not set

CONFIG_ZRAM_MEMORY_TRACKING=y

# sudo apt install zram-config

# nano /usr/bin/init-zram-swapping

#!/bin/sh
# load dependency modules
NRDEVICES=$(grep -c ^processor /proc/cpuinfo | sed 's/^0S/1/')
if modinfo zram | grep -q ' zram_num_devices:' 2>/dev/null; then
MODPROBE_ARGS="zram_num_devices=${NRDEVICES}"
elif modinfo zram | grep -q ' num_devices:' 2>/dev/null; then
MODPROBE_ARGS="num_devices=${NRDEVICES}"
else
exit 1
fi

modprobe zram $MODPROBE_ARGS

# Calculate memory to use for zram (1/2 of ram)
totalmem=`LC_ALL=C free | grep -e "^Mem:" | sed -e 's/^Mem: *//' -e 's/ *.*//'`
# mem=$(((totalmem / 2 / ${NRDEVICES}) * 1024)) -> for 512MB zram
mem=$(((totalmem * 3 / 2 / ${NRDEVICES}) * 1024))

# initialize the devices
for i in $(seq ${NRDEVICES});
do
DEVNUMBER=$((i - 1))
echo lz4 > /sys/block/zram${DEVNUMBER}/comp_algorithm
echo $mem > /sys/block/zram${DEVNUMBER}/disksize
mkswap /dev/zram${DEVNUMBER}
swapon -p 1 /dev/zram${DEVNUMBER}
done

*** Fix some errors:

When libglamoregl.so fail to load, we may remove mesa from grate-driver, but keeping opentegra driver

# sudo dpkg -P --force-depends libvdpau-tegra linux-firmware libd3dadapter9-mesa libegl-mesa0 libgbm1 libgl1-mesa-dri libglapi-mesa libglx-mesa0 libosmesa6 mesa-opencl-icd mesa-va-drivers mesa-vdpau-drivers mesa-vulkan-drivers

# sudo add-apt-repository --remove ppa:grate-driver/ppa

# sudo apt install --fix-broken

When it had blink cursor but device not boot, it need checking for Read-only file system error

# sudo ssh oem@device-ip-wifi

# sudo su

# sudo blkid

We find mount of root file system, usually /dev/dm-1

# sudo fsck.ext4 -f /dev/dm-1

# sudo reboot

***Backup full filesystem boot and rootfs

Connect Nexus 7 to PC/Laptop using micro-usb cable, enter TWRP recovery mode → Advance → Terminal

# df

# umount /dev/block/mmcblk0p-- <- fill number here (grouper: 09 or tilapia: 10)

On PC/Laptop

# adb start-server

Backup boot: # sudo adb pull /dev/block/mmcblk0p2 /path/to/boot-kernel-5.14-rc3-next-grate.img

Backup rootfs for grouper(wifi): # sudo adb pull /dev/block/mmcblk0p9 /path/to/rootfs.img

Backup rootfs for tilapia(3G): # sudo adb pull /dev/block/mmcblk0p10 /path/to/rootfs.img

Backup full: # sudo adb pull /dev/block/mmcblk0 /path/to/full_backup_mmcblk0.img