nyuuzyou/wikis huggingface dataset:
Nvidia Tegra 2/3/4

__TOC__
== SoCs ==
=== Generic device ports ===
These devices are combined into generic ports. Refer to chipset when looking for your device.
==Non-generic device ports==
Other devices that are not combined into generic ports.
=== Tegra 2 ===
==== Devices with a Tegra 2 Chipset ====
==== CPU ====
Tegra 2 uses two A9 cores without NEON instructions.
=== Tegra 3 ===
==== Devices with a Nvidia Tegra 3 Chipset ====
=== Tegra 4 ===
==== Devices with a Nvidia Tegra 4 Chipset ====
== GPU ==
==== Components (source) ====
* Mesa-3D (minimal implementation, not complete enough (GL 1.4) to run XWayland (requires GL 2.1 or GLES2)
* xf86-video-tegra (2D acceleration for X11, EXA)
* libvdpau-tegra
==== Usability ====
Wayland:
* Phosh works, but UI is accelerated trough llvmpipe (software rendering), thus is slow.
* Plasma mobile not tested (please update)
X11:
* Xfce4 and Mate desktop will run on 2D acceleration.
* Hildon requires an OpenGL backend.
** As of cogl 1.22.2 the clutter/cogl backend requires stencil buffers (EGL_STENCIL_SIZE). This not yet implemented in the grate-driver.
== Video Decoding ==
Video Decoder Engine (VDE) was added to mainline kernel v4.16. The grate-driver includes hardware h264 decoding with libvdpau-tegra.
The vdpau driver does not support h264 videos encoded with:
* weighted prediction
* CABAC
Sample video that can be decoded with hardware acceleration:
https://peach.blender.org/trailer-page/
$ mpv --hwdec=vdpau trailer_720p.mov
Using hardware decoding (vdpau).
VO: [vdpau] 1280x720 vdpau[yuv420p]
== APX ==
Nvidia Tegra devices have APX mode which allows to flash/debrick a device even with broken bootloader. It also allows to sideload bootloader which is useful when porting a new bootloader.
Some devices have a key combination to enter this mode, some devices don't have one. We have a hook which alters two PMC registers which causes device to enter APX mode. It works on the most devices including some of those that don't have a key combination for APX.
Usage on Android devices:
$ pmbootstrap initfs hook_add apx
$ pmbootstrap flasher boot
On Chrome OS devices and other not supporting fastboot boot command you will have to flash the image with kernel after enabling apx hook.
== Participate development ==
=== Develop ===
==== Mesa3D Gallium driver ====
https://github.com/grate-driver/mesa
* Host1x ABI rework (required before mesa implemenetation): (G. docs) 
* migrate from TGSI to NIR
* establishing demos that work, where can be seen regression
==== New Device Trees ====
To generate the correct RAM timings for new Tegra 3 devices from known kernel sources, you can start from the known (downstream) RAM model code, and generate valid timings using this tool by Ion Agorria: https://gitlab.com/IonAgorria/tegra-timings-generator.
The #postmarketOS-on-transformers:matrix.org chat room will also be an excellent starting point for the porting of any new Tegra 2/3/4 device, also outside strictly the ASUS Transformer series
Category:Nvidia Tegra
Nvidia Tegra K1 (T124/T132)

== Devices with a Nvidia Tegra K1 Chipset ==
== GPU ==
Uses Nouveau for GPU acceleration although at the moment it's broken on upstream Mesa.
(See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2960)
== Tegra T132 ==
A variant of the K1 with dual 64 bit 2.5GHz Denver cores exists called the T132, however this was only ever used in the Nexus 9 and low volume prototypes. Aside from the CPU cores and some clock tree changes it seems to be identical to the T124.
Category:Nvidia Tegra
Nvidia Tegra X1 (T210/T214)

== Devices with a Nvidia Tegra X1 Chipset ==
== GPU ==
Like Nvidia Tegra K1 (T124/T132), Uses Nouveau for GPU acceleration although at the moment it's broken on upstream Mesa.
(See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2960).
The folks at Switchroot have been looking at what commits cause issues upstream. They have gathered the following patches: https://build.opensuse.org/package/show/home:Azkali:Tegra:Icosa_testing/mesa-nvk
== Tegra T214 ==
A die-shrunk variant of the X1 exists called the T210b01 or T214 (codenamed "Mariko"). A high powered variant (TM675M-A1) was used on the regular (cylindrical) version of the Nvidia Shield TV released alongside the Nvidia Shield TV Pro 2019 (nvidia-mdarcy), which also got a refresh in 2019. A lower powered variant (ODNX10-A1) was only used in the newer (Red Box) Nintendo Switch, Nintendo Switch Lite and Nintendo Switch OLED models. From what is known about this revision, it removes the Cortex-A53 cores that are present (but disabled) on the T210 version of the chip. It also fixes the "Fusée Gelée" bootrom exploit present on the original version of the SoC. Otherwise, it is completely compatible with the original "T210" version of the Tegra X1 SoC.
Category:Nvidia Tegra
Nvidia Tegra armv7 (nvidia-tegra-armv7)

A generic port for Nvidia Tegra 2/3/4 devices.
== Contributors ==
* Clamor
* Jenneron
== Devices ==
== 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.
ODROID C4 (odroid-c4)

== Contributors ==
* hexaheximal
== Users owning this device ==
== Installation ==
Use pmbootstrap to build your own installation image, with the --disk option to install the postmarketOS onto the block device for an SD card / eMMC reader. Then put the SD card / eMMC chip into the ODROID C4 and power it on.
== See also ==
*
ODROID HC2 (odroid-hc2)

== Contributors ==
* DylanVanAssche
== Maintainer(s) ==
* DylanVanAssche
== Users owning this device ==
== Installation ==
1. Use pmbootstrap to create a bootable SD card:
 pmbootstrap init # pick 'odroid' as manufacturer, 'hc2' as device and 'none' as UI.
 pmbootstrap install --sdcard=/dev/sdX
* Only the UI 'console' is supported by the ODROID HC2 as there's no HDMI or any other video port available on this device. With UI 'none' you won't have SSH access over Ethernet.
* You must install the nonfree firmware package for this device to get it booting. It contains the binary blobs necessary for the U-boot bootloader to boot and the Realtek firmware to get Ethernet running to access the device over SSH.
2. Insert SD card into the Odroid HC2, plug in the Ethernet cable and turn it on.
3. The Odroid HC2 should boot up and become accessible over SSH.
== v22.12 or later ==
postmarketOS v22.12 or later runs linux-edge from Alpine, we don't have any kernel fork anymore in pmaports.
== RootFS on external HDD ==
 
After installing postmarketOS on your ODROID HC2, you may want to move the rootFS to the external HDD of the ODROID HC2.
A set of tools to accomplish this are provided in the device-odroid-hc2-tools package which can be used as followed with root permissions:
 apk add device-odroid-hc2-tools # install tools
 install-rootfs-hdd # run script and answer 'y' and with the device node you want to have the rootFS on (/dev/sdX)
 reboot
== See also ==
* Initial merge request
* Boot binary flashing support
ODROID N2+ (odroid-n2plus)

== Contributors ==
* k-laus
* exkc
== Users owning this device ==
* k-laus
== How to enter flash mode ==
== Installation ==
Preparation
The device uses u-boot with petitboot loader loaded in spi memory.
Installation to eMMC was tested:
 pmbootstrap build linux-odroid-n2plus
 pmbootstrap build device-odroid-n2plus
Put an eMMC card into eMMC-to-USB3 reader, assumption is it appears as /dev/sdX (replace sdX with correct devicename below), and install to it:
 pmbootstrap install --sdcard /dev/sdX
Afterwards, still this manual step is needed to create u-boot compatible initramfs: 
 mount /dev/sdX1 /mnt/boot && \
 cd /mnt/boot && \
 mkimage -A arm64 -T ramdisk -C none -n initramfs -d initramfs initramfs.uimg
== See also ==
k-laus's fork of pmaports that has a pm os port for it (Note his port has not been merged to the mainline, and the package for it is packaged very poorly)
ODROID_N2_(odroid-n2)
ODROID N2 (odroid-n2)

== Contributors ==
* exkc
== Users owning this device ==
== How to enter flash mode ==
== Installation ==
== Notice ==
See ODROID_N2%2B_(odroid-n2plus) for more information. Mostly all of what's there applies to this device as well, including the installation instructions.
== Differences between N2 and N2+ ==
1. N2 boards have a RTC backup battery connector unlike N2+ which have a RTC backup battery holder instead.
2. N2 and N2+ both use s922x SoCs. However, each of them use different revisions of that SoC. N2 use revision A of the SoC while N2+ use revision C of the SoC which has slightly higher clock speed than rev A.
3. N2 and N2+ have different pcb colors.
== See also ==
ODROID_N2%2B_(odroid-n2plus)
ODROID U2 (odroid-u2)

== Contributors ==
* Grimler
== Users owning this device ==
== Installation ==
1. Use pmbootstrap to create a bootable SD card:
 pmbootstrap init # pick 'odroid' as manufacturer, 'u2' as device.
 pmbootstrap install --sdcard=/dev/sdX
You can choose between using Alpine Linux's kernel, or PostmarketOS's kernel. Both work rather well.
You must install the nonfree firmware package for this device to get it booting. It contains early bootloaders which initialise the hardware and then boot u-boot.
2. Insert SD card or eMMC card into the Odroid U2, plug in the Ethernet cable and turn it on.
3. The Odroid U2 should boot up, get an ip address, and become accessible over SSH.
== See also ==
* Samsung Exynos 4
* 
*
ODROID XU4 (odroid-xu4)

== Contributors ==
* Grimler
== Maintainer(s) ==
* Grimler
== Users owning this device ==
== Installation ==
1. Use pmbootstrap to create a bootable SD card:
 pmbootstrap init # pick 'odroid' as manufacturer, 'xu4' as device and 'console' as UI.
 pmbootstrap install --disk=/dev/sdX
You must install the nonfree firmware package for this device to get it booting. It contains early bootloaders and trustzone firmware. The early bootloaders initialise the hardware and then boots u-boot.
2. Insert SD card into the Odroid XU4, plug in the Ethernet cable and turn it on.
3. The Odroid XU4 should boot up and become accessible over SSH.
=== Installation to eMMC ===
Installation to a eMMC module is not supported with pmbootstrap out of the box. When installing to eMMC the bootloaders should be embedded in /dev/mmcblk0boot0 (and to different offsets compared to when flashing to sdcard), while PostmarketOS's rootfs should be flashed to /dev/mmcblk0. One way to manually do this is to remove deviceinfo_sd_embed_firmware from device-odroid-xu4's deviceinfo, install the rootfs, and then manually flash the bootloaders. To do this you can run the following steps (on your odroid-xu4 or on your computer if you have a eMMC->usb adapter) from the pmaports directory, i.e. ~/.local/var/pmbootstrap/cache_git/pmaports:
 pmbootstrap init
 sed -i '/deviceinfo_sd_embed_firmware/d' device/community/device-odroid-xu4/deviceinfo
 pmbootstrap checksum device-odroid-xu4
 pmbootstrap build --force device-odroid-xu4
 # Update partition path and name if needed:
 pmbootstrap install --disk /dev/mmcblk0
 # Next dd bootloaders to eMMC boot0 partition.
 # Disable write protection
 echo 0 | sudo tee /sys/block/mmcblk0boot0/force_ro
 # Update path to file and partition path and name in all dd commands if needed:
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/bl1.bin of=/dev/mmcblk0boot0 bs=512 seek=0
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/bl2.bin of=/dev/mmcblk0boot0 bs=512 seek=30
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/u-boot.bin of=/dev/mmcblk0boot0 bs=512 seek=62
 sudo dd if=$HOME/.local/var/pmbootstrap/chroot_rootfs_odroid-xu4/usr/share/u-boot/odroid-xu3/tzsw.bin of=/dev/mmcblk0boot0 bs=512 seek=2110
After that you should be able to boot PostmarketOS from your eMMC.
== GPU ==
See 3D_Acceleration#Mali_T628.
== See also ==
* Its sibling odroid-hc2
* Initial merge request
* Boot binary flashing support
ODYS WinPad X9

== Contributors ==
* Kachiyama Nao
== Users owning this device ==
== Device Notes ==
*ODYS is sub-brend of Axdia same like DYON, Viomi, Roborock and +360. Axdia acts as OEM/ODM reseller.
*Device is using a generic port for x86 UEFI so it`s not separated device port.
*Work with this device is just began so it needs a lot to research about sound and sensors or so
*Tablet also can be called ODYS Cosmo Win X9
== Installation ==
Just do usual SD installation
==Development Notes==
* XFCE seems to not work
* It has some issues with sound subsystem and Bluetooth
==Troublesome ICs==
* PMIC: X-Powers AXP288 (It has some power management issues) 
* Wireless: Realtek RTL8723BS
* Sound: Everest Sound ES8316 (As I understand, it has mainline support) 
* Camera: Double Omnivision OV2680 (front and rear sensors)
== See also ==
* Odys WinPAd X9 review (in Deutsch)
*NBC device page
*Z3735F CPU off.page
*Tablet list with Z3735F CPU (not that complete but it has Winpad X9's clones)
Oculus Go (oculus-pacific)

It is currently able to boot Mainline (very very minimal). Only display is seemingly working in mainline. Currently not possible to figure out what else at the moment since you cannot really see what is happening on the screen, since it is all outside of the viewing FOV.
= Progress So Far =
* Kernel package builds properly.
* Device package builds properly.
* pmbootstrap install works (the boot-deploy issue seemed to be caused by the dtb file not being found. Found that out by looking at the log file more in depth.)
So far that is all. 
== Problems That Need Fixing ==
* Basically everything at this moment.
= Special Boot Modes =
== Fastboot Mode ==
While in Fastboot mode, you can use + to select an action from the menu at the top of the screen, and to select the action (i.e. Exit and boot the device, Factory reset, Enable sideloading update, and Power off.)
You can also use a computer to issue Fastboot commands to flash firmware to the device and manage the current slot that the bootloader is using to boot the operating system.
=== Enter Fastboot Mode ===
Just hold down + for a few seconds to enter Fastboot mode.
==== Unlock the bootloader ====
To unlock the bootloader you must have access to a PC and the Oculus USB drivers.
*First download the drivers if you have not done so already: Oculus ADB drivers.
* Second go to the Oculus Go's bootloader unlock site and download the update package: Official unlock website. It also has the instructions to unlock the bootloader.
* Once you have those boot into the bootloader and navigate to the "Enable Sideload Update" option using the and/or keys and press 
* When the sideload prompt comes up use ADB to sideload the unlocked_build.zip OTA to your headset. When it is finished navigate to "Reboot system now" and select it if the headset didn't automatically reboot for you.
* Once the headset boots into the OS, reboot to bootloader again and type fastboot oem unlock on your PC. Read the message displayed on your device screen, if you agree then confirm the unlock. THIS WILL ERASE YOUR DEVICE.
== Maintainers ==
* User:WolfLink115
== Contributors ==
* User:WolfLink115
* User:Linear_Cannon
== Users owning this device ==
== External Links ==
* Downstream Kernel source (modified a Kconfig file to get it to build properly)
* TWRP device tree (Almost everything works, but I might be wrong. -- WolfLink115)
* Mainline Kernel Source
* Oculus Go bootloader unlock guide/downloads
Office Suite

This page lists programs that fit best for office requirements on the go (i.e. using a handset in a portable environment).
I find it essential to list the following software due to the lack of interface for small displays in Calligra Suite, LibreOffice, GNOME Office.
The followings are alternatives for desktop office suites.
=== Word Processing ===
*
*
=== Spreadsheet ===
=== Presentation ===
*
=== Mathematics ===
*
=== Draw ===
=== Database ===
=== Readers ===
*
*
Ondev2

ondev2 (git repository) is a work-in-progress rewrite of the on-device installer. The old installer had the problem that development involved a lot of manual testing. Because of that development of new features slowed down and regressions went unnoticed to the point that before it was retired in the v23.12 release, it did not really work any more. ondev2 has a strong focus on automated testing: logic for all input screens is abstracted from the output type and can therefore be accessed via CLI and automated tests.
OnePlus 5T (oneplus-dumpling)

This device shares basically 99% of the hardware with the OnePlus 5 (oneplus-cheeseburger), so refer to that wiki for most things.
== Differences ==
* Taller chassis with very small top and chin bars
* Samsung S6E3FC1 display panel instead of a S6E3FA5, and not mounted in 180° orientation (upside down) physically in chassis
* No capacitive back/recents buttons with LED backlight on front
* Sony IMX376K secondary back camera instead of IMX350
* Goodix fingerprint sensor on back instead of FPC one on front
== Bootloader quirks ==
There's a few quirks on the 5T bootloader compared to the regular 5:
* OOS 9 bootloader at least cannot fastboot boot, it just gets stuck
* Cannot boot mainline kernel with multiple appended DTBs, same image works on regular 5 no matter which order DTBs are appended in
== Community Info ==
=== postmarketOS users that own the device ===
=== Maintainers ===
* Deathmist
== See also ==
* 
* OnePlus 5 (oneplus-cheeseburger)
* Initial merge request
*
OnePlus 7 (oneplus-guacamoleb)

== About ==
This page describes the support for postmarketOS on the OnePlus 7/T.
The phone is able to boot a mainline kernel which you can find here.
== Phone details ==
== Contributors ==
* Sporos
== Maintainer(s) ==
* Sporos
* Caleb
== Users owning this device ==
* Sporos (Oneplus7T/Hotdogb) mainlining in progress
== How to enter flash mode ==
adb reboot fastboot
== Installation ==
== See also ==
OnePlus 8T (oneplus-kebab)

== Contributors ==
* afeuerstein
== Users owning this device ==
== How to enter flash mode ==
When powered off:
* Hold power button
** If the device has USB plugged in: wait for the device to vibrate, otherwise it might boot to Qualcomm MSM Mode
* Hold volume up and down
== Installation ==
This device uses dynamic partitions which allows it to merge multiple partitions (including system) into one super partition. PostmarketOS' initramfs can't mount these logical partitions yet. We'll need to flash the rootfs directly onto the super partition.
You can try to dump your original super.img (if you want to restore your original Android installation later) by using
 adb pull /dev/block/by-name/super super.img
Follow the postmarketOS porting/installation guide and use
 pmbootstrap flasher flash_rootfs
to flash rootfs.
Before booting, you'll have to flash a image to your dtbo partition:
 pmbootstrap flasher flash_dtbo
Note: the dtbo.img is only present after a rootfs or initramfs image generation.
== Getting back to Android ==
Since flashing the rootfs overwrites the super partition you'll have to do some extra steps to return to a state where you can normally flash an Android ROM.
=== Use your backed-up super.img ===
Before flashing your super.img you'll have to convert it into an sparsed image that fastboot can read:
 img2simg super.img super-s.img
 fastboot flash super super-s.img
Ideally you should be able to boot back into Android after restoring boot and dtbo or after switching to an untouched slot.
If Android doesn't boot up or you encounter long loading times, bad performance, missing firmware and spontaneous crashes you should try the following options.
=== Wipe your super partition using super_empty.img ===
super_empty.img is a small metadata file you can create with Google's own tools (more research needed) and automatically with the Android Build System. If you have an LineageOS build enviroment set-up you can generate it with
 make dist
Wipe the super partition using
 fastboot wipe-super super_empty.img
After that you'll be able to flash a LineageOS OTA package.
If the partition sizes defined in LineageOS' super_empty.img don't fit your ROM's partitions or if you're still encountering glitches you can follow this guide.
=== Use MsmDownloadTool ===
(more testing required)
These tools aren't officially distributed by either Qualcomm nor OnePlus and only work under Windows.
Follow this guide.
== See also ==
* Initial merge request
* 
* 
* Mainline kernel
OnePlus 9RT (martini)

== Contributors ==
* flactwin
== Users owning this device ==
== How to enter flash mode ==
== Installation ==
=== Using pmbootstrap ===
Follow Installation/Using pmbootstrap. To flash the image to the device:
* Enter flashing mode (see #How to enter flash mode)
* Run pmbootstrap flasher flash_kernel to flash the kernel
* Run pmbootstrap flasher flash_rootfs
== See also ==