nyuuzyou/wikis huggingface dataset:
Libre Computer AML-S905X-CC-V1.0 (librecomputer-lepotato)

The AML-S905X-CC is a single board computer made by Libre Computer. Quite well supported in mainline because of the manufacturer funding mainline development for this board and using mainline in official images.
== How to enter USB mode ==
You need a USB Type-A to USB Type-A cable. Libre Computer sells these with an eMMC module.
* Unplug everything from your SBC
* Plug your USB cable to the USB port next to the ethernet port
 here
 \/
 ___ __ __
 | | |__| |__|
 |___| |__| |__|
* Press the K11/Uboot button behind the ethernet port while plugging the other end of your USB cable to your computer
* After 5 seconds or so, release the button
* Run lsusb, you should see something like this:
$ lsusb
[...]
Bus 001 Device 055: ID 1b8e:c003 Amlogic, Inc. GX-CHIP
[...]
== Installation ==
You can either install to an SD card or a Libre Computer eMMC module.
Use pmbootstrap to build your own image, like so:
$ pmbootstrap init # manufacturer: librecomputer, codename: lepotato
=== eMMC ===
Enter flash mode and clone Libre Computer's pyamlboot fork:
$ git clone https://github.com/libre-computer-project/pyamlboot -b scripts pyamlboot-librecomputer
Boot the board from USB and let U-Boot enter USB mass storage mode:
$ cd pyamlboot-librecomputer
$ ./run.sh aml-s905x-cc ums-emmc
Install postmarketOS:
$ pmbootstrap install --sdcard=/dev/sdb # replace `sdb` with the path of your emulated UMS
=== SD Card ===
$ pmbootstrap install --sdcard=/dev/mmcblk0 # replace `mmcblk0` with the path of your SD card
== What works ==
=== Audio ===
HDMI audio is untested, but should work. Analog audio works.
For analog sound to work you need to install an asound.state file:
# curl https://raw.githubusercontent.com/libre-computer-project/libretech-raspbian-portability/master/apps/alsa/aml-s905x-cc.state > /var/lib/alsa/asound.state
This shouldn't be needed anymore once we start using UCM2 profiles.
=== Display ===
Display won't work, depending on the monitor. This is a known issue, see https://hub.libre.computer/t/aml-gxl-no-video-or-bad-video-on-monitor/331
== Community info ==
=== Maintainers ===
* FerassElHafidi
=== Contributors ===
=== Users owning this device ===
== See also ==
* Initial merge request
* 
*
Libre Computer Cottonwood (librecomputer-cottonwood)

The AML-S905D3-CC and AML-A311D-CC are single board computers made by Libre Computer and belonging in the Cottonwood family. Except for the SoC used they are identical. Quite well supported in mainline because of the manufacturer funding mainline development for this board.
== Installation ==
Installation to an external USB storage device and eMMC have been tested and confirmed working.
Use pmbootstrap to build your own image, like so:
$ pmbootstrap init # manufacturer: postmarketos, codename: trailblazer, kernel: linux-postmarketos-amlogic
=== If installing to eMMC ===
If you're installing to USB or an SD card, you can skip this entirely until pmbootstrap install
Make sure the SPI/MMC switch is set to SPI and connect the board to your computer using a USB-C cable. Interrupt U-Boot and type the following in the prompt:
=> ums 0 mmc 0
Your eMMC device should appear as a normal storage device on your computer. Follow the "Writing to storage" section. Once that is done, you can:
CTRL+C - Operation aborted
=> boot
=== Writing to storage ===
$ pmbootstrap install --sdcard=/dev/storage_device # replace `mmcblk0` with the path of your USB storage device or eMMC/SD
== Issues ==
=== HDMI audio ===
HDMI audio seems to not work with my monitor at least. Could be because there's no UCM profile or asound.state provided at the moment.
=== Ethernet ===
Ethernet works. 
On older kernels and SPI flash firmware, it may not work on librecomputer-solitude however. The following is printed to dmesg:
[ 87.674546] stmmaceth ff3f0000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
[ 87.899591] stmmaceth ff3f0000.ethernet eth0: PHY [mdio_mux-0.0:00] driver [RTL8211F Gigabit Ethernet] (irq=26)
[ 88.107415] stmmaceth ff3f0000.ethernet: Failed to reset the dma
[ 88.107432] stmmaceth ff3f0000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed
[ 88.107440] stmmaceth ff3f0000.ethernet eth0: __stmmac_open: Hw setup failed
If that happens to you, upgrade your SPI flash U-Boot. Instructions for how to do that can be found here: https://hub.libre.computer/t/libre-computer-board-bios-firmware-update-images/3113
== Users owning this device ==
== See also ==
* Initial merge request
* Device announcement on community forum
* 
*
Lk

LK (Little Kernel) loads a boot.img file, that was directly written to the Android boot partition of the device (without any partitioning, just the file directly; this is not the postmarketOS boot partition, see partition layout). This file consists of the postmarketOS Linux kernel and initramfs, which we flash to that partition during the installation. Flashing instructions are passed to LK with the fastboot command (abstracted in pmbootstrap flasher).
Notably LK does not allow to boot a different kernel from an SD card (without hacks like chainloading another bootloader that is stored in boot.img, which potentially increases the boot time and is a whole lot of effort to implement). LK is licensed under the MIT license, without copyleft, meaning that vendors are not required to release the source code of their LK bootloader forks. In practice, they end up being proprietary - we don't get the source code and can't make changes.
Category:Bootloaders
Localization

This article explains how to set up language and locale for the entire system and apps in particular.
== Locale ==
Locale names are typically of the form language[_territory][.codeset][@modifier] , where language is an ISO 639 language code, territory is an ISO 3166 country code, and codeset is a character set or encoding identifier like ISO-8859-1 or UTF-8.
To set up your locale you need to change LANG and LC_COLLATE in /etc/profile.d/locale.sh file. 
Config for Russian language, for example:
From now software, that has the translations files will use selected language.
== Languages packages ==
In Alpine Linux, translations for applications are shipped in a separate package with -lang at the end of their name. Usually, it can be easily found by $ apk list packagename-lang or $ apk list packagename-lang-* , if each language ships in separate package (like libreoffice).
It's possible to automatically install -lang subpackages for installed software by installing lang metapackage: $ apk add lang 
Category:Guide
Lollypop

Lollypop is a mobile-friendly music player made in GTK 3. Worth noting is that it inhibits suspend, so that your phone keeps playing instead of suspending while it's playing music.
==Installation==
Lollypop is available in Alpine's testing repository and can as such be installed via the following:
 # apk add lollypop
==Media format support==
Instructions on the page for vvave apply to Lollypop as well.
Category:Apps
Lomiri

The Lomiri desktop environment originally developed by Canonical and now maintained by the UBports Foundation. Originally, Lomiri usually only worked on Ubuntu Touch using Halium and custom Click apps. On postmarketOS, Lomiri can run using mainline Linux and all the benefits of the Linux app ecosystem.
== About ==
Originally called Unity8, Lomiri was meant to bridge the gap between desktop and mobile computing through the function called convergence. Lomiri originally only used the Mir display server, but now uses a mixture of Wayland and Mir, with XMir handling XWayland.
== Installation ==
* pmbootstrap init
* Select lomiri in the UI selection.
* Install like normal.
== Troubleshooting ==
Since Lomiri is in such an early state, these tips are very useful for development and porting.
* To start a Click GUI app through SSH or a terminal:
lomiri-app-launch <app id> [uris]
* To start a normal GUI app through SSH or a terminal:
export DESKTOP_FILE_HINT=/path/to/.desktop/file/of/launched/application
lomiri-app-launch [app-name]
* To change brightness using repowerd:
repowerd-brightness-tool
[preset or value]
* (NOTE: Scaling does not work at all yet.) If the automatic scaling seems off, edit your lomiri-deviceinfo file to change the gridunits value to the value of:
[display ppi] * 0.05236
* To stop the Wizard from running on first boot
mkdir -p $HOME/.config/lomiri
touch $HOME/.config/lomiri/wizard-has-run
== Known Issues ==
See 
== See also ==
* Initial Merge Request
* Lomiri: The Final Frontier (And Old Friend) 2024-04-03 blog post from JustSoup321 about history and current status of Lomiri in postmarketOS
Low RAM usability

While postmarketOS has been historically used on devices with as little as 256MB RAM (see Nokia N900), modern usage on less than 2GB RAM can be challenging.
== Interfaces ==
UIs can be categorized as follows, considering at least some space left to running applications.
* LXQt, i3, sway for 256MB+ RAM
* MATE, Xfce4 for 768MB+ RAM. 
** In both cases, make sure to disable the "compositing" window manager feature from settings to achieve much higher performance on older processors.
* Phosh, KDE Plasma for 1GB+ RAM.
** KDE Plasma Desktop should be used in "Xorg mode" for lower resource consumption 
* GNOME for 2GB+ RAM
== Browsers ==
Not much, since latest versions of both Firefox and Chromium are intensive on RAM usage. Netsurf is arguably still the best choice for low-power devices, but text-based browsers are ultimately the best choice for very limited devices.
== Apps == 
For basic GUI utility apps, the set of CoreApps (Qt5) may be a good choice to minimize the memory footprint.
== Workarounds ==
There are some ways to workaround the limited size of physical memory.
=== ZRAM ===
A kernel module that compresses memory to allow for fitting more data onto physical memory. This however consumes CPU cycles to do the compression, so it is a tradeoff between memory and CPU. With that considered, it is still usually much better than running out of memory and having to deal with the instant degradation of performance caused by that.
=== SWAP ===
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.
== See also ==
* ZRAM
* SWAP
Category:Guide
LuneOS UI

thumb| LuneOS UI running in QEMU
User interface from LuneOS, a continuation of webOS (Palm/HP's discontinued and open sourced mobile operating system updated with Wayland and QT5).
== Unmaintained ==
We were able to present an initial version in December of 2017. But after that, LuneOS was unmaintained and didn't build anymore (). The packages have been removed from postmarketOS. If you are interested in making it work again and maintaining the packages, here are the old build recipies for reference.
All information above is outdated.
It's sad that we can't maintain this right now and had to remove it. But nevertheless, some of the efforts lived on, because ncopa from Alpine Linux could use some of the musl related qt5-qtwebengine patches that magmastonealex created to make LuneOS UI work on postmarketOS. And who knows, we could be able to support this UI again in the future if someone steps up to maintain it.
== Running (QEMU) ==
Install:
* postmarketos-ui-luna
* mesa-dri-virtio (if in QEMU)
* mesa
* mesa-egl
Edit /usr/bin/start_luna.sh, to set your desired input devices on the luna-next line. Run /usr/bin/start_luna.sh to start everything. The first-use app should open.
See also for more instructions and ideas for getting this running on non-accelerated phones.
Complete the steps, when you get to the black screen, click where the "next" button should be. It's not clear what causes that yet.
Once the app exits and you're presented with the home screen, run luna-send -n 1 'luna://com.palm.configurator/run' '{"types":["dbkinds","dbpermissions","activities"]}' in another terminal. Stop luna, reboot, and start luna again, and everything should be usable.
== Major to-dos ==
* Running this on ARM (Everything is packaged. Currently seems to crash on non-hardware accellerated devices in swrast somewhere.)
* Trying to get this running with software rendering (Appears to work somewhat, no luck on armhf yet.) Zhuowei has a lot of research in .
* Getting the HAL working (nyx-lib). (Probably involved, but can support only a couple things at first)
* Create init service files to get services starting at boot.
* See magmastonealex's trello board
* Applying the LuneOS patches for qt5-qtwebengine again. magmastonealex made a version that worked with QT 5.9, but these patches are incompatible with later QT versions (details: )
== See also ==
* 219 days of postmarketOS: LuneOS UI
* initial issue about packaging LuneOS UI with lots of information and photos
* LuneOS is broken (issue migrated from )
* magmastonealex' LuneOS UI trello board
MS9132/MS912x

MS9132/MS912x (MS912x is for usb2/MS9132 is for usb 3) are GPU chips that allow to connect monitor via usb. 
===MS912x 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==
chip info
linux driver
Category:USB_GPU
Magnetometer

Magnetometers are a specific type of sensor found in mobile phones in order to provide compass functionality to map applications: whereas a GPS (GNSS) will only tell you where you are, a compass can tell you where you are facing.
However: magnetometers are not compasses. A magnetometer provides a three-dimensional vector of the Earth:s magnetic field. This vector is called the inclination or magnetic dip of the magnetic field. In the north these will point mostly down into the ground, in the south up in the air, and around the equator the field will be somewhat horizontal.
The magnetic inclination is measured relative to the plane of the magnetometer, which is why it is important to get the mounting matrix of the magnetometer right. This mounting matrix is commonly determined by trial-and-error with a reference device such as a stock android phone and comparing the inclination vectors on the two devices.
==Magnetometer vs Compass==
A compass in difference from a magnetometer, is a two-dimensional tool providing a red needle pointing north when held horizonal relative to Earth:s surface.
To get from a three-dimensional inclination vector to a two-dimensional vector to the north, we need information from an accelerometer, as this determines how the device is held relative the center of gravity of the Earth. If the accelerometer reports 1G (~9.82 Newton) on the Z axis and 0 on the X and Y axis, the device is perfectly horizontal.
To get from the inclination to e.g. compass-north, you need to perform projection of the inclination on the plane of the device. This is done using linear algebra. The process is called sensor fusion. In Linux, userspace does this fusion work. In Android, a three-dimensional geomagnetic rotation vector is calculated by fusing the magnetic inclination with the accelerometer.
==Links==
* Wikipedias article on magnetic dip
* Mounting matrix device tree bindings
Category:Hardware
Making good photos

Here are a few tips on how to make photos with devices running postmarketOS look relatively good, even if you just use another phone to make the photo.
=== Taking the photo ===
* Put your device on one or more pages of white paper, so it's easy to see it.
* Make sure that the whole device is on the photo.
* Run something postmarketOS specific on it, for example:
** postmarketos-demos program
** postmarketOS background from the artwork repository
** uname -a in a terminal showing -postmarketOS in the kernel name
** typing something with "postmarketOS" in a text input
* If you have problems with the flash of the camera reflecting on the phone's screen, just shoot at it from a different angle (see example on the right).
* If you're trying to photograph the console, but it's too hard to do it, try to make one photo where the whole device is visible and another one where you just photograph the interesting part of the terminal.
* Finally focus your device and take a non-blurry photo (or multiple ones just to make sure).
=== Post processing ===
The example photo on the right had the following post processing applied. Of course this is optional, especially if you already have a good photo without any post processing.
It may also make your photo look worse, in case of the photo on the right it happened to look pretty good. Consider if the result is really better than what you had before, and if it is not and you want to improve the image quality, it's probably worth trying another camera.
* With GIMP:
** Cut out the device
** Cut out the screen and put it on an extra layer
** Use "Colors / Brightness-Contrast" to improve both the device and screen contrast independently
** Add a shadow effect if you want to do that (Filters / Light and Shadow / Drop Shadow)
** Possibly use "Filters / Artistic / Cartoon" on the device to improve the contrast some more (device layer only)
* Use exiftool -all= -overwrite_original file.jpg to remove all metadata
=== See also ===
* Preparing videos for blog posts
Category:Guide
MangoPi MQ-Pro (mangopi-mq-pro)

== Maintainer(s) ==
* exkc
== Contributors ==
* exkc
== Users owning this device ==
== How to enter flash mode ==
== Installation ==
Use pmbootstrap to install pmOS to a microSD card.
$ pmbootstrap init
$ pmbootstrap install --sdcard=/dev/sdX
== Notes ==
== Gallery ==
File:Mq-pro-xfce.jpeg|MangoPi MQ-Pro running Xfce4
== See also ==
* Initial merge request
* linux-sunxi wiki page
* 
*
Marble

KDE Marble is a virtual globe and world atlas (comparable to Google Earth). As an education tool it can view many different world maps (e.g. historical ones) and even astronomical / planetary maps.
== Installation ==
Marble is shipped with Alpine (), thus it can be easily installed in pmOS:
# apk add marble
== Mobile version ==
Per default, Marble launches in desktop mode which is barely usable on mobile (even with tweaks like Phosh#Scaling). But you may use the command-line option --smallscreen to launch a mobile-friendly interface. If you want to link to the mobile version from your homescreen, place a .desktop-file in ~/.local/share/applications with following contents:
[Desktop Entry]
Type=Application
TryExec=marble
Exec=marble --smallscreen %F
Name=KDE Marble Mobile
GenericName=Virtual Globe
Comment=Navigation and Maps
Icon=marble
Terminal=false
Categories=Qt;KDE;Education;Geoscience;Geography;Science;Maps;
Be aware that buttons in the map view are not usable via touch input, instead gestures are supported (pinch to zoom, swipe to move).
== Using Marble ==
Any higher-resolution maps need to be downloaded and opened. Access the respective dialog via . Using the newly opened window with touch is not really intuitive, you need to drag the scrollbars to scroll. Choose your map(s) (e.g. OpenTopoMap, Public Transport, Hike and Bike Map etc.) and hit on the right side. When downloaded you can open them via .
In portrait mode there are some overlay problems (Download dialog and footer): Multiple letters are overlapping which makes both underying phrases unreadable.
Category:Apps
Marshall London (marshall-london)

== Contributors ==
* drebrez
== Maintainer(s) ==
* drebrez
== Users owning this device ==
== How to enter flash mode ==
Enter fastboot mode by holding down the M-Button top of the phone and then holding down power until "FASTBOOT MODE" screen shows up.
== Installation ==
Work in progress...
== Photos ==
File:Marshall-london-lk2nd.jpg|thumb|lk2nd
== See also ==
* XDA-Developers - Marshall London - Root, recovery and system images
* secondary bootloader based on qcom's/codeaurora's ugly lk fork. Provides fastboot
Marvell Armada 380/381/382/385/388 (88f6820)

Armada 380/381/382/385/388 is a series of SoCs designed by Marvell. 
While quite aged, they seem to well(?) supported in the mainline kernel.
==Sata==
Work 
(Tested with sata multiplier , sata ssd)
(The controller seem to support FBS/FIS)
== Devices ==
== Links ==
* Kernel.org documentation on Marvell SoC 
* reference to the load adress to use with mkimage
Marvell PXA1908

Marvell PXA1908 is a low-end ARM64 SoC, released in either late 2014 or 2015 according to various online sources.
There is a modemless variant of this SoC called IAP140 (see https://lore.kernel.org/lkml/8737f7yyc8.fsf@belgarion.home/T/#m92f43e1a24549a1421cbe19dfe74cf0db8c550c6).
== Known devices ==
== Mainline ==
A work-in-progress tree is available here.
S-Boot can pass the initramfs to the kernel only when the default kernel cmdline is used. Also, S-Boot does not start the ARM architected timer as it should, requiring a hack in the kernel which probably can't be upstreamed into Linux (at least not inside the clock driver).
eMMC runs in HS200 mode with a hack whose unfortunate consequence is "Tuning failed" errors being spammed in dmesg.
WiFi is rather flaky: sometimes firmware uploading fails, sometimes it stops working very shortly after firmware upload and sometimes it stops working after a few hours of normal use.
== See also ==
* Mainline merge request
* IRC: #pxa1908-mainline on OFTC
Maui-shell

[maui-shell] is an experimental convergent UI written in QT. It isn't quite ready for use yet but it can be tested in postmarketOS using the maui feature branch of pmaports: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/maui
Check out the feature branch, change your UI to maui with pmbootstrap config ui maui and then do a standard install.
You may need to manually set the session to maui with tinydm-set-session -s -f /usr/share/wayland-sessions/cask.desktop, cask is the name of the maui compositor.
You should now be able to start maui by starting the tinydm service.
=== scaling ===
Scaling for QT apps can be overriden by editing /usr/share/wayland-sessions/cask.desktop and prepending to the Exec line, change 2 to your preferred scale factor.
Exec=env QT_QPA_PLATFORM=eglfs QT_SCALE_FACTOR=2 QT_AUTO_SCREEN_SCALE_FACTOR=0 /usr/bin/....
=== Debugging ===
You may want to pipe the output of cask somewhere so that you can read it, by default it should log to /tmp/cask.log but this doesn't seem to work as intended, you can try editing /usr/share/applications/cask.desktop and changing it's Exec to something like
Exec=sh -c '/usr/bin/cask -r -plugin libinput 2>&1 > /tmp/cask.log'
=== See also ===
* maui-shell github: https://github.com/Nitrux/maui-shell
* pmaports feature branch: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/tree/maui