nyuuzyou/wikis huggingface dataset:
Display manager

== List of display managers ==
* tinydm, default on Phosh, Plasma Mobile, LXQt and Sxmo installations
* lightdm, default on Xfce4 and MATE installations
* gdm, default on GNOME installation
* sddm, default on Plasma Desktop installation
* lxdm, not used by default
== tinydm ==
The tinydm log file can be located in ${XDG_STATE_HOME:-~/.local/state}/tinydm.log.
== LightDM ==
In postmarketOS, Xfce4 and MATE use LightDM display manager. The greeter is set to "slick-greeter". Autologin is disabled by default.
The slick-greeter can be configured in Settings -> Login Window (Xfce4) or System -> Adminstration -> Login Window (MATE). The background picture of the greeter can be changed. In tab "Users", section "Automatic login", a username can be inserted to enable autologin. In tab "Settings" the onboard layout of the virtual keyboard in the greeter can be changed.
On MATE the option "Draw user backgrounds" to apply the users wallpaper on the greeter doesn't work.https://github.com/mate-desktop/mate-settings-daemon/issues/170
To hide/show the virtual keyboard in the greeter, it can be unchecked/checked in the accessibility menu in the top bar.
* On installations older than July 2024 the virtual keyboard will show up again after reboot. This is because on these installations the home directory of user "lightdm" is at /var/run/lightdm, which is not consistant over boots. Affected users would need to logout, stop lightdm service, change the home directory of user "lightdm" to /var/lib/lightdm and start lightdm service again. Or alternatively enable autologin to avoid "seeing" the greeter with the virtual keyboard.
=== CanGraphical issue ===
If LightDM starts but there is no picture on screen, check if loginctl show-seat seat0 reports it as CanGraphical=0. If that is the case, in /etc/lightdm/lightdm.conf replace #logind-check-graphical=true with logind-check-graphical=false to make LightDM ignore that nonsense.
=== loginctl does not see the session ===
Enable virtual terminals in your kernel config.
== References ==
Displaylink/libdlo

It is library for interacting with usb 2 displaylink in userland (or in kernel?) .Quite outdated and unmaintained.
==Test Utility==
It come with a Test Utility called
 test1
It test utility will display few image via the displaylink after it has run.
==See Also==
* Offical site of displaylink-mod/displaylinkfb,libdlo 
* libdlo gitlab repo (the cgit repo link in the offical site is dead)
DongshanPi NeZha STU (dongshanpi-nezhastu)

== Contributors ==
* Bastindo
== Users owning this device ==
== Installation ==
Use pmbootstrap to install pmOS to a microSD.
$ pmbootstrap init
$ pmbootstrap install --sdcard=/dev/sdX
== Gallery ==
File:dongshanpi-nezhastu.png|thumb|left|Top-down view of DongshanPi NeZha STU
== See also ==
* Initial merge request
* linux-sunxi wiki page
* 
*
Dtbtool

The dtbtool is needed to combine multiple dtb (device tree blob) files into one dt.img file, that can then be attached to the end of the boot.img for Android devices (postmarketos-mkinitfs does that).
=== Do I need it? ===
You only need this tool if pmbootstrap bootimg_analyze on a known working boot.img file for your device outputs:
deviceinfo_bootimg_qcdt="true"
=== Using an alternative version ===
There exist lots of versions of this dtbtool. Most of our devices works with the (Python) version from Skales, which is properly versioned and maintained. However, it is incompatible with some (older?) kernels, where the dt.img file was properly generated with code based on the original C version. So, at the time of writing four different dtbTools have been packaged and are available:
* dtbTool, Skales version mentioned before
* dtbTool-exynos, required for exynos devices
* dtbTool-sprd - Spreadtrum version
* pxa1088-dtbTool and pxa1908-dtbTool, packaged into pxa-mkbootimg and used by devices with Marvell PXA SoCs
If you would like to test if Skales' version produces the same output as the LineageOS version (which is what we had packaged before), download the files from here and place them in aports/main/dtbtool-lineage. Build it with pmbootstrap build dtbtool-lineage and depend on dtbtool-lineage instead of dtbtool in your kernel package, then change the dtbTool line in your kernel APKBUILD to dtbTool-lineage.
Category:Technical Reference
Dump proprietary flashing procedures

While some devices can be flashed with the open fastboot, some devices require a proprietary program to flash to the devices. In postmarketOS we want to use free and open source software for everything, hence we need open flashing tools as well. This guide describes how you can record the flashing process of the proprietary program we're trying to replace.
=== Preparation ===
* This should work on both Linux and Windows (some flashers only work on Windows!)
* To sandbox the proprietary code we're running and to avoid recording sensitive data by accident, consider setting up a virtual machine (e.g. VirtualBox) for this task.
* Install Wireshark (on Windows: from their homepage, on Linux: with your package manager)
* Download the flashing program
* Get a file you can safely flash on your device. If you flash the wrong file, you might brick your device (especially if you are flashing your bootloader)
* Disconnect as many USB devices as possible, so their data does not get recorded in the dump. Do not transfer any files via USB and do not type in sensitive data on your keyboard, especially passwords and login information. Only use your keyboard to start the flashing process!
* If you have any questions, ask in the channel
=== Creating the dump ===
* Linux: prepare Wireshark with a filter for your mobile device
* Start wireshark
* Wireshark: Start recording the USB port
* Run the proprietary flash program
* Flash exactly one file to the device, and only something rather uncritical like flashing TWRP to the recovery partition
* Wireshark: Stop recording
* Wireshark: Save the dump to a file
* Send the dump to someone who's working on reversing flashing tools. Do not publicly upload them, they may contain sensitive data (all devices plugged into your PC etc.)
=== See also ===
* OpenRazer: Reverse Engineering USB Protocol
Category:Guide
Duoqin F21 Pro (duoqin-f21pro)

== Contributors ==
* Bastiaan Teeuwen
== Users owning this device ==
== How to enter flash mode ==
=== MTK Preloader ===
First, turn off the device. Then while holding down , insert the USB cable.
=== Recovery mode ===
* Power off the device
* Hold down (heart shaped key) + 
* Press until the device turns on.
* Release once the boot logo shows up
* Release the other buttons once you see "No command"
* Shortly press + (this may take a few tries)
== Installation ==
Use pmbootstrap to build your own installation image.
== See also ==
E8372h-153

== Contributors ==
* Hitechshell
== Users owning this device ==
== How to enter flash mode ==
There are two programs:
1) from forth32 
allows you to load the vendor bootloader (with fastboot support) into RAM (the repository contains downloads for almost all modems from Huawei on Balong SoC)
(program only in Russian, but supports also Windows)
2) from hitechshell 
allows you to load arbitrary code into RAM and run it on the device (for example, U-boot). In addition to the payload for launching, it is necessary to compile a microprogram to initialize the RAM (the source code is in the repository)
Both programs use the emergency protocol. To enter this mode, you must close the test points before power on the device.
== Hardware ==
Parts 	Components 	comment
Chipset 	hi6921 	
PMIC 	HI6559 	
WiFI 	RTL8192ES 	driver has name rtl8192cd
Power IC(?) 	HI6361GFC 	
Power Amplifier	TriQuint TQP9059	
== See also ==
* Downstream kernel source code
* WIP U-boot fork for Balong SoC
* (over 1k pages) thread on the Russian-language forum 4pda
Epson Moverio BT-200 (epson-embt2ws)

== Contributors ==
* Andi
== Users owning this device ==
== How to influence/change boot order ==
Boot order is eMMC, USB, UART, uSD. That can be overwritten by software until the next cold boot:
Commands in U-Boot, similar could be done via /dev/mem
mw.l 0x4A326A0C 0xCF00AA01
mw.l 0x4A326A10 0xC
mw.w 0x4A326A14 0x0
mw.w 0x4A326A16 0x43
mw.w 0x4A326A18 0x45
mw.w 0x4A326A1A 0x05
mw.w 0x4A326A1C 0x0
mw.w 0x4A326A1E 0x0
mw.l 0x4A326A00 0x4A326A0C
and then warm-reboot (e.g. reset button or reset command in newer u-boots).
If you want to reorder the boot order temporarily, you can do that from the original system if
it is rooted, use setup-bootchoice from https://github.com/akemnade/bt200tools.
eMMC boot can be skipped using a 470 Ohm resistor from eMMC DAT 0 to GND on powerup. So that
would be a recovery if loader on eMMC is broken.
== Accessing serial console in original system ==
JP1 (soldering jumper on the back side = gpio-138) needs to be shorted to enable serial console on factory kernel/u-boot.
(4 2.54mm pitched holes). Voltage level is 1.8V 
== Boot process of the original system ==
Xloader is located at sector 256
and loads U-Boot from sector 512 as a raw headerless binary on the same device as Xloader also was loaded from. CONFIG_SYS_TEXT_BASE of such a u-boot has te be set to 0x80e80000. Size limit is 0x60000 bytes.
Factory U-Boot tries to load a sdboot.scr from the first partition (which must bet FAT) of the uSD card which is executed if the md5sum of the first line is 92b12a37d1913ac41d2956120a475aca, if not, normal boot from eMMC is done. Fastboot can be activated via commandline.
== How to enter flash mode ==
== Installation ==
System can be installed on uSD card. To be able to boot that you need to either:
* zero the xloader and u-boot area of the eMMC (after doing a backup)
* hack the integrated u-boot bootcmd to ignore check_code test results to boot the sdboot.scr (e.g. via usb mass storage mode via ums command): there is some checkcode; if test $? -eq 1 in the builtin u-boot env, replace that by e.g. checkcode; if test 33 -eq 1
* use one of the methods to temporarily change boot order
* use u-boot commandline to manually load stuff (which can also be a modern u-boot, see u-boot wiki)
== See also ==
* Factory kernel
* branch epson-6.1, mainling attempts (look also at the corresponding wiki)
* branch v2022.10-epson u-boot mainling attempts (look also at the corresponding wiki)
Essential Phone (essential-mata)

== Contributors ==
* laserbeamh
* takizawa.fumiya
== Maintainer(s) ==
== Users owning this device ==
== How to enter flash mode ==
The Essential Phone uses Fastboot as the flashing protocol.
To enter Fastboot mode, hold while powering on the device. Let go of when "Fastboot mode" displays on the screen. 
== Installation ==
 fastboot --set-active=a
 pmbootstrap flasher flash_rootfs --partition system_a
 pmbootstrap flasher flash_kernel --partition boot_a
== Status ==
Mata successfully boots into a stable session however, there is currently no touch capability. The device required is /dev/event5 which will load on a TWRP partition, but not in pmOS due to blobs.
Weston and GNOME display graphical outputs.
== See also ==
* Initial merge request
* 
*
Existing Alpine installation

To turn Alpine into postmarketOS:
* Install Alpine Linux
* Enable the community repository
* Add one of these mirrors to the top of /etc/apk/repositories, Change master to the correct release for your alpine version (eg: postmarketos v22.06 on alpine 3.16, see releases):
https://mirror.postmarketos.org/postmarketos/master
* Add this key as a file called "build.postmarketos.org.rsa.pub" into /etc/apk/keys
or
* Add postmarketOS public key with apk:
# apk add -u --allow-untrusted postmarketos-keys
* Use your device package kernel for your device: (skip this if installing onto a desktop\laptop computer)
# apk add -u postmarketos-base device-nokia-n900
* Install the packages for the UI you want, for example:
 
# apk add -u postmarketos-ui-xfce4
or
# apk add -u postmarketos-ui-weston
 
(Use device-qemu-amd64 for a x86_64 virtual machine installation, but this will also install a kernel -- maybe it makes sense to introduce a new "docker device" without any kernel, you could experiment with that if you want.)
If you want to use the postmarketOS initramfs, make sure that you adjust the partition labels accordingly.
Note that alpine users start at 1000 and postmarketos users start at 10000. Some files provided by postmarketos-base may not match the existing system. eg: /etc/conf.d/tinydm
== See also ==
* Turning an existing x86_64 Alpine Linux installation into a postmarketOS one fails
* troubleshooting the first installation which was done this way
Category:Guide
External resources

This list is a collection of presentations, talks and other resources that are somehow related to postmarketOS and can help you to dive in some specific topics.
= Topics =
=== Alpine ===
* Building a distro with musl libc (why and how Alpine Linux did it) (FOSDEM, 2017)
=== Apps / Programs ===
* apk-gtk: GTK2 and 3 frontend for Alpine's package manager
* Kirigami UI: A framework for building cross-platform programs, that work on phones (Linux, Android, iOS?) as well as on the desktop (Linux, Windows).
* Open Source Game Clones in case you're bored with all the emulators out there which also run on Linux.
=== U-Boot ===
* State of the U-Boot (ELC, 2017)
* Enabling New Hardware in U-Boot (ELC, 2017)
* Investigating U-Boot for the Galaxy S3
=== Kernel ===
* Unifying Android and Mainline Kernel Graphics Stack, (PDF) (ELC, 2017)
* Forward Porting Google Nexus 5X / 6P - Lessons from the Trenches and What's Next (ELC, 2017)
* Linux Graphics Demystified
* eudyptula challenge series of programming exercises for the Linux kernel (solutions)
=== Linux distribution ports to new devices ===
* Console Hacking 2016 - PS4: PC Master Race (CCC, 2016) Linux on the PS4 with sound and accelerated 3D!
* Linux on Google Pixel C (2015)
=== Programming ===
* POSIX shell string operations explains stuff like ${var:=bar}
* Rich's sh (POSIX shell) tricks
=== Reverse engineering ===
* See also the links in the Firmware article
* simhacks (Defcon 21)
* Identifying serial ports
* Introduction to reverse engineering and assembly
* Windows_Phone
=== Mobile operating systems ===
* Firefox OS: Boot2Gecko Architecture (discontinued)
= Books =
* Android Internals: A Confectioner's Cookbook (PDF)
= Conferences =
* Embedded Linux Conference 2017, (YouTube playlist)
Category:Technical Reference
F(x)tec Pro1(x) (fxtec-qx1000)

== Contributors ==
* NotKit
* Danct12
== Maintainer(s) ==
== Users owning this device ==
== How to enter flash mode ==
* Fastboot: While device is powered off, hold down the volume down key and hold down the power button.
* Recovery: While device is powered off, hold down the volume up key and hold down the power button.
== Installation ==
== See also ==
* Initial merge request (closed, not merged)
* Second attempt, now using mainline kernel.
F(x)tec Pro1X (fxtec-qx1050)

F(x)tec Pro1X is the successor of the F(x)tec Pro1. It features a Snapdragon 662 System on Chip and a QWERTY flip keyboard.
The successor is considered as a downgrade to many people as it featured a weaker SoC compared to previous model which has a Snapdragon 835, multi-state to single-state camera key and removal of the secondary back camera.
== Contributors ==
* Danct12
== Users owning this device ==
== How to enter flash mode ==
=== Fastboot ===
Hold down and while the device is off and release the power button as the phone vibrates. If that doesn't work, try again.
Another way to enter Fastboot mode is to enter Recovery mode (see below) and choose "Reboot to bootloader" option.
=== Recovery ===
Hold down and while the device is off until you're in recovery mode.
If you're using stock F(x)tec recovery, you'll see the Android mascot lying open with "No command." below it. When on this screen, hold down power button and then press and release the button to enter the recovery menu.
=== EDL ===
==== Bootloader ====
Hold down and and plug in the USB cable while the device is off. The device should now be in QDL mode.
==== Deep Flash Cable ====
If your bootloader is corrupted, the deep flash cable can be used to reflash the bootloader or other part of the device.
== Installation ==
=== Prerequisites ===
To install prebuilt images, you will need a computer with (the latest) fastboot software.
This can be obtained by installed the android-tools package on Linux or by installing the Android SDK Platform-Tools on Windows, Mac (or Linux).
=== Enable off-mode charging ===
This device ships with off-mode charging disabled by default. It is recommended to enable it.
fastboot oem enable-charger-screen
fastboot oem off-mode-charge 1
=== Build and install the image ===
Since there is no prebuilt images, you need to build it yourself.
The vendor is "fxtec", the codename is "qx1050".
Follow the pmbootstrap article, until you have done the install action (note that --fde stands for full-disk-encryption - this can also be left out).
 
pmbootstrap install --fde
Reboot back into flash mode as explained above.
By default the rootfs will be flashed to system, this doesn't leave much free space for your applications / data, if you don't mind factory resetting the device you can instead flash to userdata by specifying the partition like below.
fastboot erase dtbo
pmbootstrap flasher flash_rootfs --partition userdata
pmbootstrap flasher flash_kernel
fastboot reboot
== Known issues ==
=== Power Sensor ===
A user has reported that trying to read anything from this sensor does not work.
=== Touchscreen ===
Due to F(x)tec cheap out on filter components on the touch screen, the touch screen will not work properly on mainline. There is currently no fix for this issue.
== See also ==
=== Internal pages ===
* Documentation on A/B slots
=== External links ===
* Kernel sources
* Initial merge request.
* Switch to sm6115-mainline repo and add firmware support
* Device package
* Kernel package
FL2000

FL2000 chip is a type of GPU chip that allow to connect monitor via usb. 
==Driver==
===Offical FL2000 Driver===
This is a out of tree kernel module for those gpu . That driver isnt a drm driver so you cant use this driver for video out but you can use it for radio transmitting.
===FL2000 DRM Driver===
This is a out of tree kernel module for those gpu . That driver is a drm driver so you can use this driver for video out
==See Also==
FL2000 DRM Driver
Official FL2000 Driver
Official FL2000 Driver (with Major clean-up)
FL2000 DRM Driver (Updated Fork)
Using those gpu at radio transmitter 
Category:USB_GPU
Fairphone 1 (fairphone-fp1)

== Contributors ==
* Luca Weiss (z3ntu)
== Maintainer(s) ==
* Luca Weiss (z3ntu)
== Users owning this device ==
== Installation (Android Recovery Zip) ==
* pmbootstrap install --android-recovery-zip --recovery-install-partition data
* Flash the resulting zip using the latest CWM build from chrmhoffmann
== Installation (only boot partition) ==
* Flash the newest lk.bin (see https://github.com/z3ntu/android_kernel_fairphone_FP1/wiki/More-stuff#fastboot)
* Press vol-up during booting and select "fastboot"
* You can now flash the boot partition with "fastboot flash boot boot.img-fairphone-fp1"
== Installation (SP Flash Tool) ==
* Load the MT6589_Android_scatter_emmc.txt with SP Flash Tool (e.g. v5.1352.01)
* Deselect all partitions and choose boot.img-fairphone-fp1 for the BOOTIMG and fairphone-fp1.img for the USRDATA partition.
* Press 'Download' and plug in your phone while it's turned off
== See also ==
* Initial pull request
* Initial pull request (reopened)
* Kernel source
Fairphone 2 (fairphone-fp2)

== Contributors ==
* Luca Weiss (z3ntu)
== Device owners ==
== How to enter flash mode ==
Hold while booting the device. The notification LED will blink blue when in fastboot mode.
== Installation ==
For installation you need to flash lk2nd and flash the rootfs. Do not flash the boot partition since lk2nd uses fs-boot functionality to boot the kernel from the /boot partition of the rootfs.
$ pmbootstrap flasher flash_lk2nd
$ pmbootstrap flasher flash_rootfs --partition userdata
Phosh and Plasma Mobile UIs have been shown to work.
== Device status ==
While the infobox gives a general overview, there's some important extra notes here.
=== Stability ===
In general msm8974 devices on mainline kernel aren't particularly stable. You may find random reboots which can lead to data loss. IOMMU is not yet supported so there's no memory protection for components like GPU. No CPU frequency scaling is supported so your device might run hot. No fuel gauge (for battery percentage reporting) is supported so you won't see if your battery runs below 0% and won't turn off, which might damage your battery.
=== Display module (panel/touchscreen) ===
The kernel should support both the old and new display modules. You can identify the display module on your device based on this forum post. However if you have the old display module, the touchscreen might not work due to issues with power sequencing (turning screen off turns touchscreen off, however turning screen on doesn't reinitialize the touchscreen).
Lk2nd should automatically detect which display panel is installed and adjust the Linux dtb accordingly.
== Links ==
* postmarketOS wiki page for downstream kernel only
* LineageOS kernel source
* Bootloader/lk source
* Fairphone Forum thread
Firmware

Firmware is generally software which runs on another processor in the system, e.g. a wireless controller, a GPU... This software is sometimes stored in ROM attached to the relevant controller, but in recent times, controllers tend to rely on the host operating system to load their firmware for them.
These firmware files aren't used directly by the kernel, they're loaded by the kernel onto other pieces of hardware.
In postmarketOS we use this proprietary firmware to get different parts of the system working, mostly for Wi-Fi, Bluetooth, Modem and in some cases Audio.
== Firmware files ==
If your device has an official LineageOS port, you can find the proprietary files, which often also include the firmware, at TheMuppets. Do note, that if you're using the "Find file" (shortcut: T), that it might not find all files as those repositories are generally quite big and not completely indexed by GitHub.
In the case that your device has an unofficial LineageOS port, you can often find a repository in the same naming scheme (proprietary_vendor_MANUFACTURER) at the same location as the kernel source and device tree.
=== Find ===
If you can't find the firmware for your device in an existing repo, you will have to grab them from your device or an OTA image.
In some cases it's a partition that's mounted at /firmware (e.g. labelled modem), in other cases /firmware will have multiple partitions mounted into subdirectories (e.g. labelled radio, adsp & wcnss). Consult the fstab of your installation for different mount points.
In other cases, the firmware will just be in the normal filesystem, e.g. at /vendor/firmware/, /etc/firmware or other locations. You can use the find command to search for e.g. *.mbn
There's also the possibility of extracting the firmware from a file called NON-HLOS.bin which is sometimes delivered with OTA updates. These images are FAT32 images which can be mounted with sudo mount -o ro NON-HLOS.bin mountpoint.
=== Extract ===
The firmware of interest for us is adsp.*, mba.*, modem.* and wcnss.*. Note that not all of those firmware files exist on all devices.
The next step is to import those files into a git repository and pushing it to a publicly accessible location.
=== Packaging firmware ===
The procedure on how to package firmware is documented here.
Category:low-level