Jump to content

Google Nexus 7 2012 (asus-grouper): Difference between revisions

From postmarketOS Wiki
Gull Code (talk | contribs)
UI options: Added XFCE4 since I can confirm it works
Tags: mobile edit mobile web edit
Knuxibot (talk | contribs)
m bulk changes: set packaged = yes, drop status_mainline in preparation for its removal (bot edit)
 
(82 intermediate revisions by 22 users not shown)
Line 2: Line 2:
| manufacturer = Google (ASUS)
| manufacturer = Google (ASUS)
| name = Nexus 7 (2012)
| name = Nexus 7 (2012)
| codename = asus-grouper & asus-tilapia
| codename = asus-grouper
| image = File:Nexus7_grouper_gnome_maps.jpeg
| image = File:Nexus7_grouper_gnome_maps.jpeg
| imagecaption = Google Nexus 7
| imagecaption = Google Nexus 7
| releaseyear = 2012
| releaseyear = 2012
| originalsoftware = Android 4.1.2 on Linux 3.0
| category = community
| chipset = Nvidia Tegra 3
| originalsoftware = Android
| originalversion = 4.1.2 on Linux 3.0
| chipset = Nvidia Tegra 3 (T30L)
| cpu = Quad-core 1.2 GHz Cortex-A9
| cpu = Quad-core 1.2 GHz Cortex-A9
| gpu = ULP GeForce
| gpu = ULP GeForce
Line 14: Line 16:
| memory = 1 GB
| memory = 1 GB
| architecture = armv7
| architecture = armv7
| whet_dhry = 1364.3
| type = tablet
| genericdevice=Nvidia Tegra armv7 (nvidia-tegra-armv7)
| status_usbnet = Y
| status_usbnet = Y
| status_flashing = Y
| status_flashing = Y
Line 20: Line 25:
| status_wifi = Y
| status_wifi = Y
| status_xwayland = Y
| status_xwayland = Y
| status_fde =  
| status_fde = Y
| status_mainline = P
| status_battery = Y
| status_battery = Y
| status_3d = P
| status_3d = P
| status_accel =
| status_audio = Y
| status_audio = Y
| status_bluetooth = Y
| status_bluetooth = Y
| status_camera =
| status_camera =
| status_gps =  
| status_gps = P
| status_mobiledata = -
| status_mobiledata = -
| status_sms = -
| status_sms = -
| status_calls = -
| status_calls = -
| status_otg = Y
| status_nfc = Y
<!-- Sensors -->
| status_accel = Y
| status_magnet = Y
| status_light = Y
| status_proximity = -
| status_hall = Y
<!-- Misc -->
| status_irtx = -
| status_trustzone = Y
| status_fossbootloader = Y
| status_keyboard = -
<!-- U-Boot -->
| status_uboot = Y
| status_uboot_primary = Y
| status_uboot_secondary = N
| status_uboot_mainline = Y
| status_uboot_internalstorage = Y
| status_uboot_sd = -
| status_uboot_usbhost = N
| status_uboot_usbperipheral = Y
| status_uboot_screen = Y
| status_uboot_keyboard = -
| status_uboot_buttons = Y
| booting = yes
| booting = yes
}}
| packaged = yes
== Maintainer(s) ==
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}
* okias


== Contributors ==
This page documents the status of mainline Linux on the Nexus 7. This document should cover all tablets from first generation (codenamed grouper and tilapia).
* antonok
* pangelo


=== Users owning this device ===
Currently all supported features should work as they're supposed to, no known bugs except few not-yet supported features (3D, GPS, cameras and modem).
{{Device owners}}


== Flashing ==
=== How to enter flash mode ===
* Connect a USB cable
* Power the device off
* Hold power + volume down
* <code>fastboot</code> should work when the green android appears on the screen


=== Installation process (legacy kernel) ===
== Hardware revisions ==
<syntaxhighlight lang="shell" line='line'>
$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git
$ cd pmbootstrap
$ ./pmbootstrap.py init
$ ./pmbootstrap.py install
$ ./pmbootstrap.py flasher flash_kernel
</syntaxhighlight>


=== Instalation process (mainline kernel) ===
* grouper rev. PM269 - without GSM (older, less frequent)
Not merged into pmOS yet, so if you want mainline use this repository for now.
* grouper rev. E1565 - without GSM (modern)
<syntaxhighlight lang="shell" line='line'>
* tilapia rev. E1565 - with GSM
$ git clone https://gitlab.com/Alpine-Mobile/pmbootstrap.git
$ cd pmbootstrap
$ ./pmbootstrap.py init
$ ./pmbootstrap.py install
$ ./pmbootstrap.py flasher flash_kernel
</syntaxhighlight>




=== Special installation process (development setup, kernel over approx. 4M) ===
==== Do I have grouper or tilapia? ====
 
<syntaxhighlight lang="shell">
If you need bigger kernel, this includes way to the latest mainline kernel with size limited only by BOOT partition or how much device will be able boot it:
TWRP (adb shell) $ grep androidboot.baseband=unknown /proc/cmdline && echo grouper || echo tilapia
 
<syntaxhighlight lang="shell" line='line'>
mkdir ~/code
cd ~/code
git clone https://gitlab.com/alpine-mobile/pmbootstrap.git
cd pmbootstrap
alias pmbootstrap=~/code/pmbootstrap/pmbootstrap.py
pmbootstrap init
# pmbootstrap initfs hook_add debug-shell # not required, only for debugging
pmbootstrap export
pmbootstrap chroot -- apk add abootimg android-tools mkbootimg dtbtool findutils
export DEVICE="$(pmbootstrap config device)"
export WORK="$(pmbootstrap config work)"
export TEMP="$WORK/chroot_native/tmp/mainline/"
mkdir -p "$TEMP"
 
cd ~/code
git clone https://github.com/okias/linux.git
cd linux
source ~/code/pmbootstrap/helpers/envkernel.sh
 
sudo curl -o .output/.config https://gitlab.com/alpine-mobile/pmaports/raw/master/device/linux-asus-grouper/config-asus-grouper.armv7
sudo sed -i "s|CONFIG_INITRAMFS_SOURCE=\"\"|CONFIG_INITRAMFS_SOURCE=\"initfs-extracted\"|" .output/.config
pmbootstrap initfs extract # ugly hack to get kernel booting without external initrd
sudo cp -r ~/.local/var/pmbootstrap/chroot_rootfs_asus-grouper/tmp/initfs-extracted ./.output/ # initfs is later compiled into kernel
 
make -j5
 
cd ~/code/linux/.output/arch/arm/boot
cat zImage dts/tegra30-grouper-bach.dtb > ~/code/linux/.zImage-dtb
cp ~/code/linux/.zImage-dtb "$TEMP"/zImage-dtb
 
pmbootstrap flasher list_devices
</syntaxhighlight>
===== a. Boot only =====
<syntaxhighlight lang="shell" line='line'>
pmbootstrap chroot -- fastboot boot /tmp/mainline/zImage-dtb
</syntaxhighlight>
===== b. Flash kernel: =====
We're still not able bundle classic boot.img, so we need generate boot.img without ramdisk (which is already included inside kernel).
<syntaxhighlight lang="shell" line='line'>
pmbootstrap chroot -- mkbootimg-osm0sis --kernel "/tmp/mainline/zImage-dtb" --base "0x10000000" --kernel_offset "0x00008000" --ramdisk_offset "0x01000000" --tags_offset "0x00000100" --pagesize "2048" -o "/tmp/mainline/boot.img"
pmbootstrap chroot -- fastboot boot /tmp/mainline/boot.img # test if image will boot
pmbootstrap chroot -- fastboot flash boot /tmp/mainline/boot.img # flash only tested image
</syntaxhighlight>
</syntaxhighlight>


=== Flashing rootfs ===
==== Which hardware revision of grouper do I have? ====
==== rootfs under 650MB ====
<syntaxhighlight lang="shell">
<syntaxhighlight lang="shell" line='line'>
TWRP (adb shell) $ find /sys/devices/ | grep -c max776 && echo You have E1565
pmbootstrap flasher flash_rootfs
TWRP (adb shell) $ find /sys/devices/ | grep -c tps6591 && echo You have PM269
</syntaxhighlight>
</syntaxhighlight>


==== rootfs over 650MB to USERDATA ====
== Flashing ==
Be '''very careful''' here and feel free to ask on Matrix channel before accidentally bricking your device with selecting bad partition! THIS MAY SHRINK YOUR DATA PARTITION IF YOU INSTALL ANDROID AGAIN! YOU MAY HAVE TO RESIZE IN TWRP!
When flashing (flashing the kernel or rootfs) the target device must be in flash mode.


Prerequisites: Official TWRP, at least version 3.3.1-0 for
=== How to enter flash mode ===
* [https://dl.twrp.me/grouper/ grouper]
* Connect a USB cable
* [https://dl.twrp.me/tilapia/ tilapia]
* Power the device off
 
* Hold  {{Button|Power}} + {{Button|Volume Down}}
if you haven't done export yet, do
* <code>fastboot</code> should work when the green android appears on the screen
<syntaxhighlight lang="shell" line='line'>
pmbootstrap export
</syntaxhighlight>
 
<syntaxhighlight lang="shell" line='line'>
# start TWRP
(computer) $ adb shell
(twrp) $ df #look for the data partition. should be something like /dev/block/mmcblk0p10 with /data next to it
(computer again) $ adb push /tmp/postmarketOS-export/asus-grouper.img /dev/block/''_REPLACE_WITH_CORRECT_PARTITION_''
</syntaxhighlight>
* grouper has most likely data on ''mmcblk0p9'' '''but VERIFY!'''
* tilapia has most likely data on ''mmcblk0p10'' '''but VERIFY!'''


== Hardware status (mainline) ==
== Hardware status (mainline) ==
Line 156: Line 105:
| Y
| Y
|Booting
|Booting
|... but when is kernel larger than approx 4MB, initfs must be packed directly inside kernel (not into boot.img as usual), otherwise kernel won't boot. With downstream kernel it works.
|... but when is kernel larger than approx 4MB, initfs must be packed directly inside kernel (not into boot.img as usual), otherwise kernel won't boot. Older downstream kernels was smaller, so no issue there.
|-
|-
| Y
| Y
Line 163: Line 112:
|-
|-
| Y
| Y
|USB
|USB & USB OTG
|Works.
|Works.
|-
|-
Line 171: Line 120:
|-
|-
| Y
| Y
|WiFi
|NFC
|Wi-Fi works (best with IWD daemon: apk add iwd; rc-config del wpa_supplicant; rc-config add iwd; and [https://wiki.archlinux.org/index.php/NetworkManager#Using_iwd_as_the_Wi-Fi_backend HOWTO]).  
|wired, not tested yet. Please update if it'll work for you.
|-
| N
|GPS
|[[Broadcom BCM4751 GPS]] is unsupported by the kernel and gpsd.
|-
| Y
|WiFi and Bluetooth
|Wi-Fi works (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd; and [https://wiki.archlinux.org/index.php/NetworkManager#Using_iwd_as_the_Wi-Fi_backend HOWTO]) but 802.11w (management frame protection) must be completely disabled, Bluetooth does work as well (tested with BT 4.2 and 5.0 devices).
|-
|-
| Y
| Y
Line 179: Line 136:
|-
|-
| Y
| Y
| Battery
| Battery and Charger
|Driver works.
|Battery status and charging works as expected.
|-
| P
| Charger
|there is driver for the charger in upstream kernel, but it doesn't have support for device-tree
|-
| Y
|Bluetooth
|Works well, it has even BT 4.0, also BT 5.0 headphones works.
|-
|-
| Y
| Y
|Sound
|Sound
|sound also works, but require ALSA UCM configuration (for now you'll need to enable DACs and etc using alsamixer)
|Works, ALSA UCM configs are included into alsa-ucm-conf package
alsamixer -c 0 # and enable something like:
"Speaker R"
"Speaker L"
"DAC MIXR INF1"
"DAC MIXL INF1"
"SPOL MIX DAC R1"
"SPOL MIX DAC L1"
"Stereo DAC MIXR DAC R1"
"Stereo DAC MIXL DAC L1"
|-
|-
| Y
| Y
Line 209: Line 149:
| Y
| Y
|Proximity sensor
|Proximity sensor
|
|(tilapia only) Disabled, but works (boolean state, on/off). Would be nice to have this driver work with [https://01.org/linuxgraphics/gfx-docs/drm/driver-api/iio/index.html IIO framework] (TODO)
|-
|-
| Y
| Y
|Light sensor
|Light sensor
|Driver al3010. Brightness regulation [https://floss.social/@okias/103371284828595026 works], install iio-sensor-proxy . It's slightly [https://gitlab.com/alpine-mobile/pmaports/issues/3 oversensitive].
|Driver Dyna-Image AL3010. Brightness regulation [https://floss.social/@okias/103371284828595026 works], install iio-sensor-proxy . It's slightly [https://gitlab.com/alpine-mobile/pmaports/issues/3 oversensitive].
|-
|-
| N
| N
Line 219: Line 159:
|
|
|-
|-
| P
| N
|3D support
|3D support
| See [[Nvidia_Tegra_2_(tegra20)#Graphics]]
| See [[Nvidia_Tegra_2_(tegra20)#Graphics]]
Line 225: Line 165:
| N
| N
|Modem
|Modem
|Present only on tilapia, no-one plan to work on it for now.  
|(tilapia only) contribution welcome, no work done yet.
|-
|-
|}
|}


== UI options ==
== User Interfaces ==
* Weston: Boots on legacy kernel. Touchscreen is working on legacy kernel. The reboot issue exists on legacy kernel. Maybe it is an issue with the kernel we are using?
Multiple, but due to not yet implemented HW acceleration, some of them are currently unavailable (like Phosh)
* Phosh (mainline only): Purism Librem 5 compositor and GNOME based environment, needs performance optimization, but works.
 
* Xfce4 (mainline only): Xfce4 is a GTK-based desktop environment aiming to be fast and lightweight. Needs performance optimization, but works. Follow the guide at https://wiki.postmarketos.org/wiki/XFCE4 for adjustments.
Recommended [https://wiki.postmarketos.org/wiki/Category:Interface interfaces]:
* <span style="color:#777777">Phosh: Purism Librem 5 compositor and GNOME based environment, needs performance optimization, but works.</span>
* Xfce4: GTK-based desktop environment aiming to be fast and lightweight. Follow the guide at https://wiki.postmarketos.org/wiki/XFCE4 for adjustments.


== Development Notes ==
== Development Notes ==
==== Bootloader ====
* There is some progress on u-boot for Tegra devices. Check [https://github.com/clamor-s/u-boot u-boot repository]
* The default images for android provided by google have the bootloader broken, meaning it can't be flashed. It does not seem to affect the install process of postmarketOS, but is something to take into account. If you need a working bootloader image version 4.23 can be found [[https://drive.google.com/file/d/1eVEQJtrByuAYRmS924-BAMGQcRXuBj7C/view?usp=sharing| here]], or can be 4.18 can be grabbed from the factory images for KitKat


==== Kernel ====
==== Kernel ====


* Up-to-date [https://github.com/grate-driver/linux kernel], where tegra development ongoing.
Currently used mainline kernel:
* Old Android kernels: [https://github.com/LineageOS/android_kernel_asus_grouper LineageOS kernel sources] [https://github.com/Unlegacy-Android Unlegacy kernel sources]
* [https://github.com/grate-driver/linux Grate kernel], where tegra development ongoing. It does follow official linux-next branch.
* [https://wiki.ubuntu.com/Nexus7/Kernel Ubuntu Nexus 7 Kernel wiki] (old, last updated 2012)


* The default images for android provided by google have the bootloader broken, meaning it can't be flashed. It does not seem to affect the install process of PostMarketOS, but is something to take into account. If you need a working bootloader image version 4.23 can be found [[https://drive.google.com/file/d/1eVEQJtrByuAYRmS924-BAMGQcRXuBj7C/view?usp=sharing| here]]
References to older kernels:
* <span style="color:#777777">Old Android kernels: [https://github.com/LineageOS/android_kernel_asus_grouper LineageOS kernel sources] [https://github.com/Unlegacy-Android Unlegacy kernel sources]</span>
* <span style="color:#777777">[https://wiki.ubuntu.com/Nexus7/Kernel Ubuntu Nexus 7 Kernel wiki] (old, last updated 2012)</span>


==== Graphics ====
==== Graphics ====


* (legacy) CONFIG_VT had to be enabled for graphics to work. In menuconfig this is located under Device Drivers -&gt; Character devices -&gt; Virtual terminal.
* (legacy) <s>/sys/class/graphics/fb0/mode is empty on boot, it must have U:800x1280p-0. This uses the same initfs hook as many other devices.</s> '''Update:''' Seems to be correctly set now
* (legacy) weston with fbdev-backend.so uses pixman-type=3 (PIXMAN_TYPE_ABGR), which now does not require configuration.
* The touchscreen input device is named <code>elan-touchscreen</code>.
* The touchscreen input device is named <code>elan-touchscreen</code>.
* <span style="color:#777777">(legacy) CONFIG_VT had to be enabled for graphics to work. In menuconfig this is located under Device Drivers -&gt; Character devices -&gt; Virtual terminal.</span>
* <span style="color:#777777">(legacy) <s>/sys/class/graphics/fb0/mode is empty on boot, it must have U:800x1280p-0. This uses the same initfs hook as many other devices.</s> '''Update:''' Seems to be correctly set now</span>
* <span style="color:#777777">(legacy) weston with fbdev-backend.so uses pixman-type=3 (PIXMAN_TYPE_ABGR), which now does not require configuration.</span>


==== Wifi ====
==== Wifi ====
Line 255: Line 202:
* There's a proper firmware subpackage now, wifi device should work out-of-the box.  
* There's a proper firmware subpackage now, wifi device should work out-of-the box.  
* "Desktop" Linux firmware are outdated. Check [https://android.googlesource.com/platform/hardware/broadcom/wlan/+/master/bcmdhd/firmware/bcm4330/ here] for latest one.
* "Desktop" Linux firmware are outdated. Check [https://android.googlesource.com/platform/hardware/broadcom/wlan/+/master/bcmdhd/firmware/bcm4330/ here] for latest one.
* (legacy)It is possible to manually get wifi working by manually copying fw_bcmdhd.bin and nvram.txt to their kernel-specified locations and configuring <code>/etc/network/interfaces</code>. At this point, running <code>/etc/init.d/networking restart</code>, gave an error about being unable to get a MAC address. After restarting the device to find that wifi Just Worked™, it was possible to successfully scan for wireless networks and establish a connection to secured wireless APs.
* To connect follow the instructions on [[WiFi#Using_NetworkManager|this page.]]
* To connect follow the instructions on [[WiFi#Using_NetworkManager|this page.]]
* <span style="color:#777777">(legacy)It is possible to manually get wifi working by manually copying fw_bcmdhd.bin and nvram.txt to their kernel-specified locations and configuring <code>/etc/network/interfaces</code>. At this point, running <code>/etc/init.d/networking restart</code>, gave an error about being unable to get a MAC address. After restarting the device to find that wifi Just Worked™, it was possible to successfully scan for wireless networks and establish a connection to secured wireless APs.</span>


=== Pending Issues ===
=== Pending Issues ===


* {{issue|201|pmaports}}: device seems to reboot spontaneously under heavy load (could be a hardware problem though, needs more testing).  UPDATE:22/12/19 - Seems to noly happen with "legacy" kernel.
* {{issue|60|pmbootstrap}}: Use the system and userdata partition on Android with LVM
* {{issue|1422|pmbootstrap}}: The <code>system</code> partition is too small to hold rootfs images over 650Mb (e.g. Plasma Mobile is about 1.1Gb). Flashing to <code>userdata</code> partition fails.
* {{issue|1422|pmbootstrap}}: The <code>system</code> partition is too small to hold rootfs images over 650Mb (e.g. Plasma Mobile is about 1.1Gb). Flashing to <code>userdata</code> partition fails.
* {{issue|1844|pmbootstrap}}: grouper: move to grate (upstream close) kernel
* <span style="color:#777777">{{issue|201|pmaports}}: With legacy kernel, device seems to reboot spontaneously under heavy load. For better experience, please use mainline kernel.</span>


=== See also ===
= Community Info =


These are other pending issues that are related to this device:
== Users owning this device ==
{{ Device owners }}


* {{issue|60|pmbootstrap}}: Use the system and userdata partition on Android with LVM
== Maintainers ==


=== Fun Fact ===
* [[User:okias|David Heidelberg]]
== Fun Fact ==


''<code>grouper</code> was the first tablet to run pmOS!''
''<code>grouper</code> was the first tablet to run postmarketOS!''


''<code>tilapia</code> has exactly same HW as <code>grouper</code>''
== See also ==
- dmesg logs from various tegra devices https://paste.sr.ht/%7Eokias

Latest revision as of 06:36, 29 May 2025

Note This device is supported as part of a generic port. Refer to Nvidia Tegra armv7 (nvidia-tegra-armv7) for installation instructions and more information.
Google (ASUS) Nexus 7 (2012)
Google Nexus 7
Google Nexus 7
Manufacturer Google (ASUS)
Name Nexus 7 (2012)
Codename asus-grouper
Released 2012
Type tablet
Hardware
Chipset Nvidia Tegra 3 (T30L)
CPU Quad-core 1.2 GHz Cortex-A9
GPU ULP GeForce
Display 800x1280 IPS
Storage 8/16/32 GB
Memory 1 GB
Architecture armv7
Software
Android 4.1.2 on Linux 3.0
Android
FOSS bootloader yes
postmarketOS
Category community
yes
1364.3
Generic port Nvidia Tegra armv7 (nvidia-tegra-armv7)
Device package device-nvidia-tegra-armv7
Kernel package linux-postmarketos-grate
Features
Works
Works
Works
Works
Touchscreen
Works
Multimedia
3D Acceleration
Partial
Works
Camera
Untested
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Partial
Works
Miscellaneous
Works
Works
Sensors
Works
Works
Ambient Light
Works
Works
U-Boot
Works
Broken
Works
Works
Broken
Works
Display
Works
Works


This page documents the status of mainline Linux on the Nexus 7. This document should cover all tablets from first generation (codenamed grouper and tilapia).

Currently all supported features should work as they're supposed to, no known bugs except few not-yet supported features (3D, GPS, cameras and modem).


Hardware revisions

  • grouper rev. PM269 - without GSM (older, less frequent)
  • grouper rev. E1565 - without GSM (modern)
  • tilapia rev. E1565 - with GSM


Do I have grouper or tilapia?

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

Which hardware revision of grouper do I have?

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

Flashing

When flashing (flashing the kernel or rootfs) the target device must be in flash mode.

How to enter flash mode

  • Connect a USB cable
  • Power the device off
  • Hold Power + Volume Down
  • fastboot should work when the green android appears on the screen

Hardware status (mainline)

There is multiple hardware revisions, so this status may not apply to all of them. This status apply for tilapia (Bach revision).

Status Hardware Info
Y Booting ... but when is kernel larger than approx 4MB, initfs must be packed directly inside kernel (not into boot.img as usual), otherwise kernel won't boot. Older downstream kernels was smaller, so no issue there.
Y Touchscreen Works.
Y USB & USB OTG Works.
Y SDHCI Works.
Y NFC wired, not tested yet. Please update if it'll work for you.
N GPS Broadcom BCM4751 GPS is unsupported by the kernel and gpsd.
Y WiFi and Bluetooth Wi-Fi works (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd; and HOWTO) but 802.11w (management frame protection) must be completely disabled, Bluetooth does work as well (tested with BT 4.2 and 5.0 devices).
Y GPIO keys There is 3 keys on GPIO: Power, Volume up, Volume down.
Y Battery and Charger Battery status and charging works as expected.
Y Sound Works, ALSA UCM configs are included into alsa-ucm-conf package
Y Temperature sensor temperature sensor works
Y Proximity sensor (tilapia only) Disabled, but works (boolean state, on/off). Would be nice to have this driver work with IIO framework (TODO)
Y Light sensor Driver Dyna-Image AL3010. Brightness regulation works, install iio-sensor-proxy . It's slightly oversensitive.
N Front camera
N 3D support See Nvidia_Tegra_2_(tegra20)#Graphics
N Modem (tilapia only) contribution welcome, no work done yet.

User Interfaces

Multiple, but due to not yet implemented HW acceleration, some of them are currently unavailable (like Phosh)

Recommended interfaces:

  • Phosh: Purism Librem 5 compositor and GNOME based environment, needs performance optimization, but works.
  • Xfce4: GTK-based desktop environment aiming to be fast and lightweight. Follow the guide at https://wiki.postmarketos.org/wiki/XFCE4 for adjustments.

Development Notes

Bootloader

  • There is some progress on u-boot for Tegra devices. Check u-boot repository
  • The default images for android provided by google have the bootloader broken, meaning it can't be flashed. It does not seem to affect the install process of postmarketOS, but is something to take into account. If you need a working bootloader image version 4.23 can be found [here], or can be 4.18 can be grabbed from the factory images for KitKat

Kernel

Currently used mainline kernel:

  • Grate kernel, where tegra development ongoing. It does follow official linux-next branch.

References to older kernels:

Graphics

  • The touchscreen input device is named elan-touchscreen.
  • (legacy) CONFIG_VT had to be enabled for graphics to work. In menuconfig this is located under Device Drivers -> Character devices -> Virtual terminal.
  • (legacy) /sys/class/graphics/fb0/mode is empty on boot, it must have U:800x1280p-0. This uses the same initfs hook as many other devices. Update: Seems to be correctly set now
  • (legacy) weston with fbdev-backend.so uses pixman-type=3 (PIXMAN_TYPE_ABGR), which now does not require configuration.

Wifi

  • There's a proper firmware subpackage now, wifi device should work out-of-the box.
  • "Desktop" Linux firmware are outdated. Check here for latest one.
  • To connect follow the instructions on this page.
  • (legacy)It is possible to manually get wifi working by manually copying fw_bcmdhd.bin and nvram.txt to their kernel-specified locations and configuring /etc/network/interfaces. At this point, running /etc/init.d/networking restart, gave an error about being unable to get a MAC address. After restarting the device to find that wifi Just Worked™, it was possible to successfully scan for wireless networks and establish a connection to secured wireless APs.

Pending Issues

  • pmbootstrap#60: Use the system and userdata partition on Android with LVM
  • pmbootstrap#1422: The system partition is too small to hold rootfs images over 650Mb (e.g. Plasma Mobile is about 1.1Gb). Flashing to userdata partition fails.
  • pmaports#201: With legacy kernel, device seems to reboot spontaneously under heavy load. For better experience, please use mainline kernel.

Community Info

Users owning this device

  • 00p513 (Notes: I had at least 4 last i checked)
  • Antonok
  • Baonks81 (Notes: Hw rev.E1565 no GSM - 6 tablets software 3d accelerate on ALARM with grate-driver LLVMpipe built)
  • Bczeman
  • Blitztide
  • BogdanTheGeek (Notes: E1565 no GSM)
  • Clamor (Notes: pmOS with Grate kernel and U-Boot)
  • Devbrones
  • Ecloud
  • Eloy
  • GloomyJD (Notes: Dead battery)
  • Gull Code (Notes: OK,daily use with XFCE4. See my profile if you want to have automatic rotation and light with Asus grouper sensor daemon or jump to https://gitlab.com/gullradriel/asus-grouper-nexus-7-sensor-daemon)
  • Hilledkinged (Notes: Revived from corrupt bootloader)
  • Isot42 (Notes: OK PM269 version)
  • Jacko (Notes: Just found in my cupboard, seems like PMOS supports it pretty well! Model number is ME370T)
  • Joshaspinall (Notes: PM269)
  • LongnoseRob (Notes: 2x E1565 type, pmOS (edge) w/ u-boot, UI: mate)
  • Maff (Notes: Multiple)
  • Mattdaha
  • Misopog (Notes: Like new, unlocked, stock)
  • Nergzd723 (Notes: emmc dead, bct partition intact, possible to fusee-gelee)
  • Okias (Notes: OK, HW rev.E1565 (asus-tilapia))
  • Pangelo (Notes: original grouper (non-GSM) model)
  • Pojntfx
  • PotatoProton (Notes: LineageOS, couldnt flash u-boot)
  • Progressnoize (Notes: Screen broken)
  • Roboe (Notes: (two, borrowed) variant: grouper, version-hardware: ER3; HW rev. E1565; both running pmOS edge with U-Boot bootloader)
  • Russanandres (Notes: Cyanogenmod 11, using for old gaiming)
  • Segfault (Notes: x3 - 2 16GB and 1 32GB)
  • The Arjdroid (Notes: Impressive! Works with phosh & xfce4, but not daily driveable yet. It needs 3D acceleration for smoother UI, & firefox fix crashes. Great for running it as a no display server like a raspberry pi. Running with xfce4 can make it usable as a smart display like a calendar or something.)
  • Yifei (Notes: bad battery)


Maintainers

Fun Fact

grouper was the first tablet to run postmarketOS!

See also

- dmesg logs from various tegra devices https://paste.sr.ht/%7Eokias