Jump to content

Google Nexus 7 2012 (asus-grouper)

From postmarketOS Wiki
Revision as of 11:02, 24 January 2018 by Mirh (talk | contribs) (Updated wifi firmware link. Since latest note refers back to the "name" of older one, I didn't remove it)
Google (ASUS) Nexus 7 (2012)
Galaxy Nexus 7
Galaxy Nexus 7
Manufacturer Google (ASUS)
Name Nexus 7 (2012)
Codename grouper
Released 2012
Hardware
Chipset Nvidia Tegra 3
CPU Quad-core 1.2 GHz Cortex-A9
GPU ULP GeForce
Display 800x1280 IPS
Storage 8/16/32 GB
Memory 1 GB
Software
Original software Android 4.1.2 on Linux 3.0
postmarketOS
Category testing
Pre-built images no
Mainline no
Features
Flashing
No data
USB Networking
No data
Internal storage
No data
SD card
No data
Battery
No data
Screen
No data
Touchscreen
No data
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
Bluetooth
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data

Contributors

  • antonok

What works

  • Boot process
  • Telnet/SSH over USB
  • Screen
  • USB keyboard, mouse
  • Touchscreen
  • Wifi (somewhat hacky so far, will improve soon!)

What does not work

  • weston-keyboard
  • Can't boot without reflashing boot (!) [1]

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

Notes

  • I am using the LineageOS kernel found here
  • The kernel cannot be compiled on versions of gcc newer than 4.9 without the appropriate patch
  • I could not get UART debugging through the headphone jack to work - as far as I can tell, and according to a few other sources I found, the 2012 version of the Nexus 7 does not have this feature.
  • CONFIG_VT had to be enabled for graphics to work. In menuconfig this is located under Device Drivers -> Character devices -> Virtual terminal.
  • /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.
  • xwayland does not work.
  • weston with fbdev-backend.so uses pixman-type=3 (PIXMAN_TYPE_ABGR), which now does not require configuration.
  • The touchscreen input device is named elan-touchscreen.
  • The wifi chip is the Broadcom 4330.
  • This device was once officially supported on Ubuntu, so it has a firmware package in the Ubuntu repositories
  • "Desktop" Linux firmware are outdated. Check here for latest one.
  • This page includes a list of changes to the Android kernel that are not present in mainline Linux.
  • I was able to get networking over USB with an RTL8150 ethernet USB adapter by enabling the RTL8150 kernel config and following the network setup guide on the Alpine Linux wiki.
  • I was able to 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, I ran /etc/init.d/networking restart, which gave an error about being unable to get a MAC address. I restarted the device to find that wifi Just Worked™, and was able to successfully scan for wireless networks and establish a connection to my secured wireless AP.
  • A newer kernel, that should work, can be found here (thanks to Jasper in IRC): https://github.com/Unlegacy-Android

Fun fact: grouper was the first tablet to run pmOS!