Jump to content

Nvidia Tegra armv7 (nvidia-tegra-armv7): Difference between revisions

From postmarketOS Wiki
Jenneron (talk | contribs)
No edit summary
Exkc (talk | contribs)
better way to filter device
 
(26 intermediate revisions by 4 users not shown)
Line 3: Line 3:
{{Infobox device
{{Infobox device
| manufacturer = Nvidia
| manufacturer = Nvidia
| name = Tegra armv7
| name = Tegra ARMv7
| codename = nvidia-tegra-armv7
| codename = nvidia-tegra-armv7
| image = TODO
| imagecaption =
| releaseyear = 2011
| releaseyear = 2011
| category = community
| chipset = Nvidia Tegra 2/3/4
| chipset = Nvidia Tegra 2/3/4
| gpu = ULP GeForce
| gpu = ULP GeForce
Line 33: Line 32:
| status_calls = -
| status_calls = -
| status_otg = -
| status_otg = -
| status_emmc = P
<!-- Sensors -->
<!-- Sensors -->
| status_accel = Y
| status_accel = Y
Line 47: Line 47:
| status_trustzone = Y
| status_trustzone = Y
| status_fossbootloader = Y
| status_fossbootloader = Y
| status_dvb = -
| status_usba = Y
| status_usba = Y
| status_hdmidp = Y
| status_hdmidp = Y
| status_sdcard = Y
| status_keyboard = Y
| status_keyboard = Y
| status_touchpad = Y
| status_touchpad = Y
Line 55: Line 57:
| status_stylus = -
| status_stylus = -
}}
}}
{{Based on SoC|Nvidia_Tegra_2_(tegra20)|Tegra 2}}
{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}
{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}
== Contributors ==
* Clamor
* Jenneron


== Devices ==
== Devices ==
{{#cargo_query:
{{#cargo_query:
tables=Devices
tables=Devices
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Category,Chipset
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Category,Chipset,StatusUbootPrimary=primary,StatusUbootSecondary=secondary
|order by=Devices.Manufacturer, Devices.Name, Devices.Codename
|order by=Devices.Manufacturer, Devices.Name, Devices.Codename
|limit=9999
|limit=9999
|where=(Devices.Chipset like '%Nvidia Tegra 3%' or Devices.Chipset like '%Nvidia Tegra 4%' or Devices.Chipset like '%Nvidia Tegra 2%') and Devices.booting and Devices.StatusUbootPrimary = "Y"
|where=(Devices.Chipset like '%Nvidia Tegra 3%' or Devices.Chipset like '%Nvidia Tegra 4%' or Devices.Chipset like '%Nvidia Tegra 2%') and Devices.genericdevice = "Nvidia Tegra armv7 (nvidia-tegra-armv7)"
|more results text=
|more results text=
}}
}}
== Prerequisites ==
In order to install postmarketOS on your device you need a few conditions to be met. You MUST have one of compatible devices (check list above) with unlocked bootloader and ability to boot at least into recovery mode.
== Installation process ==
=== Step 0: creating backups ===
If you have Google Nexus 7 (2012) or ASUS Transformer you should perform backup using [https://androidroot.github.io/pages/guides/tegra3-guide-nvflash-jellybean/ this guide] (download links are dead but files can be found [https://github.com/AndroidRoot/androidroot.github.io/tree/master/download here]). You should have a set of images (<code>bricksafe.img</code> and other) which ensure that original bootloader can be restored. Otherwise restoring original state of device is extremely complicated. Additionally backup all valuable data from your device.
=== Step 1: Building and preparing U-Boot ===
Preferred source is [https://source.denx.de/u-boot/u-boot the master branch of mainline U-Boot repo]
[https://docs.u-boot.org/en/latest/board/index.html U-Boot documentation] contains most of stuff needed to prepare it to be flashed onto device as primary last stage bootloader and covers use of re-crypt, but it does not touch fusee gelee exploit.
In order to correctly use re-crypt you would need to get SBK of your device. For this purpose Fusee Gelee exploit is used with [https://gitlab.com/grate-driver/fusee-tools fusee tools]. Refer to [https://gitlab.com/grate-driver/fusee-tools#dumping-sbk this section] to get SBK of your device.
=== Step 2: U-Boot flashing ===
Once you get <code>repart-block.bin</code> or split images from re-crypt it can be flashed using nvflash or using U-Boot fastboot interface. To check if U-Boot correctly boots on your device you can refer to [https://gitlab.com/grate-driver/fusee-tools#loading-bootloader this] section of fusee tools readme to pre-load U-Boot into RAM. If everything is correct you can flash processed U-Boot as described in board U-Boot documentation.
=== Step 3: Installing postmarketOS ===
For devices with microSD available preferred method of installation is flashing to microSD. In case of emmc only devices listallation can be performed using <code>pmbootstrap install --disk /dev/sdX</code> when exposing eMMC to the host with U-Boot.
There are also prebuilt images at https://images.postmarketos.org/bpo/edge/nvidia-tegra-armv7. Use <code>xzcat xxxxxxxx-xxxx-postmarketOS-channel-ui-nvidia-tegra-armv7.img.xz | sudo dd of=/dev/sdX status=progress</code>. Where <code>/dev/sdX</code> is the block device exposed by U-Boot. You can also flash with GUI tools like gnome-disks.
<!--
=== With U-Boot as secondary bootloader ===
Use <code>pmbootstrap install --split</code> and <code>pmbootstrap export</code>. Flash resulting boot and root images to separate partitions.
=== Fastboot devices ===
Installation process is mostly:
<code>
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs
</code>
However, your device may not have proper fastboot.
=== Non-fastboot devices (e.g. ASUS transformers) ===
You need to perform:
<code>
$ pmbootstrap install --split
$ pmbootstrap export
</code>
Then flash corresponding files manually.
See device-specific pages for more information.
== Internal storage ==
Internal storage works fine in kernel, but u-boot does not support tegra partition and we can't mark partition as bootable when using stock partition table.
The only way to use eMMC for booting from is to flash U-Boot as primary bootloader to mmcblk0boot{1,2} and re-partition eMMC
-->

Latest revision as of 00:29, 26 August 2024

A generic port for Nvidia Tegra 2/3/4 devices.

Nvidia Tegra ARMv7
Manufacturer Nvidia
Name Tegra ARMv7
Codename nvidia-tegra-armv7
Released 2011
Type generic
Hardware
Chipset Nvidia Tegra 2/3/4
GPU ULP GeForce
Architecture armv7
Software
FOSS bootloader yes
postmarketOS
Category community
Pre-built images yes

Contributors

  • Clamor
  • Jenneron

Devices

Device Category Chipset primary secondary
Asus Eee Pad Transformer community Nvidia Tegra 2 (T20) Y Y
Asus Eee Pad Transformer Prime community Nvidia Tegra 3 (T30) Y Y
Asus Transformer Infinity community Nvidia Tegra 3 (T33) Y Y
Asus Transformer Pad community Nvidia Tegra 3 (T30L) Y Y
Asus Transformer Pad 3G community Nvidia Tegra 3 (T30L) Y Y
Google (ASUS) Nexus 7 (2012) community Nvidia Tegra 3 (T30L) Y N
Google (ASUS) Nexus 7 (2012) GSM community Nvidia Tegra 3 (T30L) Y N
LG Optimus 4X HD testing Nvidia Tegra 3 (AP33H) Y P
LG Optimus Vu community Nvidia Tegra 3 (AP33) Y P
Microsoft Surface RT community Nvidia Tegra 3 (T30) P P
Toradex Colibri T30 testing Nvidia Tegra 3 (T30)
WEXLER Tab 7t testing Nvidia Tegra 3 (T30L) Y N

Prerequisites

In order to install postmarketOS on your device you need a few conditions to be met. You MUST have one of compatible devices (check list above) with unlocked bootloader and ability to boot at least into recovery mode.


Installation process

Step 0: creating backups

If you have Google Nexus 7 (2012) or ASUS Transformer you should perform backup using this guide (download links are dead but files can be found here). You should have a set of images (bricksafe.img and other) which ensure that original bootloader can be restored. Otherwise restoring original state of device is extremely complicated. Additionally backup all valuable data from your device.

Step 1: Building and preparing U-Boot

Preferred source is the master branch of mainline U-Boot repo

U-Boot documentation contains most of stuff needed to prepare it to be flashed onto device as primary last stage bootloader and covers use of re-crypt, but it does not touch fusee gelee exploit.

In order to correctly use re-crypt you would need to get SBK of your device. For this purpose Fusee Gelee exploit is used with fusee tools. Refer to this section to get SBK of your device.

Step 2: U-Boot flashing

Once you get repart-block.bin or split images from re-crypt it can be flashed using nvflash or using U-Boot fastboot interface. To check if U-Boot correctly boots on your device you can refer to this section of fusee tools readme to pre-load U-Boot into RAM. If everything is correct you can flash processed U-Boot as described in board U-Boot documentation.

Step 3: Installing postmarketOS

For devices with microSD available preferred method of installation is flashing to microSD. In case of emmc only devices listallation can be performed using pmbootstrap install --disk /dev/sdX when exposing eMMC to the host with U-Boot.

There are also prebuilt images at https://images.postmarketos.org/bpo/edge/nvidia-tegra-armv7. Use xzcat xxxxxxxx-xxxx-postmarketOS-channel-ui-nvidia-tegra-armv7.img.xz | sudo dd of=/dev/sdX status=progress. Where /dev/sdX is the block device exposed by U-Boot. You can also flash with GUI tools like gnome-disks.