nyuuzyou/wikis huggingface dataset:
Flatpak

Flatpak is a tool for managing applications and the runtimes they use. In the Flatpak model, applications can be built and distributed independently from the host system they are used on, and they are isolated from the host system ('sandboxed') to some degree, at runtime.
postmarketOS supports installing Flatpaks, similar to installing packages from the official Alpine repositories.
== Installation ==
Install (if not already) to install Flatpak and configure Flathub as a system-level flatpak repo.
=== Application management ===
To manage applications and repositories of Flatpak, you can use or .
== Why there is no postmarketOS-specific Flatpak repository ==
Flatpak has good sandboxing features. However, the packaging format is entirely different to APKBUILD, in syntax and in its philosophy. If we created our own Flatpak repository, we would have much more maintenance effort .
== See also ==
* Evaluating privilege separation for postmarketOS and Alpine apps
* Flatpak - ArchWiki
Category:Apps
Fly Spark (fly-iq4404)

== Contributors ==
* km2
== Maintainer(s) ==
* km2
== Users owning this device ==
== How to enter flash mode ==
 + (loading Recovery)
Connect usb cable and enter:
sudo adb start-server
When Recovery is fully loaded
adb reboot bootloader
When the fastboot logo appears on the phone
== Installation ==
You can install it on an sd card or flash it on your phone through recovery. To do this, instead of pmbootstrap install, run
./pmbootstrap.py install --android-recovery-zip --recovery-install-partition=data
It loads into recovery (I checked on twrp), go to advanced ones and click adb sideload. We connect the usb cable and run
./pmbootstrap.py flasher --method=adb sideload
And flashing the kernel
fastboot flash boot boot.img-fly-iq4404
== Photos ==
== See also ==
* Initial merge request
Fractal

Fractal is a matrix client developed as part of the Gnome project.
== Installation ==
Fractal is available in Alpine's community repository and can as such be installed as follows:
 # apk add fractal
== Troubleshooting ==
=== Passwords are not saved ===
On some postmarketos installation, no keyring is created by default. This can be solved by downloading the package from alpine repos, pressing File > New > Password Keyring, and naming it login. You may have to use seahorse to unlock the keychain on each reboot, if your UI does not support unlocking keychains.
=== Crash by missing dependency gtksink ===
If Fractal crash when loading conversation and in the output to terminal is "Missing dependency element: gtksink ..." it can be solved by installing "gst-plugins-good-gtk".
Category:Apps
FreeTube

FreeTube is a privacy-focused YouTube client, based on Electron. It has pretty good mobile & touchscreen support.
== Installation ==
Right now, FreeTube is only available as a Flatpak package via Flathub. Look at this page to setup Flatpak and Flathub on Alpine / pmOS. Once this is done, the following command installs PeerTube:
$ flatpak install flathub io.freetubeapp.FreeTube
== Wayland support (under Phosh) ==
FreeTube has at the moment no Wayland support and crashes on user interfaces using Wayland with cannot open display. On Phosh, you can force FreeTube to run under XWayland by unsetting the environment variable GDK_BACKEND or setting it to x11. Make these changes persistent through following command:
$ flatpak override --user --env=GDK_BACKEND=x11 io.freetubeapp.FreeTube
Be aware that there are some oddities with XWayland under Phosh.
Category:Apps
Fstab

This article is about /etc/fstab in postmarketOS.
=== Usage in the boot process ===
We used to rely on /etc/fstab to find the postmarketOS boot and root partitions by their label. We have to find partitions by their label, because we do not always know the exact location or UUID of the partition in advance. However, by just relying on the label, we get unpredictable behavior if installing postmarketOS on both the eMMC and the SD card ().
The initramfs accepts paths to the boot and root partitions as kernel parameters and falls back to searching by label, therefore it covers all use cases we have. Nowadays, we let the initramfs mount root and boot, and do not have any entries for them in /etc/fstab.
Category:Technical Reference
=== Enabling localmount service ===
If you want to add custom entries to your /etc/fstab (e.g. to mount your SD card) and want OpenRC to process the file during boot, enable the localmount service:
$ sudo rc-update add localmount default
=== Allowing non-superuser mounting ===
If you see the following error message in your tinydm log after start-up, you must allow non-root users to mount volumes:
(phosh:6215): phosh-mount-manager-WARNING **: 20:23:17.968: Failed to mount volume 'X': mount: /home/user/X: must be superuser to use mount.
To allow that, change the mount-options of the /etc/fstab entry to defaults,user (which is the equivalent of rw,suid,dev,exec,auto,nouser,async,relatime,user,noexec,nosuid,nodev).
You may wish to re-enable exec, etc. (e.g. by making your mount-options defaults,user,exec, which reinstates the exec option after it was disabled by the preceding user option), but please read mount(8) - Linux man page to understand why they default to 'no' when the user (or users) option is specified.
Related issue:
Full disk encryption

Also known as FDE for short.
If your device has a Y in the FDE column of the all devices table, you can enable full disk encryption with the --fde parameter.
Full disk encryption needs to be ported to devices individually following this guide.
== Changing LUKS Password ==
To change your LUKS password, connect your phone's storage medium to a Linux computer with installed.
Run the following command:
# sudo cryptsetup luksChangeKey <target-device> -S 0
I can get the target device by running the lsblk command. For example, if my storage medium's partition table looked like:
sde 8:64 1 14.7G 0 disk
├─sde1 8:65 1 110M 0 part
└─sde2 8:66 1 14.6G 0 part
To change my password, I would run:
# sudo cryptsetup luksChangeKey /dev/sde2 -S 0
== Mounting Additional Encrypted Drives At Boot ==
As per the following from Alpine and pmOS: https://wiki.alpinelinux.org/wiki/LVM_on_LUKS#Mounting_additional_encrypted_filesystems_at_boot and https://wiki.postmarketos.org/wiki/Fstab
This process will need a Key File that has the password to the encrypted drive. 
=== Generating and/or saving the Key File to be accessible for dmcrypt ===
Known password to the LUKS drive, below it is listed in /etc/ but the saving directory can be anywhere but needs to be only accessible to root, same with the storing folder for the key:
# mkdir /etc/luks-keys
# chmod +s /etc/luks-keys
# echo "<luks-password>" > /etc/luks-keys/<keyfile-name>
# chmod 400 /etc/luks-keys/<keyfile-name>
Randomly generated password (from Alpine):
# dd bs=512 count=4 if=/dev/urandom of=/root/crypt-home-keyfile.bin
# cryptsetup luksAddKey /dev/sdb1 /root/crypt-home-keyfile.bin
=== Mounting the encrypted drive ===
Alpine and pmOS, like Gentoo, uses the dmcrypt service rather than /etc/crypttab. 
Install and enable the following:
# apk add cryptsetup cryptsetup-openrc
# rc-update add dmcrypt boot
Add the following lines to /etc/conf.d/dmcrypt:
target=<mounting-name>
source='/dev/<target-device>'
key='<location and name of saved key file from section above, eg /etc/luks-keys/<keyfile-name>>'
 
Now fstab needs to be enabled and the drive added to the list:
# rc-update add localmount default
Edit /etc/fstab with the information from dmcrypt:
/dev/mapper/<mounting-name> /<mounting-location, eg /home/> auto nosuid,nodev,nofail,x-gvfs-show 0 2
Reboot!
== Troubleshooting ==
=== Blank screen ===
Touchscreen works but you can't see what you are typing. Use a keyboard and an OTG cable to enter the password and unlock it. You can also see the phone is still alive by switching with + + ~ . FDE prompt is usually on second console(F2).
Install msm-fb-refresher to solve the issue:
# apk add msm-fb-refresher
# mkinitfs 
Category:Technical Reference
Fydetab Duo (fyde-fydetabduo)

== Contributors ==
* WhyNotHugo
== Users owning this device ==
== How to enter flash mode ==
As per the official documentation, the device can be booted into Loader Mode with the following sequence:
* Press and hold the VolUp button
* Press and release the Power button
The software bootloader handles this combination of keys. If the device is flashed with an image that fails to boot, this combination will no longer work. In such circumstances, the device needs to be recovered:
* Remove the screen by gently sliding a plastic pick between the screen and the frame. Take care; the screen's flex is rather short and must be handled delicately.
* Disconnect the battery to avoid accidental electrical damage.
* Press and hold the MASKROM button on the PCB.
* Connect the USB cable to the PC (while still holding down the button).
As indicated in the upstream documentation, the cable bundled with the FydeTab Duo doesn't work for data; it only work as a charging cable.
== Installation ==
The device can be flashed using rkdeveloptool. There are no working postmarketOS images at this time.
== Booting ==
The Fydetab Duo boots from the eMMC SDD by default. It expects the OS to be packaged as a FIT Image which contains a bootloader image as well as a collection of device trees.
== See also ==
G-PLUS FL8005A (gplus-fl8005a)

== Users owning this device ==
== Installation ==
== Panel ==
There are 2 panel variants, and lk2nd is required to enable the panel.
== Audio ==
Headphone microphone breaks sometimes.
== Charging ==
smb1358-charger driver is not available, so the charging is not controlled and there is no charging status reporting.
== USB OTG ==
Another smb1358-charger driver issue. It's currently unable to power up a usb device in mainline.
== Acelerometer ==
Could be mc3230, but the driver is not receiving interrupts at the moment.
It also needs to be implemented to have compatible entrys.
== Ambient Light/Proximity Sensor ==
The driver for intersil,isl29044a ambient light/proximity sensor is not available.
== FDE ==
It's not possible to unlock with touchscreen or a keyboard connected via USB OTG at the meantime.
== See also ==
== References ==
GM12U320

GM12U320 chip is a type of GPU chip that allow to get video out via usb.It is mainly used in some projectors like Acer C120 mini projector.
==Driver==
===GM12U320 Tiny DRM Driver===
GM12U320 Tiny DRM driver is the driver for GM12U320 usb gpu. It is in the mainline. None of the postmarketOS kernels have the GM12U320 Tiny DRM driver so it needs to be enabled in the kernel config (DRM_GM12U320) and compiled in.
Also it has a fake edid data that is hardcored into the driver that edid data is made only for Acer C120 Mini.
Category:USB_GPU
GNOME Console

GNOME Console (formerly King's Cross) is a terminal emulator intended for use with GNOME/Phosh. It is intended to be a simpler alternative to GNOME's default terminal and Tilix and works great with phones.
== Installation ==
GNOME Console is available in Alpine's Community repository and can as such be installed as follows:
 # apk add gnome-console
On postmarketOS v21.12 and earlier, GNOME Console is known as kgx as it uses the old name there.
 # apk add kgx
Category:Apps
GPE

GPE Palmtop Environment is a handhelp shell which provides a complete environment of software components and applications for tasks such as personal information management (PIM), audio playback, email, and web browsing. It can be used as a FOSS alternative to various of PDA systems but can also be used on other distributions.
= Status =
GPE is using X11 as its windowing system. See Handhelds, for detailed information about the current progress of GPE.
= Potential =
GPE seems to be a good UI for E-Ink and older devices.
= Similar UIs =
Although GPE is competent, you might want to consider LXQt or Xfce.
= Consideration =
ROX which has a purpose to be a lightweight desktop UI might be useful in porting GPE.
GPodder

gPodder is a podcast client and media aggregator for desktop computers. We have packaged tpikonen's work in progress adaptive version and it works quite well.
== Installation ==
Install the adaptive fork of gPodder:
$ sudo apk add gpodder-adaptive
Next, install a player such as lollypop or vlc-qt. (gPodder does not have an integrated player: )
$ sudo apk add lollypop
== Usage ==
Launch gPodder with the desktop icon. As soon as you select an episode to play, your default media player will open the episode.
== Tips and Tricks ==
* In addition to the graphical user interface, gPodder has a command-line client. Start it with gpo.
* VLC can be configured to automatically resume playback, and you can add seek buttons to the toolbar
* Seek buttons to phosh can be added with this patch (requires building phosh from source)
== See also ==
* gpodder should have an adaptive GTK / libhandy GUI
* Adding an internal player to gpodder
* proper podcast player for postmarketOS (compares a few podcatchers)
* initial MR for gpodder-adaptive
* phosh#664 media-player: add seek forward/back buttons
* tpikonen/gpodder libhandy enhanced Fork of gPodder
Category:Apps
GUD

GUD USB Display Protocol is an open protocol for a USB GPU. It can be used for turning your device into a USB GPU. 
== Driver ==
=== DRM Driver ===
GUD DRM driver is the driver for usb gpu that use GUD USB Display Protocol. It is in the mainline. None of the postmarketOS kernels have the GUD DRM driver so it needs to be enabled in the kernel config (DRM_GUD) and compiled in.
=== USB Gadget Driver ===
GUD USB gadget driver is the driver for turning your device into a USB GPU via GUD USB Display Protocol. It's an out of tree kernel module.
== See Also ==
GUD project
A demo of using redmi2 as usb gpu with Postmarket OS
GUD Wiki
Category:USB_GPU
Gajim

= Gajim on postmarketOS =
Gajim is an instant messaging client for the XMPP protocol which uses the GTK+ toolkit. The name Gajim is a recursive acronym for Gajim's a jabber instant messenger.
Released under the GNU General Public License, Gajim is free software.
A 2009 round-up of similar software on Tom's Hardware found version 0.12.1 "the lightest and fastest jabber IM client".
== Installation ==
First setup the dependencies
 sudo apk add g++ python3-dev py3-gobject3 alpine-sdk openssl-dev libffi-dev gettext
Then download the source tarball from https://gajim.org/downloads.php?lang=en#source
unpack it, enter the directory and execute
 pip3 install --user .
This should even create a 
== Known issues ==
* [N900] At the first start Gajim used 100% CPU for a longer time - this was probably due to the fact that I was a member of a few big MUCs.
* [N900] It's not extremely fast...
* some icons seem to be missing
== Possible first steps ==
It may be a good idea to start the MUCs minimized, for a more mobile-friendly UX.
== Which server should I choose? ==
See this page for information about compliance with modern XMPP extensions: https://conversations.im/compliance/
Category:Apps
Galaxy J2 Prime (SM-G532M)

== Contributors ==
* Schlemuel
== Users owning this device ==
== How to enter flash mode ==
== Installation ==
=== Using pmbootstrap ===
Follow Installation/Using pmbootstrap. When asked for the device's vendor/codename, select sansumg as the vendor and sm-g532m as the codename. 
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
Note: Work in progress, I will add more information later when I get (if I do) the kernel compiled
Games

This is a list of packaged games
== Runs on software rendering ==
; chocolate-doom [armv7,aarch64] : Open source implementation of the first doom engine, needs a nonfree doom.wad or can use the opensource freedoom.wad
; openttd,openttd-opengfx [armv7,aarch64] : Open source implementation of Transport Tycoon Deluxe
; openrct2 [armv7,aarch64] : Open source implementation of Rollercoaster Tycoon 2, needs nonfree gamedata to work
; snes9x [all] : Open source Super Nintendo Entertainment System emulator
; openmw [x86_64,aarch64] : Open source implementation of Morrowind game engine, needs Morrowind game files to work
== Needs 3D acceleration ==
; xonotic [x86_64] : First person shooter, used to be called Nexuiz
== Untested, but packaged software ==
* mame
* quakespasm [appears to work correctly on ARMv8 on oneplus6t. Not mobile friendly, requires bt keyboard]
* retroarch
Category:Apps
Geary

Geary is an email client based on GTK+.
== Installation ==
 # apk add geary
== Troubleshooting ==
If Geary doesn't fit the screen, run:
 $ gsettings set sm.puri.phoc scale-to-fit true
or alternatively if dconf is installed:
 $ dconf write /sm/puri/phoc/scale-to-fit true
== External resources ==
https://wiki.gnome.org/Apps/Geary
Category:Apps
Geeksphone Peak (gp-peak)

== Contributors ==
* Pierre Rudloff
== Maintainer(s) ==
* Pierre Rudloff
udev does not work correctly so we have to trigger rules manually.
poweroff/reboot does not work correctly, it stops all the services but does not shutdown the device.
Also the device freezes after a few minutes. This seems to be caused by a modem failure:
Jan 1 01:59:59 localhost kern.err kernel: [ 574.209688] SMSM: Modem SMSM state changed to SMSM_RESET.
Jan 1 01:59:59 localhost kern.err kernel: [ 574.209948] Notify: start reset
== How to enter flash mode ==
Press both volume keys + power key until you see the Geeksphone logo.
== See also ==
* Initial pull request
* Geeksphone kernel source
Geeksphone Revolution (gp-revolution)

== Contributors ==
* Rudloff
== Maintainer(s) ==
* Rudloff
== Status ==
It does not boot (it goes straight to recovery).
According to this document, the bootloader requires a signed boot.img so it might not be possible to use our own.
== How to enter flash mode ==
Press volume down and power button at the same time.
== Installation ==
The Revolution uses the Intel bootimg format, similar to the Asus Zenfone 5 (asus-t00f).
This tool can be used to generate an image in this format.
== See also ==
* WIP kernel branch
* Geeksphone kernel (mirror)
* Intel MID
General Mobile E-Tab 4 (gm-mehmet)

== This page is WIP ==
There may be missing or wrong information.
== Contributors ==
* 19atlas
== Users owning this device ==
== How to enter flash mode ==
Press + to boot into recovery mode (i want to recommend using TWRP Recovery)
For fastboot, try adb reboot fastboot.
== Installation ==
We recommend using recovery mode (ex. twrp). (see)
== Mainline component status ==
Element type 	Element 	Works?	Notes
Chipset 	Exynos 4412 	 	
Graphics 	Mali-400MP4 	 	
PMIC (Regulators)	max77686 	 	Supported in mainline
Fuel gauge 	MAX17040 	 	Supported by MAX17042 driver
Charger 	MAX8903 	 	Supported in mainline (though no other DTSes use it yet...)
Touchscreen 	Focaltech ft5x0x or Atmel MXT1664S	 	Atmel supported, Focaltech unclear (need exact model number, but should be supported by edt-ft5x06 driver?)
Display 	LTL101AL03 	 	Not in mainline, but should be simple to implement
Backlight 	PWM backlight 	 	Can use the pwm-backlight driver.
Buttons 	gpio-keys 	 	Volume up/down and power button.
Audio 	WM8985 	 	The codec itself is supported but we might need more to get it to work
Camera 	ON Semiconductor AS0260 	 	Not in mainline,
GPS 	UBLOX G6010 	 	Not in mainline
Accelerometer 	Bosch BMA150 	 	Supported in mainline. Oddly enough, downstream handles it in some Yamaha-related driver (grep for YAS_ACC_DRIVER), drivers/input/misc/yas_cfg.h
Magnetometer 	Alps HSCDTD007/008 	 	Downstream sources initially led to Yamaha YAS530, grep for YAS_MAG_DRIVER, drivers/input/misc/yas_cfg.h; but dmesg claims HSCDTD007/008. Either way, supported in mainline.
Light sensor 	ISL29023 	 	Supported in mainline by ISL29018 driver
Some parts of this have been verified with a MEHMET_HW_VE1 [0x7] revision tablet.
== See also ==
* deviceinfo hw
* deviceinfo hw backup
* mehmet pmaports
* mach-mehmet source
* i am working for mainlining
General Mobile GM 8 Go

== Contributors ==
* Logkos
== Users owning this device ==
=== How to enter flash mode ===
* Connect a USB cable
* Power the device off
* Hold + 
* select fastboot
* unlock bootloader using fastboot oem unlock
== Installation ==
Use pmbootstrap to build your own installation image.
$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flashing flash_rootfs
== See also ==
WIP downstream kernel that can be compiled with gcc6 is here.
Generic-x86 64 (Generic-x86 64)

This is a generic device, meant to support x86_64 devices such as laptops, tablets, and desktops. It only supports devices that use UEFI bootloaders.
== Contributors ==
* craftyguy
== Users owning this device ==
== Installation ==
Use pmbootstrap to build your own installation image.
Installation will depend on the device, but typically it involves flashing pmOS to a removable disk, booting the removable disk on the target device, and using pmOS to flash a new pmOS image to the local storage on the device. This process will be improved in the future.
Generic MSM8909 (qcom-msm8909)

This is a generic port for msm8909 based devices. This port is experimental and is Work-In-Progress.
== Supported Devices ==
All msm8909 devices and some msm8916 devices that can only run armv7 kernel should be supported by this generic port.
== Installation ==
=== extlinux.conf based boot ===
Install lk2nd to your device. Currently you will need 17.0+ branch of lk2nd.
Then you can follow Qualcomm_Snapdragon_410/412_(MSM8916)#Installation.
== See also ==
* Generic MSM8916 (qcom-msm8916)
Generic MSM8916 (qcom-msm8916)

This is a generic port for msm8916 based devices. This port is experimental and is Work-In-Progress.
== Supported Devices ==
All msm8916 devices that can run aarch64 kernel should be supported by this generic port.
== Installation ==
=== extlinux.conf based boot ===
Install lk2nd to your device.
Then you can follow Qualcomm_Snapdragon_410/412_(MSM8916)#Installation. Pick "extlinux" when prompted for the kernel type.
=== EFI based boot ===
Install lk2nd+U-boot based boot chain from msm8916-mainline/gen-uboot-img.
After that you can install the EFI based OS image to an sdcard or generate a split rootfs and flash it to emmc partitions.
Pick "efi" when prompted for the kernel type.
== See also ==
* Generic MSM8909 (qcom-msm8909)
Generic MSM8953 (qcom-msm8953)

This is a generic port for Qualcomm Snapdragon 450/625/626/632 (MSM8953) based devices.
== Supported Devices ==
All msm8953 devices are supported which have lk2nd port and supported by linux-postmarketos-qcom-msm8953 kernel.
== Installation ==
* Follow the Installation guide and your device wiki page.
=== Pre-built images ===
Extract and install image files of "qcom-msm8953".
$ fastboot flash boot qcom-msm8953-lk2nd.img
$ fastboot flash userdata qcom-msm8953.img # You can use system also but userdata is recomended
=== pmbootstrap ===
$ pmbootstrap init # choose Vendor: qcom Device codename: msm8953
$ pmbootstrap install
$ pmbootstrap flasher flash_lk2nd
$ pmbootstrap flasher flash_rootfs
== Limitations ==
=== GPU ===
GPU is not working out of box with generic device package cannot select specific firmware package for the device it should be installed manually. 
=== Device Specific === 
Everything should work like in the original device packages except device specific configs if something is missing it should be installed or configured manually.
== See also ==
* Generic MSM8909 (qcom-msm8909)
* Generic MSM8916 (qcom-msm8916)
Generic MSM89x7 (qcom-msm89x7)

This is a generic port for Qualcomm Snapdragon 425/427/430/435 (MSM8917/MSM8920/MSM8937/MSM8940) based devices.
== Supported Devices ==
All msm89x7 devices are supported which have lk2nd port and supported by linux-postmarketos-qcom-msm89x7 kernel.
== Installation ==
* Follow the Installation guide and your device wiki page.
$ pmbootstrap init # choose Vendor: qcom Device codename: msm89x7
$ pmbootstrap install
$ pmbootstrap flasher flash_lk2nd
$ pmbootstrap flasher flash_rootfs
== See also ==
* Generic MSM8909 (qcom-msm8909)
* Generic MSM8916 (qcom-msm8916)
* Generic MSM8953 (qcom-msm8953)
* https://github.com/msm89x7-mainline