nyuuzyou/wikis huggingface dataset:
Tokio Techbook (tokio-techbook)

== Contributors ==
* Magnusgulin
== Maintainer(s) ==
* Magnusgulin
== Users owning this device ==
== How to enter flash mode ==
There is probably no kind of flash mode or recovery mode on this device. The boot loader (uboot) checks for compiled script in path /boot/FirmwareInstall/autorun.1.wmt.
Some of these devices might also check for boot options over the built in ethernet port.
== Installation ==
Install PMOS to sd card. Start device with the sdcard in the internal card reader of the device. You should see a text in top left corner saying "BOOTING!!"
If for some reason no text comes up, try copy the file /boot/FirmwareInstall/autorun.1.wmt to path /wmt_scriptcmd on sdcard.
== General ==
This is a somewhat exotic version of the standard VIA / WonderMedia 8850 laptops. They should all be pretty compatible, except for
* Memory size: 128MB, 256 MB, 512 MB and 1024 MB versions seems to exist. Needs variable change in uboot script.
* Flash size: Unknown, but boots only from sd card for now. There is an unstable driver for the nand chips
* Screen: 800x480 and 1024 x 600. Should not need config change to boot.
So if you have a similar laptop there is a high possibility that this port works out of the box.
Other versions of this device is known as Eken, Mid7, Mid8, Mid9, Mid10....
== Wifi ==
Wifi is a usb dongle soldered directly to motherboard. It is triggered on and off by a magic GPIO command. This is still a work in progress.
See https://kernelhacks.blogspot.com/2012/06/arch-linux-on-wm8650-netbook.html:
Upon installing this package, to enable the WiFi chip, you have to input the command:
gpio 1:6:d8110040:d8110080:d81100c0
And to disable the WiFi chip:
gpio 0:6:d8110040:d8110080:d81100c0
Searching for 8850 uboot shows that some bootloader scripts sets a lot of GPIO pins on boot, for example:
setenv wmt.gpi.bat [0:0:00040000:d8110040:d8110080:d8110000:d8110480:d81104C0][1:0:00000020:d8110040:d8110080:d8110000:d8110480:d81104C0][2:1:00010000:d8110040:d8110080:d8110000:d8110480:d81104C0]
setenv wmt.gpo.wifi 6:0:6:d8110040:d8110080:d81100C0
setenv wmt.io.bat 3:2:1000:f25:dc4:f32:ea0:e75:e47:e12:de2:db7:d80:d3d:cfe:cbc
setenv wmt.pwbn.param 100:100:100
== TODO ==
* Find source for "gpio" binary -> toggle gpio pin for wifi
* Get to boot with postmarketos-stable instead of 4.3.0 mainline
== See also ==
* https://github.com/wondermedia/wm8850 official WonderMedia kernel sources (3.0.8)
* https://github.com/linux-wmt/linux-vtwm/wiki/Current-status linux-vmt testing (3.0.13). Wiki contains various info.
* https://hackaday.com/2012/06/20/cheap-arm-netbooks-have-linux-forced-upon-them/ (VIA 8650, but similar model)
* https://kernelhacks.blogspot.com/2012/06/arch-linux-on-wm8650-netbook.html (VIA 8650, contains link to wmt-gpio binary)
* Initial merge request
Tolino Page 2 (tolino-page2)

== Contributors ==
* User0
== Users owning this device ==
== How to enter flash mode ==
There is no flash mode to flash pmOS, follow the instructions below to flash pmOS to the internal SD card.
== Installation ==
Disassemble the device by removing the back cover.
Insert the internal SD Card into a SD Card reader, and connect it to your PC. Follow the instructions below to flash postmarketOS to the SD card:
Use pmbootstrap to build your own installation image.
$ pmbootstrap init
$ pmbootstrap install --sdcard /dev/[sdcard]
After that reassemble the device, by reconnecting the internal SD card and closing the back cover. SSH over USB works by using 
$ ssh username@172.16.42.1
Connect to WiFi with 
$ nmtui
Currently graphics are entirely broken.
== See also ==
* Initial merge request
Tolino Shine (tolino-shine)

== Contributors ==
* jn
== 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 FIXME as the vendor and FIXME 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
== See also ==
* older notes on this device
Tolino Shine 2HD (tolino-shine2hd)

== Contributors ==
* Andi
== Users owning this device ==
== Hardware ==
=== Wireless ===
Board revision 37NB-E60QF0+4A3 contains the Realtek RTL8189FTV, a 802.11bgn 2.4G single-chip solution. Using the mainline kernel this is supported by the RTL8189fs branch of this repo. Note this prints a lot of information to dmesg (prefixed with 'RTL871X').
Board revision 37NB-E60QF0+4A2 contains the CyberTan WC121 (BCM43362) SDIO WiFi supported by the brcmfmac mainline driver. That driver has a separate firmware and config file which
are included in linux-firmware-brcm-20230117
=== UART ===
UART (3.3V) is available on J4. This is located near the edge of the PCB on the top right (with the USB at bottom). The default baudrate is 115200 (8N1).
There is a second UART next to it (TP198). The other uart-like pin-combinations are connected to other chips, e.g. the MSP430 µC
== Installing software ==
=== Replacing internal µSD ===
Internal µSD card can be replaced by something bigger.
Favourite way to install software is to clone the SD card and keep the old one as backup or have at least the hidden waveform partition in place.
before doing pmbootstrap install
So basically pull out µSD and connect to your PC and do:
 dd if=/dev/sdX of=tolino2-backup.img
replace with something bigger (in reality only the waveform is needed but for simplicity) and do:
 dd if=tolino2-backup.img of=/dev/sdX
and then use that sdcard with pmbootstrap install --sdcard
=== Fastboot ===
Holding the frontlight button while powering on will give you a short time of fastboot availability on the vendor u-boot.
Note: if kernels are booted this way, dtb must be appended and deep sleep will not properly wake up.
== Gallery ==
File:TolinoShine2HD_1.jpg|thumb|left|Tolino Shine 2HD displaying its own wiki page
== See also ==
=== Sources ===
* Vendor U-boot and kernel source
* Upstream Devicetree Source (dts) 
* branches kobo/drm-merged-5.X Patched mainline kernels (includes EPD), currently kobo/drm-merged-5.17
* branch kobo-2020-10 more recent u-boot behaving more normal, see corresponding wiki for details
* Wi-Fi driver, branch rtl8189fs
* Initial merge request
Tolino Shine 3

== Contributors ==
* Andi
== Users owning this device ==
== Comparison with Kobo Clara HD == 
The board is almost the same as the Kobo Clara HD, except for the SoC which is pin-compatible but not software-compatible.
The firmware from factory is different. Factory kernel is based on 3.0.35. Factory U-boot is much older and does not support dtbs,
Near mainline kernel and uboot is covered by the same fork as for the Kobo Clara HD.
Besides of the waveform sitting in a hidden partition (same place as for the Kobo Clara HD), also the epdc_E060SCM.fw
from NXP's BSP has been reported to work. Waveform for the Kobo Clara HD does not work for this device.
== See also (especially for installation instructions) ==
Kobo_Clara_HD_(kobo-clara)
=== Sources ===
* Vendor U-boot and kernel source
* Upstream Devicetree Source (dts) 
* branches kobo/drm-merged-5.X Patched mainline kernels (includes EPD), currently kobo/drm-merged-5.17
* branch kobo-2020-10 more recent u-boot behaving more normal, see corresponding wiki for details
* Wi-Fi driver, branch rtl8189fs
* Initial merge request
* 
*
Tolino Vision (tolino-ntx 6sl)

== Contributors ==
* Lostnet
== Users owning this device ==
== How to enter flash mode ==
Fastboot: Hold power and backlight buttons for first 3 seconds of a boot.
== Almost identical device ==
== Sources ==
Upstreamed devicetree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision.dts
Category:Ebook reader
Topwise A721 (topwise-a721)

Topwise A721 is motherboard that can be found in multiple devices, including LY-F1, Tracer OVO 1.2 or Gooseberry Single Board Computer. As the device uses Allwinner A10 SOC, it is fully capable of booting from SD Card. Changes allowing it to run Mainline Linux kernel are currently queued for 5.13.
== Contributors ==
* 
== Maintainer(s) ==
* 
== What works ==
* Nothing
== What does not work ==
* Everything!
== To test/do ==
* Prepare Das U-Boot for the device.
* Try to launch Linux Sunxi or Armbian to have a base.
* Get everything else working.
== Installation ==
== Booting ==
== Additional Info ==
=== Clock Work Mod ===
To install it, firstly get Android Terminal Emulator (you will probably have to install it with adb install) or perform this action directly from adb shell. Those devices are rooted by default.
In the terminal, copy the files from SD-Card (/mnt/extsd) to internal storage (/mnt/sdcard).
Then run following:
$ su
# cd /mnt/sdcard
# sh install-recovery.sh
# sh reboot-recovery.sh
== Dev Log ==
* [2021.05.31] Moved to Linux 5.13-rc4 kernel. Das U-Boot wasn't built yet.
* [2021.02.07] Initial configuration for the device based on the Sunxi Linux 5.9 kernel, including DTS mailpatch. Does not boot.
== Links ==
* Topwise A721 - Linux Sunxi Wiki
Tor

The Tor Project (The onion routing) is an open source implementation of onion routing that provides free access to an anonymous proxy network. Its primary goal is to enable online anonymity by protecting against traffic analysis attacks.
== Installation ==
Install the package to use the Tor daemon. To manage the service, use the tor OpenRC service.
== Configuration ==
Tor reads its configurations from the file /etc/tor/torrc by default, or if the latter is not found, from $HOME/.torrc. The configuration options are explained in tor(1). The default configuration should work fine for most Tor users.
A example configuration with documentation is in the file /etc/tor/torrc.sample.
Logs are written to /var/log/tor/notices.log, by default.
== Web Browsing ==
The only way to browse anonymously is with the supported Tor Browser Bundle, which uses a patched version of Firefox. It can be installed with the flatpak (only for x86_64, yet: ).
Tor can also be used with regular browsers: see #Firefox to run these browsers through the Tor network. Note this is not an anonymous way to browse even in "private browsing" mode: fingerprinting, plugins, DNS leak and other shortcomings may reveal your IP address or identity. 
The only caveat with the Tor Browser is that it's not adjusted for a mobile screen size.
=== Firefox ===
In Preferences > General > Network Settings > Settings... , select Manual proxy configuration and enter SOCKS host localhost with port 9050 (SOCKS v5).
== Bypass censorship ==
If you have a internet connection from a country that blocks Tor connections, you'll need a transparent proxy soloution like .
To allow your tor daemon to use lyrebird, add the following line to your torrc file:
ClientTransportPlugin obfs4 exec /usr/bin/lyrebird
Then (re)start the tor daemon: service tor restart
== Carburetor ==
Carburetor is a Front-end to Tractor which controls the Tor daemon.
Install carburetor either as Flatpak, , or from the official Alpine repository, .
		
== See also ==
* Tor - how to install and use
* Tor - ArchWiki
Touchkeys

Touchkeys are buttons with minimal or no physical actuation or haptic feedback. They're triggered by a touch on a specific area of the device, usually with a corresponding icon (see examples below). They are usually detected by the same hardware as the touchscreen itself.
== App selection button ==
On Android this button brings up the "recent apps" screen on a short click and splits the screen on a long click. The long click action is configurable. This button should correspond to KEY_APPSELECT when upstreaming a device.
=== Limitations ===
KEY_APPSELECT has a kernel keycode of 580 (0x244).https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/uapi/linux/input-event-codes.h?h=v5.15#n608 In xkb library this is keycode 588. Keycodes above 255 are not processed in X11 because X11 uses 8 bit keycodes.https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/xkeyboard-config-2.34/keycodes/evdev#L327 Therefore, KEY_APPSELECT is not available in X11 UIs. Wayland uses 32 bit keycodes and does not have this limitation.https://bugs.freedesktop.org/show_bug.cgi?id=11227#c56 However, the key isn't processed properly in Phosh, some parts of software don't handle it correctly. Also in Plasma Mobile the key can't be used for shortcut assignment.
== Menu button ==
This button should correspond to KEY_MENU when upstreaming a device. This button is usually not configured for any functionality in most DEs.
== Back button ==
This button should correspond to KEY_BACK when upstreaming a device. This button is usually not configured for any functionality in most DEs.
== Confirming touch key mapping ==
You can confirm the mapping of touch keys using the following tools:
* Kernel key names by command evtest (package evtest)
* xkb key names by xev (package xev)
* Wayland key names by wev (package wev)
== Related ==
See also Tm2-touchkey.
TrekStor SurfTab ventos 7.0 HD (mid-g30ref)

Category:Devices with known UART pinout
== Contributors ==
* User:Ungeskriptet
== Users owning this device ==
== How to enter flash mode ==
* Recovery: Power on the device with both and buttons.
* U-Boot: U-Boot can be interrupted by holding Ctrl + C in the serial console when booting the device
== Installation ==
=== Loading Linux from U-Boot ===
The U-Boot on this device tries to look for files called aml_autoscript (which is just a normal U-Boot script), uImage_recovery or recovery.img on a FAT32 formatted SD card when holding the recovery key combination. In our case, when can simply create a script which will load the kernel and the initial ramdisk from the same SD card like this:
#Create the script:
#Compile the script: mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n postmarketOS -d uboot-script.cmd aml_autoscript
#Compile the kernel and generate a ramdisk which are both legacy U-Boot compatible. The kernel must be named uImage and the ramdisk uInitrd.
#Copy aml_autoscript, uImage and uInitrd to the root of a FAT32 formatted SD card and insert it into the tablet.
#Boot the device with the recovery key combination.
== UART ==
The back cover is clipped to the screen without screws and can be pried open with a tool between the metal and plastic frame. The UART pads are located on the lower left half and are kindly labeled.
== Hardware status (mainline) ==
Component 	Model 	Status	Notes
SoC 	Amlogic AML8726-MX 	P 	Support exists in mainline (Codename meson6)
UART 	- 	P 	Output gets garbled after UART driver loads (Clock issue?)
MicroUSB 	- 	N 	USB 2.0
NAND Flash 	Micron MT29F64G08CBABA 	N 	8 GiB
SPI NOR Flash 	PM25LQ032C 	N 	4096 KiB
Charging 	Uses PMIC 	N 	
PMIC 	XPowers AXP202 	N 	
Volume/Power/Home keys	- 	N 	GPIO
Touchscreen 	FocalTech FT5x06 	N 	
Accelerometer 	STMicroelectronics lis3dh	N 	
Display 	LVDS 	N 	
Audio 	Amlogic AMLWM8960 	N 	
GPU 	Mali-400 MP2 	N 	
Wi-Fi/Bluetooth 	Realtek RTL8723AU 	N 	Connected internally via USB
Front camera 	GalaxyCore GC2035 	N 	
Main camera 	GalaxyCore GC0308 	N 	
HDMI 	Unknown 	N 	
== See also ==
* Device Info HW database entry
* PDF about the device
* Mainline kernel fork
TrekStor Surftab Duo W1 (trekstor-surftabduow1)

== Contributors ==
* Maxnet
== Maintainer(s) ==
* Maxnet
== Users owning this device ==
== Installation ==
Disable Secure Boot in efi-seetings.
install it onto an USB-Stick and boot it up.
== Detailed status ==
=== USB Network ===
Does not show up, when it is connected to my pc with the micro-usb port.
=== Touchscreen ===
Using xfce4 the touchscreen works, but the x-axis is mirrored in the middle of the screen. When using weston, it does not work at all.
== See also ==
* German Support Page]
* merge request 
* Installing Arch Linux on this tablet
TrekStor Surftab Wintron 7.0 (surftab-wintron7.0)

== Contributors ==
* nickre
== Users owning this device ==
== Installation ==
Init pmbootstrap:
 $ pmbootstrap init
note that this model is listed under Vendor surftab and not trekstor. To fix touchscreen drivers add g++,make as additional packages.
Plug your micro sd card into your computer and take note of its file system position with:
 $ dmesg|tail
usually a common position is /dev/mmcblk0.
Then run:
 $ pmbootstrap install --sdcard=/dev/mmcblk...
do not use --fda. This device does not support encryption.
== Hardware ==
This is some information about the hardware that does not work out of the box.
=== Bluetooth ===
Possible solution:
=== Battery ===
Works with the following modules enabled:
CONFIG_BATTERY_MAX17042,
CONFIG_EXTCON_AXP288,
CONFIG_AXP288_CHARGER,
CONFIG_AXP288_FUEL_GAUGE,
CONFIG_AXP288_ADC
=== Sound ===
Works if configured with alsamixer:
=== Camera ===
The back camera is a OmniVision OV2680. There seems to be some support in the kernel.
=== Touchscreen ===
Touchscreen is semi-working. These are the steps to get it working properly:
 $ git clone https://github.com/onitake/gslx680-acpi
 $ cd gslx680-acpi
 $ sudo make install
== See also ==
* Initial MR
*
U-Boot

U-Boot (Das U-Boot) is a first-stage and second-stage bootloader used primarily in embedded devices to handle the booting instructions to boot an operating system kernel.
== v2020.10 or older ==
U-Boot v2020.10 or older fail to compile, requiring a patch to be applied
--- a/Makefile
+++ b/Makefile
@@ -970,6 +970,8 @@
 # Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
 LDFLAGS_u-boot += $(call ld-option, --no-dynamic-linker)
 
+LDFLAGS_u-boot += -z notext $(call ld-option, --apply-dynamic-relocs)
+
 ifeq ($(CONFIG_ARC)$(CONFIG_NIOS2)$(CONFIG_X86)$(CONFIG_XTENSA),)
 LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
 endif
== See also == 
* U-Boot porting
* PinePhone U-Boot Upgrade
UBIFS

UBIFS is an unsorted block image file system. It works on top of UBI (erase block management layer) which itself works on top of memory technology device(MTD) layer.
To use UBIFS, one needs to set CONFIG_MTD_UBI kernel option as built-in or module.
== How to mount UBIFS ==
First, get list of all MTDs
$ cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00040000 "spl"
mtd1: 000c0000 00040000 "2ndbl"
mtd2: 00080000 00040000 "kpanic"
mtd3: 1fe80000 00040000 "ubipac"
Note that some of them cannot be used for mounting. In this case, only /dev/mtd3 can be used.
Next step is to attach UBI to an MTD.
If UBIFS support is built as module, it's possible to attach in this way:
# modprobe ubi mtd=3 mtd=5
Otherwise:
# ubiattach /dev/ubi_ctrl -m 3
UBI device number 0, total 2042 LEBs (518569984 bytes, 494.5 MiB), available 0 LEBs (0 bytes), LEB size 253952 bytes (248.0 KiB)
Now, create mount point and mount the wanted partition
# mkdir -p /mnt/ubifs
# mount -t ubifs ubi0:system /mnt/ubifs
When work with partition is over, unmount it and detach a device
# umount /mnt/ubifs
# ubidetach -m 3
== Sources ==
* UBIFS - elinux.org
* UBI FAQ and HOWTO - linux-mtd.infradead.org
* Guides for running pmOS on Unmanaged NAND/NOR.
Category:Technical Reference
UI frameworks

There are different UI frameworks in development for creating mobile friendly applications.
== Kirigami (QtQuick) ==
Kirigami is a nice UI framework from our KDE friends that should get more attention; it runs natively on Linux (postmarketOS and your average desktop Linux), but the apps can also be built for Android and iOS. Basic testing showed that the applications work without performance issues even if there is no GPU acceleration (as it is the case with most devices booting postmarketOS as of now). 
We might want to move this to a separate article with instructions on setting up a development environment and creating Kirigami apps that work on postmarketOS - help welcome.
== libhandy (GTK 3) ==
libhandy provides GTK 3 widgets for mobile phones.
== libadwaita (GTK 4) ==
libadwaita provides GNOME styling and, crucially, GTK 4 widgets that adapt to desktops as well as mobile phones.
== React Native Desktop (JavaScript, Qt) ==
It may be possible to build mobile applications with React Native Desktop, a currently incomplete port of React Native to Qt. It could be necessary to change some things and it might be a good idea to port it to Kirigami and offer additional Kirigami-specific elements just like there are some that are only available on Android or iOS.
UI specific package

User interfaces in postmarketOS are packaged in main/postmarketos-ui-* in pmaports.
== Variables ==
Some APKBUILD variables of UI packages have additional meaning. Furthermore there are pmbootstrap specific variables (prefixed with _pmb_*) that only get used during pmbootstrap init and pmbootstrap install. When the installation is done, the _pmb_* variables are irrelevant: they are only in the APKBUILD and not in the built package, so apk doesn't know about them.
Keep this list in alphabetical order.
==== _pmb_groups ====
: Groups to which the default user should be added to during the installation.
==== _pmb_recommends ====
: Packages to install together with the UI, which can be uninstalled by the user ().
==== _pmb_select ====
: Let pmbootstrap init display a prompt for each package in the given list of package, which provider to use for that package ().
==== _pmb_default ====
: Define the package to display as default during a pmbootstrap init _pmb_select prompt. Without this the package with the highest priority will list as default ().
==== options ====
: The pmb:gpu-accel option is specific to postmarketOS UI APKBUILDs. See pmbootstrap specific APKBUILD options.
==== pkgdesc ====
: The usual package description (see APKBUILD Reference). However, for UI packages it is also used in pmbootstrap init for the UI selection.
== Extras subpackage ==
For postmarketos-ui-plasma-mobile, we have added an extras subpackage that has additional _pmb_recommends. Other _pmb_* options should work with this specific subpackage too (not with others though!). However, it's questionable how useful the extras subpackage is nowadays, as we have working graphical package managers now and just build the regular, non-extras package in official images (-extras subpackage was added before we had automated building images). So it's probably a good idea not to add more of those at least.
== See also ==
* Alpine's APKBUILD Reference
* Configure postmarketOS for multiple UIs or users
Category:Technical Reference
USB Gadget

USB Gadget can turn your phone into a USB device if it has an available UDC (USB device controller), serving different functions to the USB Host (e.g. your PC/laptop). It can provide network to the host, or act like a keyboard/mouse/touchpad, a USB flash drive, a webcam, or a second display.
= Prerequisites =
* Check your kernel config has USB_GADGET enabled.
$ zcat /proc/config.gz | grep USB_GADGET
CONFIG_USB_GADGET=m
$ zcat /proc/config.gz | grep USB_CONFIGFS
CONFIG_USB_CONFIGFS=m
* Check your device has UDC, for example
$ ls /sys/class/udc
ci_hdrc.0
= Applications =
For most of them, you can just refer to the linux kernel document.
== USB Network ==
Related kernel config option: CONFIG_USB_CONFIGFS_RNDIS
See USB Network.
== USB GUD ==
GUD is an open USB display protocol. With GUD you can turn your phone into a second display. Detailed guide is at here
Category:Technical Reference