nyuuzyou/wikis huggingface dataset:
Sxmo/Pixel 3a

SXMO works on Pixel 3A.
=== Sound ===
It seems to work better with pulse at the moment. 
To force the use of pulse, select sxmo-utils-audio-pulseaudio as extra package in pmbootstrap.
With Pipewire, I get the same kind of problems I had with the op6 (for some things you need to have the mixer opened (placing calls) but for others (recorder) it blocks if mixer is opened.
=== Placing Calls ===
That is what a phone is for (no ?).
Current UCM profiles do not work (callaudio won't swich), so you'll have to use the ones that are worked on at this address and place it in /usr/share/alsa/ucm2/Google/sargo/.
For the moment, there are issues with the internal mic using the current scripts ... To make calls work you'll have to :
* remove calls to setup_audio in sxmo_modemdial.sh
* invert calls to setup_audio and mmcli accept/start (both for incoming and outgoing calls) in sxmo_modemcall.sh
=== Sensors ===
Proximity, light and accelerometer all work using iio-sensor-proxy. Once running it can be queried using monitor-sensor.
You can to do the same as with Oneplus6. Here is the sxmo_proximitylock.sh script I currently use .
If you don't want monitor-sensor to be run as root, you can use this polkit rule (it should be placed in /etc/polkit-1/rules.d/) :
polkit.addRule(function(action, subject) { 
 if (action.id == "net.hadess.SensorProxy.claim-sensor" && subject.isInGroup("plugdev")) {
 return polkit.Result.YES;
 }
});
=== Camera ===
Gnome snapshot works, but some things are not setup straightforward :
* You'll need to give the user access for /dev/udmabuf, for instance using this 90-libcamera.rule udev rule :
KERNEL=="udmabuf",GROUP="video",MODE="0660"
* pipewire and wireplumber need to be started.
$ superctl start wireplumber # starts wireplumber (and pipewire)
$ superctl enable wireplumber # enables them so they start automatically
When snapshot works, other applications using the same stack (such as decode for qr-code) work too, even as flatpak. The camera can also be used in firefox.
Megapixel has a configuration for pixel3a, but it does only take into account the front camera and the program closes when changing camera or taking photo.
=== Working around the notch ===
Just kiddin', there is no notch on this phone !!! 
But if you're upset by the rounded corners, you can always add some gaps on the status bar : 
bar {
 gaps 0 20 0 20
 height 20
 ...
=== Device profile ===
The deviceprofile for this device is in /usr/bin/sxmo_deviceprofile_google,b4s4-sdm670.sh
#!/bin/sh
# SPDX-License-Identifier: AGPL-3.0-only
# Copyright 2024 Sxmo Contributors
export SXMO_VOLUME_BUTTON="1:1:gpio-keys 0:0:pm8941_resin"
export SXMO_POWER_BUTTON="0:0:pm8941_pwrkey"
export SXMO_VIBRATE_DEV="/dev/input/event2"
export SXMO_VIBRATE_STRENGTH="50000"
export SXMO_SWAY_SCALE="3"
=== Issues ===
Most of them are minor, should be fixed quickly ;)
* GPS not working (not really optimistic about this one)
* Headset headphones not working (but mic does)
Sxmo/Sound

By default, SXMO is delivered with PipeWire installed; however, PipeWire might not work well with all devices as of yet , which means that sound volume may be significantly low and saturated "as if there were some too low gains as well as saturated ones on the sound path".
If your device is subjected to the audio issue as depicted above, please report about it on the issue tracker as it would accelerate the proper integration of PipeWire with SXMO and other postmarketOS variants.
This issue has been fixed for OnePlus6 and POCO F1 (see ); and there is a new solution which might keep PipeWire audio stable and might also fix low volume and crackling issues (see ).
To get audio to perform better, it is advised to switch back to PulseAudio (SXMO supports ALSA, PulseAudio and PipeWire). You can do so by removing the constraint on PipeWire and installing PulseAudio instead:
 
 $ sudo apk add sxmo-utils-audio-pulseaudio
 $ sudo apk upgrade -a
 $ sudo alsaucm reload
If you use pmbootstrap to generate your image, you can add sxmo-utils-audio-pulseaudio to your extra packages, it will generate a correct image.
Systemd/services

As we use the Alpine package repositories, many system services don't include systemd unit files. Rather than fork these packages into pmaports to rebuild them with systemd unit files, we just package the units files individually in the systemd-services package for now. This is a short term solution, see .
== Adding a new service file ==
There is a step-by-step guide in the APKBUILD file, you can follow this to add any unit files or overrides you need.
== Forking an Alpine package ==
If the package needs to link against systemd (e.g. to enable socket activation) then it should instead be forked from upstream and added to pmaports.
$ pmbootstrap aportgen --fork-alpine <package>
The package should then be moved from temp/<package> to extra-repos/systemd/
== See also ==
* Systemd
TCL 403 (tcl-rio)

== Contributors ==
* Catto24
== Users owning this device ==
== How to enter flash mode ==
Shut down the phone completely.
Enter recovery mode with + 
Use / to move up/down, and to select "Enter fastboot"
== Unlocking the bootloader ==
Install ADB and fastboot
Clone the MTKClient GitHub repository (tested on Windows and Linux, not sure about macOS)
cd into the directory in a terminal
Assuming you have Python installed:
Run the file mtk_gui.py
Completely power off the phone
Hold + and plug in USB cable AFTER
When you see something like "Preloader - Jumping to 0x200000" in the terminal window, let go of the buttons.
Head to the Flash Tools tab, and click Unlock Bootloader.
== Disabling Verified Boot ==
Reboot the phone into the bootloader (aka fastboot mode)
Run "fastboot flashing unlock"
On the phone, when prompted, push and wait
== Installation ==
There is no installing on the TCL dingus.
== See also ==
* Specifications from GSMArena.com
TP-Link Neffos C7s (neffos-c7s)

== Contributors ==
== Maintainer(s) ==
== Users owning this device ==
== Partitions ==
This phone uses A partition scheme.
boot -> /dev/block/mmcblk0p27 
cache -> /dev/block/mmcblk0p31 
dtb -> /dev/block/mmcblk0p28 
dtbo -> /dev/block/mmcblk0p29 
fbootlogo -> /dev/block/mmcblk0p13 
gpsbd -> /dev/block/mmcblk0p19 
gpsgl -> /dev/block/mmcblk0p18 
l_deltanv -> /dev/block/mmcblk0p23 
l_fixnv1 -> /dev/block/mmcblk0p14 
l_fixnv2 -> /dev/block/mmcblk0p15 
l_gdsp -> /dev/block/mmcblk0p24 
l_ldsp -> /dev/block/mmcblk0p25 
l_modem -> /dev/block/mmcblk0p22 
l_runtimenv1 -> /dev/block/mmcblk0p16 
l_runtimenv2 -> /dev/block/mmcblk0p17 
logo -> /dev/block/mmcblk0p12 
misc -> /dev/block/mmcblk0p4 
miscdata -> /dev/block/mmcblk0p2 
persist -> /dev/block/mmcblk0p21 
pm_sys -> /dev/block/mmcblk0p26 
prodnv -> /dev/block/mmcblk0p1 
product -> /dev/block/mmcblk0p33 
recovery -> /dev/block/mmcblk0p3 
sml -> /dev/block/mmcblk0p7 
sml_bak -> /dev/block/mmcblk0p8 
system -> /dev/block/mmcblk0p30 
trustos -> /dev/block/mmcblk0p5 
trustos_bak -> /dev/block/mmcblk0p6 
uboot -> /dev/block/mmcblk0p9 
uboot_bak -> /dev/block/mmcblk0p10 
uboot_log -> /dev/block/mmcblk0p11 
userdata -> /dev/block/mmcblk0p36 
vbmeta -> /dev/block/mmcblk0p34 
vbmeta_bak -> /dev/block/mmcblk0p35 
vendor -> /dev/block/mmcblk0p32 
wcnmodem -> /dev/block/mmcblk0p20
== Additional information ==
As other phones with Android 9 and higher, this phone uses Android Verified Boot. vbmeta.img needs to be patched/created to boot pmOS kernel.
Team members

== Core Contributors ==
=== Responsibilities / Permissions ===
==== GitLab ====
Have approval and merge rights for all branches and repositories.
("Force push" is disabled for "master" and stable branches, even for the Core Team.)
==== Other ====
* Steering of the project
* Taking part in Core Team Meetings
* Creating Releases and Service Packs
* Making releases of pmOS projects (pmbootstrap, tinydm, ...)
=== Voting ===
* An existing core team member needs to vouch for new core team members.
* Voting in new team members requires unanimous votes from existing members.
== Trusted Contributors ==
=== Responsibilities / Permissions ===
==== GitLab ====
Have approval and merge rights for all branches and repositories, with the following exceptions:
* stable branches of pmaports (v21.06 etc.)
* master branch of pmbootstrap
* homepage
** apkbrowser.git
** cast.postmarketos.org.git
** postmarketos.org.git
* bpo
=== Voting ===
* Two people from the Trusted Contributors or Core Team need to endorse the potential new trusted contributor.
* Everybody from the Core Team needs to approve / gets a chance to veto the new contributor (exception: if somebody is on holiday, time limit 1 week).
=== Application ===
Apply by creating a new confidential issue at https://gitlab.postmarketos.org/postmarketOS/apply-for-trusted-contributor/-/issues/new
== Active Contributors ==
The community plays a big role in the project. Device maintainers and active community members are able to get Reporter access on repositories relevant to their work. This is managed in a case-by-case basis, and requires having worked in postmarketOS for at least several months. 
You can find the complete list in gitlab.
=== Expectations ===
Reporter access on GitLab includes a bunch of "project manager" type permissions, like assigning issues, setting (and editing) milestones, creating new labels, etc. This is a case of "just because you can doesn't mean you should". In general, we expect folks to assign issues/MRs, set labels, and approve MRs that affect packages they maintain. It will take some time for us to find a good balance here, so this isn't to say that folks should never use the other permissions, just that it's worth checking if you aren't sure.
This section will be updated to document our common practices as they evolve.
== See also ==
* Gitlab project configuration
Category:Admin
Teclast P89 Mini (teclast-p89mini)

== Contributors ==
* Illen
== Maintainer(s) ==
== Clones ==
This device exists under many brands depending on region/market, here's the (incomplete) list of them (some of them may differ in eg. storage or RAM):
* Explay i1
* Vido M6
* Allview Viva i8
* Goclever Insignia 785 Pro
== Users owning this device ==
== Bootloader ==
This device (just like many other SFI devices) uses Droidboot, which is a fastboot implementation. The bootloader is permamently locked, however there is a way to overcome this by signing a boot image (see: https://github.com/alef78/intel-ifwi-study)
== How to enter flash mode ==
== Installation ==
== Mainline kernel ==
It uses the Simple Firmware Interface for discovering system timers and non-enumerable buses, but other stuff can be found using PCI. SFI has been dropped from mainline, so unless that is merged back the best thing is close-to-mainline on a fork of kernel version 5.10 which was the last kernel that supported it or use second stage bootloader Petitboot to boot newer kernels with devicetree.(See Motorola RAZR i (XT890) (motorola-smi)'s device package).
== See also ==
* https://github.com/alef78/intel-ifwi-study
* Intel MID
Teclast T40S revision 2 (teclast-t40s-rev2)

Device discontinued.
== Contributors ==
== Users owning this device ==
== Notes ==
https://www.teclast.com/en/firmware/shopifyfchk.php?c=p6a2
https://deviceinfohw.ru/devices/item.php?item=101634
http://web.archive.org/web/20240223033238/https://www.teclast.com/zt/T40s/
https://pl.aliexpress.com/item/1005005240390211.html
Manufacturer refused to provide kernel source code.
Teclast X80 Pro (teclast-x80pro)

== Contributors ==
* magmastonealex
== Maintainer(s) ==
* magmastonealex
== Device owners ==
== Notes ==
There are a ton of tablets on Amazon/Ebay with equivalent specifications - Intel processor, decent display, SDIO wifi, which are likely to be generally equivalent to this tablet.
The kernel that was added for the initial device port wasn't maintained and therefore this port has been removed in . If you have this device, try running Generic x64 UEFI device instead, and update this wiki page.
== What works ==
* Wifi
* Touchscreen
* 3D accelleration
* Mainline
* EFI boot
== What has not been investigated ==
* Bluetooth
* GPS? (Unclear if the device has GPS or not)
* Audio
== Installation ==
Installation is unlike most Android based devices, as the Teclast X80 Pro uses EFI to boot. This process is likely to be repeatable across many similar EFI based tablets (like the Surface Pro lineup, and many other cheap x86 Windows tablets on ebay/amazon).
WARNING: this will remove your ability to boot into Android. Make backups!
NOTE: You cannot remove the "OS Selection" screen. This method will replace the Android boot option with postmarketOS.
Much more detail to be added, but basic outline:
* Install Arch Linux to USB key (Download ISO, dd if=archlinux-*.iso of=/dev/sdXY status=progress). Note: The Arch Linux is only used once to modify the boot files and to install postmarketOS.
* Connect keyboard and USB stick to tablet (through USB hub usually works best).
* The postmarketOS files (vmlinuz-teclast-x80pro, initramfs-teclast-x80pro, teclast-x80pro.img) should be available, e.g. on an SD card inserted in the Teclast device.
* Enter EFI/BIOS (Either enter bios directly by tapping esc/del, or through Windows -> settings -> Update/Recovery -> Recovery -> Advanced -> Reboot Now -> Additional Options -> UEFI Firmware Interface)
* Scroll over to "Boot"
* At the bottom, there are a list of overrides for this boot, select your USB stick.
* Wait for Arch Linux to boot and give you a shell.
* mount /dev/mmcblk0p2 /boot/efi
* refind-install --root /boot/efi
* cd /boot/efi && cp EFI/refind/refind_x64.efi EFI/BOOT/bootx64.efi && cp -rv EFI/refind/* EFI/BOOT/
* Edit EFI/BOOT/refind.conf, you may want to uncomment enable_touch.
* mkdir /mnt/boot/EFI/pmos && cp vmlinuz-teclast-x80pro /mnt/boot/EFI/pmos/vmlinuz && cp initramfs-teclast-x80pro /mnt/boot/EFI/pmos/initramfs.img This should probably be: mkdir /boot/efi/EFI/pmos && cp vmlinuz-teclast-x80pro /boot/efi/EFI/pmos/vmlinuz && cp initramfs-teclast-x80pro /boot/efi/EFI/pmos/initramfs.img
* dd if=teclast-x80pro.img of=/dev/mmcblk0p9
* Reboot. At OS selection, choose Android. You will see the rEFInd menu, select the postmarketOS kernel (the file name under the active icon should contain pmos). You should be booted into postmarketOS!
== Wifi ==
Samsung S3 guide...
== See also ==
* 
*
Texas Instruments OMAP 3 (OMAP3xxx)

== General description ==
The 3rd generation OMAPs (3430/3530/3630), all use a single-core ARM Cortex-A8 CPU.
They have a PowerVR SGX530 integrated 3D graphics accelerator, and also have an Image, Video, Audio (IVA2) accelerator. Most of the family also feature a TMS320C64x+ DSP.
== Devices ==
=== OMAP 3430 ===
=== OMAP 3630 ===
== See also ==
* 
* Linux ARM based TI OMAP SoCs mailing list
* TI OMAP4
* OMAP36xx Technical Reference Manual
Texas Instruments OMAP 4 (OMAP44xx)

== General description ==
The 4th generation OMAP CPUs (4430/4460/4470) use a dual-core ARM Cortex-A9 CPU, with two ARM Cortex-M3 cores, as part of the "Ducati" sub-system, for off-loading low-level tasks.
The 4430 and 4460 use a PowerVR SGX540 integrated 3D graphics accelerator, running at a clock frequency of 304 and 384 MHz respectively.
All OMAP 4 come with an IVA3 multimedia hardware accelerator with a programmable DSP that enables 1080p Full HD and multi-standard video encode/decode.
OMAP 4 uses ARM Cortex-A9's with ARM's SIMD engine (Media Processing Engine, aka NEON) which may have a significant performance advantage in some cases over Nvidia Tegra 2's ARM Cortex-A9s with non-vector floating point units.
It also uses a dual-channel LPDDR2 memory controller compared to Nvidia Tegra 2's single-channel memory controller.
== Security features ==
There are GP (= general purpose) and HS (= high security) devices out there. HS means that signed bootloaders are required. To distinguish
look at boot messages telling about GP vs HS. The low level check is
if ((value at 0x4A0022C4 >> 8) & 0x7 == 3)
 devicetype = general_purpose
== Boot order ==
Besides of the boot order defined by the wiring-up of the configuration pins, there is a possibility
to override it via software (Keyword: PUBLIC_SW_BOOT_CFG_ADDR) until the next cold reboot.
Tool for booting via usb, make sure to use the -4 option
== Devices ==
=== OMAP 4430 ===
=== OMAP 4460 ===
=== OMAP 4470 ===
== See also ==
* 
* Linux ARM based TI OMAP SoCs mailing list
* TI OMAP3
The-big-list-of-who-has-what-device

=== Usage ===
Use {{Owns device|device_page}} or {{Owns device|device_page|notes}} on your page to add it to the list,
e.g {{Owns device|Google_Nexus_5_(lg-hammerhead)|broken screen}}
 
You may want to purge cache to see changes (near edit button: More->purge cache)
On your userpage you can use {{My devices}} to include there the list of your devices
On device pages {{Device owners}} is available
===Every user===
* Human (homo-sapiens)
== The-big-list-of-what-device-is-owned-by-whom ==
Category:Community
The Mainline Kernel

#REDIRECT Mainlining_Guide
== Introduction ==
Examples:
* qcom-msm8974-lge-nexus5-hammerhead.dts
* qcom-msm8974-sony-xperia-honami.dts
* qcom-apq8064-sony-xperia-yuga.dts
* qcom-apq8064-asus-nexus7-flo.dts
When you don't have a result, try to find a dts file with the same chipset as your device (e.g. msm8974). Try to create a new one for your device based on that by creating a patch for linux-postmarketos-stable. If there is not even a dts file for the same chipset, you need to create one from scratch (no idea how to do that, good luck and please extend the wiki).
== Enable the mainline kernel for a new device ==
# 
# Set the kernel dependency to linux-postmarketos in the APKBUILD for the device package if you want to make it the default kernel (more information).
# Add the name of the generated dtb file (without path or extension) to the deviceinfo_dtb file in the deviceinfo file.
A good example of a device using a mainline kernel is the device-nokia-n900 package.
Thundercomm Dragonboard-845c (thundercomm-db845c)

The Qualcomm Robotics (RB3) Dragonboard 845c is a development board / robotics kit built by Thundercomm. It is designed as a development platform for embedded robotics or IOT products, it is the "reference" Snapdragon 845 device. Linaro test and maintain upstream Linux kernel support for it. It is also one of the reference devices in AOSP.
The db845c actually has a variant of the Snapdragon 845, codename "SDA845" it is identical except the modem doesn't have cellular capabilities, only wifi.
== Community Info ==
=== postmarketOS users that own the device ===
=== Maintainers ===
* Caleb
== See also ==
=== Internal pages ===
=== External links ===
* Kernel sources
__FORCETOC__
Category:Devices with known UART pinout
TianoCore

This is the open source implementation of UEFI spec. Mainly used for Lumias and newer Android devices (at least newer than msm8996), popular/high-end ARM platforms (think Raspberry Pi or the expensive ARM servers). Having a framebuffer is a must with the UEFI spec, hence it's trivial to set up a screen console output using this one (earlycon=efifb console=tty1). On Qualcomm laptops usually earlycon=efifb,ram is needed to ensure cache gets flushed.
Category:Bootloaders
Ticwatch C2+ (mobvoi-skipjack)

== Contributors ==
* ptrcnull
== Users owning this device ==
== How to enter flash mode ==
The watch supports flashing with fastboot.
You can enter fastboot with adb reboot bootloader, or by rebooting and tapping the screen with two fingers (see video here).
== Installation ==
WARNING: Doing this will delete ALL your data on the device, so backup all your data before continuing!
Before flashing postmarketOS you have to unlock your bootloader. To do so, you can run this command while in fastboot:
 fastboot oem unlock
Follow the general installation guide with vendor mobvoi and codename skipjack, return here when told to (at the "installation and flashing section").
Now run the following, pick a password when prompted.
 pmbootstrap install
Reboot back into fastboot (explained above).
pmbootstrap flasher flash_rootfs
pmbootstrap flasher flash_kernel
Reboot and you're good to go!
== Broken stuff ==
=== Screen ===
For an unknown reason, msm_iommu_secure_fault_handler_v2 fails to get register dump after boot and the screen stays black.
After disabling and re-enabling the display via following commands:
 # echo 4 > /sys/class/graphics/fb0/blank
 # echo 0 > /sys/class/graphics/fb0/blank
both IOMMU and the screen start working.
=== Modem/GPS ===
Device reboots after running msm-modem-downstream with following messages in kernel log:
 [ 148.027006] pil-q6v5-mss 4080000.qcom,mss: modem: Brought out of reset
 [ 148.078600] pil-q6v5-mss 4080000.qcom,mss: modem: Power/Clock ready interrupt received
 [ 148.078715] pil-q6v5-mss 4080000.qcom,mss: Subsystem error monitoring/handling services are up
 [ 148.079324] M-Notify: General: 7
 [ 148.126088] msm8952-asoc-wcd 7702000.sound: default codec configured
 [ 148.148391] msm8952-asoc-wcd 7702000.sound: ASoC: CODEC DAI cajon_vifeedback not registered
 [ 148.148744] msm8952-asoc-wcd 7702000.sound: snd_soc_register_card failed (-517)
 [ 148.486750] Fatal error on the modem.
 [ 148.486839] modem subsystem failure reason: fs_rmts_pm.c:855:[5, 6] rmts_read_iovec failed.
 [ 148.486900] subsys-restart: subsystem_restart_dev(): Restart sequence requested for modem, restart_level = SYSTEM.
 [ 148.489077] M-Notify: General: 8
No workaround found yet.
== See also ==
* Initial merge request
* Kernel source
Tigermedia Tigerbox TOUCH (tigermedia-tigerbox)

== Contributors ==
* User0
== Users owning this device ==
== How to flash the device / How to unlock the Bootloader ==
Unlocking the device is possible and really easy -
You need:
ADB with fastboot
A paperclip
A USB cable
How to unlock:
Insert the paperclip into device in shutdown state - power it on, it'll enter recovery mode.
From there, run:
 adb reboot fastboot
now in fastboot, unlock it:
 fastboot oem unlock
 fastboot oem unlock_accept
Now flashing is impossible (remote: 'not support "-u" option'), so we got to use ADB for that...
Note: you need to run unlock_accept in 5 seconds after running unlock.
Using ADB
Boot into recovery mode as described above.
To pull the boot partiton:
 adb pull /dev/block/mmcblk0p6 boot.img
To push it:
 adb push boot.img /dev/block/mmcblk0p6
== Installation ==
/* Not yet */
== See also ==
* Product website for Switzerland
* Product website for Germany
* Reverse Engineering Wiki
* Fastboot implementation docs
* U-Boot docs