nyuuzyou/wikis huggingface dataset:
Rules for merging

== Workflow ==
* Use mrhlpr, so we have the MR ID in the commit message.
* Review other people's MRs, and merge their stuff if they have enough approvals (see table below)
== Approval requirements ==
 	Critical fixes 	Trivial MRs 	Any other MRs 	Move device from category 	Enable kernel options across multiple kernels
pmaports 	1 any approval,notify maintainer 	1 any approval 	1 package maintainer approval+ 1 any approval	1 approval from M + 2 CT + 1 CT/TC/M + minimum 1 week	2 approvals
pmbootstrap 	1 any approval,notify maintainers(only CT can merge)	1 maintainer approval	1 maintainer approval 	does not apply 	does not apply
Other projectswith a maintainer 	1 any approval,notify maintainers 	1 any approval 	1 maintainer approval 	does not apply 	does not apply
Other projectswithout a maintainer	1 any approval 	1 any approval 	1 any approval,a maintainer shall besought 	does not apply 	does not apply
Any approval references anybody with permission to approve.
Maintainers are listed in projects.
Approvals from merge request authors do not count. If the maintainer creates a merge request, "1 approval from M" becomes "1 approval from other maintainer, if such maintainer exists, or otherwise 1 any approval".
Enable kernel options across multiple kernels: can be done in one merge request, does not need approvals from maintainers because then it would be too much effort to enable kernel options across all kernels. It can be reverted afterwards if there is a good reason.
=== Examples ===
Critical fixes:
* some devices don't boot anymore without a specific fix
* edge blog posts
Trivial MRs:
* typo fixes
* fix broken links
* aport-kind package upgrades in pmaports
== Testing requirements ==
* pmaports edge: any person in a MR thread confirms that a MR works
* pmaports stable: one person from the team confirms that a MR works
** device specific MRs that the team can't test: require confirmation of device maintainer that it works on stable
== Backporting ==
Backporting features from pmaports edge to stable is done in service packs. So the new feature has some additional testing time in edge, before it potentially breaks something in stable.
Critical fixes can be backported immediately, after proper testing to make sure that there is no breakage.
All patches for stable branches must go through edge first and get backported from there. The only exception are patches that fix build failures that only happen on stable.
Category:Admin
Run pmbootstrap on non-x86 64 arches

While most people are running pmbootstrap on x86_64, it is also possible to run it on other architectures supported by postmarketOS. As of writing, some of the package/image building related tools are only built for x86_64 in the official binary packages repository (blocked by ). This article covers related errors, and how to work around them. If your problem is not listed here, ask in the chat or issues for help and consider adding the solution to your problem.
=== Building a PinePhone image on stable channel ===
The PinePhone depends on the crust package, which is being cross compiled from the native arch to the or1k-elf architecture. When trying to build an image for the PinePhone on the stable channel, pmbootstrap will currently display the following error:
$ pmbootstrap install --sdcard=...
...
[16:00:39] NOTE: You can edit the 'arch=' line inside the APKBUILD
[16:00:39] ERROR: Can't build 'binutils-or1k-elf' for architecture aarch64
If you are fine with running edge as well, simply switch to the edge channel in pmbootstrap init and try again. Only if you want to build for the stable channel, use the following workaround.
Enter the pmaports dir, then change arch="x86_64" to arch="all" in the following files:
temp/binutils-cross-embedded/APKBUILD
temp/gcc-cross-embedded-stage1/APKBUILD 
temp/gcc-cross-embedded/APKBUILD
temp/newlib-stage1/APKBUILD
Make sure that you have answered Build outdated packages during 'pmbootstrap install'? in pmbootstrap init with yes (y). Then try the pmbootstrap install command again, and pmbootstrap will build the missing dependencies for your host architecture (it may take some time, on the PinePhone two hours or so). Then it will proceed with building the image.
Category:Guide
Runtime Power Management

Most postmarketOS devices running the mainline kernel lack runtime power management.
Runtime power management allows battery savings when the device is in use.
== Check if Runtime PM is enabled ==
* Check if enabled: /sys/bus/*/devices/*/power/runtime_enabled
* Check status: /sys/bus/*/devices/*/power/runtime_status
== Tooling ==
* Intel's Powertop
* USB-C powermeter
* /sysfs interface
* Schematics
== Unused devices ==
GPU, USB hubs, etc. are power hungry, make sure they are properly suspended.
You might also want to make it suspend faster than the default.
== Voltage ==
Reducing the voltage to the minimum also helps a lot to save power and reduce heat.
Check all regulators and turn them towards the lower end of what is allowed.
You can check the power domains in /sys/kernel/debug and make sure they are really off when the device is unused. On OMAP devices, you might enable autosuspend on uarts if protocol supports it. You might loose the first character when new input arrives.
== Devfreq ==
* CPU frequency scaling
* DRAM frequency scaling
== Clocks ==
The more often a signal changes, the more power is consumed, so look around if any clocks can be turned off,
so some device might be the last user of some high-frequency PLL through some divider. Check /sys/kernel/debug/clock/clk_summary
== Troubleshooting ==
When you experience a lot of hangs make sure:
* Regulators used by other components are not turned off until all the components using this regulator are suspended.
* Check the ramp delays of regulators to make sure they have enough time to stabilize
Category:Technical Reference
SHARP AQUOS PHONE SERIE SHL22 (sharp-shl22)

== Contributors ==
* fumiya
== Maintainer(s) ==
== Users owning this device ==
== How to enter flash mode ==
Fastboot mode is unavailable.
You can flash by dd from root shell.
Flash to recovery partition is recommended,
because key combination for recovery mode is unavailable.
You can boot postmarketOS by "adb reboot recovery" from normal boot mode.
== Installation ==
== See also ==
SKY I'm Back (pantech-ef71)

== Contributors ==
* HexagonWin
== Maintainer(s) ==
HexagonWin
== Users owning this device ==
== How to enter flash mode ==
If your bootloader is unlocked, when you boot it will prompt you to click the wheel key to enter Boot menu.
If you don't have bootloader unlocked, turn the device off and click wheel key and power button simultaneousely to enter Boot menu.
Navigate by clicking wheel key and select with the power key.
== How to enter the Pantech Developer Menu ==
In the boot menu, there is a "Pantech Developer Menu".
To enter this, it needs a password (Special key combinations).
Click with wheel - power - wheel - wheel - power key, and it will show the pantech developer menu where you can see more info.
(You can also enter Pantech's proprietary PDL-OS Download mode here)
== How to re-lock device ==
You have to first flash IM-110's aboot, this is not recommended.
This can even brick your device.
== Installation ==
Fastboot installation works well, but sometimes fail for an unknown reason.
Micro SD Card slot installation works well. You can also dualboot with android by installing pmOS on the micro sd card, and flashing pmOS and Android to each Recovery partition and the android boot partition.
Recovery zip installation was the most stable
== Problems ==
For an unknown reason, the USB port does not work. You can only charge the phone, however OTG does not work and computer also does not detect it. According to a unofficial LineageOS, etc rom developer for this phone, it uses Pantech's codes for it, and needs to be changed to caf codes in the future. While the developer said that it can work with the kernel he made for cm-14, this is untested. pmOS is currently using lineage-16 kernel he made.
Device needs proprietary Qualcomm drivers from the stock firmware and the /vendor partition in the device, because the device uses Qualcomm Wireless Lan device inside it.
This device is not upstreamed yet, as I (HexagonWin) is being very busy. 
== Mainline? ==
The xiaomi-santoni device which has a similar Soc has some developed mainlining effort, however it is not in the torvald's tree and I (hexagonwin) do not know how to do this, so this isn't done yet.
== See also ==
* SKY IM-100 device document in Namu Wiki (Korean Wiki-wiki website)
* Kernel used in the postmarketOS
* Article that explains the name
SWAP

In 2020s, devices with 2GB of RAM have been a basic requirement for modern usage with UI, web browsing and video playback.
However some devices are produced as budgets phone with 1GB / 1.5GB, or even 256MB on those ancient devices.
With memory reserved by kernel for something like modem, there is even only 0.8GB /1.3GB available in userspace.
SWAP or SWAP file can be added for additional memory, which enables you to run Phosh or Plasma Mobile with smaller RAM, and even use Firefox to browse the web or playing video, etc.
=== Partition ===
To add some swap with unused partitions:
postmarketos-msm8916:~# mkswap /dev/disk/by-partlabel/cache 
mkswap: /dev/disk/by-partlabel/cache: warning: wiping old swap signature.
Setting up swapspace version 1, size = 300 MiB (314568704 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
postmarketos-msm8916:~# swapon /dev/disk/by-partlabel/cache
postmarketos-msm8916:~# free -h
 total used free shared buff/cache available
Mem: 893.7M 211.7M 421.0M 68.3M 260.9M 591.6M
Swap: 300.0M 0 300.0M
=== Swapfile ===
Or files:
postmarketos-msm8916:~# dd if=/dev/zero of=swap bs=4M count=128
128+0 records in
128+0 records out
postmarketos-msm8916:~# chmod 0600 swap
postmarketos-msm8916:~# mkswap swap
Setting up swapspace version 1, size = 512 MiB (536866816 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
postmarketos-msm8916:~# swapon swap
postmarketos-msm8916:~# free -h
 total used free shared buff/cache available
Mem: 893.7M 212.6M 14.4M 68.2M 666.7M 590.7M
Swap: 812.0M 512.0K 811.5M
== Mount swap by default ==
=== fstab ===
And add swap partitions and files into fstab.
postmarketos-msm8916:~# nano /etc/fstab
# This file is *not* used to mount / or /boot.
# More information: https://postmarketos.org/fstab
/dev/disk/by-partlabel/cache swap swap nofail 0 0
/root/swap swap swap nofail 0 0
=== OpenRC ===
Then make swap mounted by default.
postmarketos-msm8916:~# rc-update add swap
 * service swap added to runlevel default
postmarketos-msm8916:~# rc-update add swapfile
 * service swapfile added to runlevel default
== See also ==
* Low RAM usability
* ZRAM
Category:Guide
Samsung Acclaim (samsung-sch-r880)

== Contributors ==
* TechEdison
* Cupcake1972/Hacker420
== Maintainer(s) ==
* TechEdison
== Status ==
*Device can be rooted
*Partition map discovered
*boot.img pulled from BML4
*Using a port of Linux 3.0.100 for the Galaxy Spica (same chipset)
*Kernel fails to compile during linking
*Kernel compiles. See warning below.
*Cannot reboot into download mode via key combo (only using adb)
*Cannot flash using Heimdall
*Flashing via Odin may work but I was unsuccessful 
--NO FURTHER TESTING DONE AT THIS POINT
I have given up on this phone for now. Don't have the time to manage it.
== Errors/Warnings ==
I bricked my initial board trying to flash the kernel using a flasher app (same one used for custom recovery). It now freezes at the SAMSUNG logo when powered on and does nothing else. My backup board runs Android 2.1 and won't permanent root successfully.
== BML Partition Map Definition ==
Discovered using Binwalk
# cat /proc/partitions
 major minor #blocks name
 179 0 7761920 mmcblk0 - SD Card
 179 1 7757824 mmcblk0p1 - SD Card partition 0
 137 0 513280 bml0/c - All BML partitions
 137 1 128 bml1 - Copyright string: "Copyright (C) SAMSUNG Corporation 2006-2009"
 137 2 1280 bml2 - Various PNG, JPEG, and TIFF files. Probably boot animation.
 137 3 384 bml3 - One PNG image, 320 x 480. Probably boot logo
 137 4 6400 bml4 - boot.img
 137 5 153600 bml5 - /system
 137 6 226816 bml6 - /data
 137 7 118272 bml7 - /cache
 137 8 6400 bml8 - boot.img backup
 138 5 150948 stl5 - /system
 138 6 223020 stl6 - /data
 138 7 116172 stl7 - /cache
== See also ==
Partition mapping info
Kernel being used
Specific kernel config
Open source driver for the GPU (might be used later)
Tool used to root the phone
Samsung Ativ S (samsung-i8750)

== Documentation ==
There has been an attempt at replacing the signed bootloader of the Ativ S with the bootloader of the Samsung Galaxy S III: https://forum.xda-developers.com/showthread.php?t=2528652
See the GitHub project for more info.
UEFI exploit for non-Lumia Windows Phones: https://gus33000.me/2019/01/05/secureboot-flaw-for-all-wp-devices-literally/
== External links ==
* 
* Codename and specs
Samsung Chromebook (google-snow)

== Contributors ==
* Jenneron
== Users owning this device ==
== Installation ==
See Chrome OS devices page.
Text on the screen during initial run (resizing the filing system) is very small and mostly unreadable.
== Audio ==
There are two issues:
* HDMI codec is not supported;
* When booting with inserted headphones, pulseaudio does not switch output to headphones and you have to switch it manually. Consider enabling device and booting pmOS with disconnected headphones as stock bootloader may beep at the maximum volume and you will lose your hearing.
=== rev4 ===
Audio does not work on rev4 devices yet. You can check board revision with cat /proc/device-tree/compatible.
To start working with ucm you can do strace alsaucm reload to find out where does alsa expect the files to be placed. Files for rev5 can be a good reference: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/master/device/community/device-google-snow/ucm
If you implement it please submit a merge request to pmaports repository.
== Modem ==
Some snow variants have a 3G modem which requires ModemManager:
 sudo apk add modemmanager 
 sudo rc-service modemmanager start 
 sudo rc-update add modemmanager default
Samsung Exhibit II 4G (samsung-t679)

== Notes ==
This is an active work in progress, which you can view/contribute to here: https://github.com/jkayani/pmbootstrap/tree/device-samsung-t679
You can view the original kernel sources for the device here: https://github.com/jkayani/exhibit-kernel. I originally obtained them from here (thanks Jocala!): https://github.com/Jocala/Samsung-Exhibit-II-Kernel, but had to put them in my own repo so that the source was in the root.
== Contributors ==
* Exhibit24g
== Maintainer(s) ==
* Exhibit24g
== Links ==
Kernel: https://github.com/jkayani/exhibit-kernel
postmarketOS port to Samsung Exhibit II 4G: https://github.com/jkayani/pmbootstrap/tree/device-samsung-t679
Samsung Exynos 3

Samsung Exynos 3 are a serie of mobile SoC announced by Samsung in 2010-2015. they are manufactured using a 28nm process technology. The chip powers several low-end devices.
== Devices ==
=== Exynos 3475 ===
==== Contributors ====
* Ivaylo Ivanov
==== Notes ====
===== Display =====
There isn't any support for DECON and DSI yet, so panel drivers aren't a thing. However, display is known work with simple-framebuffer (simpledrm) with most devices.
== Exynos 3250 ==
=== Devices ===
=== Specifications ===
* 2x ARM Cortex-A7 MPcore
* ARM Mali-400 GPU
=== More information ===
* phonedb.net
== See also ==
* v6.10rc7 kernel tree with support for 3475
Category:Samsung Exynos
Samsung Exynos 4

The Exynos 4 family of chips consists of the Exynos 4210 released in 2011 as well as the Exynos 4412 released in 2012, alongside with its dual-core variant - the Exynos 4212. The Exynos 4415 was released two years later in 2014.
The Exynos 4210, 4212 and 4412 are relatively well supported in mainline, and share a fair bit of code. Support for the Exynos 4415, however, was dropped as there were no devices in mainline that used it. In postmarketOS, the mainline kernel is packaged as .
Please join the matrix room for Exynos 4 related discussions: https://matrix.to/#/#exynos4xxx-mainline:matrix.org
== Devices ==
=== Exynos 4210 ===
=== Exynos 4212 ===
=== Exynos 4412 ===
=== Exynos 4415 ===
== USB OTG ==
As of kernel 6.10.0, USB OTG should work on devices that have it enabled (currently that's the Galaxy S III, Note II and the Galaxy Tab 3 8.0). The only caveat is that occasionally, peripheral mode may no longer work after plugging in an OTG cable until the system is restarted.
Progress on fixing these issues is being tracked in exynos4-mainline/linux#11.
== Hardware video decoding (MFC) ==
The Exynos 4 has a built-in hardware video decoding/encoding block called MFC v5. It has a mainline driver, which 
uses the v4l2m2m API (see Hardware video acceleration for more information). The firmware is packaged as .
However, it does not currently work, throwing errors about unsupported formats. Help in figuring this out would be appreciated. If you're feeling adventurous, feel free to investigate - the module is enabled in the v6.10 kernel.
== Camera ==
 introduced changes on the kernel config side to allow for using the cameras; there is a pending Megapixels MR adding support for the SIII/Note 2's cameras to libmegapixels. There was some earlier work in to add camera support for the Galaxy S2.
The drivers for the sensors are rather quirky, and the FIMC driver may need changes too; this is yet to be investigated.
== See also ==
* On phonedb.net: Exynos 4210, Exynos 4212, Exynos 4412, Exynos 4415
* On linux-exynos.org: Exynos 4210, Exynos 4412
* The public datasheet for the Exynos 4210
* Exynos 4212 iROM Booting Guide
* S5PV210 User's manual
* S5PV210 iROM Application Note
* The public datasheet for the Exynos 4412
* Exynos 4412 SEC User's Manual
* Exynos 4412 SCP User's Manual
* Exynos mainline porting
* p4note U-Boot: https://github.com/Lutjens-PoL/u-boot
Category:Samsung Exynos
Samsung Exynos 7870 Octa

Samsung Exynos 7870 Octa is a mobile SoC announced by Samsung in 2016. It is manufactured using a 14nm process technology. The chip powers several low-end devices.
== Devices ==
== Contributors ==
* sleirsgoevy
* naproxen
== Notes ==
=== Display ===
DECON and DSI drivers have been developed, And DECON has been partially upstreamed. However, display is known work with simple-framebuffer with most devices.
=== Modem ===
Modem is known to work with an experimental out-of-tree driver developed by sleirsgoevy.
== See also ==
* Samsung Exynos 7870 - Samsung Semiconductor
* Kernel Package
Category:Samsung Exynos
Samsung Exynos 9

Exynos 9 is a series that includes all SoCs manufactured with the Samsung 10nm node (exynos8895/9810/9110).
== Exynos 8895 ==
=== Devices ===
=== Specifications ===
* 4x 2.3 GHz Mongoose M2 & 4x 1.7 GHz Cortex-A53
* Mali-G71 MP20
=== Mainline status ===
Boots to initramfs with clocks, serial buses, sd card storage and touchscreen working.
==== CPUs ====
All cores work but no frequency scaling yet.
==== Serial buses ====
8895 uses USIv1, patches for which are already in LKML.
==== USB ====
USB at highspeed and peripheral mode works in my near-mainline trees, will be in January.
=== More information ===
* ivoszbg's tree that contains branches with 8895-related work
* SoC specification
Category:Samsung Exynos
== Exynos 9810 ==
=== Devices ===
==Exynos 9110 ==
=== Devices ===
Samsung Exynos 990

=== Devices ===
=== Specifications ===
* 4x Cortex-A55, 2x Cortex-A76, 2x Mongoose 5
* Mali-G77
=== More information ===
The patches for this SoC are merged to linux-next. linux-next repo
"Bleeding-edge" changes can be found under our GitHub org. exynos990-mainline GitHub org
Category:Samsung Exynos
Samsung Galaxy A01 (samsung-a01q)

== Contributors ==
* km2
* nugget095
== Users owning this device ==
== How to enter flash mode ==
== Current status ==
The kernel is successfully compiled. But the final boot.img is not loaded (goes to Download Mode). Perhaps this is due to AVB, because Even stock image.gz and ramdisk.gz Collected with MkBootimg with identical command line arguments boot.img is also not loaded. 
== Installation ==
not yet.
== See also ==
https://github.com/ave4/kernel_msm8952_a015f - kernel source
Samsung Galaxy A04 (samsung-a04)

== Contributors ==
* Mertoalex
* ΞЖKↃ
== Users owning this device ==
== Boot modes ==
Boot mode	PWR	Vol+	Vol-
Recovery 	Y 	Y 	N
Download 	N 	Y 	Y
Note: plug power cable to the phone while doing Download combinations.
== see also ==
GSMArena.
Samsung Open Source.
Unoffical TWRP port on XDA forums.
Samsung Galaxy A05s (samsung-a05s)

== Contributors ==
* Tjari
== Users owning this device ==
== How to enter recovery/Download mode ==
* Press and hold + simultaneously while device is powered off, then plug USB cable in for Download mode.
* Press and hold + simultaneously while device is powered off for recovery mode.
* Press and hold + simultaneously for 7-8 seconds while device is powered on to force reboot. Once time is up immediately release the keys and press one of combinations above before boot logo appears, otherwise device will boot normally.
== Installation ==
Device packages have not been upstreamed just yet, so you can't install postmarketOS right now.
== Current status ==
This device uses GKI 2.0 with its usual shenanigans. Usually on GKI 2.0 devices it is possible to use bootimg header version 2 or 0 to force the bootloader to ignore vendor_boot and init_boot (for Android 13+). However, this device's bootloader is quirky and only accepts bootimgs made in a certain way. If the "malformed" bootimg is flashed, the device goes to a glitched Download mode with either an "error verifying vbmeta" or OEM Lock being "ON" (despite having turned it OFF by unlocking the bootloader).
== See also ==
* Kernel source code
Samsung Galaxy A10 (samsung-a10)

== Contributors ==
* Chaosleo07
== Users owning this device ==
== Notes ==
The Exynos 7884B appears to be just an underclocked 7885(might have other quirks, i dont know) so i guess i will be working with stuff for that
== How to enter flash mode ==
Press and hold + while plugging it in the Computer. Then click to confirm.
== Unlocking the Bootloader ==
!!!WARNING!!! 
This will reset your device to Factory settings and blow the Knox E-Fuse! You have been warned. 
Samsung made this easy (thankfully): Reboot into Download mode (hold down Vol+ and Vol- while plugging it into a computer) and hold down Vol+.
This way, you can also relock the bootloader (with the only benefit being that the message at the Beginning is gone, no more Knox)
//Could you, please, explain a bit more the useful of keeping knox/efuse, or to remove it? thanks!
== Installation ==
/* Not yet */
== See also ==
Samsung Galaxy A12s (a12s)

== Contributors ==
* 674d527a
* Aunonno
== Users owning this device ==
== How to unlock bootloader ==
# Go to > and click on seven time
# Go to > and turn it on
# Power down device
# Connect device to computer through a USB cable
# Press and to turn on
# Once the phone starts to boot up, immediately release and press 
# Release all keys then long press to enter unlock mode
# Press to confirm
== How to enter flash mode ==
# Power down device
# Connect device to computer
# Press and to turn on
# Once the phone starts to boot up, immediately release and press 
# Release all keys then press to continue
# You should now be in download mode
== Installation ==
Use pmbootstrap to build your own installation image.
$ pmbootstrap init
$ pmbootstrap install --fde
You will get an error here so everything after here is just a guess on how you will flash
$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher flash_kernel
== See also ==
Kernel Package
Device Package
TWRP