The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


Community Workspace/Tegra3/Nexus7

From Mer Wiki
< Community Workspace | Tegra3(Difference between revisions)
Jump to: navigation, search
(Added device status matrix)
(Mer on Nexus7)
 
(16 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
DISCLAIMER: This project is not endorsed or supported by any company. This is purely a community based effort.
 
DISCLAIMER: This project is not endorsed or supported by any company. This is purely a community based effort.
  
This page describes the running Mer on Nexus 7 (see [[Community_Workspace/Tegra3]] for commong Tegra3 stuff).
+
This page describes the running Mer on Nexus 7 (see [[Community_Workspace/Tegra3]] for common Tegra3 stuff).
 +
There were 2 models release in 2012 based on the Tegra3 SOC: grouper - wifi only and tilapia - cellular
  
 
The hardware adaptation is maintained in the project [https://build.merproject.org/project/show?project=nemo%3Adevel%3Ahw%3Anv%3Ategra3%3Anexus7nemo:devel:hw:nv:tegra3:nexus7]
 
The hardware adaptation is maintained in the project [https://build.merproject.org/project/show?project=nemo%3Adevel%3Ahw%3Anv%3Ategra3%3Anexus7nemo:devel:hw:nv:tegra3:nexus7]
  
 
The [[Community_Workspace/Tegra3/Nexus7/PA_installation|Plasma active instructions]] are quite generic and can be easily adapted to other images as well.
 
The [[Community_Workspace/Tegra3/Nexus7/PA_installation|Plasma active instructions]] are quite generic and can be easily adapted to other images as well.
 +
 +
Note: The 2013 Nexus 7 is based on the snapdragon and comes in two varieties: flo - wifi only and deb - cellular
  
 
==Hardware Adaptation Status==
 
==Hardware Adaptation Status==
 
{| border="1" cellpadding="1"
 
{| border="1" cellpadding="1"
 
|-
 
|-
! Device Profile !! Boots !! Display !! Touchscreen !! Wireless !! Mobile Data !! Sensors !! GPS
+
! Device Profile !! Boots !! Display !! Touchscreen !! Wireless !! Mobile Data !! H/W Accel. GFX !! Sensors !! GPS
 
|-
 
|-
! Nexus 7 (wifi)
+
! Nexus 7 grouper (wifi)
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
| style="background-color:grey" | N/A
+
| style="background-color:green" | N/A
| style="background-color:grey" | N/A
+
| style="background-color:green" | Yes
| style="background-color:grey" | N/A
+
| style="background-color:yellow"| kernel, yes
 +
| style="background-color:grey"   | unknown
 
|-
 
|-
! Nexus 7 (gprs)
+
! Nexus 7 tilapia (gprs)
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
 
| style="background-color:green" | Yes
| style="background-color:red"   | No
+
| style="background-color:yellow" | not tested
| style="background-color:grey" | N/A
+
| style="background-color:green" | Yes
| style="background-color:grey"  | N/A
+
| style="background-color:yellow"  | kernel, yes
 +
| style="background-color:grey"  | unknown
 
|-
 
|-
! Nexus 10 (wifi)
+
! Nexus 7 flo (wifi)
| style="background-color:grey" | N/A
+
| style="background-color:green" | Yes
| style="background-color:grey" | N/A
+
| style="background-color:red" | No
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
| style="background-color:grey" | N/A
+
| style="background-color:red" | No
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
 +
| style="background-color:grey" | unknown
 
|-
 
|-
! Nexus 10 (gprs)
+
! Nexus 7 deb (cellular)
| style="background-color:grey" | N/A
+
| style="background-color:green" | Yes
| style="background-color:grey" | N/A
+
| style="background-color:red" | No
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
| style="background-color:grey" | N/A
+
| style="background-color:red" | No
| style="background-color:grey" | N/A
+
| style="background-color:grey" | unknown
 +
| style="background-color:grey" | unknown
 
|}
 
|}
 
  
 
= Plasma Active on Nexus7 =
 
= Plasma Active on Nexus7 =
Line 75: Line 81:
 
= Nemo Mobile =
 
= Nemo Mobile =
  
Most things should work but virtual keyboard doesn't, which renders everything unusable. The screen shows just black when the keyboard is visible. The same symptom is seen also in Virtual Machines and was fixed by workarounding something in Mesa (which is of course not used on Tegra).
+
All the major things are working, including accelerated video, OpenGL ES, and window compositing.
  
See [[Community_Workspace/Tegra3/Nexus7/EGL_NOK_issues]] for details.
+
'''Top issues'''
 +
* FIXED: X.Org/VT problems, if the display blanks. Run "chvt 2 && sleep 1 && chvt 1" e.g. over ssh to recover.
 +
* Tearing (doesn't seem to include video/OpenGL ES)
  
 
= Hardware support =
 
= Hardware support =
Line 84: Line 92:
 
All files are in /sys/devices/platform/tegra-i2c.2/i2c-2/2-0068/iio:device0
 
All files are in /sys/devices/platform/tegra-i2c.2/i2c-2/2-0068/iio:device0
  
To use mpu6050 (sensor in Nexus 7), set the buffer length ("echo 10 > buffer/length") and enable the buffer ("echo 1 > buffer/enable").
+
mpu6050 (sensor in Nexus 7) configuration:
 +
 
 +
# configure buffer: "# echo 10 > buffer/length". 10 is choosen by me at random. -- [[User:Glueckself|Glueckself]] 23:49, 28 January 2013 (UTC)
 +
# configure desired axes / values: "# echo 1 > scan_elements/in_*_en". This command has to be run on all desired values, "> in_*_en" is not a valid redirection.
 +
# enable buffer: "# echo 1 > buffer/enable"
  
 
The data can then be read from in_{accel,anglvel}_{x,y,z}_raw.
 
The data can then be read from in_{accel,anglvel}_{x,y,z}_raw.
Line 90: Line 102:
 
== Touchscreen rotation ==
 
== Touchscreen rotation ==
  
There is a [http://markoviclan.homelinux.org/files/xorg-x11-drv-mtev-0.1.13-rotate.tgz modified mtev driver] that supports rotation (via the "Swap XY", "Invert X" and "Invert Y" parameters).
+
There is a [http://markoviclan.nerd.at/files/xorg-x11-drv-mtev-0.1.13-rotate.tgz modified mtev driver] that supports rotation (via the "Rotation" parameters).
 +
 
 
Xinput <= 1.5.4 needs to be installed (>1.5.4 needs a newer xi library).
 
Xinput <= 1.5.4 needs to be installed (>1.5.4 needs a newer xi library).
 +
xrandr/xinput values are: normal/3, left/2, inverted/1, right/0.
  
 
The UI can then be rotated via xrandr.
 
The UI can then be rotated via xrandr.
Line 97: Line 111:
 
Please note that this doesn't support animations.
 
Please note that this doesn't support animations.
 
There are also a few issues (half drawn background, some cursor issues).
 
There are also a few issues (half drawn background, some cursor issues).
 +
 +
= libhybris/Wayland =
 +
 +
== Build Android /system ==
 +
 +
First step is to build android see [ASOP instructions http://source.android.com/]
 +
 +
Extract the build environment then down load drivers
 +
 +
For wifi version dowload grouper drivers and for gprs version the tilapia drivers
 +
 +
extract them into your android build env.
 +
 +
Apply the bionic patch
 +
 +
now use lunch full_grouper-userdebug or full_tilapia-userdebug as appropriate (this step take some time)
 +
 +
you need to tar up the system directory in out/target/product/grouper/ or out/target/product/tilapia/
 +
 +
== libhybris packages ==
 +
 +
I have built libhybris for 4.2.2 tilapia [https://build.merproject.org/project/monitor?project=home%3Acxl000%3Abranches%3Anemo%3Adevel%3Ahw%3Aandroid%3Acommon]
 +
 +
== build an image ==
 +
 +
See the work on building wayland images.
 +
 +
You will want the libhybris graphics libraries from home:cxl000:branches:nemo:devel:hw:Aandroid:commo, qt5-qtwayland-wayland_egl examples eglfs platform plugin.
 +
 +
Do not include the tegra3 drivers as these should be replaced with the libhybris versions
 +
 +
Extract the system.tar into the root of your nexus nemo.
 +
 +
chown -R root.root system and chmod -R g+r system to fix permissions.
 +
 +
A few things still need to be done manually as they are not yet packaged:
 +
 +
You will need to make to nvidia device read/write to group video /dev/asmem /dev/*nv* /dev/*tegra*
 +
 +
lipstick options need to be set to -platform eglfs
 +
 +
user session environment needs to include
 +
 +
QT_QPA_PLATFORM=wayland
 +
 +
QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=90"
 +
 +
 +
If all goes well you will get the home screen
 +
 +
If the screen is not updated check that libhybrys graphics are working: run test_glesv2
 +
 +
Make sure you have the qt5 versions of lipstick installed
 +
 +
=== Issues ===
 +
 +
* some apps display mirrored
 +
* not many apps availbale
 +
* no settings ...

Latest revision as of 02:20, 6 November 2013

Contents

[edit] Mer on Nexus7

DISCLAIMER: This project is not endorsed or supported by any company. This is purely a community based effort.

This page describes the running Mer on Nexus 7 (see Community_Workspace/Tegra3 for common Tegra3 stuff). There were 2 models release in 2012 based on the Tegra3 SOC: grouper - wifi only and tilapia - cellular

The hardware adaptation is maintained in the project [1]

The Plasma active instructions are quite generic and can be easily adapted to other images as well.

Note: The 2013 Nexus 7 is based on the snapdragon and comes in two varieties: flo - wifi only and deb - cellular

[edit] Hardware Adaptation Status

Device Profile Boots Display Touchscreen Wireless Mobile Data H/W Accel. GFX Sensors GPS
Nexus 7 grouper (wifi) Yes Yes Yes Yes N/A Yes kernel, yes unknown
Nexus 7 tilapia (gprs) Yes Yes Yes Yes not tested Yes kernel, yes unknown
Nexus 7 flo (wifi) Yes No unknown unknown unknown No unknown unknown
Nexus 7 deb (cellular) Yes No unknown unknown unknown No unknown unknown

[edit] Plasma Active on Nexus7

[edit] Installation

See Community_Workspace/Tegra3/Nexus7/PA_installation.

[edit] Known Issues

See Community_Workspace/Tegra3/Nexus7/PA_Known_Issues

[edit] Workarounds

[edit] Keyboard

If you have issues with the default keyboard you should give this one a try: To install it just:

  zypper ar -G http://repo.pub.meego.com/home:/wonko:/branches:/Project:/KDE:/Trunk:/Testing/CE_UX_PlasmaActive_armv7hl/home:wonko:branches:Project:KDE:Trunk:Testing.repo
  zypper up maliit-active libmaliit-quick
  killall -9 maliit-server

[edit] Nemo Mobile

All the major things are working, including accelerated video, OpenGL ES, and window compositing.

Top issues

  • FIXED: X.Org/VT problems, if the display blanks. Run "chvt 2 && sleep 1 && chvt 1" e.g. over ssh to recover.
  • Tearing (doesn't seem to include video/OpenGL ES)

[edit] Hardware support

[edit] Accelerometer / Gyroscope

All files are in /sys/devices/platform/tegra-i2c.2/i2c-2/2-0068/iio:device0

mpu6050 (sensor in Nexus 7) configuration:

  1. configure buffer: "# echo 10 > buffer/length". 10 is choosen by me at random. -- Glueckself 23:49, 28 January 2013 (UTC)
  2. configure desired axes / values: "# echo 1 > scan_elements/in_*_en". This command has to be run on all desired values, "> in_*_en" is not a valid redirection.
  3. enable buffer: "# echo 1 > buffer/enable"

The data can then be read from in_{accel,anglvel}_{x,y,z}_raw.

[edit] Touchscreen rotation

There is a modified mtev driver that supports rotation (via the "Rotation" parameters).

Xinput <= 1.5.4 needs to be installed (>1.5.4 needs a newer xi library). xrandr/xinput values are: normal/3, left/2, inverted/1, right/0.

The UI can then be rotated via xrandr.

Please note that this doesn't support animations. There are also a few issues (half drawn background, some cursor issues).

[edit] libhybris/Wayland

[edit] Build Android /system

First step is to build android see [ASOP instructions http://source.android.com/]

Extract the build environment then down load drivers

For wifi version dowload grouper drivers and for gprs version the tilapia drivers

extract them into your android build env.

Apply the bionic patch

now use lunch full_grouper-userdebug or full_tilapia-userdebug as appropriate (this step take some time)

you need to tar up the system directory in out/target/product/grouper/ or out/target/product/tilapia/

[edit] libhybris packages

I have built libhybris for 4.2.2 tilapia [2]

[edit] build an image

See the work on building wayland images.

You will want the libhybris graphics libraries from home:cxl000:branches:nemo:devel:hw:Aandroid:commo, qt5-qtwayland-wayland_egl examples eglfs platform plugin.

Do not include the tegra3 drivers as these should be replaced with the libhybris versions

Extract the system.tar into the root of your nexus nemo.

chown -R root.root system and chmod -R g+r system to fix permissions.

A few things still need to be done manually as they are not yet packaged:

You will need to make to nvidia device read/write to group video /dev/asmem /dev/*nv* /dev/*tegra*

lipstick options need to be set to -platform eglfs

user session environment needs to include

QT_QPA_PLATFORM=wayland

QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=90"


If all goes well you will get the home screen

If the screen is not updated check that libhybrys graphics are working: run test_glesv2

Make sure you have the qt5 versions of lipstick installed

[edit] Issues

  • some apps display mirrored
  • not many apps availbale
  • no settings ...
Personal tools