https://wiki.postmarketos.org/api.php?action=feedcontributions&user=MartijnBraam&feedformat=atom
postmarketOS - User contributions [en]
2024-03-29T10:30:14Z
User contributions
MediaWiki 1.39.6
https://wiki.postmarketos.org/index.php?title=User:MartijnBraam/rb3011&diff=49258
User:MartijnBraam/rb3011
2023-10-10T15:06:41Z
<p>MartijnBraam: Created page with "{{Infobox device | manufacturer = Mikrotik | name = RB3011 | codename = mikrotik-rb3011 | image = File:Mikrotik-RB3011.jpg | imagecaption = The router | releaseyear = 2015 | category = testing | originalsoftware = RouterOS | originalversion = 6 | chipset = Qualcomm IPQ8064 | cpu = 4x Krait 300 | gpu = - | display = 320x240 | storage = 128MB | memory = 1GB | architecture = armv7 | type = embedded <!-- Features --> | status_usbnet = Y | status_flashing = Y | status_touch =..."</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Mikrotik<br />
| name = RB3011<br />
| codename = mikrotik-rb3011<br />
| image = File:Mikrotik-RB3011.jpg<br />
| imagecaption = The router<br />
| releaseyear = 2015<br />
| category = testing<br />
| originalsoftware = RouterOS<br />
| originalversion = 6<br />
| chipset = Qualcomm IPQ8064<br />
| cpu = 4x Krait 300<br />
| gpu = -<br />
| display = 320x240<br />
| storage = 128MB<br />
| memory = 1GB<br />
| architecture = armv7<br />
| type = embedded<br />
<!-- Features --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland =<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = Y<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| status_otg = N<br />
| status_nfc = N<br />
<!-- Sensors --><br />
| status_accel = N<br />
| status_magnet = N<br />
| status_light = N<br />
| status_proximity = N<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_cameraflash = Y<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
| status_usba = -<br />
| status_hdmidp = N<br />
| status_irtx = -<br />
| status_irrx = -<br />
| status_stylus = -<br />
| status_haptics = Y<br />
| status_ethernet = -<br />
| status_fossbootloader = -<br />
<br />
| booting = no<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:MartijnBraam|MartijnBraam]]<br />
* [[User:Z3ntu|Z3ntu]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
<br />
Device can boot over PXE with a network connected on port 1<br />
<br />
== Resources ==<br />
<br />
* https://github.com/adron-s/openwrt-rb3011<br />
<br />
== Partition layout ==<br />
<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width: 660px; overflow: auto;"><br />
<code>/proc/mtd</code><br />
<div class="mw-collapsible-content"><br />
dev: size erasesize name<br />
mtd0: 01000000 00020000 "kernel"<br />
mtd1: 07000000 00020000 "ubi"<br />
mtd2: 00020000 00010000 "SBL1"<br />
mtd3: 00020000 00010000 "MIBIB"<br />
mtd4: 00040000 00010000 "SBL2"<br />
mtd5: 00080000 00010000 "SBL3"<br />
mtd6: 00010000 00010000 "DDRCONFIG"<br />
mtd7: 00010000 00010000 "SSD"<br />
mtd8: 00080000 00010000 "TZ"<br />
mtd9: 00020000 00010000 "RPM"<br />
mtd10: 00040000 00010000 "APPSBL"<br />
mtd11: 00040000 00010000 "RouterBoot"<br />
mtd12: 0000f000 00010000 "bootloader"<br />
mtd13: 00001000 00010000 "hard_config"<br />
mtd14: 00001000 00010000 "soft_config"<br />
</div><br />
</div><br />
<br />
== See also ==</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_410/412/415_(MSM8916/MSM8916v2/MSM8929)&diff=44707
Qualcomm Snapdragon 410/412/415 (MSM8916/MSM8916v2/MSM8929)
2023-06-01T13:12:10Z
<p>MartijnBraam: MartijnBraam moved page Qualcomm Snapdragon 410/412/415 (MSM8916/MSM8916v2/MSM8929) to Qualcomm Snapdragon 410/412 (MSM8916)</p>
<hr />
<div>#REDIRECT [[Qualcomm Snapdragon 410/412 (MSM8916)]]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_410/412_(MSM8916)&diff=44706
Qualcomm Snapdragon 410/412 (MSM8916)
2023-06-01T13:12:08Z
<p>MartijnBraam: MartijnBraam moved page Qualcomm Snapdragon 410/412/415 (MSM8916/MSM8916v2/MSM8929) to Qualcomm Snapdragon 410/412 (MSM8916)</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8916<br />
| image = File:Qualcomm_MSM8916.jpg<br />
| imagecaption = MSM8916 in ceramic BGA package<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| cpu = 4x 1.2/1.4 GHz ARM Cortex-A53 <br />
| community_page = https://github.com/msm8916-mainline<br />
| gpu = Adreno 306<br />
| year = 2014<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = P <!-- https://github.com/msm8916-mainline/linux/issues/268 --><br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = Y<br />
| status_video = Y<br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth =Y<br />
| status_modem = Y<br />
| status_gps = Y<br />
| status_camera = P<br />
|<br />
| <!-- Please ignore these for now, they are not used --><br />
| clock = v4.1-rc1 (ioommu, gpu, sound: v4.4-rc1)<br />
| pinctrl = v4.0-rc1<br />
| serial = v4.1-rc1<br />
| gpu_something = Adreno A306 (v4.2-rc1 / v4.14-rc1)<br />
| sdhci = v4.3-rc1<br />
| usb_device = v4.3-rc1<br />
| usb_host = v4.3-rc1<br />
| usb_otg = v4.3-rc1<br />
| sound = v4.2-rc1<br />
| audio_codec = v4.10-rc1<br />
| pmic = pm8916 (v4.5-rc1)<br />
| cpuidle = PSCI* (v4.8-rc1)<br />
| display_conroller-mipi = v4.9-rc1<br />
| wifi = wcnss (v4.11-rc1)<br />
| bluetooth = wcnss (v4.11-rc1)<br />
| iommu = v4.14-rc1<br />
| video_accel = venus (v4.14-rc1)<br />
| cpufreq = v4.17-rc1<br />
| cam_controller = v5.0-rc1*<br />
}}<br />
<br />
'''[https://www.qualcomm.com/products/snapdragon-processors-410 MSM8916]/[https://www.qualcomm.com/products/apq8016e APQ8016]''' (or '''Snapdragon 410''') is Qualcomm SoC released in 2014, with great mainline Linux support originally added for the [https://www.96boards.org/product/dragonboard410c/ Dragonboard 410c]. There is a slightly higher clocked variant (CPU cores up to 1.4 GHz) available as '''Snapdragon 412'''.<br />
== Devices ==<br />
=== MSM8916 (Snapdragon 410) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm Snapdragon 410 (MSM8916)'<br />
|more results text=<br />
}}<br />
<br />
=== APQ8016 (Snapdragon 410, WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm Snapdragon 410 (APQ8016)'<br />
|more results text=<br />
}}<br />
<br />
The WiFi-only variant gt58wifi of [[Samsung_Galaxy_Tab_A_8.0_2015_(samsung-gt58)|samsung-gt58]] is APQ8016.<br />
<br />
The WiFi-only variant gt510wifi of [[Samsung_Galaxy_Tab_A_9.7_2015_(samsung-gt510)|samsung-gt510]] is APQ8016.<br />
<br />
=== MSM8916v2 (Snapdragon 412) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm Snapdragon 412 (MSM8916v2)'<br />
|more results text=<br />
}}<br />
<br />
== Installation ==<br />
All MSM8916 devices in postmarketOS use [[lk2nd]] as secondary bootloader. It does '''not''' replace the stock bootloader. Instead, it is flashed in place of an Android boot image, so that the stock bootloader will first load lk2nd instead of a regular Linux kernel. The advantage of this approach is that there is a consistent installation procedure for all MSM8916 devices (once lk2nd was installed), and various device-specific quirks can be handled within lk2nd.<br />
<br />
=== Installing lk2nd ===<br />
[[File:Lk2nd-0.10.0-seed.png|thumb|lk2nd fastboot screen example]]<br />
{{Sidebox<br />
| box-text = '''Note:''' lk2nd makes some checks to show device status and capabilities of the firmware such as secure-boot status. Those are informational and you shouldn't be worried if some are marked not as in the screenshot above.<br />
| border-color = #7EABEA<br />
| border-width = 3px<br />
| background = #EBF3FF<br />
}}<br />
<br />
The instructions for installing lk2nd vary from device to device, so please check your device wiki page for instructions. Once you have lk2nd installed and working, you can proceed with the common installation procedure documented below.<br />
{{note|'''Please make sure that you are always updated to the latest lk2nd.''' It makes various preparations to boot upstream Linux kernel and often gets changed alongside the kernel releases as development continues. Your device may have degraded support if you boot newer kernel version on an outdated lk2nd so it's advised to check for new lk2nd updates whenever you see new kernel package release.}}<br />
<br />
=== Installation from pre-built image ===<br />
Download a pre-built image as explained in the [[Installation]] article.<br />
<br />
Unpack the compressed rootfs image (<code>unxz *-<device>-*.img.xz</code>) and with phone in "lk2nd mode" flash it to '''userdata''' partition. Do not forget to erase system partition to prevent accidental booting from it. For example:<br />
<br />
$ unxz --keep 20210202-0502-postmarketOS-edge-plasma-mobile-3.2-samsung-a5lte-mainline-modem.img.xz<br />
$ fastboot flash userdata 20210202-0502-postmarketOS-edge-plasma-mobile-3.2-samsung-a5lte-mainline-modem.img<br />
$ fastboot erase system<br />
$ fastboot reboot<br />
<br />
Enjoy postmarketOS!<br />
(If the image has a pin on it try 0000, 1111, 1234 or 147147)<br />
<br />
=== Installation using pmbootstrap ===<br />
Follow the [[pmbootstrap]] article to build your own fully customized image, with many more UIs to choose from and other options. Below are MSM8916 specific notes.<br />
<br />
During <code>pmbootstrap init</code> you may get prompted to select a provider for soc-qcom-msm8916-rproc: If you don't want to use the modem on your device (e.g. if your device is a tablet with APQ8016), you may want to pick no-modem.<br />
<br />
Large phone UIs like Plasma Mobile or Phosh are too big for the system partition, so either install to the SD card:<br />
<br />
<source lang="shell-session"><br />
$ pmbootstrap install --sdcard=/dev/mmcblk... --fde<br />
</source><br />
<br />
Or put your phone into lk2nd mode and flash to the userdata partition. Ignore the hint in the pmbootstrap output that <code>pmbootstrap flasher flash_kernel</code> should be used, this is not necessary. lk2nd will boot the kernel image from the installed rootfs.<br />
<source lang="shell-session"><br />
$ pmbootstrap install --fde<br />
$ pmbootstrap flasher flash_rootfs --partition userdata<br />
$ fastboot erase system<br />
$ fastboot reboot<br />
</source><br />
<br />
Enjoy postmarketOS!<br />
<br />
=== Switching rproc mode ===<br />
On msm8916 devices it's possible to choose if you want the remote processors (such as wifi and modem) to be enabled or not. You can change the mode by installing one of those packages by running <code>sudo apk add soc-...</code> on your device. (You may need to uninstall other rproc mode package first.)<br />
* {{pmaport|soc-qcom-msm8916-rproc-all}}<br />
* {{pmaport|soc-qcom-msm8916-rproc-no-modem}}<br />
* {{pmaport|soc-qcom-msm8916-rproc-none}}<br />
Disabling the remote processors frees up a bit of RAM that they would otherwise use (~80 MB of ram for modem) so you may want to disable the modem if you install the system on an APQ8016 device where the modem core is currently unused.<br />
<br />
== Display ==<br />
<br />
There's a common issue that the display cant wake up on Xorg.<br />
<br />
Here is the kernel log of the issue:<br />
<br />
<syntaxhighlight lang="text"><br />
<br />
[ 400.315351] panel-yushun-nt35520 1a98000.dsi.0: Failed to initialize panel: -22<br />
[ 400.315413] dsi_mgr_bridge_pre_enable: prepare panel 0 failed, -22<br />
<br />
</syntaxhighlight><br />
<br />
This issue has been confimed to occur on [[Samsung Galaxy S4 Mini Value Edition (samsung-serranove)]], [[Xiaomi Redmi 2 (xiaomi-wt88047)]], [[BQ Aquaris X5 (bq-paella)]], [[Samsung Galaxy A5 2015 (samsung-a5)]], [[ASUS ZenFone 2 Laser (720p) (asus-z00l)]]<br />
<br />
There's an untested patch that could probably address this issue:<br />
<br />
<syntaxhighlight lang="diff"><br />
<br />
diff --git a/drivers/gpu/drm/msm/dsi/dsi_manager.c b/drivers/gpu/drm/msm/dsi/dsi_manager.c<br />
index 0b516a0..a24504d 100644<br />
--- a/drivers/gpu/drm/msm/dsi/dsi_manager.c<br />
+++ b/drivers/gpu/drm/msm/dsi/dsi_manager.c<br />
@@ -25,6 +25,7 @@ struct msm_dsi_manager {<br />
<br />
bool is_bonded_dsi;<br />
bool is_sync_needed;<br />
+ bool is_power_needed;<br />
int master_dsi_link_id;<br />
};<br />
<br />
@@ -32,6 +33,7 @@ static struct msm_dsi_manager msm_dsim_glb;<br />
<br />
#define IS_BONDED_DSI() (msm_dsim_glb.is_bonded_dsi)<br />
#define IS_SYNC_NEEDED() (msm_dsim_glb.is_sync_needed)<br />
+#define IS_POWER_NEEDED() (msm_dsim_glb.is_power_needed)<br />
#define IS_MASTER_DSI_LINK(id) (msm_dsim_glb.master_dsi_link_id == id)<br />
<br />
#ifdef CONFIG_OF<br />
@@ -412,8 +414,10 @@ static void dsi_mgr_bridge_pre_enable(struct drm_bridge *bridge)<br />
if (is_bonded_dsi && !IS_MASTER_DSI_LINK(id))<br />
return;<br />
<br />
- if (!dsi_mgr_power_on_early(bridge))<br />
+ if (IS_POWER_NEEDED())<br />
dsi_mgr_bridge_power_on(bridge);<br />
+ else<br />
+ msm_dsim_glb.is_power_needed = true;<br />
<br />
/* Always call panel functions once, because even for dual panels,<br />
* there is only one drm_panel instance.<br />
</syntaxhighlight><br />
<br />
== Battery ==<br />
Unfortunately, the battery/charging drivers are device-specific and hard to validate without expert knowledge. The level of battery/charging support can be seen in the "Battery" status row on the device page:<br />
<br />
* '''Broken/Empty:''' Not supported, can not even check remaining battery capacity.<br />
* '''Partial:''' Can check remaining battery capacity, but not charging status. Charging may or may not work, and may or may not be dangerous on long-time use.<br />
* '''Working:''' Both battery/charging drivers are working. Charging works but is '''unlikely to be validated for safety'''.<br />
<br />
{{Warning|Please be careful when charging the device in postmarketOS. Prefer charging the device using the downstream kernel (e.g. TWRP recovery) since this is more close to the code validated by the manufacturer. '''DO NOT LET THE DEVICE CHARGE UNATTENDED IN POSTMARKETOS!''' Remove the charger when the battery is full. }}<br />
<br />
== Audio ==<br />
===Pipewire===<br />
Seem to be broken<br />
<br />
=== PulseAudio ===<br />
Audio should work out of the box with PulseAudio. In your favorite PulseAudio mixer (e.g. <code>pulsemixer</code> on the command line) you can select the output port to use (e.g. Speaker, Earpiece, ...).<br />
<br />
'''Note:''' If you use <code>pulsemixer</code> you can switch between output/input configuration with <code>F1</code>/<code>F2</code>, or loop with <code>Tab</code>/<code>Shift+Tab</code>. To select a particular output/input device press <code>Enter</code> and choose <code>Set port</code>.<br />
<br />
=== ALSA ===<br />
Everything is muted by default and must be enabled through alsaucm. Unfortunately, the tool is not very user-friendly.<br />
<br />
$ alsaucm -i -c hw:0<br />
set _verb HiFi<br />
set _enadev <device><br />
<br />
where <code><device></code> is one of <code>Speaker</code>, <code>Earpiece</code>, <code>Headphones</code>, <code>Mic1</code>, <code>Mic2</code> or <code>Headset</code>.<br />
alsaucm does not track which devices are already enabled, therefore it is possible to produce combinations that won't work properly (e.g. <code>Headphones</code>+<code>Earpiece</code>). To switch between devices, the old device first needs to be re-enabled and then disabled:<br />
<br />
$ alsaucm -i -c hw:0<br />
set _verb HiFi<br />
set _enadev OLD<br />
set _disdev OLD<br />
set _enadev NEW<br />
<br />
{{Warning|alsaucm sets the volume to maximum by default. It is possible to increase the volume even further, however, this may lead to permanent damage to your speaker!}}<br />
<br />
== Modem ==<br />
If you install via pmbootstrap, pick "all" as rproc provider and make sure to agree to the usage of non-free firmware (required for the modem). Prebuilt images should have the modem working out of the box.<br />
<br />
Note that this changes the way audio is routed on the device:<br />
* Without modem, audio is routed directly to the audio hardware, and works without the need for non-free firmware.<br />
* With modem running, audio must be routed through the audio DSP, which requires non-free firmware.<br />
<br />
Therefore you should choose the kernel depending whether or not you would like to run the modem.<br />
<br />
For usage instructions, see [[Modem]].<br />
<br />
=== GNSS (GPS) ===<br />
<br />
On Qualcomm devices GNSS is usually part of the modem. ModemManager and libqmi (with qmicli) can configure and use the modem Location service. Applications like Pure Maps can use ModemManager interface directly, however you may need to enable the gps module: <br />
<br />
$ mmcli -m any --location-enable-gps-nmea<br />
<br />
Alternatively you can run gpsd to read NMEA output from qmicli. An example of that would be the following (you still need ModemManager to run as it will keep the connection with the modem open):<br />
<br />
First command will enable the location service on the modem and give you CID to attach to in the second command.<br />
<br />
$ sudo qmicli -pd /dev/modem --loc-start --client-no-release-cid<br />
$ sudo qmicli -pd /dev/modem --loc-follow-nmea --client-cid=2 | gpsd -bnN /dev/stdin<br />
<br />
There is a [https://gitlab.com/gpsd/gpsd/-/merge_requests/139/commits WIP merge request to the gpsd] that adds the support for GNSS via Qualcomm modems.<br />
<br />
GPS operation ''without'' a sim-card does not seem to be supported.<br />
The following test (assuming <code>mmcli</code>; <code>ofono</code> untested) shows the problem.<br />
It has been confirmed with various community and testing MSM8916:<br />
* [[Motorola_Moto_G4_Play_(motorola-harpia)|motorola-harpia]]<br />
* [[Motorola_Moto_G_2015_(motorola-osprey)|motorola-osprey]]<br />
* [[Samsung_Galaxy_A3_2015_(samsung-a3)|samsung-a3]]<br />
<br />
No APQ8016 devices offer GPS capability at present.<br />
The [[Samsung_Galaxy_Tab_A_8.0_2015_(samsung-gt58)|samsung-gt58]] (/gt58wifi) unified MSM8916/APQ8016 device may be a useful test case.<br />
<br />
Test procedure:<br />
* power-off; remove sim card; power-on.<br />
* attempt to enable location services:<br />
<source lang=text>$ mmcli -m any --location-enable-gps-nmea<br />
error: modem not enabled yet</source><br />
* attempt to enable modem:<br />
<source lang=text>$ mmcli -m any --enable<br />
error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.WrongState: modem in failed state'</source><br />
* check failure status:<br />
<source lang=bash>$ mmcli -m any status | grep fail<br />
Status | state: failed<br />
| failed reason: sim-missing<br />
</source><br />
<br />
== GPU ==<br />
Snapdragon 410 uses Adreno 306 GPU and it's supported by the Freedreno driver in Mesa. While many applications work as-is, the driver isn't perfect and some applications may crash it. In some cases the GPU crash can lead to full system restart. If you see such behavior, you can try following workarounds:<br />
<br />
* OpenGL ES 3.0 seems to cause system crashes in some cases (e.g. in SuperTuxKart). You may try to override the GLES version with an environment variable. For example: <code>MESA_GLES_VERSION_OVERRIDE=2.0 supertuxkart</code><br />
* If no other workaround works, you may have to use fully software rendering. Use like: <code>LIBGL_ALWAYS_SOFTWARE=true supertuxkart</code>.<br />
<br />
You can find a full list of environment variables in the [https://docs.mesa3d.org/envvars.html Mesa documentation].<br />
<br />
== Troubleshooting == <br />
*;Screen doesn't work in Linux but works in lk2nd.: Your device may have a display panel that wasn't enabled yet as msm8916 team only enables known working display panels. You can check the config files in [https://github.com/msm8916-mainline/linux-panel-drivers linux-panel-drivers] repository to see if the panel that is listed on lk2nd screen is enabled there. Contact msm8916 maintainers via [[Matrix and IRC|Matrix]]. You can also build the panel driver yourself, consult the [[MSM8916 Mainlining]] guide for that.<br />
<br />
*;CPU runs at most at 998 MHz but it should be capable of running at 1200 MHz.: While the specifications of MSM8916 have 1200 MHz as max clock speed, currently the max MHz the CPU will operate with pmOS is 998 MHz. There are WIP changes available to make it work (https://github.com/TravMurav/linux/tree/cpr).<br />
<br />
*;Device is slow to turn display on after it was left for a while. Calls don't wake it up as well.: Suspend is not yet fully implemented, please see the "Suspend" section below.<br />
<br />
== Suspend ==<br />
<br />
{{note|As of linux-postmarketos-qcom-msm8916 v6.1 '''the suspend is disabled in the kernel''' due to cases where devices will not wake from sleep.}}<br />
<br />
Suspend is not yet fully implemented. For example, incomming calls do not wake up the phone (see pmaports issue [https://gitlab.com/postmarketOS/pmaports/-/issues/1157 #1157]). It's recommended to disable suspend.<br />
<br />
=== Kernel config ===<br />
To make sure you have suspend disabled in kernel config:<br />
<br />
<syntaxhighlight lang="text"><br />
$ grep CONFIG_SUSPEND /boot/config <br />
# CONFIG_SUSPEND is not set<br />
</syntaxhighlight><br />
<br />
=== Phosh ===<br />
In Phosh, it can be disabled in Tweaks -> Power.<br />
<br />
Or you can execute this in a terminal:<br />
<syntaxhighlight lang="shell-session"><br />
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'<br />
$ gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'<br />
</syntaxhighlight><br />
<br />
For SSH sessions:<br />
<syntaxhighlight lang="shell-session"><br />
$ DISPLAY=:0 gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'<br />
$ DISPLAY=:0 gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'<br />
</syntaxhighlight><br />
<br />
=== Plasma Mobile ===<br />
For Plasma Mobile, disabling suspend in the settings currently doesn't work. Use command <code>kcmshell5 powerdevilprofilesconfig</code> in the terminal to call another settings page that works.<br />
<br />
== Mainlining ==<br />
* MSM8916 is a great platform to get started with mainlining! It has a dedicated [[MSM8916 Mainlining]] guide that explains how to get started.<br />
<br />
== See also ==<br />
* [[lk2nd]]<br />
* [[Qualcomm Snapdragon 615/616 (MSM8939)]]<br />
* [[Qualcomm Snapdragon 210 (MSM8909)]]<br />
* {{Kernel package|postmarketos-qcom-msm8916|community}}<br />
* [https://github.com/msm8916-mainline/linux/issues/268 Common problems of 410 based device : waking the screen.]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=43401
Template:Infobox device
2023-04-23T14:37:45Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|label4 = Model<br />
|data4 = {{{model|}}}<br />
|header5 =<br />
|label5 = Released<br />
|data5 = {{{releaseyear|}}}<br />
|header6 =<br />
|label6 = Category<br />
|data6 = {{{category|testing}}}<br />
|header7 =<br />
|label7 = Original software<br />
|data7 = {{{originalsoftware|}}}<br />
|header8 =<br />
|label8 = <abbr title="The version the device was shipped with.">Original version</abbr><br />
|data8 = {{{originalversion|}}}<br />
|header9 =<br />
|label9 = <abbr title="The most recent supported version from the manufacturer.">Extended version</abbr><br />
|data9 = {{{extendedversion|}}}<br />
|header10 =<br />
|label10 = Optional software<br />
|data10 = {{{optionalsoftware|}}}<br />
|header11 =<br />
|label11 = postmarketOS kernel<br />
|data11 = {{{pmoskernel|}}}<br />
|header12 = Hardware<br />
|label12 =<br />
|data12 =<br />
|header13 = <br />
|label13 = Chipset<br />
|data13 = {{#if:{{{chipset|}}}|[[{{{chipset|}}}]]}}<br />
|header14 = <br />
|label14 = CPU<br />
|data14 = {{{cpu|}}}<br />
|header15 = <br />
|label15 = GPU<br />
|data15 = {{{gpu|}}}<br />
|header16 = <br />
|label16 = Display<br />
|data16 = {{{display|}}}<br />
|header17 = <br />
|label17 = Storage<br />
|data17 = {{{storage|}}}<br />
|header18 = <br />
|label18 = Memory<br />
|data18 = {{{memory|}}}<br />
|header19 = <br />
|label19 = Architecture<br />
|data19 = {{{architecture|}}}<br />
|header20 = <br />
|label20 = Type<br />
|data20 = {{{type|}}} <!-- "desktop", "laptop", "convertible", "server", "tablet", "handset", "watch", and "embedded" --><br />
|header21 = <br />
|label21 = Unixbench Whet/Dhry score<br />
|data21 = {{{whet_dhry|}}}<br />
|header22 = <br />
}}{{#ifeq: {{{booting|yes}}} | no | <div class="infobox" style="width: 22em; box-sizing: border-box; background-color: #fee7e6; border-color: #d33; border-width: 2px; color: #000; padding: 4px; text-align: center;">This device is marked as '''not booting'''.{{#if: {{{status|}}} | </br>Status: ''{{{status|}}}'' |}}</div>|}}<br />
<br />
<br />
<br />
{{#ifeq:{{{packaged|yes}}}|no|{{#ifeq: {{{booting|yes}}}| yes | <div class="infobox" style="width: 22em; box-sizing: border-box; background-color: #fee7e6; border-color: #d33; border-width: 2px; color: #000; padding: 4px; text-align: center;">This device has been tested with postmarketOS, but '''its device package has not yet been added to the postmarketOS repositories'''.</br><small>This means that it cannot be selected in pmbootstrap.</small>{{#if: {{{status|}}} | </br>Status: ''{{{status|}}}'' |}}</div>|}}|}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data6 = {{Feature|{{{status_fde|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data7 = {{Feature|{{{status_mainline|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data8 = {{Feature|{{{status_battery|}}}}}<br />
|header9 =<br />
|label9 = 3D Acceleration<br />
|data9 = {{Feature|{{{status_3d|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data10 = {{Feature|{{{status_audio|}}}}}<br />
|header11 =<br />
|label11 = Bluetooth<br />
|data11 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header12 =<br />
|label12 = Camera<br />
|data12 = {{Feature|{{{status_camera|}}}}}<br />
<br />
|label13 = Camera Flash<br />
|data13 = {{Feature|{{{status_cameraflash|}}}}}<br />
<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
<br />
|header18 =<br />
|label18 = USB OTG / USB-C Role switching<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Also known as flip cover sensor">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
|label6 = Barometer<br />
|data6 = {{Feature|{{{status_barometer|}}}}}<br />
|label7 = Power Sensor<br />
|data7 = {{Feature|{{{status_powersensor|}}}}}<br />
}}<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header2 =<br />
|label2 = Keyboard<br />
|data2 = {{Feature|{{{status_keyboard|}}}}}<br />
<br />
|header3 =<br />
|label3 = Touchpad<br />
|data3 = {{Feature|{{{status_touchpad|}}}}}<br />
<br />
|header4 =<br />
|label4 = <abbr title="Full-sized USB-A port works (Usually applicable to SBCs and laptops).">USB-A</abbr><br />
|data4 = {{Feature|{{{status_usba|}}}}}<br />
<br />
|header5 =<br />
|label5 = <abbr title="Video and audio output with HDMI or Display Port works.">HDMI/DP</abbr><br />
|data5 = {{Feature|{{{status_hdmidp|}}}}}<br />
<br />
|header6 =<br />
|label6 = Ir TX<br />
|data6 = {{Feature|{{{status_irtx|}}}}}<br />
<br />
|header7 =<br />
|label7 = Ir RX<br />
|data7 = {{Feature|{{{status_irrx|}}}}}<br />
<br />
|header9 =<br />
|label9 = Stylus<br />
|data9 = {{Feature|{{{status_stylus|}}}}}<br />
<br />
|header10 =<br />
|label10 = Haptics<br />
|data10 = {{Feature|{{{status_haptics|}}}}}<br />
<br />
|header11 =<br />
|label11 = Ethernet<br />
|data11 = {{Feature|{{{status_ethernet|}}}}}<br />
<br />
<br />
|header12 =<br />
|label12 = FOSS bootloader<br />
|data12 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:<br />
_table=Devices<br />
|Manufacturer=String<br />
|Name=String<br />
|Codename=String<br />
|Released=Date<br />
|Chipset=String<br />
|OriginalSoftware=String<br />
|PmosKernel=String<br />
|CPU=String<br />
|GPU=String<br />
|Display=String<br />
|Storage=String<br />
|Memory=String<br />
|StatusUsbnet=String (size=1)<br />
|StatusFlashing=String (size=1)<br />
|StatusTouch=String (size=1)<br />
|StatusScreen=String (size=1)<br />
|StatusWifi=String (size=1)<br />
|StatusFde=String (size=1)<br />
|StatusMainline=String (size=1)<br />
|StatusBattery=String (size=1)<br />
|Status3d=String (size=1)<br />
|StatusAccel=String (size=1)<br />
|StatusMagnet=String (size=1)<br />
|StatusLight=String (size=1)<br />
|StatusProximity=String (size=1)<br />
|StatusHall=String (size=1)<br />
|StatusAudio=String (size=1)<br />
|StatusBluetooth=String (size=1)<br />
|StatusCamera=String (size=1)<br />
|Statuscameraflash=String (size=1)<br />
|StatusGps=String (size=1)<br />
|StatusMobiledata=String (size=1)<br />
|StatusSms=String (size=1)<br />
|StatusCalls=String (size=1)<br />
|StatusStatus=Text<br />
|StatusUart=String (size=1)<br />
|StatusHaptics=String (size=1)<br />
|Architecture=String<br />
|StatusEthernet=String<br />
|Booting=Boolean<br />
|Packaged=Boolean<br />
|WhetDhry=Float<br />
|StatusOtg=String (size=1)<br />
|Category=String<br />
|StatusNfc=String (size=1)<br />
|StatusIrtx=String (size=1)<br />
|StatusIrrx=String (size=1)<br />
|StatusUbootPrimary=String<br />
|StatusUbootSecondary=String<br />
|StatusUbootMainline=String<br />
|StatusUbootInternalStorage=String<br />
|StatusUbootSd=String<br />
|StatusUbootUsbhost=String<br />
|StatusUbootUsbperipheral=String<br />
|StatusUbootScreen=String<br />
|StatusUbootKeyboard=String<br />
|StatusUbootButtons=String<br />
|StatusUboot=String<br />
|StatusBarometer=String<br />
|StatusPowerSensor=String<br />
|StatusUsba=String<br />
|StatusStylus=String<br />
|StatusHdmidp=String<br />
|StatusKeyboard=String<br />
|StatusTouchpad=String<br />
|DeviceType=String<br />
}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#if:{{{type|}}}|[[Category:{{{type|}}}]]|}}<br />
{{#if:{{{originalsoftware|}}}|[[Category:{{{originalsoftware|}}}]]|}}<br />
{{#if:{{{manufacturer|}}}|[[Category:{{{manufacturer|}}}]]|}}<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#ifeq:{{{packaged|yes}}}|no|{{#ifeq: {{{booting|yes}}}| yes |[[Category:Not Packaged]]|}}|}}<br />
{{#ifeq:{{{status_uart|}}}|Y|[[Category:Devices with known UART pinout]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusCameraFlash={{{status_cameraflash}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|Packaged={{{packaged|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusHaptics={{{status_haptics|}}}|StatusIrtx={{{status_irtx|}}}|StatusIrrx={{{status_irrx|y}}}|StatusUart={{{status_uart}}}|StatusStylus={{{status_stylus}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}}|StatusBarometer={{{status_barometer|}}}|StatusPowerSensor={{{status_powersensor|}}}|StatusUsba={{{status_usba|}}}|StatusEthernet={{{status_ethernet}}}|StatusHdmidp={{{status_hdmidp|}}}|StatusKeyboard={{{status_keyboard|}}}|StatusTouchpad={{{status_touchpad|}}}|DeviceType={{{type|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Xiaomi_Mi_Max_3_(xiaomi-nitrogen)&diff=43366
Xiaomi Mi Max 3 (xiaomi-nitrogen)
2023-04-23T14:36:17Z
<p>MartijnBraam: Reverted edits by Nigger (talk) to last revision by Newbyte</p>
<hr />
<div>{{Infobox device<br />
| name = Mi Max 3<br />
| manufacturer = Xiaomi<br />
| codename = xiaomi-nitrogen<br />
| image = File:404.jpg<br />
| imagecaption = Image to be added<br />
| releaseyear = 2019<br />
| originalsoftware = Android 8.1<br />
| chipset = Qualcomm Snapdragon 636 (SDM636)<br />
| cpu = 4x 1.8 GHz Kryo 260, 4x 1.6 GHz Kryo 260<br />
| gpu = Adreno 509<br />
| display = 1080x2160 IPS<br />
| storage = 128 GB<br />
| memory = 4 GB<br />
| architecture = armv8<br />
| battery = 5500 mAh<br />
}}<br />
{{Based on SoC|Qualcomm_Snapdragon_636_(SDM636)|Snapdragon 636}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
===Recovery===<br />
* Turn off your device;<br />
* Press and hold “Power“ button and “Volume Up” button;<br />
* Hold both till Mi logo appears;<br />
* After the Mi logo appears, release “Power” & “Volume+”<br />
* Welcome to Recovery!<br />
===Fastboot Mode===<br />
* Turn off your device<br />
* Press and hold “Power“ button and “Volume Down” button;<br />
* Hold both till Mi logo appears;<br />
* After the Mi logo appears, release “Power” & “Volume-”<br />
* After booting into Fastboot mode, connect your device to a Linux desktop using the original USB Cable;<br />
* Open Terminal in the SDK location, check your device is connected with:<br />
sudo ./fastboot devices</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Acer_Iconia_Tab_A200_(acer-picasso-e)&diff=42941
Acer Iconia Tab A200 (acer-picasso-e)
2023-04-23T14:29:00Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Acer<br />
| name = Iconia Tab A200<br />
| codename = acer-picasso-e<br />
| image = File:acer-picasso-e.jpg<br />
| imagecaption = <br />
| releaseyear = 2012<br />
| originalsoftware = Android 3.0, upgrade to 4.0<br />
| chipset = Nvidia Tegra 2 (T20)<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = ULP GeForce<br />
| storage = 8/16 GB<br />
| display = 800x1280<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi =<br />
| status_xwayland = <br />
| status_fde =<br />
| status_mainline = P<br />
| status_battery =<br />
| status_3d =<br />
| status_accel =<br />
| status_audio =<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status =<br />
| booting = no<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg = -<br />
}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Similiar to [[Acer Iconia Tab A500 (acer-picasso)]] Ask hacker420 on postmarketOS channel, if you own device.<br />
<br />
== See also ==<br />
- [https://github.com/grate-driver/linux/ grate kernel]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Acer_Iconia_Tab_A200_(acer-picasso-e)&diff=42940
Acer Iconia Tab A200 (acer-picasso-e)
2023-04-23T14:28:27Z
<p>MartijnBraam: Reverted edits by Nigger (talk) to last revision by Newbyte</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Acer<br />
| name = Iconia Tab A200<br />
| codename = acer-picasso-e<br />
| image = File:acer-picasso-e.jpg<br />
| imagecaption = <br />
| releaseyear = 2012<br />
| originalsoftware = Android 3.0, upgrade to 4.0<br />
| chipset = Nvidia Tegra 2 (T20)<br />
| cpu = Dual-core 1.0 GHz Cortex-A9<br />
| gpu = ULP GeForce<br />
| storage = 8/16 GB<br />
| display = 800x1280<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| status_usbnet =<br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi =<br />
| status_xwayland = <br />
| status_fde =<br />
| status_mainline = P<br />
| status_battery =<br />
| status_3d =<br />
| status_accel =<br />
| status_audio =<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status =<br />
| booting = no<br />
| pmoskernel =<br />
| whet_dhry =<br />
| status_otg = -<br />
--><br />
}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Similiar to [[Acer Iconia Tab A500 (acer-picasso)]] Ask hacker420 on postmarketOS channel, if you own device.<br />
<br />
== See also ==<br />
- [https://github.com/grate-driver/linux/ grate kernel]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=User:MartijnBraam/common.js&diff=41134
User:MartijnBraam/common.js
2023-04-23T10:50:00Z
<p>MartijnBraam: Created page with "{{subst:lusc|User:RedWarn/.js}}"</p>
<hr />
<div>{{subst:lusc|User:RedWarn/.js}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Mainpage-button&diff=37966
Template:Mainpage-button
2023-03-30T15:26:31Z
<p>MartijnBraam: Protected "Template:Mainpage-button": Excessive vandalism ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</p>
<hr />
<div><noinclude>{{Template:Template}}{{DISPLAYTITLE:Template:issue}}<br />
<br />
Display a nice button on the main wiki page, along with an icon.<br />
<br />
==Usage==<br />
<nowiki>{{mainpage-button|icon|wikipage|title}}</nowiki><br />
<br />
==Example==<br />
<br />
<nowiki>{{mainpage-button|smartphone|Devices}}</nowiki><br />
{{mainpage-button|smartphone|Devices}}<br />
<br />
<nowiki>{{mainpage-button|application-utilities|:Category:Guides|Guides}}</nowiki><br />
{{mainpage-button|applications-utilities|:Category:Guide|Guides}}<br />
<br />
</noinclude><includeonly><span style="display:block; height: 40px; float: left;">[[File:Icon-numix-light-{{{1}}}.svg|left|32px]][[{{{2}}}|<span style="border: 1px solid lightgray; background: #f8f8f8; padding: 5px; width:200px; height: 20px; line-height: 20px; display: inline-block; margin-left: 5px;">{{{3|{{{2}}}}}}</span>]]</span><span style="clear:left; display: block"></span></includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=36901
Template:Infobox device
2023-03-06T15:00:55Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = <abbr title="The version the device was shipped with.">Original version</abbr><br />
|data7 = {{{originalversion|}}}<br />
|header8 =<br />
|label8 = <abbr title="The most recent supported version from the manufacturer.">Extended version</abbr><br />
|data8 = {{{extendedversion|}}}<br />
|header9 =<br />
|label9 = Optional software<br />
|data9 = {{{optionalsoftware|}}}<br />
|header10 =<br />
|label10 = postmarketOS kernel<br />
|data10 = {{{pmoskernel|}}}<br />
|header11 = Hardware<br />
|label11 =<br />
|data11 =<br />
|header12 = <br />
|label12 = Chipset<br />
|data12 = {{#if:{{{chipset|}}}|[[{{{chipset|}}}]]}}<br />
|header13 = <br />
|label13 = CPU<br />
|data13 = {{{cpu|}}}<br />
|header14 = <br />
|label14 = GPU<br />
|data14 = {{{gpu|}}}<br />
|header15 = <br />
|label15 = Display<br />
|data15 = {{{display|}}}<br />
|header16 = <br />
|label16 = Storage<br />
|data16 = {{{storage|}}}<br />
|header17 = <br />
|label17 = Memory<br />
|data17 = {{{memory|}}}<br />
|header18 = <br />
|label18 = Architecture<br />
|data18 = {{{architecture|}}}<br />
|header19 = <br />
|label19 = Type<br />
|data19 = {{{type|}}} <!-- "desktop", "laptop", "convertible", "server", "tablet", "handset", "watch", and "embedded" --><br />
|header20 = <br />
|label20 = Unixbench Whet/Dhry score<br />
|data20 = {{{whet_dhry|}}}<br />
|header21 = <br />
|label21 = Model<br />
|data21 = {{{model|}}}<br />
}}{{#ifeq: {{{booting|yes}}} | no | <div class="infobox" style="width: 22em; box-sizing: border-box; background-color: #fee7e6; border-color: #d33; border-width: 2px; color: #000; padding: 4px; text-align: center;">This device is marked as '''not booting'''.{{#if: {{{status|}}} | </br>Status: ''{{{status|}}}'' |}}</div>|}}<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Also known as flip cover sensor">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
|label6 = Barometer<br />
|data6 = {{Feature|{{{status_barometer|}}}}}<br />
|label7 = Power Sensor<br />
|data7 = {{Feature|{{{status_powersensor|}}}}}<br />
}}<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Keyboard<br />
|data1 = {{Feature|{{{status_keyboard|}}}}}<br />
|header2 =<br />
|label2 = Touchpad<br />
|data2 = {{Feature|{{{status_touchpad|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Full-sized USB-A port works (Usually applicable to SBCs and laptops).">USB-A</abbr><br />
|data3 = {{Feature|{{{status_usba|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Video and audio output with HDMI or Display Port works.">HDMI/DP</abbr><br />
|data4 = {{Feature|{{{status_hdmidp|}}}}}<br />
|header5 =<br />
|label5 = Ir TX<br />
|data5 = {{Feature|{{{status_irtx|}}}}}<br />
|header6 =<br />
|label6 = FOSS bootloader<br />
|data6 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:<br />
_table=Devices<br />
|Manufacturer=String<br />
|Name=String<br />
|Codename=String<br />
|Released=Date<br />
|Chipset=String<br />
|OriginalSoftware=String<br />
|PmosKernel=String<br />
|CPU=String<br />
|GPU=String<br />
|Display=String<br />
|Storage=String<br />
|Memory=String<br />
|StatusUsbnet=String (size=1)<br />
|StatusFlashing=String (size=1)<br />
|StatusTouch=String (size=1)<br />
|StatusScreen=String (size=1)<br />
|StatusWifi=String (size=1)<br />
|StatusXwayland=String (size=1)<br />
|StatusFde=String (size=1)<br />
|StatusMainline=String (size=1)<br />
|StatusBattery=String (size=1)<br />
|Status3d=String (size=1)<br />
|StatusAccel=String (size=1)<br />
|StatusMagnet=String (size=1)<br />
|StatusLight=String (size=1)<br />
|StatusProximity=String (size=1)<br />
|StatusHall=String (size=1)<br />
|StatusAudio=String (size=1)<br />
|StatusBluetooth=String (size=1)<br />
|StatusCamera=String (size=1)<br />
|StatusGps=String (size=1)<br />
|StatusMobiledata=String (size=1)<br />
|StatusSms=String (size=1)<br />
|StatusCalls=String (size=1)<br />
|StatusStatus=Text<br />
|Architecture=String<br />
|Booting=Boolean<br />
|NonAndroid=String (size=4)<br />
|WhetDhry=Float<br />
|StatusOtg=String (size=1)<br />
|Category=String<br />
|StatusNfc=String (size=1)<br />
|StatusIrtx=String (size=1)<br />
|StatusUbootPrimary=String<br />
|StatusUbootSecondary=String<br />
|StatusUbootMainline=String<br />
|StatusUbootInternalStorage=String<br />
|StatusUbootSd=String<br />
|StatusUbootUsbhost=String<br />
|StatusUbootUsbperipheral=String<br />
|StatusUbootScreen=String<br />
|StatusUbootKeyboard=String<br />
|StatusUbootButtons=String<br />
|StatusUboot=String<br />
|StatusBarometer=String<br />
|StatusPowerSensor=String<br />
|StatusUsba=String<br />
|StatusHdmidp=String<br />
|StatusKeyboard=String<br />
|StatusTouchpad=String<br />
|DeviceType=String<br />
}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#if:{{{type|}}}|[[Category:{{{type|}}}]]|}}<br />
{{#if:{{{originalsoftware|}}}|[[Category:{{{originalsoftware|}}}]]|}}<br />
{{#if:{{{manufacturer|}}}|[[Category:{{{manufacturer|}}}]]|}}<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}}|StatusBarometer={{{status_barometer|}}}|StatusPowerSensor={{{status_powersensor|}}}|StatusUsba={{{status_usba|}}}|StatusHdmidp={{{status_hdmidp|}}}|StatusKeyboard={{{status_keyboard|}}}|StatusTouchpad={{{status_touchpad|}}}|DeviceType={{{type|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=36894
Template:Infobox device
2023-03-06T14:53:07Z
<p>MartijnBraam: Add devicetype into cargo</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = <abbr title="The version the device was shipped with.">Original version</abbr><br />
|data7 = {{{originalversion|}}}<br />
|header8 =<br />
|label8 = <abbr title="The most recent supported version from the manufacturer.">Extended version</abbr><br />
|data8 = {{{extendedversion|}}}<br />
|header9 =<br />
|label9 = Optional software<br />
|data9 = {{{optionalsoftware|}}}<br />
|header10 =<br />
|label10 = postmarketOS kernel<br />
|data10 = {{{pmoskernel|}}}<br />
|header11 = Hardware<br />
|label11 =<br />
|data11 =<br />
|header12 = <br />
|label12 = Chipset<br />
|data12 = {{#if:{{{chipset|}}}|[[{{{chipset|}}}]]}}<br />
|header13 = <br />
|label13 = CPU<br />
|data13 = {{{cpu|}}}<br />
|header14 = <br />
|label14 = GPU<br />
|data14 = {{{gpu|}}}<br />
|header15 = <br />
|label15 = Display<br />
|data15 = {{{display|}}}<br />
|header16 = <br />
|label16 = Storage<br />
|data16 = {{{storage|}}}<br />
|header17 = <br />
|label17 = Memory<br />
|data17 = {{{memory|}}}<br />
|header18 = <br />
|label18 = Architecture<br />
|data18 = {{{architecture|}}}<br />
|header19 = <br />
|label19 = Type<br />
|data19 = {{{type|}}} <!-- "desktop", "laptop", "convertible", "server", "tablet", "handset", "watch", and "embedded" --><br />
|header20 = <br />
|label20 = Unixbench Whet/Dhry score<br />
|data20 = {{{whet_dhry|}}}<br />
|header21 = <br />
|label21 = Model<br />
|data21 = {{{model|}}}<br />
}}{{#ifeq: {{{booting|yes}}} | no | <div class="infobox" style="width: 22em; box-sizing: border-box; background-color: #fee7e6; border-color: #d33; border-width: 2px; color: #000; padding: 4px; text-align: center;">This device is marked as '''not booting'''.{{#if: {{{status|}}} | </br>Status: ''{{{status|}}}'' |}}</div>|}}<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Also known as flip cover sensor">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
|label6 = Barometer<br />
|data6 = {{Feature|{{{status_barometer|}}}}}<br />
|label7 = Power Sensor<br />
|data7 = {{Feature|{{{status_powersensor|}}}}}<br />
}}<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Keyboard<br />
|data1 = {{Feature|{{{status_keyboard|}}}}}<br />
|header2 =<br />
|label2 = Touchpad<br />
|data2 = {{Feature|{{{status_touchpad|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Full-sized USB-A port works (Usually applicable to SBCs and laptops).">USB-A</abbr><br />
|data3 = {{Feature|{{{status_usba|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Video and audio output with HDMI or Display Port works.">HDMI/DP</abbr><br />
|data4 = {{Feature|{{{status_hdmidp|}}}}}<br />
|header5 =<br />
|label5 = Ir TX<br />
|data5 = {{Feature|{{{status_irtx|}}}}}<br />
|header6 =<br />
|label6 = FOSS bootloader<br />
|data6 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:<br />
_table=Devices<br />
|Manufacturer=String<br />
|Name=String<br />
|Codename=String<br />
|Released=Date<br />
|Chipset=String<br />
|OriginalSoftware=String<br />
|PmosKernel=String<br />
|CPU=String<br />
|GPU=String<br />
|Display=String<br />
|Storage=String<br />
|Memory=String<br />
|StatusUsbnet=String (size=1)<br />
|StatusFlashing=String (size=1)<br />
|StatusTouch=String (size=1)<br />
|StatusScreen=String (size=1)<br />
|StatusWifi=String (size=1)<br />
|StatusXwayland=String (size=1)<br />
|StatusFde=String (size=1)<br />
|StatusMainline=String (size=1)<br />
|StatusBattery=String (size=1)<br />
|Status3d=String (size=1)<br />
|StatusAccel=String (size=1)<br />
|StatusMagnet=String (size=1)<br />
|StatusLight=String (size=1)<br />
|StatusProximity=String (size=1)<br />
|StatusHall=String (size=1)<br />
|StatusAudio=String (size=1)<br />
|StatusBluetooth=String (size=1)<br />
|StatusCamera=String (size=1)<br />
|StatusGps=String (size=1)<br />
|StatusMobiledata=String (size=1)<br />
|StatusSms=String (size=1)<br />
|StatusCalls=String (size=1)<br />
|StatusStatus=Text<br />
|Architecture=String<br />
|Booting=Boolean<br />
|NonAndroid=String (size=4)<br />
|WhetDhry=Float<br />
|StatusOtg=String (size=1)<br />
|Category=String<br />
|StatusNfc=String (size=1)<br />
|StatusIrtx=String (size=1)<br />
|StatusUbootPrimary=String<br />
|StatusUbootSecondary=String<br />
|StatusUbootMainline=String<br />
|StatusUbootInternalStorage=String<br />
|StatusUbootSd=String<br />
|StatusUbootUsbhost=String<br />
|StatusUbootUsbperipheral=String<br />
|StatusUbootScreen=String<br />
|StatusUbootKeyboard=String<br />
|StatusUbootButtons=String<br />
|StatusUboot=String<br />
|StatusBarometer=String<br />
|StatusPowerSensor=String<br />
|StatusUsba=String<br />
|StatusHdmidp=String<br />
|StatusKeyboard=String<br />
|StatusTouchpad=String<br />
}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#if:{{{type|}}}|[[Category:{{{type|}}}]]|}}<br />
{{#if:{{{originalsoftware|}}}|[[Category:{{{originalsoftware|}}}]]|}}<br />
{{#if:{{{manufacturer|}}}|[[Category:{{{manufacturer|}}}]]|}}<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}}|StatusBarometer={{{status_barometer|}}}|StatusPowerSensor={{{status_powersensor|}}}|StatusUsba={{{status_usba|}}}|StatusHdmidp={{{status_hdmidp|}}}|StatusKeyboard={{{status_keyboard|}}}|StatusTouchpad={{{status_touchpad|}}}|DeviceType={{{type|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Tab_Pro_10.1_Wi-Fi_SM-T520_(n2awifi)&diff=35548
Samsung Galaxy Tab Pro 10.1 Wi-Fi SM-T520 (n2awifi)
2023-01-10T02:30:21Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Tab PRO 10.1 (WiFi)<br />
| codename = samsung-n2awifi<br />
| image = File:N2awifi.png<br />
| imagecaption = A picture of a Samsung Galaxy Tab Pro 10.1 Wifi.<br />
| releaseyear = 2014<br />
| originalsoftware = Android 4.4.2<br />
| chipset = Samsung Exynos 5420<br />
| cpu = 4x1.9 GHz Cortex-A15 and 4x1.3 GHz Cortex-A7<br />
| gpu = Mali-T628 MP6<br />
| storage = 16/32 GB<br />
| display = 2560x1600<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = <br />
| status_otg = <br />
| status_nfc = <br />
| status_usba = <br />
| status_hdmidp = <br />
| status_keyboard = -<br />
| status_touchpad = <br />
| status_irtx = <br />
| status_trustzone = <br />
| status_accel = <br />
| status_magnet = <br />
| status_light = <br />
| status_proximity = <br />
| status_hall = <br />
| status_barometer = <br />
| status_powersensor = <br />
| status_fossbootloader = <br />
| booting = no <br />
}}<br />
<br />
== Contributors ==<br />
* Denix<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
Press and hold {{Button|Power}} + {{Button|Volume Down}} + {{Button|Home}}. Press {{Button|Volume Up}} when prompted<br />
<br />
== Installation ==<br />
<br />
<br />
== See also ==<br />
* [https://wiki.lineageos.org/devices/n2awifi LineageOS wiki]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Tronsmart_Draco_H3_(tronsmart-dracoh3)&diff=35547
Tronsmart Draco H3 (tronsmart-dracoh3)
2023-01-10T02:24:45Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Tronsmart<br />
| name = Draco H3<br />
| codename = tronsmart-dracoh3<br />
| image = File:draco-h3.jpg<br />
| imagecaption = Motherboard with heatsink<br />
| releaseyear = 2014<br />
| originalsoftware = Android 4.4<br />
| chipset = Allwinner H3<br />
| cpu = Quad-core 1.3 GHz Cortex-A7<br />
| gpu = Mali-400 MP2<br />
| storage = 8 GB<br />
| display = HDMI male<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| status_usbnet = -<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = -<br />
| status_wifi = -<br />
| status_xwayland = -<br />
| status_fde = -<br />
| status_mainline = -<br />
| status_battery =-<br />
| status_3d = -<br />
| status_accel = -<br />
| status_magnet = -<br />
| status_light = -<br />
| status_proximity = -<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = -<br />
| status_audio = -<br />
| status_bluetooth = -<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = -<br />
| status_hdmidp = -<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_fossbootloader = -<br />
| status_uboot =-<br />
| status_uboot_primary =<br />
| status_uboot_secondary = -<br />
| status_uboot_mainline = -<br />
| status_uboot_internalstorage =<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = -<br />
| status_uboot_screen = -<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = -<br />
| booting = no<br />
| n-android = n<br />
}}<br />
<br />
== Contributors ==<br />
<br />
== User owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
It's planned to be just your usual [https://wiki.postmarketos.org/wiki/Installation_guide SD installation]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Ace_4_(samsung-heatqlte)&diff=35546
Samsung Galaxy Ace 4 (samsung-heatqlte)
2023-01-10T02:19:06Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Ace 4<br />
| codename = samsung-heatqlte<br />
| image = File:CHANGE_ME_TO_DEVICE_CODENAME.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2014<br />
| originalsoftware = Android<br />
| originalversion = 4.4.4<br />
| chipset = Qualcomm Snapdragon 410 (MSM8916)<br />
| cpu = Quad-core 1.2Ghz Cortex A53<br />
| gpu = Adreno 306<br />
| storage = 8GB<br />
| display = 480x800 AMOLED<br />
| memory = 1GB<br />
| architecture = armv7<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = P<br />
| status_wifi = Y<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = P<br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = Y<br />
| status_mobiledata = Y<br />
| status_sms = Y<br />
| status_calls = Y<br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = Y<br />
| status_usba = -<br />
| status_hdmidp = -<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_accel = Y<br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <br />
| status_fossbootloader = <br />
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.x.x<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}{{Based on SoC|Qualcomm_Snapdragon_410/412_(MSM8916)|Snapdragon 410}}<br />
<br />
== Contributors ==<br />
* garethppls<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Flash mode is entered by holding the power and the volume down key together when the device is off.<br />
<br />
== Installation ==<br />
{{note|'''Note:''' Even though MSM8916 is capable of aarch64, the firmware of this device was never updated with aarch64 support. Therefore, this device can only boot mainline on armv7 at the moment.}}<br />
{{lk2nd|samsung=true|target=msm8916|prebuilt=false}}<br />
<br />
{{Driver AMOLED}}<br />
{{rt5033}}<br />
{{lis2hh12}}<br />
<br />
== See also ==<br />
Link to related GitLab issues or merge requests like the following:<br />
* {{MR|3620|pmaports}} Initial merge request<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--><br />
<br />
== References ==<br />
<references /></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Intex_Aqua_Q1&diff=35545
Intex Aqua Q1
2023-01-10T02:11:04Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Intex<br />
| name = Aqua Q1<br />
| codename = intex-aqua-q1<br />
| image = File:intex-aqua-q1.jpg<br />
| imagecaption = Weston v21.12<br />
| releaseyear = 2015<br />
| originalsoftware = Android 4.4.2<br />
| chipset = Spreadtrum SC8830<br />
| postmarketOS kernel = 3.10.17<br />
| cpu = Spreadtrum<br />
| gpu = Mali 400 MP1<br />
| storage = 4 GB<br />
| display = 480x854<br />
| memory = 512 MB<br />
| architecture = armv7<br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = N<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = N<br />
| status_battery = Y<br />
| status_3d = N<br />
| status_audio = P<br />
| status_bluetooth = P<br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = kernel compiles, boot up perfectly, xfce-4 v21.12 works like charm now<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = <br />
| status_hdmidp = -<br />
| status_keyboard = -<br />
| status_touchpad = Y<br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_accel = -<br />
| status_magnet = -<br />
| status_light = <br />
| status_proximity = <br />
| status_hall = -<br />
| status_barometer = <br />
| status_powersensor = N/A<br />
| status_fossbootloader = N<br />
| booting = Yes<br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| Android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 3.10.17<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
@VIXXKIGOLI<br />
<br />
== Users owning this device ==<br />
{@vixxkigoli}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Access ADB and type following command<br />
<br />
adb reboot bootloader<br />
<br />
Also any TWRP with sc8830 will work for this device, just port it.<br />
<br />
== Installation ==<br />
This device doesn't have much memory to install boot.img [128 MB] directly So, generate splitted image by following commands<br />
<br />
pmboostrap install --split<br />
<br />
It will create two images<br />
1. intex-q1-boot.img<br />
2. intex-q1-root.img<br />
<br />
Still we will need third image to flash into boot partition.<br />
<br />
So, search boot.img in postmarketOS's work directory.<br />
3. boot.img<br />
<br />
A: Flash third image to boot partition.<br />
B: Flash second image to system/internal SD partition.<br />
C: Flash first Image to cache partition.<br />
<br />
Useful partitions:<br />
<br />
/dev/block/mmcblk0p22 //internal sd<br />
/dev/block/mmcblk0p17 //system<br />
/dev/block/mmcblk0p18 //cache<br />
<br />
== See also ==<br />
<!--<br />
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{MR|CHANGEME|pmaports}} Initial merge request<br />
* {{issue|CHANGEME|pmaports}} Some related issue<br />
You can also add normal web links:<br />
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]<br />
--><br />
<br />
* [https://twitter.com/vixxkigoli/status/1580893905519710208 X11/xfce-4 and More Pics]<br />
* [https://twitter.com/vixxkigoli/ My Twitter Handle]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Xiaomi_Redmi_Note_8_(xiaomi-ginkgo)&diff=35544
Xiaomi Redmi Note 8 (xiaomi-ginkgo)
2023-01-10T02:05:14Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xiaomi<br />
| name = Redmi Note 8<br />
| codename = xiaomi-ginkgo<br />
| image = File:Xiaomi-ginkgo.png<br />
| imagecaption = Xiaomi Redmi Note 8<br />
| releaseyear = 2019<br />
| originalsoftware = Android 9, MIUI 10<br />
| chipset = Qualcomm SM6125 Snapdragon 665<br />
| cpu = Octa-core (4x2.0 GHz Kryo 260 Gold & 4x1.8 GHz Kryo 260 Silver)<br />
| gpu = Adreno 610<br />
| storage = 32GB, 64GB, 128GB<br />
| display = 1080 x 2340 IPS LCD<br />
| memory = 3GB, 4GB, 4GB<br />
| architecture = aarch64<br />
| status_usbnet =<br />
| status_flashing =<br />
| status_touch =<br />
| status_screen =<br />
| status_wifi =<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline = <br />
| status_battery = <br />
| status_3d =<br />
| status_accel =<br />
| status_audio =<br />
| status_bluetooth = <br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg =<br />
| booting = <br />
}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Radxa_Zero_(radxa-zero)&diff=35543
Radxa Zero (radxa-zero)
2023-01-10T02:00:24Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Radxa<br />
| name = Zero<br />
| codename = radxa-zero<br />
| image = File:Radxa-Zero.png<br />
| releaseyear = 2021<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| chipset = Amlogic S905Y2<br />
| cpu = Quad Cortex-A53 1.8 GHz<br />
| gpu = Mali G31 MP2<br />
| storage = 8/16/32/64/128GB<br />
| display = MicroHDMI 2.1 - 4K@60<br />
| memory = 512MB/1GB/2GB/4GB LPDDR4<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = P<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| status_otg = Y<br />
| status_nfc = -<br />
| status_irtx = -<br />
| booting = yes<br />
| pmoskernel = 5.16.10<br />
| whet_dhry = 1657.2<br />
| type = Single Board Computer<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Medusa|Medusa]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
hold down usb-boot button on back of pcb<br />
<br />
== Installation ==<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
Follow https://wiki.radxa.com/Zero/dev/maskrom#Enable_maskrom to flash u-boot or tow-boot to mmcblk1boot0, then write pmos to sdcard or emmc.<br />
tow-boot: https://github.com/tvall43/Tow-Boot/releases/download/radxa-zero/Tow-Boot.noenv.bin<br />
<br />
== See also ==<br />
* {{MR|2948|pmaports}} Initial merge request<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Apple_Macbook_Air_M1_(apple-MacBookAir10,1)&diff=35542
Apple Macbook Air M1 (apple-MacBookAir10,1)
2023-01-10T01:55:38Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Apple<br />
| name = MacBook Air<br />
| codename = MacBookAir10,1<br />
| image = File:MacBookAir10,1.jpg<br />
| imagecaption = MacBook Air M1 2020<br />
| releaseyear = 2020<br />
| originalsoftware = macOS 11.0<br />
| chipset = Apple M1<br />
| cpu = 3.2 GHz 8cores (4× Apple Firestorm high-performance + 4× Apple Icestorm high-efficiency)<br />
| gpu = Apple G13G (either 7 or 8 cores dependent on base spec)<br />
| storage = 128GB (education only), 256GB, 512GB, 1TB, 2TB<br />
| display = 13.3", native 2560 x 1600 pixels (16:10, 227 ppi) IPS<br />
| memory = 8/16 GB LPDDR4 @ 4266 MT/s<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde = P<br />
| status_mainline = <br />
| status_battery = Y<br />
| status_3d = Y<br />
| status_accel = - <br />
| status_audio = P<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = <br />
| booting = Y<br />
| n-android = ✔<br />
| status_otg = -<br />
}}<br />
{{Sidebox<br />
| box-text = <b>This device is based on the Apple M1 SoC.</b><br>See the [[Apple M1]] page for common tips, guides and troubleshooting steps<br />
| border-color = #8E1901<br />
| border-width = 3px<br />
| background = #B8506E<br />
}}<br />
{{note|'''Note:''' for active development see https://asahilinux.org/ .}}<br />
== Contributors ==<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
for DFU mode: https://support.apple.com/en-gb/guide/apple-configurator-2/apdd5f3c75ad/mac<br />
<br />
== Installation ==<br />
<br />
<br />
== See also ==<br />
This device does currently boot and works to a degree, it has a actively developed Linux port (https://asahilinux.org/), as well as a somewhat working port by corellium that is claimed to be "completely usable" yet lacks any optimisation (https://www.corellium.com/blog/linux-m1)<br />
== Notes ==<br />
Now you can install other Linux like Debian from this website:[[https://github.com/AsahiLinux/docs/wiki/SW%3AAlternative-Distros Other]].<br />
To use Asahi's graphics driver, Update your kernel to their develop branch.</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=AGM_A8_(agm-grip)&diff=35541
AGM A8 (agm-grip)
2023-01-10T01:49:43Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = AGM<br />
| name = A8<br />
| codename = agm-grip<br />
| image = File:Agm-a8-android-nougat.png<br />
| imagecaption = AGM A8 running Android 7<br />
| releaseyear = 2017<br />
| category = community<br />
| originalsoftware = Android 7.1<br />
| pmoskernel = none<br />
| chipset = Qualcomm MSM8916 Snapdragon 410<br />
| cpu = 4x ARM Cortex A53<br />
| gpu = Adreno 306<br />
| storage = 32 GB<br />
| display = 720x1280 IPS<br />
| memory = 3 GB<br />
| architecture = aarch64<br />
| n-android =<br />
| status_usbnet =<br />
| status_flashing =<br />
| status_touch =<br />
| status_screen =<br />
| status_wifi =<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline =<br />
| status_battery =<br />
| status_3d =<br />
| status_accel =<br />
| status_audio =<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg =<br />
| booting = no<br />
}}<br />
<br />
{{Based on SoC|Qualcomm_Snapdragon_410/412_(MSM8916)|Snapdragon 410}}<br />
<br />
Has two main versions: with 32 GB storage (3 GB RAM) and 64 GB storage (4GB RAM). Has no other differences. Some phones come with Android 5.1 but [https://4pda.to/forum/index.php?showtopic=815243&st=60#entry61390775 are upgradeable to Android 7 (rus.)]. This phones has some additional differences.<br />
<br />
== Partition table (from 4/64 version, sizes in bytes, gathered via ADB) ==<br />
<br />
{| class="wikitable"<br />
! Number<br />
! Start<br />
! End<br />
! Size<br />
! File system<br />
! Name<br />
! Block device path<br />
|-<br />
| 1<br />
| 17408<br />
| 1065983<br />
| 1048576<br />
| <br />
| sbl1<br />
| /dev/block/mmcblk0p1<br />
|-<br />
| 2<br />
| 1065984<br />
| 2114559<br />
| 1048576<br />
| <br />
| sbl1bak<br />
| /dev/block/mmcblk0p2<br />
|-<br />
| 3<br />
| 2114560<br />
| 3163135<br />
| 1048576<br />
| <br />
| rpm<br />
| /dev/block/mmcblk0p3<br />
|-<br />
| 4<br />
| 3163136<br />
| 4211711<br />
| 1048576<br />
| <br />
| rpmbak<br />
| /dev/block/mmcblk0p4<br />
|-<br />
| 5<br />
| 4211712<br />
| 5260287<br />
| 1048576<br />
| <br />
| tz<br />
| /dev/block/mmcblk0p5<br />
|-<br />
| 6<br />
| 5260288<br />
| 6308863<br />
| 1048576<br />
| <br />
| tzbak<br />
| /dev/block/mmcblk0p6<br />
|-<br />
| 7<br />
| 6308864<br />
| 7357439<br />
| 1048576<br />
| <br />
| hyp<br />
| /dev/block/mmcblk0p7<br />
|-<br />
| 8<br />
| 7357440<br />
| 8406015<br />
| 1048576<br />
| <br />
| hypbak<br />
| /dev/block/mmcblk0p8<br />
|-<br />
| 9<br />
| 8406016<br />
| 11551743<br />
| 3145728<br />
| <br />
| keystore<br />
| /dev/block/mmcblk0p9<br />
|-<br />
| 10<br />
| 11551744<br />
| 13124607<br />
| 1572864<br />
| <br />
| modemst1<br />
| /dev/block/mmcblk0p10<br />
|-<br />
| 11<br />
| 13124608<br />
| 14697471<br />
| 1572864<br />
| <br />
| modemst2<br />
| /dev/block/mmcblk0p11<br />
|-<br />
| 12<br />
| 14697472<br />
| 15746047<br />
| 1048576<br />
| <br />
| misc<br />
| /dev/block/mmcblk0p12<br />
|-<br />
| 13<br />
| 15746048<br />
| 15747071<br />
| 1024<br />
| <br />
| fsc<br />
| /dev/block/mmcblk0p13<br />
|-<br />
| 14<br />
| 15747072<br />
| 15755263<br />
| 8192<br />
| <br />
| ssd<br />
| /dev/block/mmcblk0p14<br />
|-<br />
| 15<br />
| 15755264<br />
| 16803839<br />
| 1048576<br />
| <br />
| diag<br />
| /dev/block/mmcblk0p15<br />
|-<br />
| 16<br />
| 16803840<br />
| 17852415<br />
| 1048576<br />
| <br />
| flag<br />
| /dev/block/mmcblk0p16<br />
|-<br />
| 17<br />
| 17852416<br />
| 28338175<br />
| 10485760<br />
| <br />
| logo<br />
| /dev/block/mmcblk0p17<br />
|-<br />
| 18<br />
| 28338176<br />
| 61892607<br />
| 33554432<br />
| ext4<br />
| persist<br />
| /dev/block/mmcblk0p18<br />
|-<br />
| 19<br />
| 61892608<br />
| 330328063<br />
| 268435456<br />
| ext4<br />
| cache<br />
| /dev/block/mmcblk0p19<br />
|-<br />
| 20<br />
| 330328064<br />
| 330852351<br />
| 524288<br />
| <br />
| config<br />
| /dev/block/mmcblk0p20<br />
|-<br />
| 21<br />
| 330852352<br />
| 397961215<br />
| 67108864<br />
| <br />
| oem<br />
| /dev/block/mmcblk0p21<br />
|-<br />
| 22<br />
| 402653184<br />
| 469762047<br />
| 67108864<br />
| fat16<br />
| modem<br />
| /dev/block/mmcblk0p22<br />
|-<br />
| 23<br />
| 469762048<br />
| 469794815<br />
| 32768<br />
| <br />
| DDR<br />
| /dev/block/mmcblk0p23<br />
|-<br />
| 24<br />
| 469794816<br />
| 471367679<br />
| 1572864<br />
| <br />
| fsg<br />
| /dev/block/mmcblk0p24<br />
|-<br />
| 25<br />
| 471367680<br />
| 471384063<br />
| 16384<br />
| <br />
| sec<br />
| /dev/block/mmcblk0p25<br />
|-<br />
| 26<br />
| 471384064<br />
| 472432639<br />
| 1048576<br />
| <br />
| aboot<br />
| /dev/block/mmcblk0p26<br />
|-<br />
| 27<br />
| 472432640<br />
| 473481215<br />
| 1048576<br />
| <br />
| abootbak<br />
| /dev/block/mmcblk0p27<br />
|-<br />
| 28<br />
| 473481216<br />
| 507035647<br />
| 33554432<br />
| <br />
| boot<br />
| /dev/block/mmcblk0p28<br />
|-<br />
| 29<br />
| 507035648<br />
| 540590079<br />
| 33554432<br />
| <br />
| recovery<br />
| /dev/block/mmcblk0p29<br />
|-<br />
| 30<br />
| 540590080<br />
| 541638655<br />
| 1048576<br />
| <br />
| devinfo<br />
| /dev/block/mmcblk0p30<br />
|-<br />
| 31<br />
| 541638656<br />
| 4836605951<br />
| 4294967296<br />
| ext4<br />
| system<br />
| /dev/block/mmcblk0p31<br />
|-<br />
| 32<br />
| 4898947072<br />
| 62285392383<br />
| 57386445312<br />
| ext4<br />
| userdata<br />
| /dev/block/mmcblk0p32<br />
|-<br />
| 33<br />
| 62285392384<br />
| 62537055743<br />
| 251663360<br />
| <br />
| grow<br />
| /dev/block/mmcblk0p33<br />
|}<br />
<br />
== Installation ==<br />
''isn't tested yet''<br />
<br />
== Contributors ==<br />
''none yet''<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Resources ==<br />
* [https://forum.xda-developers.com/t/agm-a8-5-ip68-rugged-snapdragon-410-3gb-32gb-android-7-149usd.3542052/ XDA Forums page]<br />
* [https://4pda.to/forum/index.php?showtopic=815243 4pda forum page (rus.)]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Nokia_N8_(nokia-vasco)&diff=35540
Nokia N8 (nokia-vasco)
2023-01-10T01:43:43Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Nokia<br />
| name = N8<br />
| codename = nokia-vasco<br />
| image = File:Nokia-n8-running-symbian-anna.jpg<br />
| imagecaption = Nokia N8 running Symbian Anna<br />
| releaseyear = 2010<br />
| originalsoftware = Symbian Anna<br />
| pmoskernel = none<br />
| cpu = 1x 680 MHz Samsung K5W4G2GACA - AL54<br />
| gpu = Broadcom BCM2727<br />
| storage = 16 GB<br />
| display = 640x360 AMOLED<br />
| memory = 256 MB<br />
| architecture = armhf<br />
| n-android = ✔<br />
| status_usbnet =<br />
| status_flashing = -<br />
| status_touch =<br />
| status_screen =<br />
| status_wifi =<br />
| status_xwayland =<br />
| status_fde =<br />
| status_mainline =<br />
| status_battery =<br />
| status_3d =<br />
| status_accel =<br />
| status_audio =<br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg =<br />
| booting = no<br />
}}<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Resources ==<br />
* [https://phonesdata.com/en/smartphones/nokia/n8-820/ Phone data (Hardware/Software)]<br />
* [https://wiki.postmarketos.org/wiki/Symbian Main Symbian wiki page]<br />
<br />
== Helpful links for porting ==<br />
* [https://github.com/SymbianSource/oss.FCL.sf.os.kernelhwsrv Symbian OS kernel]<br />
* [https://web.archive.org/web/20141023235428/http://developer.nokia.com/community/wiki/Symbian_OS_Internals/16._Boot_Processes Symbian boot process explanations from Nokia developer forum]<br />
* [https://web.archive.org/web/20110220203322/http://androidcommunity.com/forums/f2/n97-bootloader-exploit-found-help-35589/ How to get kernel panic on N97]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_J2_(samsung-j2xnlte)&diff=35539
Samsung Galaxy J2 (samsung-j2xnlte)
2023-01-10T01:14:22Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = J2<br />
| codename = samsung-j2xlte<br />
| image = File:CHANGE_ME_TO_DEVICE_CODENAME.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2016<br />
| originalsoftware = Android 6.0.1 (Marshmallow)<br />
| chipset = Spreadtrum SC8830<br />
| cpu = Quad-core 1.5 GHz Cortex-A7<br />
| gpu = Mali-400MP2<br />
| storage = 8GB<br />
| display = 720 x 1280 Super AMOLED<br />
| memory = 1.5 GB<br />
| architecture = armv7<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
}}<br />
<br />
== Contributors ==<br />
* CHANGE_ME (put your username here!)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Lenovo_Tab_M10_FHD_Plus_(lenovo_tbx606)&diff=35538
Lenovo Tab M10 FHD Plus (lenovo tbx606)
2023-01-10T01:08:55Z
<p>MartijnBraam: Fix infobox syntax error</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Lenovo<br />
| name = Tab M10 FHD Plus 2nd Gen<br />
| codename = lenovo-tbx606<br />
| image = File:lenovo-tbx606fa_docked.jpg<br />
| imagecaption = TB-X606FA Tablet docked in it's Alexa speaker dock.<br />
| releaseyear = 2020<br />
| originalsoftware = Android<br />
| originalversion = 9<br />
| extendedversion = 10<br />
| chipset = MediaTek Helio P22T (MT8768)<br />
| cpu = 8x 1.8/2.30GHz Cortex-A53<br />
| gpu = PowerVR Rogue GE8320 @ 650MHz (OpenGL ES 3.2)<br />
| storage = 64GB eMMC<br />
| display = 10.3" 1920x1200 TDDI 330nits<br />
| memory = 4GB LPDDR4X 3200MHz<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = N <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 4.9.117<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
The ''Lenovo Tab M10 FHD'' Plus is a series of tablets sold also intended to be used as voice assistant screen hybrids called ''Smart Tab M10 FHD Plus''. This is the second generation of the ''M10 FHD'' tablet (called ''M10 FHD Plus'') and uses ''Mediatek'' processors.<br />
<br />
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" style="min-width:20em;"<br />
|+ class="nowrap" | Tablet Model Overview:<br />
|-<br />
| This 4/64GB tablet is sold alone (''P/N ZA6M0009US''), with a docking station intended to be used with Google Assistant (''P/N ZA5W0146US'') and with a speaker base with an Alexa Show Mode (''Model TB-X606FA, P/N ZA6M0009US''). AFAIK, the hardware between those versions is mostly the same. Software isn't.<br />
However, 2GB RAM models also exist.<br />
<br />
The TB-X606FA Alexa Base connects to the device via just two pogo pins (thus providing charging only) and is connected via Bluetooth exposing two devices called 'Lenovo Smart Dock xxxxxx'. One acts as a Bluetooth A2DP/HSP sink (TODO: codecs and get Source working in Pulseaudio). The other device exposes a bunch of (unknown) Bluetooth services.<br />
<br />
The efforts for this tablet will most likely be of great use in porting the ''Lenovo Tab M8 FHD (Lenovo TB-8705)'', which shares the same SOC.<br />
<br />
{| class="wikitable"<br />
| Tablet model [HW Version]<br />
| Type<br />
| Packaged with<br />
| Lenovo LMSA Rom<br />
|-<br />
| TB-X606FA [60-62]<br />
| WIFI<br />
| Alexa Base<br />
| TB-X606FA_S300269_210602_BMP.zip (2.1 GB)<br />
|-<br />
| TB-X606XA [80-82]<br />
| WIFI+LTE<br />
| Alexa Base<br />
| TB-X606XA_S300279_210602_BMP.zip (2.1 GB)<br />
|-<br />
| TB-X606F [60-66]<br />
| WIFI<br />
| Alone/Google Assistant Base<br />
| TB-X606F_S300320_210716_BMP.zip (1.9 GB)<br />
|-<br />
| TB-X606X [80-86]<br />
| WIFI+LTE<br />
| Alone/Google Assistant Base<br />
| TB-X606X_S300326_210720_BMP.zip (1.9 GB)<br />
|-<br />
| TB-X606V [80-86]<br />
| WIFI+LTE<br />
| Alone/Google Assistant Base<br />
| TB-X606V_S300255_210527_BMP.zip (1.9 GB)<br />
|}<br />
|}<br />
<br />
== Contributors ==<br />
* [[User:Rgon|Rgon]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
== How to enter flash mode ==<br />
NOTES: Unofficial TWRP is [https://forum.xda-developers.com/t/recovery-tb-x606f-tb-x606fa-unofficial-twrp-3-5-x-for-lenovo-tab-m10-fhd-plus.4222887/ available] for this device.<br />
Bootloader unlocking:<br />
* Enable Developer Options (''Android Settings -> System -> About -> Build Number'' (press 7 times)<br />
* Turn on OEM Unlocking and USB Debugging in ''Android Settings -> System -> Developer Options''<br />
* Connect tablet to computer, press <code>Allow USB Debugging</code> on the popup that will appear on the tablet.<br />
* <code>$ adb reboot bootloader</code><br />
* <code>$ fastboot flashing unlock</code> '''Wipes data!'''<br />
* Follow the instructions on the tablet and reboot to Android for the wipe to complete.<br />
<br />
Entering the bootloader:<br />
* Hold <code>Vol Down + Power</code> until the tablet vibrates to enter fastboot mode.<br />
<br />
Enable installing unverified packages (specific to mediatek devices/Android Verified Boot): either [https://forum.hovatek.com/thread-32719.html flash an empty vbmeta package]<br />
* <code>fastboot --disable-verification flash vbmeta vbmeta.img</code><br />
TODO: provide vbmeta.img<br />
or create a [https://forum.hovatek.com/thread-32664.html custom signed ''vbmeta.img''] for your partitions.<br />
<br />
Then install your package ([https://android.stackexchange.com/a/231267 after vbmeta]):<br />
* <code>fastboot flash whatToFlash imageSrc</code><br />
<br />
== Installation ==<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
TODO: <code>pmbootstrap flasher flash_kernel</code> causes bootloop.<br />
The device shows the 'Lenovo' splash screen, appears as the usb device: <code>ID 0e8d:2000 MediaTek Inc. MT65xx Preloader</code>, which shortly disappears and reboots.<br />
<br />
== Serial Console ==<br />
The device's main board has two exposed POGO pins labelled ''TX'' and ''RX'' which expose the SOC's '''1.8V''' UART (voltage level checked with oscilloscope). CH340G USB-TTL 3.3V (RX only) confirmed working. Upon charger connected/<code>fastboot reboot</code>, the device prints the following (''115200 baud''):<br />
<br />
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"<br />
| <strong>Boot serial output:</strong><br />
|-<br />
| <syntaxhighlight><br />
<< garbage >><br />
F0: 102B 0000<br />
F3: 0000 0000 [0200]<br />
V0: 0000 0000 [0001]<br />
00: 0000 0000<br />
BP: 0800 0041 [0000]<br />
G0: 0090 0000<br />
EC: 0000 0000 [4001]<br />
CC: 0000 0000 [0005]<br />
T0: 0000 010B [000F]<br />
Jump to BL<br />
<< garbage >><br />
</syntaxhighlight><br />
|}<br />
The <code>&lt;&lt; garbage &gt;&gt;</code> found afterwards is data at ('''921600''') baud. Here's an excerpt after calling <code>fastboot reboot</code>:<br />
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"<br />
| <strong>Boot serial output @921600n1:</strong><br />
|-<br />
| <syntaxhighlight><br />
#T#PWRAP=9<br />
DATE_CODE_YY:2, DATE_CODE_WW:1<br />
[SegCode] Segment Code:0x8, PROJECT_CODE:0x0, FAB_CODE:0x2, RW_STA:0x0, CTL:0x0, DCM:0x4<br />
[HT22] : 1 0x4 0x4 done<br />
0:0x88000000, 1:0x1100, 2:0x1, 3:0x110003, 4:0x40000000, STA:0x0, S:0x4, FAB0:0x8768, FAB11:0x0<br />
A:0x0, B:0x3F, C:0x40, D:0x1F, E:0x1, F:0x3, G:0x2<br />
#T#I2C=3<br />
[PMIC]Preloader Start<br />
[PMIC]MT6357 CHIP Code = 0x5730<br />
[PMIC]POWER_HOLD :0x1<br />
<< ... >><br />
</syntaxhighlight><br />
|}<br />
<br />
== Android Verified Boot Notice ==<br />
'''Every time fastboot is loaded''', and either <code>fastboot flash boot bootimg.img</code> or <code>fastboot boot bootimg.img</code> is called, an empty <code>vbmeta</code> image must be flashed previously!! You can do so with <code>pmbootstrap flasher flash_vbmeta</code> as a first command every time you open ''fastboot''. If not, the kernel will not be loaded and instead, you'll get the following undescriptive messages in the serial console, and no kernel logs whatsoever:<br />
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"<br />
| <strong>Locked AVB Serial output:</strong><br />
|-<br />
| <syntaxhighlight><br />
[ATF](0)[1363.555865]INFO: #@# spm_config_spmfw_base(1052) spm_base_addr 0x77ff0000, spm_base_size 0x10000<br />
[ATF](0)[1363.557062]INFO: #@# spm_load_pcm_firmware(155) use spmfw partition for pcm_allinone_lp4_term_3200.bin - allinone_lp4_term_3200_v7.2.4<br />
[ATF](0)[1363.558654]INFO: #@# spm_load_pcm_firmware(155) use spmfw partition for pcm_allinone_lp4_3200.bin - allinone_lp4_3200_v7.2.4<br />
[ATF](0)[1363.560151]INFO: #@# spm_load_pcm_firmware(155) use spmfw partition for pcm_allinone_lp3_1866.bin - allinone_lp3_1866_v7.2.4<br />
[ATF](0)[1363.561648]INFO: #@# spm_load_pcm_firmware(155) use spmfw partition for pcm_allinone_lp4_term_2400.bin - allinone_lp4_term_2400_v7.2.4<br />
[ATF](0)[1363.563252]INFO: #@# spm_load_pcm_firmware(155) use spmfw partition for pcm_allinone_lp4_2400.bin - allinone_lp4_2400_v7.2.4<br />
[ATF](0)[1373.555200]INFO: aee_wdt_dump: on cpu0<br />
[ATF](0)[1373.555756]INFO: (0) pc:<0000000048036de4> lr:<0000000000000000> sp:<0000000048100100> pstate=60000173<br />
[ATF](0)[1373.557016]INFO: (0) x29: 00000000480bd000 x28: 0000000000000000 x27: 0000000000000000<br />
[ATF](0)[1373.558104]INFO: (0) x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000<br />
[ATF](0)[1373.559191]INFO: (0) x23: 00000000480bd000 x22: 0000000000000000 x21: 00000000480bd000<br />
[ATF](0)[1373.560279]INFO: (0) x20: 0000000000000000 x19: 0000000048100100 x18: 0000000048036de5<br />
[ATF](0)[1373.561367]INFO: (0) x17: 00000000480be574 x16: 0000000048036de8 x15: 0000000000000000<br />
[ATF](0)[1373.562455]INFO: (0) x14: 0000000000000000 x13: 0000000000000000 x12: 00000000481000f4<br />
[ATF](0)[1373.563542]INFO: (0) x11: 00000000480cba78 x10: 0000000047c90000 x09: 000000000000000e<br />
[ATF](0)[1373.564630]INFO: (0) x08: 0000000048082820 x07: 0000000000000000 x06: 0000000000600000<br />
[ATF](0)[1373.565718]INFO: (0) x05: 0000000000000000 x04: 00000000480ccef4 x03: 00000000000051ac<br />
[ATF](0)[1373.566805]INFO: (0) x02: 00000000000263c5 x01: 000000000010e70c x00: 000000000000003a<br />
</syntaxhighlight><br />
|}<br />
<br />
== Boot Debugging ==<br />
The device will not boot and will enter a bootloop. However, reading the serial terminal, we can diagnose the output of <code>fastboot oem p2u on && fastboot boot '/tmp/postmarketOS-export/boot.img-lenovo-x606fa'</code>. The system enter a kernel panic and the ''MTK WDT'' reboots the device back to ''fastboot'' mode. These lines before the panic might shed some light:<br />
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"<br />
| <strong>Pre-panic output:</strong><br />
|-<br />
| <syntaxhighlight><br />
</syntaxhighlight><br />
|}<br />
The previous error has been successfully solved with the following <code>defconfig</code> options:<br />
<syntaxhighlight><br />
# CONFIG_MTK_DYNAMIC_FPS_FRAMEWORK_SUPPORT is not set<br />
# CONFIG_MTK_FPSGO is not set<br />
</syntaxhighlight><br />
<br />
== Accidental Bricking ==<br />
During the development process, I've managed to ''dead-brick'' or ''black-screen-brick'' the device several times. The device will not show any signs of life other than it vibrating on the constant reboots. There is no way to access fastboot in this bricked state. Serial output shows the preloader tries to load the bootloader but stops at <code>[ATF](0)[5.261232]NOTICE: ['A] CPU[0] IRQ[171][ATF](0)[5.261720]NOTICE: enter(15340998846)[ATF](0)[5.262204]NOTICE: quit(15354769923)</code>, causing <code>aee_wdt_dump</code>. Little Kernel doesn't seem to run in such case.<br />
<br />
=== Probable cause: ===<br />
Trying to <code>fastboot boot bootimg.img</code> with an erased <code>boot</code> partition.<br />
<br />
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"<br />
| <strong>Commands that cause hard-brick in a reproducible manner:</strong><br />
|-<br />
| <syntaxhighlight lang="bash"><br />
fastboot format userdata<br />
fastboot format system<br />
fastboot erase boot<br />
fastboot oem p2u on<br />
fastboot format cache<br />
fastboot flash system '/tmp/postmarketOS-export/lenovo-x606fa.img'<br />
fastboot boot '/tmp/postmarketOS-export/boot.img-lenovo-x606fa'<br />
</syntaxhighlight><br />
|}<br />
However, simply adding <code>fastboot flash boot '/tmp/postmarketOS-export/boot.img-lenovo-x606fa'</code> so the boot partition isn't empty (or not erasing it in the first place) guarantees that your non-booting kernel does not brick your device that easily.<br />
<br />
=== Solution: ===<br />
Use <code>SP-Flash-Tool</code> to re-flash the vendor's ROM. The fastest route is probably using <code>Lenovo LMSA</code> on a sepparate Windows (unfortunately) machine and reflash using the MTK Preloader. Just follow the <code>LMSA</code> instructions and plug the (in rebooting condition) Tablet while pressing ''Volume UP''. No need to try to turn it off nor disconnect the (internal) battery, since it's already in a preloader loop.<br />
<br />
== Issues stifling development ==<br />
* <s>TWRP install not persisting</s> Solved by installing ''vbmeta.img'' before (and after?) the recovery image.<br />
* <s><code>pmbootstrap flasher flash_rootfs</code> throws error <code>Invalid sparse file format at header magic</code> and keeps transferring the data.</s> Solved by: [[Troubleshooting#Invalid_sparse_file_format_at_header_magic]]<br />
Note: even though no further errors pop up, after calling this command, TWRP throws the following errors: <code>Faled to mount '/system_root' (Invalid-argument)</code>.<br />
Wiping the "System" partition on TWRP fixes the issue, and reflashing pmOS brings it back up.<br />
So it seems that the partition is not being correctly written by <code>flash_rootfs</code><br />
<br />
* <code>pmbootstrap flasher flash_rootfs</code> followed by <code>pmbootstrap flasher boot</code> reboots to fastboot.<br />
* <code>pmbootstrap flasher flash_kernel</code> does not throw errors<br />
* <code>pmbootstrap install --no-fde --android-recovery-zip</code> <code>pmbootstrap export</code> and using <code>adb push mos-lenovo-x606fa.zip /sdcard/</code> to later "Install Zip" is impossible if we don't _Wipe_ <code>system</code> (and <code>data</code>, <code>cache</code> for good measure). After flashing the exported <code>.zip</code>, <code>/system_root</code> is once again mountable (containing just the <code>lost+found</code> dir, but <code>Data</code> is no longer mountable).<br />
<br />
== See also ==<br />
The open source kernel code for the models: ''TB-X606X, TB-X606F'' (buildable, and containing a defconfig for the board) can be found in [https://support.lenovo.com/us/en/solutions/ht511330-lenovo-open-source-portal Lenovo's Open Source portal], with the filename <code>tab_m10_fhd_plus_opensource_tb-x606m_s000213_200302_bmain.tgz</code>, sha256sum: <code>aab720c250f05a5b4ae618ecf8350978428446ad14b1f8ed8b01b0582205a12c</code>.<br />
<br />
The board name appears to be <code>achilles6_row_wifi</code>, as is the provided kernel source's ''defconfig'' filename. Note: the extracted working TWRP's defconfig file is called <code>achilles6_row_wifi_alexa</code>, so the <code>TB-X606FA</code> version might in fact be different.<br />
<br />
You'll probably find more information here [https://gitlab.com/ubports/porting/community-ports/android9/lenovo-tab-m10-fhd-plus/lenovo-x606](UBports community port). They have apparently managed to compile and make it run. However, [https://gitlab.com/ubports/porting/community-ports/android9/lenovo-tab-m10-fhd-plus/lenovo-x606/-/issues/18](an user reports) that they arrived to the same bootloop that I found, blaming that since the Kernel Lenovo provides is for the Android 9 variant, flashing it on a tablet that has Android 10 installed (the newer production date ones) causes it to not boot [https://gitlab.com/ubports/porting/community-ports/android9/lenovo-tab-m10-fhd-plus/lenovo-x606/-/issues/12](see comment here).<br />
<br />
<!--<br />
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{MR|CHANGEME|pmaports}} Initial merge request<br />
* {{issue|CHANGEME|pmaports}} Some related issue<br />
You can also add normal web links:<br />
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]<br />
--><br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--><br />
<br />
== Mainlining ==<br />
This SOC ''mt8768'' seems to be mostly the same as the ''mt6765'', since in the Lenovo provided kernel, the name ''mt6765'' (Helio P35) appears in many places, substituting this tablet's SOC name.<br />
<br />
'''NOT VERIFIED''' [http://deviceinfohw.ru/devices/item.php?item=242353 sourced from deviceinfohw]<br />
{| class="wikitable"<br />
| Hardware type<br />
| Chip<br />
| Mainline status<br />
|-<br />
| WiFi chip<br />
| ?<br />
| ?<br />
|-<br />
| Charging IC<br />
| bq2560x<br />
| ?<br />
|-<br />
| Fuel gauge<br />
| ?<br />
| ?<br />
|-<br />
| GNSS<br />
| N/A<br />
| -<br />
|-<br />
| NFC<br />
| N/A<br />
| -<br />
|-<br />
| Proximity sensor<br />
| ltr578_l<br />
| ?<br />
|-<br />
| Accelerometer<br />
| Bosch bma253<br />
| -<br />
|-<br />
| Touchscreen<br />
| ?<br />
| fts_ts driver<br />
|-<br />
| Display panel<br />
| BOE TV103WUM-LL1<br />
| Generic Driver Used<br />
|}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=BQ_Aquaris_M10_FHD_(bq-frieza)&diff=35537
BQ Aquaris M10 FHD (bq-frieza)
2023-01-10T01:04:15Z
<p>MartijnBraam: Fix up invalid n-android value</p>
<hr />
<div>The BQ Aquarius M10 FHD is a tablet made by BQ and Canonical, which shipped in Android and Ubuntu Touch editions, which only differ on firmware. PostmarketOS boots on both firmwares.<br />
<br />
{{Infobox device<br />
| manufacturer = BQ<br />
| name = Aquaris M10 FHD<br />
| codename = bq-frieza<br />
| image = File:Bq-cooler-ubuntu.jpg<br />
| imagecaption = BQ Aquaris M10 HD running Ubuntu Touch<br />
| releaseyear = 2016<br />
| category = testing<br />
| originalsoftware = Ubuntu Touch 15.04<br />
| chipset = MediaTek MT8163B<br />
| cpu = Quad-core 1.3 GHz Cortex-A53<br />
| gpu = Mali T720<br />
| storage = 16GB<br />
| display = 1920x1200<br />
| memory = 2GB<br />
| architecture = aarch64<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = P<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = N<br />
| status_battery =<br />
| status_3d = <br />
| status_accel =<br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = <br />
| booting = yes<br />
| n-android = ✔ <!-- Ubuntu Edition exists, using an Android container --><br />
| whet_dhry = <br />
| status_otg = Y<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:00p513|00p513]]<br />
<br />
== Maintainer(s) ==<br />
* [[User:00p513|00p513]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Flashing ==<br />
This device has got 2 different firmwares. The main difference between them is the partition sizes, with the Ubuntu firmware having a larger userdata partition. You may use both for postmarketOS, however the Ubuntu one is recommended. <br />
<br />
Installation can be done via the usual installation guide, however flashing the rootfs will fail due to a broken fastboot installation. You can use either dd in recovery, android recovery zips with twrp, or flashing via SP Flash Tool. <br />
<br />
== Interfaces ==<br />
{| class="wikitable"<br />
! UI Name<br />
! Working?<br />
! Notes<br />
|-<br />
! Weston<br />
| Yes<br />
| <br />
|-<br />
! MATE<br />
| Yes<br />
| No touchscreen<br />
|}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Samsung_Galaxy_Note_10.1_(samsung-p4note)&diff=35536
Samsung Galaxy Note 10.1 (samsung-p4note)
2023-01-10T00:57:17Z
<p>MartijnBraam: Removed dashes in the infobox</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Samsung<br />
| name = Galaxy Note 10.1 WiFi/3G<br />
| codename = samsung-p4note<br />
| image = File:Samsung-n8010.jpg<br />
| imagecaption = Samsung Galaxy Note 10.1<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4<br />
| chipset = Samsung Exynos 4412 Quad<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = Mali-400 MP4<br />
| storage = 16/32/64 GB<br />
| display = 1280x800 PLS TFT<br />
| memory = 2 GB LPDDR3<br />
| architecture = armv7<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = P<!-- USB networking does work? then put Y here and delete this comment --><br />
| status_otg = N<!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = Y<!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = Y<!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<!-- The display is working? --><br />
| status_wifi = Y<!-- Wireless network works? --><br />
| status_xwayland = Y<!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = N<!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = Y<!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = P<!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = Y<!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = N<!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = Y <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = N <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = N<!-- Connecting to the Internet via cellular network. --><br />
| status_sms = N <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = N <!-- Talking to other people over the cellular network. --><br />
| status = Boots, not merged <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| booting = yes <!-- The device is booting at all *IMPORTANT* --><br />
}}<br />
<br />
== Contributors ==<br />
* Daniel Sosa<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== Issues ==<br />
<br />
=== Charging ===<br />
<br />
Charging works, but is slow. You'll probably need to turn the display off for the charge to increase.<br />
<br />
On GNOME, the charging state icon doesn't change until you restart the device.<br />
<br />
=== WiFi ===<br />
<br />
If your device is N8020, you'll likely need to run this command to be able to connect to WiFi networks. Otherwise, WiFi is functional.<br />
<br />
<source lang="shell-session"><br />
$ sudo ln -sf /lib/firmware/brcm/brcmfmac4334-sdio.samsung,i9305.txt /lib/firmware/brcm/brcmfmac4334-sdio.samsung,n8010.txt<br />
</source><br />
<br />
=== Non-functional hardware ===<br />
<br />
The S-Pen is currently not working.<br />
<br />
== Maintainer(s) ==<br />
* k2luawaken<br />
<br />
== How to enter flash mode ==<br />
Press {{Button|Volume Down}} and {{Button|Power}} on power up.<br />
<br />
Volume down is the side of the volume rocker that is closest to the power button.<br />
<br />
== Installation ==<br />
Image must be pushed to an SD Card (or /userdata) with ADB push or the dd command in TWRP.<br />
<br />
== Mainline Kernel ==<br />
<br />
Mainline kernel support matrix: https://viciouss.github.io/static_pages/galaxy_note_10_1_mainline/<br />
<br />
Blog post about Mainlining efforts: https://viciouss.github.io/2020/11/18/note-10_1-journey/<br />
<br />
XDA forum post about the mainline kernel work being done on this device: https://forum.xda-developers.com/galaxy-note-10-1/general/mainline-n8000-progress-t3964980<br />
<br />
Git Repositories for the work being done by Viciouss to mainline this device and get Android running on it: https://github.com/Viciouss?tab=repositories<br />
<br />
Mainline DTS: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/log/arch/arm/boot/dts/exynos4412-p4note-n8010.dts<br />
<br />
The accepted commit which added mainline support for this device in PostmarketOS is [https://gitlab.com/postmarketOS/pmaports/-/commit/ea0a6c61a3ad1925bb463c44148ab7966c86e471 here]<br />
<br />
The pmaports git repo for this device is in "testing" [https://gitlab.com/postmarketOS/pmaports/-/tree/master/device/testing/device-samsung-p4note here].<br />
<br />
== See also ==<br />
* {{MR|233|pmaports}} Initial merge request (Closed, not merged)<br />
* [https://redmine.replicant.us/issues/1946 Replicant] wants to support this device as well<br />
* {{MR|2908|pmaports}} Current merge request</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=35535
Template:Infobox device
2023-01-10T00:53:19Z
<p>MartijnBraam: Make the status column a free text field</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = <abbr title="The version the device was shipped with.">Original version</abbr><br />
|data7 = {{{originalversion|}}}<br />
|header8 =<br />
|label8 = <abbr title="The most recent supported version from the manufacturer.">Extended version</abbr><br />
|data8 = {{{extendedversion|}}}<br />
|header9 =<br />
|label9 = Optional software<br />
|data9 = {{{optionalsoftware|}}}<br />
|header10 =<br />
|label10 = postmarketOS kernel<br />
|data10 = {{{pmoskernel|}}}<br />
|header11 = Hardware<br />
|label11 =<br />
|data11 =<br />
|header12 = <br />
|label12 = Chipset<br />
|data12 = {{#if:{{{chipset|}}}|[[{{{chipset|}}}]]}}<br />
|header13 = <br />
|label13 = CPU<br />
|data13 = {{{cpu|}}}<br />
|header14 = <br />
|label14 = GPU<br />
|data14 = {{{gpu|}}}<br />
|header15 = <br />
|label15 = Display<br />
|data15 = {{{display|}}}<br />
|header16 = <br />
|label16 = Storage<br />
|data16 = {{{storage|}}}<br />
|header17 = <br />
|label17 = Memory<br />
|data17 = {{{memory|}}}<br />
|header18 = <br />
|label18 = Architecture<br />
|data18 = {{{architecture|}}}<br />
|header19 = <br />
|label19 = Type<br />
|data19 = {{{type|}}} <!-- "desktop", "laptop", "convertible", "server", "tablet", "handset", "watch", and "embedded" --><br />
|header20 = <br />
|label20 = Unixbench Whet/Dhry score<br />
|data20 = {{{whet_dhry|}}}<br />
|header21 = <br />
|label21 = Model<br />
|data21 = {{{model|}}}<br />
}}<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Also known as flip cover sensor">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
|label6 = Barometer<br />
|data6 = {{Feature|{{{status_barometer|}}}}}<br />
|label7 = Power Sensor<br />
|data7 = {{Feature|{{{status_powersensor|}}}}}<br />
}}<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Keyboard<br />
|data1 = {{Feature|{{{status_keyboard|}}}}}<br />
|header2 =<br />
|label2 = Touchpad<br />
|data2 = {{Feature|{{{status_touchpad|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Full-sized USB-A port works (Usually applicable to SBCs and laptops).">USB-A</abbr><br />
|data3 = {{Feature|{{{status_usba|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Video and audio output with HDMI or Display Port works.">HDMI/DP</abbr><br />
|data4 = {{Feature|{{{status_hdmidp|}}}}}<br />
|header5 =<br />
|label5 = Ir TX<br />
|data5 = {{Feature|{{{status_irtx|}}}}}<br />
|header6 =<br />
|label6 = FOSS bootloader<br />
|data6 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:<br />
_table=Devices<br />
|Manufacturer=String<br />
|Name=String<br />
|Codename=String<br />
|Released=Date<br />
|Chipset=String<br />
|OriginalSoftware=String<br />
|PmosKernel=String<br />
|CPU=String<br />
|GPU=String<br />
|Display=String<br />
|Storage=String<br />
|Memory=String<br />
|StatusUsbnet=String (size=1)<br />
|StatusFlashing=String (size=1)<br />
|StatusTouch=String (size=1)<br />
|StatusScreen=String (size=1)<br />
|StatusWifi=String (size=1)<br />
|StatusXwayland=String (size=1)<br />
|StatusFde=String (size=1)<br />
|StatusMainline=String (size=1)<br />
|StatusBattery=String (size=1)<br />
|Status3d=String (size=1)<br />
|StatusAccel=String (size=1)<br />
|StatusMagnet=String (size=1)<br />
|StatusLight=String (size=1)<br />
|StatusProximity=String (size=1)<br />
|StatusHall=String (size=1)<br />
|StatusAudio=String (size=1)<br />
|StatusBluetooth=String (size=1)<br />
|StatusCamera=String (size=1)<br />
|StatusGps=String (size=1)<br />
|StatusMobiledata=String (size=1)<br />
|StatusSms=String (size=1)<br />
|StatusCalls=String (size=1)<br />
|StatusStatus=Text<br />
|Architecture=String<br />
|Booting=Boolean<br />
|NonAndroid=String (size=4)<br />
|WhetDhry=Float<br />
|StatusOtg=String (size=1)<br />
|Category=String<br />
|StatusNfc=String (size=1)<br />
|StatusIrtx=String (size=1)<br />
|StatusUbootPrimary=String<br />
|StatusUbootSecondary=String<br />
|StatusUbootMainline=String<br />
|StatusUbootInternalStorage=String<br />
|StatusUbootSd=String<br />
|StatusUbootUsbhost=String<br />
|StatusUbootUsbperipheral=String<br />
|StatusUbootScreen=String<br />
|StatusUbootKeyboard=String<br />
|StatusUbootButtons=String<br />
|StatusUboot=String<br />
|StatusBarometer=String<br />
|StatusPowerSensor=String<br />
|StatusUsba=String<br />
|StatusHdmidp=String<br />
|StatusKeyboard=String<br />
|StatusTouchpad=String<br />
}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#if:{{{type|}}}|[[Category:{{{type|}}}]]|}}<br />
{{#if:{{{originalsoftware|}}}|[[Category:{{{originalsoftware|}}}]]|}}<br />
{{#if:{{{manufacturer|}}}|[[Category:{{{manufacturer|}}}]]|}}<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}}|StatusBarometer={{{status_barometer|}}}|StatusPowerSensor={{{status_powersensor|}}}|StatusUsba={{{status_usba|}}}|StatusHdmidp={{{status_hdmidp|}}}|StatusKeyboard={{{status_keyboard|}}}|StatusTouchpad={{{status_touchpad|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Apple_iPod_Touch_1G_(apple-ipt1g)&diff=35534
Apple iPod Touch 1G (apple-ipt1g)
2023-01-10T00:49:26Z
<p>MartijnBraam: Status message was too long</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Apple<br />
| name = iPod Touch (1G)<br />
| codename = apple-ipt1g<br />
| image = File:Apple iPod Touch 1G.png<br />
| imagecaption = Apple iPod Touch (1G)<br />
| releaseyear = 2007<br />
| originalsoftware = iPhone OS 1.0<br />
| chipset = Samsung S5L8900<br />
| cpu = Single-core 412 MHz ARM1176JZF-S<br />
| gpu = PowerVR MBX Lite<br />
| storage = 8/16/32 GB<br />
| display = 320x480 TN<br />
| memory = 128 MB<br />
| architecture = armhf<br />
| n-android = ✔<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = openiboot doesn't build under gcc6 or 8<br />
| booting = no<br />
}}<br />
== Contributors ==<br />
<br />
* MartijnBraam<br />
* opendata<br />
<br />
== Progress ==<br />
{{note|We have GCC 4 package now! See also https://gitlab.com/scintill/pmaports/tree/device/ipad1, with standard gcc build of openiboot.}}<br />
<br />
The iPod can boot Linux with the openiboot firmware which has to be build first. The openiboot firmware is not made for GCC6 and requires a few patches, it's also written for the arm-elf toolchain but it can be built with the arm-eabi toolchain for now which seems to work.<br />
<br />
This is also the slowest device yet since it uses a 412 Mhz ARMv6 single-core cpu (Samsung S5L8900) and 128 MB ram. It has also has a PowerVR GPU which can cause trouble with porting.<br />
<br />
== Links ==<br />
<br />
* [https://github.com/iDroid-Project/openiBoot openiboot] (Great info on wiki)<br />
* [https://github.com/planetbeing/iphonelinux iphonelinux] (Also this wiki has a lot of useful info)<br />
* [https://gitlab.com/postmarketOS/pmbootstrap/-/tree/device/ipod1 pmos branch], old scheme, aports/main/openiboot would need to be copied to the new pmaports.git</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Nokia_N900_(nokia-n900)&diff=35533
Nokia N900 (nokia-n900)
2023-01-10T00:46:06Z
<p>MartijnBraam: Fix invalid float in infobox</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Nokia<br />
| name = N900<br />
| codename = nokia-n900<br />
| image = File:Nokia-rx51-cmus.jpg<br />
| imagecaption = Nokia N900 running cmus<br />
| releaseyear = 2009<br />
| category = community<br />
| originalsoftware = Maemo 5 (Fremantle) on Linux 2.6.28<br />
| pmoskernel = Mainline Linux<br />
| chipset = TI OMAP 3430<br />
| cpu = 1x 600 MHz Cortex-A8<br />
| gpu = PowerVR SGX530<br />
| storage = 32 GB<br />
| display = 800x480 TFT resistive<br />
| memory = 256 MB<br />
| architecture = armv7<br />
| n-android = ✔<br />
| whet_dhry = 58.4<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = N<br />
| status_accel = Y<br />
| status_audio = Y<br />
| status_bluetooth = N<br />
| status_camera = P<br />
| status_gps = P<br />
| status_mobiledata = Y<br />
| status_sms = Y<br />
| status_calls = P<br />
| status_otg = -<br />
| status_keyboard = Y<br />
| status_irtx = N<br />
| status_proximity = Y<br />
| status_light = Y<br />
| booting = yes<br />
| status_uboot = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_keyboard = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_internalstorage = Y<br />
}}<br />
{{Based on SoC|Texas_Instruments_OMAP_3_(OMAP3xxx)|TI OMAP 3430}}<br />
[[File:I3wm-n900.jpg|thumb|right|Running i3wm]]<br />
[[File:20170724 0002.jpg|thumb|right|Splash screen]]<br />
<br />
__TOC__<br />
<br />
=== Contributors ===<br />
* ''[[user:Sicelo|sicelo]]''<br />
* ''[[user:Danct12|Danct12]]''<br />
* ''[[user:MartijnBraam|MartijnBraam]]''<br />
* ''[https://gitlab.com/craftyguy craftyguy]''<br />
* ''[https://github.com/pavelmachek Pavel Machek]''<br />
* ''[[user:drebrez|drebrez]]''<br />
* ''[https://github.com/fxkrait FXKrait]''<br />
* ''[[user:ollieparanoid|ollieparanoid]]''<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
<br />
== Additional info ==<br />
Cameras are supported in the kernel, but have very complex media pipelines. [https://git.sr.ht/~martijnbraam/megapixels-compat Megapixels] has preliminary support for at least the rear/main camera.<br />
<br />
The GPU is a PowerVR SGX530 which does not have FOSS drivers, so 3D acceleration does not work with the mainline kernel. However, the blobs, patched mesa, and patched wlroots that permit it to work on mainline with postmarketOS are maintained in the [https://gitlab.com/pvrports pvrports project]. It packages the work of the [https://github.com/openpvrsgx-devgroup/linux_openpvrsgx linux openpvrsgx dev group] , which maintains a "near-mainline" kernel fork with the required kernel driver. <br />
<br />
Voice calls work, but need https://gitlab.com/libcmtspeechdata/libcmtspeechdata to route the speech data. Due to very tight timings involved in the associated protocol, the audio is very low quality unless additional processing is performed (Nokia had closed-source Pulseaudio modules for this).<br />
<br />
There's bluetooth support at bluetooth-next, but that works on N950, not on N900. [https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=7bb318680e868cd049922f6761170b42ff89687d Bluetooth] . The driver compiles fine and loads firmware correctly, then times out on the bluetooth 'read_BD_ADDR' HCI command.<br />
<br />
OTG might work since the kernel has support. However, like [[Wileyfox_Swift_(wileyfox-crackling)]], there is a hardware limitation that prevents the N900 from automatically detecting that there's a connected device, and also detecting the USB version/speed it supports. With some work, it most likely should work with manual activation<br />
<br />
== Installation ==<br />
We currently only support installing and running pmOS from the microSD card on the N900. Running from internal storage probably has no real benefit since it is quite slow.<br />
<br />
=== Flash postmarketOS to SD card ===<br />
{{note|If your phone does not jump from Nokia logo to U-Boot prompt when powered on and booted with the keyboard slider open, you'll need to install U-Boot by Pali, see [[#Configure u-boot on eMMC to boot from the SD card]]}}<br />
<br />
==== From pre-built image (easy method) ====<br />
Official images of postmarketOS for the N900 are built at least every week.<br />
<br />
Choose an image for your device from the [https://postmarketos.org/download/ download] page.<br />
<br />
Then flash it to your SD as follows. Adjust the image name and the path to your SD card (you can figure it out with <code>lsblk</code>). Note that the <code>dd</code> command should use the device name, not the partition name (for example <code>/dev/sdc</code> instead of <code>/dev/sdc1</code>).<br />
<br />
<source lang="shell-session"><br />
$ xzcat 20210209-0034-postmarketOS-edge-i3wm-0.3-nokia-n900.img.xz | sudo dd of=/dev/mmcblk... status=progress bs=1M<br />
</source><br />
<br />
The first boot takes longer, as the root partition gets resized to fit the whole SD card. There is a lot of kernel output during boot, just wait patiently until i3wm shows up. Read [[#i3wm]] for the N900 specific keybindings, most importantly <code>Shift + Space</code>, then <code>t</code> to open a terminal. You can use <code>sudo nmtui</code> to connect to a Wi-Fi network (<code>nmcli</code> can be used also: https://wiki.postmarketos.org/wiki/WiFi#Using_NetworkManager).<br />
<br />
==== With pmbootstrap (advanced) ====<br />
Instead of the pre-built images, you can use <code>pmbootstrap</code> to generate your own image. It allows to use full disk encryption, use another user interface (e.g. XFCE4) and other customizations.<br />
<br />
1. Initialize pmbootstrap<br />
: <source lang="shell-session">$ pmbootstrap.py init</source><br />
: Choose 'nokia-n900' as target device.<br />
<br />
2. Start the build process and install the completed image to a sdcard<br />
: (Replace /dev/sdX with the device for your sdcard)<br />
: <source lang="shell-session">$ pmbootstrap install --sdcard /dev/sdX</source><br />
<br />
=== Boot from the SD card ===<br />
# [http://maemo.org/downloads/product/Maemo5/u-boot-flasher/ Install u-boot from pali] on the n900 in Maemo. If this does not work in Hildon Application Manager, you may run <code>sudo apt-get install u-boot-flasher</code> in maemo terminal (see {{issue|16|wiki}} and {{issue|1371|pmbootstrap}}). See Additional Info below for instructions on configuring pmos to boot by default.<br />
# Place the sdcard into the n900 and boot it with the keyboard slide open<br />
# Choose the u-boot shell<br />
# enter <code>run sdboot</code> into the shell<br />
<br />
=== Configuring U-boot (optional) ===<br />
<br />
In order to configure pmos to boot by default on the N900, using U-boot, you will need to boot into Maemo and create a <code>/etc/bootmenu.d/10-pmos.item</code> file as the root user with these contents:<br />
<br />
{{hc|/etc/bootmenu.d/10-pmos.item|<syntaxhighlight lang="ini"><br />
ITEM_NAME="postmarketOS"<br />
ITEM_SCRIPT="boot.scr"<br />
ITEM_DEVICE="${EXT_CARD}p1"<br />
ITEM_FSTYPE="ext2"<br />
</syntaxhighlight>}}<br />
It can be set as the default boot option by creating a symlink:<br />
<br />
<pre>root@Nokia-N900:~# ln -s /etc/bootmenu.d/10-pmos.item /etc/default/bootmenu.item</pre><br />
Finally, run <code>u-boot-update-bootmenu</code>:<br />
<br />
<pre>root@Nokia-N900:~# u-boot-update-bootmenu <br />
Default bootmenu entry is '/etc/bootmenu.d/10-pmos.item'<br />
Adding bootmenu entry for: 'Maemo 5 with attached kernel (Internal Nand)'<br />
<br />
Configuration file: /etc/bootmenu.d/10-pmos.item<br />
Adding bootmenu entry for: 'postmarketOS'<br />
Configuring this bootmenu entry as default<br />
<br />
Generating u-boot bootmenu script...<br />
</pre><br />
'''Note''': This will set pmos as the default boot option. Maemo will still be accessible when booting the N900 with the keyboard slide out and selecting the relevant boot option in the u-boot boot menu.<br />
<br />
== Features ==<br />
<br />
=== Wifi ===<br />
The <code>device-nokia-n900-nonfree-firmware</code> package is required to provide the wl1251 firmware necessary for initializing the wifi device. ([https://github.com/postmarketOS/pmbootstrap/pull/1414 #1414])<br />
You get asked during <code>pmbootstrap init</code> if you would like to install that proprietary firmware package.<br />
<br />
Now you can use NetworkManager's console UI to connect to your network. Please note that <code>nmtui</code> does not work properly when started from <code>tmux</code>.<br />
<br />
<syntaxhighlight lang="shell-session"><br />
$ nmtui<br />
</syntaxhighlight><br />
<br />
==== With iwd ====<br />
From the 5.15.13 kernel package onwards, you are also able to use <code>iwd</code> to manage wireless, if you so prefer.<br />
<br />
==== With ConnMan ====<br />
If connman is already used for [[#GPRS|GPRS]] per instructions below, don't forget to unblacklist <tt>wlan</tt> in <code>/etc/connman/main.conf</code>.<br />
<syntaxhighlight lang="text"><br />
$ connmanctl<br />
connmanctl> scan wifi<br />
Scan completed for wifi<br />
connmanctl> services<br />
mywifi wifi_001fdfcafe01_6d7977696669_managed_psk<br />
connmanctl> agent on<br />
Agent registered<br />
connmanctl> connect wifi_001fdfcafe01_6d7977696669_managed_psk<br />
Agent RequestInput wifi_001fdfcafe01_6d7977696669_managed_psk<br />
Passphrase = [ Type=psk, Requirement=mandatory ]<br />
Passphrase? Mysupersecurewifipassword123<br />
Connected wifi_001fdfcafe01_6d7977696669_managed_psk<br />
connmanctl> services<br />
*AO mywifi wifi_001fdfcafe01_6d7977696669_managed_psk<br />
</syntaxhighlight><br />
<br />
==== Power saving / ping times ====<br />
<br />
It should be possible to disable power saving for better ping times, see {{maemo-leste|172}}.<br />
<br />
<syntaxhighlight lang="shell-session"><br />
$ sudo su -<br />
# apk add iw<br />
# iw dev wlan0 set power_save off<br />
# exit<br />
</syntaxhighlight><br />
<br />
=== Sound ===<br />
Modules need not to be compiled, sound support is built into kernel. Install alsa-utils. <br />
<br />
<pre><br />
aplay /usr/share/sounds/alsa/Front_Left.wav<br />
</pre><br />
<br />
NikkSaan provided an advanced audio configuration in [https://github.com/postmarketOS/pmbootstrap/pull/702#issuecomment-380999740 #702 (comment)].<br />
<br />
=== Keyboard Backlight ===<br />
<br />
There are 6 keyboard backlight LEDs that can be adjusted, they are found under <code>/sys/class/leds/lp5523:kb{1-6}</code>. To adjust brightness, write a value, $VAL between 0 and 255, to the <code>brightness</code> parameter as the root user:<br />
<br />
<pre>for i in $(seq 1 6);<br />
do echo $VAL &gt; /sys/class/leds/lp5523\:kb$i/brightness<br />
done</pre><br />
<br />
=== Keyboard layout ===<br />
<br />
The keyboard layout is asked during <code>pmbootstrap init</code> after you select the <code>nokia-n900</code> device.<br />
<br />
Available keymaps:<br />
<div style="overflow:hidden"><br />
[[File:N900 keymap us.jpg|800px|thumb|left|us/rx51_us]]<br />
[[File:N900 keymap ch-de.jpg|800px|thumb|left|ch/rx51_ch]]<br />
[[File:N900 keymap se.jpg|800px|thumb|left|se/rx51_se and fi/rx51_fi (same for Swedish and Finnish).]]<br />
[[File:N900 keymap it.jpg|800px|thumb|left|it/rx51_it]]<br />
</div><br />
<br />
==== Console ====<br />
<br />
:'''NOTE:''' during installation pmbootstrap will typically ask you for the desired keymap. The following is only for experimentation: normally all should just work fine after setting up the SD card from pmbootstrap. The following section may be dated and pmbootstrap has already done the job for you.<br />
<br />
To obtain your desired language keymap file for the RX-51, [https://gitlab.com/postmarketOS/pmaports/-/blob/master/device/community/device-nokia-n900/keymaps/rx51_us.map such as this one]:<br />
<br />
* On the N900, install <code>kbd-bkeymaps</code>, either by using <code>pmbootstrap install --add kbd-bkeymaps</code> on the host system or by running <code>apk add kbd-bkeymaps</code> on the device itself.<br />
<br />
* The keymap must be in binary format, bmap. This can be accomplished using the <code>loadkeys</code> tool:<br />
<br />
<source lang="shell-session">$ apk add kbd kbd-bkeymaps<br />
$ loadkeys -b rx51_us.map > rx51_us.bmap<br />
$ gzip rx51_us.bmap</source><br />
<br />
* Compress it and copy it to <code>/usr/share/bkeymaps/us/</code> on the N900.<br />
<br />
* Log into the N900, and run <code>sudo setup-keymap</code>, then select <code>us</code> and finally <code>rx51_us</code>.<br />
<br />
(TODO: Need to pull 'official' vconsole keymaps from Maemo5 if they exist..)<br />
<br />
==== X11 ====<br />
<br />
:'''NOTE:''' during installation pmbootstrap will typically ask you for the desired X11 xkb keymap. The following is only for experimentation: normally all should just work fine after setting up the SD card from pmbootstrap. The following section may be dated and pmbootstrap has already done the job for you.<br />
<br />
In X11 you can use <code>setxkbmap</code> to configure the desired layout.<br />
<br />
Right now it's configured to use the <code>nokiarx51/us</code> layout by default (see [https://github.com/postmarketOS/pmbootstrap/blob/a7afd519eff34237dfe2766634ac6b2c5076e9f5/aports/device/device-nokia-n900/keymaps/40-xkb.conf 40-xkb.conf]) then the pmbootstrap script will patch this file to set the <code>Option "XkbLayout"</code> to <code>"nn"</code> where "nn" is your country code.<br />
<br />
{{note| Info: Tab is ctrl+i}}<br />
<br />
==== Console switching ====<br />
<br />
You can use the <code>[[File:Nokia-n900-blue-arrow.PNG|30px]] blue arrow</code> key in combination with the <code>Volume Up/Down</code> to switch to a different virtual terminal.<br />
<br />
If you installed postmarketOS with a UI, you first have to enable again the other VT by editing the <code>/etc/inittab</code> file and uncomment the following lines:<br />
<syntaxhighlight lang="sh"><br />
...<br />
# Set up a couple of getty's<br />
tty1::respawn:/sbin/getty 38400 tty1<br />
tty2::respawn:/sbin/getty 38400 tty2<br />
tty3::respawn:/sbin/getty 38400 tty3<br />
tty4::respawn:/sbin/getty 38400 tty4<br />
tty5::respawn:/sbin/getty 38400 tty5<br />
tty6::respawn:/sbin/getty 38400 tty6<br />
...<br />
</syntaxhighlight><br />
<br />
=== Display ===<br />
<br />
With DRM enabled ({{MR|197|pmbootstrap}}), the display can be managed at this location: <code>/sys/devices/platform/omapdrm.0/graphics/fb0/</code><br />
<br />
For example, the display can be turned off by:<br />
<br />
<pre># echo 1 &gt; /sys/devices/platform/omapdrm.0/graphics/fb0/blank</pre><br />
<br />
To adjust brightness:<br />
<br />
<pre><br />
# # Replace $VAL with a value from 0 to 255:<br />
# echo $VAL > /sys/class/backlight/acx565akm/brightness<br />
</pre><br />
<br />
=== GUI ===<br />
<br />
==== i3wm ====<br />
'''[[I3wm]] is the recommended UI.''' It is lightweight and fast, and we have a custom N900 configuration that optimizes for its keyboard ([https://www.reddit.com/r/unixporn/comments/7wt8ig/i3gaps_n900_restored_to_glory/ photos]). The most important keybindings are described below, for details see [https://gitlab.com/postmarketOS/pmaports/-/blob/master/device/community/device-nokia-n900/i3wm/i3wm.conf i3wm.conf]. This file gets installed to <code>~/.config/i3/config</code> and of course you can customize it. If you have good additions, please make a merge request so everybody benefits from an improved default config.<br />
<br />
===== default mode =====<br />
* shift + space: switch to "command mode"<br />
<br />
===== command mode =====<br />
* t: open terminal<br />
* k: kill current program<br />
* w: workspace mode<br />
* r: restart i3wm (use after modifying the config)<br />
* q: go back to "default mode"<br />
<br />
===== workspace mode =====<br />
* a/s/d/f/g: switch to workspace 1/2/3/4/5<br />
* q: go back to "command mode"<br />
<br />
==== Xfce4 ====<br />
[[Xfce4]] also works very well on the N900<br />
<br />
==== Others ====<br />
There are also Mate, etc.<br />
<br />
==== Misc: Power button ====<br />
If you want to make use of the power button, bind <code>XF86PowerOff</code> to this script:<br />
<syntaxhighlight lang="sh"><br />
FILE=~/.screenoff<br />
if [ -f $FILE ]; then<br />
xinput set-prop 8 "Device Enabled" 1<br />
xinput set-prop 6 "Device Enabled" 1<br />
xinput set-prop 9 "Device Enabled" 1<br />
xset dpms force on<br />
rm ~/.screenoff<br />
else<br />
xinput set-prop 8 "Device Enabled" 0<br />
xinput set-prop 6 "Device Enabled" 0<br />
xinput set-prop 9 "Device Enabled" 0<br />
xset dpms force off<br />
touch ~/.screenoff<br />
fi<br />
</syntaxhighlight><br />
<br />
{{note|You cannot use this to turn the screen back on if i3lock or similar is running, as they would grab the keys}}<br />
<br />
==== Misc: Middle click and right click ====<br />
Obviously, you can't middle click with a touchscreen, but this can be annoying when it's one of the few ways to paste in the terminal.<br />
This script simulates a middle click:<br />
<syntaxhighlight lang="sh"><br />
xdotool mousedown --clearmodifiers 2<br />
xdotool mouseup 2<br />
xdotool keyup alt<br />
xdotool keyup ctrl<br />
xdotool keyup shift<br />
</syntaxhighlight><br />
<br />
For simulating right click button you can use this command:<br />
<syntaxhighlight lang="sh"><br />
xdotool click 3<br />
</syntaxhighlight><br />
<br />
You can bind it to any key you wish. <code>XF86WebCam</code> is a good choice since it's fairly easy to reach and isn't used for anything.<br />
<br />
=== Battery ===<br />
==== Charging ====<br />
<br />
Battery charging is fully supported by the kernel and does not need any special configuration. <br />
<br />
Normally, the N900 will auto-detect the connected charger type, and pull an appropriate current from it. However, in the event that this does not work, you can adjust it manually as follows:<br />
<br />
<syntaxhighlight lang="sh"><br />
~$ echo 'host' | sudo tee /sys/class/power_supply/bq24150a-0/mode # sets current limit to 500mA<br />
~$ echo 'dedicated' | sudo tee /sys/class/power_supply/bq24150a-0/mode # sets current limit to 1800mA<br />
</syntaxhighlight><br />
<br />
You can also directly set the current limit by writing one of:<br />
<pre><br />
100<br />
500<br />
800<br />
1800<br />
</pre> to <code>/sys/class/power_supply/bq24150a-0/current_limit</code>. Any other value written will be rounded to the next higher number from this list.<br />
<br />
Be sure that the charger/port can supply the amount of current safely<br />
<br />
'''Hint: '''To disable the LED charging indication, do:<br />
<br />
<code>echo 0 > /sys/class/power_supply/bq24150a-0/stat_pin_enable</code>.<br />
<br />
[http://www.ti.com/lit/ds/symlink/bq24150.pdf Datasheet for the bq24150 charging chip]<br />
<br />
==== Capacity Reporting ====<br />
<br />
The current battery capacity can be found under <code>/sys/class/power_supply/bq27200-0/capacity</code>, and is represented as a percentage. For example, a value of <code>11</code> equates to <code>11%</code>. To calibrate the battery and get a more accurate capacity report:<br />
<br />
# Charge it up '''fully''', using a wall power adapter.<br />
# Unplug the device, then allow the battery to run all the way down. This may take quite a while to happen (&gt;24hrs, but can be made shorter by running a CPU intensive workload). Do not let it charge at all during this time. This means you may not use USB for example, as this automatically causes the device to start charging, albeit slowly.<br />
# When the voltage reaches 3248mV, the battery charge gauge chip will be calibrated. You may charge it up again to use the device. Note it may require a number of learning cycles to more accurately learn the battery capacity<br />
<br />
[http://www.ti.com/lit/ds/symlink/bq27200.pdf Datasheet for the bq27200 charge gauge chip]<br />
<br />
==== Battery Protection ====<br />
Currently, when battery gets below suitable operating voltage, the device dies. This is bad for the battery and the file system. [https://gist.github.com/NikkSaan/800c17d87dddfaa9edf5274130717d73 Here] is a script that monitors the battery, and powers the device off before the battery reaches critical state. For suggested usage, read the program's comments.<br />
<br />
==== Temperature ====<br />
There's battery temperature sensor.<br />
<syntaxhighlight lang="shell-session"><br />
$ cat /sys/devices/platform/68000000.ocp/48072000.i2c/i2c-2/2-0055/power_supply/bq27200-0/temp ; \<br />
cat /sys/devices/virtual/thermal/thermal_zone0/temp<br />
324<br />
32400<br />
</syntaxhighlight><br />
<br />
=== Clock ===<br />
==== Setting the hardware clock ====<br />
<br />
Since 49fd9e0e4efcf030ca47344858bdc74370a78603 the hardware clock works. If your hardware clock doesn't have the time set you can set it with:<br />
<br />
<source lang="shell-session"><br />
$ date -s "2017-08-14 16:34:50"<br />
<br />
# Write the current system time to the hardware clock<br />
$ hwclock -w</source><br />
<br />
==== Setting the hardware alarm clock ====<br />
<br />
Realtime clock at /dev/rtc0 is on the twl4030 (PMU), and allows setting an alarm to wake the device from sleep, poweroff states. <br />
<br />
Control trough <code>rtcwake</code> [https://linux.die.net/man/8/rtcwake (Manual Page)].<br />
<source lang="shell-session"><br />
# Suspends the device to memory for 10 seconds<br />
rtcwake --verbose --seconds 10 --mode mem<br />
<br />
# Power off the device and power it on after $TIME, where $TIME is the number of seconds since epoch (1970-01-01)<br />
rtcwake --verbose --time_t $TIME --mode no<br />
/sbin/poweroff<br />
</source><br />
<br />
Manual control from sysfs:<br />
<source lang="shell-session"><br />
# To set the wakealarm directly, set $TIME to number of seconds since epoch (1970-01-01). Then poweroff or suspend:<br />
echo $TIME > /sys/class/rtc/rtc0/wakealarm<br />
<br />
# To set new wakealarm time, first reset time to 0!<br />
echo 0 > /sys/class/rtc/rtc0/wakealarm<br />
</source><br />
<br />
{{note| When setting number of seconds since epoch, make sure you account for your timezone and see how your realtime clock keeps the time (utc or local)!}}<br />
<br />
=== SMS ===<br />
<br />
You can use ofono test scripts<br />
<br />
<code>sudo apk add ofono-scripts; cd /usr/lib/ofono/test</code><br />
<br />
Here's an example using the test scripts to enable the modem and send an SMS:<br />
<pre><br />
# ./enable-modem<br />
# ./online-modem<br />
# ./send-sms 5033784582 "I like pizza." 0 <br />
</pre><br />
<br />
=== USB Gadget ===<br />
==== Mass Storage ====<br />
The Mass Storage class exposes a block device as a flash drive on your host machine. <br />
<br />
For example, to use the "MyDocs" partition as Mass Storage Device, make sure you unmount the partition first (if mounted), then execute:<br />
<br />
<code><br />
echo /dev/mmcblk1p1 > /sys/devices/platform/68000000.ocp/480ab000.usb_otg_hs/musb-hdrc.0.auto/gadget/lun0/file<br />
</code><br />
<br />
If you only need read permissions on the partition, you can set the read-only flag before exporting it:<br />
<br />
<code><br />
echo 1 > /sys/devices/platform/68000000.ocp/480ab000.usb_otg_hs/musb-hdrc.0.auto/gadget/lun0/ro<br />
</code><br />
<br />
=== GPRS ===<br />
<br />
GPRS can be managed by [https://pkgs.alpinelinux.org/package/edge/testing/armhf/connman connman]. Either install connman using <code>apk</code> or add it when installing pmOS by passing <code>--add connman</code> to <code>pmbootstrap</code>.<br />
<br />
{{note|Once you perform the following steps, the GPRS connection will be established by connman automatically on every boot.}}<br />
<br />
It's '''VERY''' important that you add the following to <code>/etc/connman/main.conf</code> '''BEFORE''' starting connman, else it will take over all network connection handling and disconnect you if you are connected over SSH:<br />
<br />
{{hc|/etc/connman/main.conf|<nowiki><br />
NetworkInterfaceBlacklist = usb,wlan<br />
</nowiki>}}<br />
<br />
Configure connman to start at boot:<br />
<br />
<code>$ sudo rc-update add connman</code><br />
<br />
Stop ofono in order to set APN:<br />
<br />
<code>$ sudo rc-service ofono stop</code><br />
<br />
Edit APN, where <IMSI> should be replaced in the following commands with the IMSI from your SIM card. Replace <APN> with the relevant APN for your cellular carrier (e.g. fast.t-mobile.com).<br />
This file should be created when ofono starts, so you should only need to add the APN.<br />
<br />
{{hc|/var/lib/ofono/<IMSI>/gprs|<nowiki><br />
[Settings] <br />
Powered=true <br />
RoamingAllowed=false <br />
<br />
[context1] <br />
Name=Internet <br />
AccessPointName=<APN> <br />
Username= <br />
Password= <br />
AuthenticationMethod=chap <br />
Type=internet <br />
Protocol=ip <br />
</nowiki>}}<br />
<br />
Start ofono and power on modem.<br />
<br />
<pre><br />
$ sudo rc-service ofono start<br />
$ sudo connmanctl enable cellular<br />
</pre><br />
<br />
In some cases, it seems necessary to run a scan before the necessary service will show in connman, even though the scan is 'unsupported':<br />
<pre><br />
$ sudo connmanctl scan cellular <br />
Error /net/connman/technology/cellular: Not supported <br />
$ sudo connmanctl services<br />
cellular_340369959729712_context1<br />
</pre><br />
<br />
Connect to the cellular service:<br />
<br />
<pre> <br />
$ sudo connmanctl connect cellular_340369959729712_context1 <br />
Connected cellular_340369959729712_context1<br />
$ ip addr show gprs0<br />
10: gprs0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 10<br />
link/[821] <br />
inet 33.238.141.172/32 brd 33.238.141.172 scope global gprs0<br />
valid_lft forever preferred_lft forever<br />
</pre><br />
<br />
=== GPS ===<br />
<br />
First, get network and date to work. Next, clone tui repository. it contains includes many goodies, including script for hardware testing, gps support, and graphical ofono control software.<br />
<br />
<pre><br />
mkdir /my<br />
cd /my<br />
git clone https://gitlab.com/tui/tui.git<br />
</pre><br />
<br />
Next, install packages necessary for compiling software and prepare gps2. enable-modem, online-modem and you should be able to run gps2. AGPS is not available, so expect long startup.<br />
<br />
<pre><br />
apk add gcc vala musl-dev make linux-headers gpsd<br />
cd /my/tui/ofone<br />
make gps2<br />
./gps2<br />
</pre><br />
<br />
gps2 reportedly can talk to gpsd. Needs further investigation.<br />
<br />
=== FM Transmitter ===<br />
<br />
The N900 contains an Si4713 FM transmitter, it's controlled by video4linux. To start transmitting:<br />
<br />
<source lang="shell-session"><br />
$ v4l2-ctl -d /dev/radio0 --set-ctrl=mute=0 --set-freq=95.21<br />
Now there should be silence on 95.21Mhz instead of noise when tuning in with a radio<br />
$ aplay -vv some-very-good-music.wav<br />
</source><br />
<br />
=== Torch ===<br />
<br />
The device has an ADP1653 flash controller, mainly for use with the camera. It drives two white power LEDs connected in series, and has an additional red indicator led (referred to as a privacy indicator). The ADP1653 has a driver in mainline kernel, and it probes fine. However, some DTS changes are needed to make it work, since the driver requires it to be tied to a camera.<br />
<br />
In the meantime, the LEDs can be used as a torch manually using <code>i2cset</code>. <br />
However, '''BE WARNED:''' setting wrong values via i2c runs the risk of over-driving the LEDs and causing permanent hardware damage.<br />
<br />
<source lang="shell-session"><br />
Install the prerequisites<br />
$ sudo apk add i2c-tools<br />
<br />
Unload the driver in case it is already loaded. We will use i2c manually<br />
$ sudo modprobe -r adp1653<br />
<br />
Enable the chip<br />
$ echo 88 | sudo tee /sys/class/gpio/export<br />
$ echo "out" | sudo tee /sys/class/gpio/gpio88/direction<br />
$ echo 1 | sudo tee /sys/class/gpio/gpio88/value<br />
<br />
Turn the torch on, using the lowest torch current - DO NOT use other values here or you risk burning the LED<br />
Values between 1 and 7 enable the red privacy/recording led, with different intensity<br />
0x8 is the lowest torch intensity, and we do not recommend going above it<br />
$ sudo i2cset -y 2 0x30 0x0 0x8<br />
<br />
Turn the torch off<br />
$ sudo i2cset -y 2 0x30 0x0 0x0<br />
<br />
Disable the chip<br />
$ echo 0 | sudo tee /sys/class/gpio/gpio88/value<br />
$ echo 88 | sudo tee /sys/class/gpio/unexport<br />
</source><br />
<br />
== Resources ==<br />
* {{Device package|nokia-n900|community}}<br />
* {{Kernel package|nokia-n900|community}}<br />
* [https://kernel.org Kernel source]<br />
* [https://web.archive.org/web/20131117073524/http://skeiron.org/tablets-dev/nokia_N900/ Images and Flashers for Maemo]<br />
* {{issue|1617}} issue about Wi-Fi Setup and Keyboard layout<br />
* [[User:Ollieparanoid/Dogfooding:N900|ollieparanoid's efforts to use the N900 as music player]]<br />
* [https://n900.quitesimple.org/rescueOS/rescueOS-1.3/ N900 rescueOS]<br />
* [https://www.electroschematics.com/mobile-phone-battery-emulator/ Mobile phone battery emulator] describes how to create a mock battery for Nokia phones of the n900 type so the phone can be run from a PSU<br />
<br />
== Helpful Links for Porting ==<br />
* [https://neo900.org/stuff/block-diagrams/n900/n900.html Device schematic]<br />
* [http://plan9.stanleylieber.com/hardware/n900/n900.schematics.pdf Very detailed schematic]<br />
* <s>[https://github.com/archlinuxarm-n900/alarm-n900/wiki/Hardware-support Arch Linux ARM - N900 hardware components list]</s><br />
* [http://mlab.taik.fi/paja/?p=1263 N900 sensor access in Maemo]<br />
* [http://natisbad.org/N900/n900-commented-hardware-specs.html Hardware component specs / list]<br />
* [http://elinux.org/N900 Kernel status]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=35501
Template:Infobox device
2023-01-09T18:09:35Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = <abbr title="The version the device was shipped with.">Original version</abbr><br />
|data7 = {{{originalversion|}}}<br />
|header8 =<br />
|label8 = <abbr title="The most recent supported version from the manufacturer.">Extended version</abbr><br />
|data8 = {{{extendedversion|}}}<br />
|header9 =<br />
|label9 = Optional software<br />
|data9 = {{{optionalsoftware|}}}<br />
|header10 =<br />
|label10 = postmarketOS kernel<br />
|data10 = {{{pmoskernel|}}}<br />
|header11 = Hardware<br />
|label11 =<br />
|data11 =<br />
|header12 = <br />
|label12 = Chipset<br />
|data12 = {{#if:{{{chipset|}}}|[[{{{chipset|}}}]]}}<br />
|header13 = <br />
|label13 = CPU<br />
|data13 = {{{cpu|}}}<br />
|header14 = <br />
|label14 = GPU<br />
|data14 = {{{gpu|}}}<br />
|header15 = <br />
|label15 = Display<br />
|data15 = {{{display|}}}<br />
|header16 = <br />
|label16 = Storage<br />
|data16 = {{{storage|}}}<br />
|header17 = <br />
|label17 = Memory<br />
|data17 = {{{memory|}}}<br />
|header18 = <br />
|label18 = Architecture<br />
|data18 = {{{architecture|}}}<br />
|header19 = <br />
|label19 = Type<br />
|data19 = {{{type|}}} <!-- "desktop", "laptop", "convertible", "server", "tablet", "handset", "watch", and "embedded" --><br />
|header20 = <br />
|label20 = Unixbench Whet/Dhry score<br />
|data20 = {{{whet_dhry|}}}<br />
|header21 = <br />
|label21 = Model<br />
|data21 = {{{model|}}}<br />
}}<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Also known as flip cover sensor">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
|label6 = Barometer<br />
|data6 = {{Feature|{{{status_barometer|}}}}}<br />
|label7 = Power Sensor<br />
|data7 = {{Feature|{{{status_powersensor|}}}}}<br />
}}<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Keyboard<br />
|data1 = {{Feature|{{{status_keyboard|}}}}}<br />
|header2 =<br />
|label2 = Touchpad<br />
|data2 = {{Feature|{{{status_touchpad|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Full-sized USB-A port works (Usually applicable to SBCs and laptops).">USB-A</abbr><br />
|data3 = {{Feature|{{{status_usba|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Video and audio output with HDMI or Display Port works.">HDMI/DP</abbr><br />
|data4 = {{Feature|{{{status_hdmidp|}}}}}<br />
|header5 =<br />
|label5 = Ir TX<br />
|data5 = {{Feature|{{{status_irtx|}}}}}<br />
|header6 =<br />
|label6 = FOSS bootloader<br />
|data6 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:<br />
_table=Devices<br />
|Manufacturer=String<br />
|Name=String<br />
|Codename=String<br />
|Released=Date<br />
|Chipset=String<br />
|OriginalSoftware=String<br />
|PmosKernel=String<br />
|CPU=String<br />
|GPU=String<br />
|Display=String<br />
|Storage=String<br />
|Memory=String<br />
|StatusUsbnet=String (size=1)<br />
|StatusFlashing=String (size=1)<br />
|StatusTouch=String (size=1)<br />
|StatusScreen=String (size=1)<br />
|StatusWifi=String (size=1)<br />
|StatusXwayland=String (size=1)<br />
|StatusFde=String (size=1)<br />
|StatusMainline=String (size=1)<br />
|StatusBattery=String (size=1)<br />
|Status3d=String (size=1)<br />
|StatusAccel=String (size=1)<br />
|StatusMagnet=String (size=1)<br />
|StatusLight=String (size=1)<br />
|StatusProximity=String (size=1)<br />
|StatusHall=String (size=1)<br />
|StatusAudio=String (size=1)<br />
|StatusBluetooth=String (size=1)<br />
|StatusCamera=String (size=1)<br />
|StatusGps=String (size=1)<br />
|StatusMobiledata=String (size=1)<br />
|StatusSms=String (size=1)<br />
|StatusCalls=String (size=1)<br />
|StatusStatus=String (size=1)<br />
|Architecture=String<br />
|Booting=Boolean<br />
|NonAndroid=String (size=4)<br />
|WhetDhry=Float<br />
|StatusOtg=String (size=1)<br />
|Category=String<br />
|StatusNfc=String (size=1)<br />
|StatusIrtx=String (size=1)<br />
|StatusUbootPrimary=String<br />
|StatusUbootSecondary=String<br />
|StatusUbootMainline=String<br />
|StatusUbootInternalStorage=String<br />
|StatusUbootSd=String<br />
|StatusUbootUsbhost=String<br />
|StatusUbootUsbperipheral=String<br />
|StatusUbootScreen=String<br />
|StatusUbootKeyboard=String<br />
|StatusUbootButtons=String<br />
|StatusUboot=String<br />
|StatusBarometer=String<br />
|StatusPowerSensor=String<br />
|StatusUsba=String<br />
|StatusHdmidp=String<br />
|StatusKeyboard=String<br />
|StatusTouchpad=String<br />
}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#if:{{{type|}}}|[[Category:{{{type|}}}]]|}}<br />
{{#if:{{{originalsoftware|}}}|[[Category:{{{originalsoftware|}}}]]|}}<br />
{{#if:{{{manufacturer|}}}|[[Category:{{{manufacturer|}}}]]|}}<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}}|StatusBarometer={{{status_barometer|}}}|StatusPowerSensor={{{status_powersensor|}}}|StatusUsba={{{status_usba|}}}|StatusHdmidp={{{status_hdmidp|}}}|StatusKeyboard={{{status_keyboard|}}}|StatusTouchpad={{{status_touchpad|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=User:MartijnBraam&diff=35438
User:MartijnBraam
2023-01-06T20:24:46Z
<p>MartijnBraam: Reverted edits by MartijnBrааm (talk) to last revision by MartijnBraam</p>
<hr />
<div>Blog: https://blog.brixit.nl<br />
<br />
Github: https://github.com/MartijnBraam<br />
<br />
Gitlab: https://gitlab.com/MartijnBraam<br />
<br />
Matrix: @MartijnBraam:matrix.org<br />
<br />
== Owns devices ==<br />
* Nexus 5 (lg-hammerhead)<br />
* Nokia N900 (nokia-rx51)<br />
* HTC Desire (htc-bravo) (2 times)<br />
* Samsung Galaxy Nexus (samsung-maguro) has broken USB port<br />
* HP Touchpad (hp-tenderloin)<br />
* Huawei Ascend G510 (huawei-g510)<br />
* Apple ipod touch first gen (apple-ipt1g)<br />
* Jolla (jolla-jolla) jolla?<br />
* Onda v820wCH<br />
* Unbranded mediatek dual sim device (e1911_v77_zlh1_9p017_6628_v20 smallband MAUI.11AMD.W12.22.SP.V15.P2)<br />
* Motorola Droid 4<br />
* Nexus 10 (samsung-manta)<br />
* Google Pixel 2 (google-walleye)<br />
<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)}}<br />
{{Owns device|Nokia_N900_(nokia-n900)|Dead battery}}<br />
{{Owns device|HTC_Desire_(htc-bravo)|Broken screen}}<br />
{{Owns device|Google_Galaxy_Nexus_GSM_(samsung-maguro)|Broken screen and USB connector}}<br />
{{Owns device|HP_Touchpad_(hp-tenderloin)}}<br />
{{Owns device|Huawei_Ascend_G510_(huawei-g510)}}<br />
{{Owns device|Apple_iPod_Touch_1G_(apple-ipt1g)}}<br />
{{Owns device|Jolla_Phone_(jolla-sbj)}}<br />
{{Owns device|Motorola_Droid_4_(motorola-maserati)}}<br />
{{Owns device|Motorola_Moto_G_2015_(motorola-osprey)}}<br />
{{Owns device|Google_Nexus_10_(samsung-manta)}}<br />
{{Owns device|PINE64_A64-LTS_(pine64-a64lts)}}<br />
{{Owns device|PINE64_Don't_be_evil_devkit_(pine64-dontbeevil)}}<br />
{{Owns device|PINE64_PineTab_(pine64-pinetab)|Engineering sample, only 1Gb RAM, bad connection to keyboard pogo pins}}<br />
{{Owns device|Asus_MeMO_Pad_10_(asus-me102a)}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)}}<br />
{{Owns device|Nokia_1_(nokia-frt)}}<br />
{{Owns device|PINE64_PinePhone_(pine64-pinephone)}}<br />
{{Owns device|Google_Nexus_9_(htc-flounder)|On loan}}<br />
{{Owns device|BQ_Aquaris_M10_(bq-cooler)|On loan}}<br />
{{Owns device|LG K10 (lg-m216)}}<br />
{{Owns device|Samsung_Galaxy_SII_(samsung-i9100)}}<br />
{{Owns device|PINE64_PineNote_(pine64-pinenote)}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=File:Icon-numix-light-smartphone.svg&diff=35436
File:Icon-numix-light-smartphone.svg
2023-01-06T20:19:35Z
<p>MartijnBraam: Protected "File:Icon-numix-light-smartphone.svg" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))</p>
<hr />
<div>== Summary ==<br />
Source: https://github.com/numixproject/numix-icon-theme<br />
== Licensing ==<br />
{{GPL-3.0}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=File:Icon-numix-light-smartphone.svg&diff=35435
File:Icon-numix-light-smartphone.svg
2023-01-06T20:19:06Z
<p>MartijnBraam: MartijnBraam reverted File:Icon-numix-light-smartphone.svg to an old version</p>
<hr />
<div>== Summary ==<br />
Source: https://github.com/numixproject/numix-icon-theme<br />
== Licensing ==<br />
{{GPL-3.0}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=User:MartijnBraam&diff=35432
User:MartijnBraam
2023-01-06T20:15:50Z
<p>MartijnBraam: Reverted edits by I hate mexicans (talk) to last revision by Newbyte</p>
<hr />
<div>Blog: https://blog.brixit.nl<br />
<br />
Github: https://github.com/MartijnBraam<br />
<br />
Gitlab: https://gitlab.com/MartijnBraam<br />
<br />
Matrix: @MartijnBraam:matrix.org<br />
<br />
== Owns devices ==<br />
* Nexus 5 (lg-hammerhead)<br />
* Nokia N900 (nokia-rx51)<br />
* HTC Desire (htc-bravo) (2 times)<br />
* Samsung Galaxy Nexus (samsung-maguro) has broken USB port<br />
* HP Touchpad (hp-tenderloin)<br />
* Huawei Ascend G510 (huawei-g510)<br />
* Apple ipod touch first gen (apple-ipt1g)<br />
* Jolla (jolla-jolla) jolla?<br />
* Onda v820wCH<br />
* Unbranded mediatek dual sim device (e1911_v77_zlh1_9p017_6628_v20 smallband MAUI.11AMD.W12.22.SP.V15.P2)<br />
* Motorola Droid 4<br />
* Nexus 10 (samsung-manta)<br />
* Google Pixel 2 (google-walleye)<br />
<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)}}<br />
{{Owns device|Nokia_N900_(nokia-n900)|Dead battery}}<br />
{{Owns device|HTC_Desire_(htc-bravo)|Broken screen}}<br />
{{Owns device|Google_Galaxy_Nexus_GSM_(samsung-maguro)|Broken screen and USB connector}}<br />
{{Owns device|HP_Touchpad_(hp-tenderloin)}}<br />
{{Owns device|Huawei_Ascend_G510_(huawei-g510)}}<br />
{{Owns device|Apple_iPod_Touch_1G_(apple-ipt1g)}}<br />
{{Owns device|Jolla_Phone_(jolla-sbj)}}<br />
{{Owns device|Motorola_Droid_4_(motorola-maserati)}}<br />
{{Owns device|Motorola_Moto_G_2015_(motorola-osprey)}}<br />
{{Owns device|Google_Nexus_10_(samsung-manta)}}<br />
{{Owns device|PINE64_A64-LTS_(pine64-a64lts)}}<br />
{{Owns device|PINE64_Don't_be_evil_devkit_(pine64-dontbeevil)}}<br />
{{Owns device|PINE64_PineTab_(pine64-pinetab)|Engineering sample, only 1Gb RAM, bad connection to keyboard pogo pins}}<br />
{{Owns device|Asus_MeMO_Pad_10_(asus-me102a)}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)}}<br />
{{Owns device|Nokia_1_(nokia-frt)}}<br />
{{Owns device|PINE64_PinePhone_(pine64-pinephone)}}<br />
{{Owns device|Google_Nexus_9_(htc-flounder)|On loan}}<br />
{{Owns device|BQ_Aquaris_M10_(bq-cooler)|On loan}}<br />
{{Owns device|LG K10 (lg-m216)}}<br />
{{Owns device|Samsung_Galaxy_SII_(samsung-i9100)}}<br />
{{Owns device|PINE64_PineNote_(pine64-pinenote)}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Main_Page&diff=35429
Main Page
2023-01-06T20:07:23Z
<p>MartijnBraam: Protected "Main Page" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</p>
<hr />
<div><!--<br />
<br />
******************************************************<br />
*** USE THIS SCRIPT TO ADD NEW ICONS: ***<br />
*** https://gitlab.com/postmarketOS/wiki/issues/22 ***<br />
******************************************************<br />
<br />
--><div style="max-width: 1200px;"><br />
<br />
<div class="res-img" style="float: left; width: 70%;"><br />
[[File:Postmarketos-shirt-logo.png]]<br />
</div><br />
<br />
<div style="float: left; width: 260px; background: white"><br />
<div style="border: 1px solid lightgray; background: #f8f8f8; padding: 0px 10px; width:260px;"><br />
[[About postmarketOS|postmarketOS extends Alpine Linux to run on smartphones and other mobile devices.]]<br />
</div><br />
<br />
<div style="margin-top: 40px; width: 350px; padding-left: 15px"><br />
<!-- OVERVIEW --><br />
{{mainpage-button|smartphone|Devices}}<br />
{{mainpage-button|gtk-about|:Category:Interface|User Interfaces}}<br />
{{mainpage-button|start-here|Applications_by_category|Apps}}<br />
{{mainpage-button|camera-photo|Special:ListFiles|Gallery}}<br />
{{mainpage-button|emblem-shared|:Category:Community|Community}}<br />
{{mainpage-button|dialog-question|FAQ}}<br />
<br />
<br />
<!-- GUIDES --><br />
{{mainpage-button|document-save|Installation_guide|Installation}}<br />
{{mainpage-button|application-menu|Porting_to_a_new_device|Porting}}<br />
{{mainpage-button|system-run|Mainlining|Mainlining}}<br />
{{mainpage-button|applications-utilities|:Category:Guide|''More Guides''}}<br />
<br />
<br />
<!-- CONTRIBUTING / TECHNICAL STUFF --><br />
{{mainpage-button|emote-love|Contributing}}<br />
{{mainpage-button|folder-documents|:Category:Technical Reference|Technical Reference}}<br />
{{mainpage-button|emblem-important|Troubleshooting}}<br />
<br />
</div><br />
</div></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Main_Page&diff=35427
Main Page
2023-01-06T20:06:48Z
<p>MartijnBraam: Rollback</p>
<hr />
<div><!--<br />
<br />
******************************************************<br />
*** USE THIS SCRIPT TO ADD NEW ICONS: ***<br />
*** https://gitlab.com/postmarketOS/wiki/issues/22 ***<br />
******************************************************<br />
<br />
--><div style="max-width: 1200px;"><br />
<br />
<div class="res-img" style="float: left; width: 70%;"><br />
[[File:Postmarketos-shirt-logo.png]]<br />
</div><br />
<br />
<div style="float: left; width: 260px; background: white"><br />
<div style="border: 1px solid lightgray; background: #f8f8f8; padding: 0px 10px; width:260px;"><br />
[[About postmarketOS|postmarketOS extends Alpine Linux to run on smartphones and other mobile devices.]]<br />
</div><br />
<br />
<div style="margin-top: 40px; width: 350px; padding-left: 15px"><br />
<!-- OVERVIEW --><br />
{{mainpage-button|smartphone|Devices}}<br />
{{mainpage-button|gtk-about|:Category:Interface|User Interfaces}}<br />
{{mainpage-button|start-here|Applications_by_category|Apps}}<br />
{{mainpage-button|camera-photo|Special:ListFiles|Gallery}}<br />
{{mainpage-button|emblem-shared|:Category:Community|Community}}<br />
{{mainpage-button|dialog-question|FAQ}}<br />
<br />
<br />
<!-- GUIDES --><br />
{{mainpage-button|document-save|Installation_guide|Installation}}<br />
{{mainpage-button|application-menu|Porting_to_a_new_device|Porting}}<br />
{{mainpage-button|system-run|Mainlining|Mainlining}}<br />
{{mainpage-button|applications-utilities|:Category:Guide|''More Guides''}}<br />
<br />
<br />
<!-- CONTRIBUTING / TECHNICAL STUFF --><br />
{{mainpage-button|emote-love|Contributing}}<br />
{{mainpage-button|folder-documents|:Category:Technical Reference|Technical Reference}}<br />
{{mainpage-button|emblem-important|Troubleshooting}}<br />
<br />
</div><br />
</div></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=31764
Qualcomm Snapdragon 800/801 (MSM8974)
2022-10-18T15:32:11Z
<p>MartijnBraam: /* Snapdragon 800 (APQ8074v2.x[-AA]) (WiFi-only) */</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| image = File:Qualcomm_MSM8974.jpg<br />
| imagecaption = MSM8974 SoC in ceramic BGA capsule<br />
| codenames = msmcopper/apqcopper<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| community_page = https://github.com/msm8974-mainline<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = N<br />
| status_video = N<br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_gps = N<br />
| status_camera = N<br />
| status_suspend = N<br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices. Shipped with either PM8841+PM8941 or PM8084+PM8941 (Pro-AC variants) (or PMA8084 + MAX77826 in samsung-klte).<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings. For a simple (and inconclusive) demonstration of this, see [[Xiaomi_Mi_3_(xiaomi-cancro)#Hardware_details|xiaomi-cancro]].<br />
<br />
== Devices ==<br />
=== Snapdragon 800 (MSM8x74v2.x[-AA]) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (MSM8x74Pro-AB) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 "Final" (MSM8x74Pro-AC) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 800 (APQ8074v2.x[-AA]) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AA Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm APQ8074 Snapdragon 800'<br />
|more results text=<br />
|default=No results<br />
}}<br />
<br />
=== Snapdragon 801 (APQ8074Pro-AB) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AB Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 "Final" (APQ8074Pro-AC) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
== To-do list for mainline ==<br />
* Fix up and resubmit [https://lists.linuxfoundation.org/pipermail/iommu/2014-June/008993.html this IOMMU series]<br />
* Fix up and resubmit [https://lkml.org/lkml/2018/4/7/66 this BMS series]<br />
* Write and submit a driver for audio codec(s?) partially in [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Check if drm/msm/adreno/a3xx is in line with latest downstream ([https://github.com/LineageOS/android_kernel_sony_msm8974/tree/lineage-18.0/drivers/gpu/msm this] seems like a good reference)<br />
* Fix up mesa by comparing kgsl and freedreno RD dumps like is described [https://gitlab.freedesktop.org/freedreno/freedreno/-/wikis/Reverse-Engineering-Tools here]<br />
* Add DVFS for various components<br />
* Clean up the device tree (can somebody sort arch/arm/boot/dts trees by vendor while at it?)<br />
* Clean up and submit various drivers (like camss) from [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Test, test test :)<br />
* Move Ingenuity from AB to AC</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=File:Postmarketos-shirt-logo.png&diff=31472
File:Postmarketos-shirt-logo.png
2022-10-09T17:47:54Z
<p>MartijnBraam: Protected "File:Postmarketos-shirt-logo.png": spam reasons ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite) [Upload=Allow only administrators] (indefinite))</p>
<hr />
<div>== Summary ==<br />
Source: https://gitlab.com/postmarketOS/artwork/blob/master/tshirt/render-transparent.png<br />
== Licensing ==<br />
{{cc-by-sa-4.0}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=File:Postmarketos-shirt-logo.png&diff=31471
File:Postmarketos-shirt-logo.png
2022-10-09T17:46:59Z
<p>MartijnBraam: MartijnBraam reverted File:Postmarketos-shirt-logo.png to an old version</p>
<hr />
<div>== Summary ==<br />
Source: https://gitlab.com/postmarketOS/artwork/blob/master/tshirt/render-transparent.png<br />
== Licensing ==<br />
{{cc-by-sa-4.0}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=User:MartijnBraam/podcast&diff=30822
User:MartijnBraam/podcast
2022-09-10T10:28:43Z
<p>MartijnBraam: Created page with "* Convert stereo tracks to mono * Strip silence with actions -> Auto trim/split items (remove silence)... on all the solo tracks * Enable ripple edit and disable snap to grid..."</p>
<hr />
<div>* Convert stereo tracks to mono<br />
* Strip silence with actions -> Auto trim/split items (remove silence)... on all the solo tracks<br />
* Enable ripple edit and disable snap to grid with the buttons in the top left<br />
* Edit podcast</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=USB_Tethering&diff=29940
USB Tethering
2022-08-03T13:21:00Z
<p>MartijnBraam: Created page with "This is a guide for using the mobile data or wifi of a postmarketOS device through USB on your host device. For the inverse see the USB Internet page if you need to use th..."</p>
<hr />
<div>This is a guide for using the mobile data or wifi of a postmarketOS device through USB on your host device. For the inverse see the [[USB Internet]] page if you need to use the USB connection to get internet from your host into the postmarketOS device.<br />
<br />
== On the postmarketOS device ==<br />
<br />
On the postmarketOS device side the firewall needs to be configured to perform NAT between the USB interface and it's default gateway. The default gateway can be either the WiFi or the modem in the device.<br />
<br />
First enable ip forwarding between the interfaces:<br />
<br />
<syntaxhighlight lang="shell-session"><br />
# sysctl net.ipv4.ip_forward=1<br />
</syntaxhighlight><br />
<br />
Then adjust the firewall configuration to NAT between the USB interface and the other interfaces<br />
<br />
<syntaxhighlight lang="shell-session"><br />
# nft add table inet nat<br />
# nft 'add chain inet nat postrouting { type nat hook postrouting priority 100 ; }'<br />
# nft add rule inet nat postrouting iifname "usb*" masquerade<br />
</syntaxhighlight><br />
<br />
The default nftables configuration in postmarketOS already has the other rules setup to make USB tethering work.<br />
<br />
== On the host side ==<br />
<br />
Plug the postmarketOS device into your PC or laptop and run a DHCP client against the USB interface that shows up. It's also possible to use a static IP configuration.<br />
<br />
<syntaxhighlight><br />
address 172.16.42.2<br />
netmask 255.255.255.0<br />
gateway 172.16.42.1<br />
</syntaxhighlight><br />
<br />
If your host has automatically done DHCP on the USB interfaces, as is common on most Linux distributions. The only thing required is setting the default gateway to the USB interface since the<br />
DHCP server on the postmarketOS device does not set the default gateway.<br />
<br />
<syntaxhighlight lang="shell-session"><br />
remove the existing default route if you have one<br />
# ip route del default<br />
<br />
Add a default route through the postmarketOS device<br />
# ip route add default via 172.16.42.1<br />
</syntaxhighlight></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Xiaomi_Poco_M2_(xiaomi-shiva)&diff=29408
Xiaomi Poco M2 (xiaomi-shiva)
2022-07-17T20:06:51Z
<p>MartijnBraam: Change into a redirect since this hardware is practically identical to the lancelot</p>
<hr />
<div>#REDIRECT [[Xiaomi_Redmi_9_(xiaomi-lancelot)]]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=29016
Template:Infobox device
2022-07-07T13:51:37Z
<p>MartijnBraam: Make the chipset a link in the infobox</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = postmarketOS kernel<br />
|data7 = {{{pmoskernel|}}}<br />
|header8 = Hardware<br />
|label8 =<br />
|data8 =<br />
|header9 = <br />
|label9 = Chipset<br />
|data9 = {{#if:{{{chipset|}}}|[[{{{chipset|}}}]]}}<br />
|header10 = <br />
|label10 = CPU<br />
|data10 = {{{cpu|}}}<br />
|header11 = <br />
|label11 = GPU<br />
|data11 = {{{gpu|}}}<br />
|header12 = <br />
|label12 = Display<br />
|data12 = {{{display|}}}<br />
|header13 = <br />
|label13 = Storage<br />
|data13 = {{{storage|}}}<br />
|header14 = <br />
|label14 = Memory<br />
|data14 = {{{memory|}}}<br />
|header15 = <br />
|label15 = Architecture<br />
|data15 = {{{architecture|}}}<br />
|header16 = <br />
|label16 = Non-Android based device<br />
|data16 = {{{n-android|}}}<br />
|header17 = <br />
|label17 = Unixbench Whet/Dhry score<br />
|data17 = {{{whet_dhry|}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Used as flip cover sensor, keyboard slide out sensor, etc.">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
<br />
{{#cargo_declare:_table=Devices|Manufacturer=String|Name=String|Codename=String|Released=Date|Chipset=String|OriginalSoftware=String|PmosKernel=String|CPU=String|GPU=String|Display=String|Storage=String|Memory=String|StatusUsbnet=String|StatusFlashing=String|StatusTouch=String|StatusScreen=String|StatusWifi=String|StatusXwayland=String|StatusFde=String|StatusMainline=String|StatusBattery=String|Status3d=String|StatusAccel=String|StatusMagnet=String|StatusLight=String|StatusProximity=String|StatusHall=String|StatusAudio=String|StatusBluetooth=String|StatusCamera=String|StatusGps=String|StatusMobiledata=String|StatusSms=String|StatusCalls=String|StatusStatus=String|Architecture=String|Booting=Boolean|NonAndroid=String|WhetDhry=Float|StatusOtg=String|Category=String|StatusNfc=String|StatusIrtx=String|StatusUbootPrimary=String|StatusUbootSecondary=String|StatusUbootMainline=String|StatusUbootInternalStorage=String|StatusUbootSd=String|StatusUbootUsbhost=String|StatusUbootUsbperipheral=String|StatusUbootScreen=String|StatusUbootKeyboard=String|StatusUbootButtons=String|StatusUboot=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusTrustZone={{{status_trustzone|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=29015
Template:Infobox device
2022-07-07T13:50:40Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = postmarketOS kernel<br />
|data7 = {{{pmoskernel|}}}<br />
|header8 = Hardware<br />
|label8 =<br />
|data8 =<br />
|header9 = <br />
|label9 = Chipset<br />
|data9 = {{{chipset|}}}<br />
|header10 = <br />
|label10 = CPU<br />
|data10 = {{{cpu|}}}<br />
|header11 = <br />
|label11 = GPU<br />
|data11 = {{{gpu|}}}<br />
|header12 = <br />
|label12 = Display<br />
|data12 = {{{display|}}}<br />
|header13 = <br />
|label13 = Storage<br />
|data13 = {{{storage|}}}<br />
|header14 = <br />
|label14 = Memory<br />
|data14 = {{{memory|}}}<br />
|header15 = <br />
|label15 = Architecture<br />
|data15 = {{{architecture|}}}<br />
|header16 = <br />
|label16 = Non-Android based device<br />
|data16 = {{{n-android|}}}<br />
|header17 = <br />
|label17 = Unixbench Whet/Dhry score<br />
|data17 = {{{whet_dhry|}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Used as flip cover sensor, keyboard slide out sensor, etc.">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
<br />
{{#cargo_declare:_table=Devices|Manufacturer=String|Name=String|Codename=String|Released=Date|Chipset=String|OriginalSoftware=String|PmosKernel=String|CPU=String|GPU=String|Display=String|Storage=String|Memory=String|StatusUsbnet=String|StatusFlashing=String|StatusTouch=String|StatusScreen=String|StatusWifi=String|StatusXwayland=String|StatusFde=String|StatusMainline=String|StatusBattery=String|Status3d=String|StatusAccel=String|StatusMagnet=String|StatusLight=String|StatusProximity=String|StatusHall=String|StatusAudio=String|StatusBluetooth=String|StatusCamera=String|StatusGps=String|StatusMobiledata=String|StatusSms=String|StatusCalls=String|StatusStatus=String|Architecture=String|Booting=Boolean|NonAndroid=String|WhetDhry=Float|StatusOtg=String|Category=String|StatusNfc=String|StatusIrtx=String|StatusUbootPrimary=String|StatusUbootSecondary=String|StatusUbootMainline=String|StatusUbootInternalStorage=String|StatusUbootSd=String|StatusUbootUsbhost=String|StatusUbootUsbperipheral=String|StatusUbootScreen=String|StatusUbootKeyboard=String|StatusUbootButtons=String|StatusUboot=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusTrustZone={{{status_trustzone|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=29014
Template:Infobox device
2022-07-07T13:50:18Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = postmarketOS kernel<br />
|data7 = {{{pmoskernel|}}}<br />
|header8 = Hardware<br />
|label8 =<br />
|data8 =<br />
|header9 = <br />
|label9 = Chipset<br />
|data9 = {{{[[chipset]]|}}}<br />
|header10 = <br />
|label10 = CPU<br />
|data10 = {{{cpu|}}}<br />
|header11 = <br />
|label11 = GPU<br />
|data11 = {{{gpu|}}}<br />
|header12 = <br />
|label12 = Display<br />
|data12 = {{{display|}}}<br />
|header13 = <br />
|label13 = Storage<br />
|data13 = {{{storage|}}}<br />
|header14 = <br />
|label14 = Memory<br />
|data14 = {{{memory|}}}<br />
|header15 = <br />
|label15 = Architecture<br />
|data15 = {{{architecture|}}}<br />
|header16 = <br />
|label16 = Non-Android based device<br />
|data16 = {{{n-android|}}}<br />
|header17 = <br />
|label17 = Unixbench Whet/Dhry score<br />
|data17 = {{{whet_dhry|}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Used as flip cover sensor, keyboard slide out sensor, etc.">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="It is possible to boot from internal storage (e.g. eMMC or UFS).">Internal Storage</abbr><br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="It is possible to boot from SD card.">SD card</abbr><br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
<br />
{{#cargo_declare:_table=Devices|Manufacturer=String|Name=String|Codename=String|Released=Date|Chipset=String|OriginalSoftware=String|PmosKernel=String|CPU=String|GPU=String|Display=String|Storage=String|Memory=String|StatusUsbnet=String|StatusFlashing=String|StatusTouch=String|StatusScreen=String|StatusWifi=String|StatusXwayland=String|StatusFde=String|StatusMainline=String|StatusBattery=String|Status3d=String|StatusAccel=String|StatusMagnet=String|StatusLight=String|StatusProximity=String|StatusHall=String|StatusAudio=String|StatusBluetooth=String|StatusCamera=String|StatusGps=String|StatusMobiledata=String|StatusSms=String|StatusCalls=String|StatusStatus=String|Architecture=String|Booting=Boolean|NonAndroid=String|WhetDhry=Float|StatusOtg=String|Category=String|StatusNfc=String|StatusIrtx=String|StatusUbootPrimary=String|StatusUbootSecondary=String|StatusUbootMainline=String|StatusUbootInternalStorage=String|StatusUbootSd=String|StatusUbootUsbhost=String|StatusUbootUsbperipheral=String|StatusUbootScreen=String|StatusUbootKeyboard=String|StatusUbootButtons=String|StatusUboot=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusTrustZone={{{status_trustzone|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=U-Boot_porting&diff=29007
U-Boot porting
2022-07-07T13:43:57Z
<p>MartijnBraam: /* Supported Devices */</p>
<hr />
<div>[[Category:low-level]]<br />
[[Category:guide]]<br />
<br />
__TOC__<br />
<br />
== Why bother? ==<br />
<br />
Porting u-boot to your phone gives you more control, when booting mainline kernels, namely:<br />
# Adjusting boot command line<br />
# Dual-boot without hacks<br />
# Prevent stock bootloader from kernel / device tree modification<br />
<br />
== Supported Devices ==<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Chipset,StatusUbootPrimary=Primary Bootloader,StatusUbootSecondary=Secondary Bootloader,StatusUbootMainline=Mainline,StatusUbootInternalStorage=Internal storage,StatusUbootSd=SD,StatusUbootUsbhost=USB Host,StatusUbootUsbperipheral=USB Peripheral,StatusUbootScreen=Screen,StatusUbootKeyboard=Keyboard,StatusUbootButtons=Buttons,<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.StatusUboot = "yes"<br />
|more results text=<br />
}}<br />
<br />
== About ==<br />
<br />
This article will guide you on porting u-boot on your phone. It's possible, even if there is no complete SOC support in uboot tree (only uart driver needed), because stock bootloader initialized hardware for us. <br />
First thing to focus on should be getting u-boot shell prompt.<br />
<br />
== Preparation ==<br />
# Find [https://www.denx.de/wiki/U-Boot/SourceCode uboot code]<br />
# Before starting uboot porting, you should get access to the stock bootloader uart port. Make sure you can see stock bootloader logs.<br />
# Search uboot code for a uart driver, compatible with your SOC. It is good, if it support debug(i.e. include debug_uart.h)<br />
# Get familiar with you phone RAM map<br />
# Some useful links:<br />
- [http://xillybus.com/tutorials/uboot-hacking-howto-3 bring up process]<br/><br />
- [http://xillybus.com/tutorials/uboot-hacking-howto-1 configuration process]<br />
<br />
Read the following readme files:<br />
* top README<br />
* doc/README.kconfig<br />
* doc/usage/environment.rst<br />
<br />
== Create basic configuration, building and running ==<br />
<br />
=== Add board files ===<br />
Use [https://elinux.org/images/2/2a/Schulz-how-to-support-new-board-u-boot-linux.pdf guide from Free Electrons pdf] or [https://www.youtube.com/watch?v=5E0sdYkvq-Q video version]<br />
==== Examples ====<br />
# Add [https://gitlab.denx.de/u-boot/u-boot/-/commit/6c15a2a996214574e8145bff69d110a302edf277 exynos7420 espresso board]<br />
# Add [https://gitlab.denx.de/u-boot/u-boot/-/commit/e39448e8be8389f5ddeabae0ec9c6a3b7b8a2ca6 exynos7420 SOC support]<br />
=== Configure ===<br />
<br />
U-boot configuration system comes from linux kernel. Put config options not supposed to be changed by user in <code>/include/configs/.*.h</code> files, in <code>*_defconfig</code> otherwise <br />
<br />
==== Options, you DO NOT need ====<br />
* All SPL related options. SPL(Secondary Program Loader) splits u-boot in two parts. You don't need this, since stock bootloader will load whole u-boot image into RAM. <br />
* CONFIG_BOARD_EARLY_INIT_F<br />
<br />
==== Options, you need ====<br />
* CONFIG_SYS_MALLOC_LEN - size of early C runtime environment heap<br />
* CONFIG_SYS_INIT_SP_ADDR - address of early C runtime environment stack (should be in RAM address space, but NOT at the bottom, because stack is growing DOWN. see u-boot readme memory management section). This option valid, when <code>CONFIG_POSITION_INDEPENDENT=n</code>.<br />
* CONFIG_SYS_INIT_SP_BSS_OFFSET - when <code>CONFIG_POSITION_INDEPENDENT=y</code>, defines offset to early c runtime stack from bss section from bss section. Default is 512K.<br />
* CONFIG_SYS_TEXT_BASE - u-boot base address. It's the address in RAM, where u-boot is loaded by stock bootloader. Not obligatory, if you use position independent build with <code>CONFIG_POSITION_INDEPENDENT=y</code>. See instructions below, how to find it.<br />
* CONFIG_SYS_SDRAM_BASE - start address of the dynamic RAM. Can be found in memory node in linux device tree.<br />
* CONFIG_DEBUG_UART=y<br />
* CONFIG_DEBUG_UART_SKIP_INIT=y - make sure to comment <code>_debug_uart_init</code> function code in you serial driver with that option<br />
* CONFIG_DEBUG_UART_BASE=0x13820000 // your uart address from downstream device tree<br />
* CONFIG_LOGLEVEL=8 // log all<br />
* CONFIG_POSITION_INDEPENDENT - Since Galaxy S8, Samsung randomizes kernel load address. You have to enable this option, if <code>Kernel code</code> start address is random, i.e. changes each boot. Find <code>Kernel code</code> address with <code>cat /proc/iomem</code><br />
* CONFIG_LINUX_KERNEL_IMAGE_HEADER - if you want U-boot binary to look as much as Linux kernel image as possible, to pack it inside android boot.img so stock android bootloader can recognize it<br />
<br />
=== Building ===<br />
==== Make u-boot ====<br />
Install arm cross compiler<br />
Build:<br />
export CROSS_COMPILE=aarch64-linux-gnu- <br />
make <$board_name>_defconfig<br />
make<br />
==== Create android boot image ====<br />
mkbootimg --base 0x40000000 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000 --tags_offset 0x00000100 --pagesize 2048 --second_offset 0x00f00000 --kernel {path to u-boot.bin} -o {output file}<br />
Replace offsets to your offsets, found from downstream boot.img.<br />
<br />
=== Running ===<br />
<br />
Flash android image, or follow [[Bootloaders_porting_using_linux]] guide<br />
<br />
== Getting uart debug output ==<br />
=== Raw ===<br />
This may be useful, when no C runtime environment set up yet. You should find uart address to write<br />
==== C ====<br />
*(volatile unsigned char *)(0x13820020/*uart register to write characters*/) = 0x48; // print H letter<br />
==== Assembly ====<br />
mov x26, #0x20 // move 0x13820020 low 16 bit to x26 register<br />
movk x26, #0x1382, lsl #16 // move 0x13820020 high 16 bit to x26 register<br />
mov x27, #0x48 // H letter ascii code<br />
str x27, [x26] // move H to uart register<br />
<br />
=== Using debug() function ===<br />
You can get debug output from particular *.c file by adding <code>#define DEBUG</code> at the top of file, and calling <code>debug("debug output");</code> where you need.<br />
<br />
== Finding base address ==<br />
<br />
Unless you build u-boot with <code>CONFIG_POSITION_INDEPENDENT=y</code>, you should tell u-boot base address, i.e. address in RAM, where stock bootloader load u-boot. This section describes, how to find it.<br />
<br />
Without the knowledge of base address u-boot will fail on <code>/common/board_f.c</code> file when calling functions from <code>init_sequence_f</code>. This is a list of initcall addresses, and if CONFIG_SYS_TEXT_BASE does not match with address u-boot resides, you CPU will jump in wrong address and execute irrelevant code, leaving you with unpredictable uart output and results.<br />
<br />
<code>cat /proc/iomem | grep "Kernel code"</code> will output something like: <code>2c0400000-2c0e031d0 : Kernel code</code><br />
<br />
address range start will be your <code>CONFIG_SYS_TEXT_BASE</code> address.<br />
<br />
== Creating basic device tree ==<br />
Will contain node for uart driver, fixed clock and chosen.<br />
=== a5y17lte device tree example ===<br />
exynos7880.dtsi:<br />
// SPDX-License-Identifier: GPL-2.0+<br />
<br />
/dts-v1/;<br />
#include "skeleton.dtsi"<br />
/ {<br />
compatible = "samsung,exynos7880";<br />
<br />
fin_pll: xxti {<br />
compatible = "fixed-clock";<br />
clock-output-names = "fin_pll";<br />
u-boot,dm-pre-reloc;<br />
#clock-cells = <0>;<br />
};<br />
<br />
uart2: serial@13820000 {<br />
compatible = "samsung,exynos4210-uart";<br />
reg = <0x13820000 0x100>;<br />
u-boot,dm-pre-reloc;<br />
};<br />
};<br />
<br />
a5y17lte.dts:<br />
// SPDX-License-Identifier: GPL-2.0+<br />
<br />
/dts-v1/;<br />
#include "exynos7880.dtsi"<br />
/ {<br />
compatible = "samsung,exynos7880";<br />
<br />
aliases {<br />
console = &uart2;<br />
};<br />
<br />
chosen {<br />
stdout-path = &uart2;<br />
};<br />
};<br />
<br />
&fin_pll {<br />
clock-frequency = <26000000>;<br />
};<br />
<br />
<br />
<br />
=== Final changes ===<br />
You may need to comment some serial driver initialization code, as it may not work properly without clock and pinctrl drivers.<br />
<br />
== Congrats! You should now get a u-boot console prompt! ==<br />
<br />
== Testing future u-boot builds ==<br />
Once you entered in u-boot console, you may upload new u-boot build in RAM via uart and run it<br />
<br />
=== Upload a file into RAM ===<br />
<br />
* on u-boot console: [https://www.denx.de/wiki/view/DULG/UBootCmdGroupDownload <code>load{b|x|y|s}</code>] <address>. If no address specified, file will be loaded at CONFIG_SYS_LOAD_ADDR <br />
* exit u-boot console to release tty device<br />
==== With ckermit ====<br />
* install ckermit (build it yourself with `-DSCO_OSR504` flag, for 115200+ baudrates)<br />
* create a script to send file:<br />
<br />
#!/bin/ckermit +<br />
<br />
set port /dev/ttyUSB0<br />
set speed 921600<br />
set carrier-watch off<br />
set flow-control none<br />
set prefixing all<br />
send \%1<br />
exit<br />
<br />
<br />
[https://stackoverflow.com/questions/38279621/how-to-send-boot-files-over-uart Source]<br />
<br />
==== {{todo|Figure out how to transfer files from picocom with ymodem or xmodem or gkermit}} ====<br />
<br />
=== Run uboot test version ===<br />
On u-boot console: <code>go <address of loaded file></code><br />
<br />
== Hush shell ==<br />
<br />
There is scripting possibility in [https://www.denx.de/wiki/view/DULG/CommandLineParsing u-boot with hush shell]. <br />
<br />
* Build u-boot with CONFIG_HUSH_PARSER. <br />
* Write simple <code>uboot_script.sh</code> file like (''Note, that empty line in you file will repeat previous command!'')<br />
<br />
for i in a b c; do<br />
echo $i<br />
done<br />
<br />
* Make uboot image <code>mkimage -T script -C none -n 'Demo Script File' -d uboot_script.sh uboot_script.img</code><br />
* Upload file to RAM as described above<br />
* Run <br />
** <code>iminfo <address of loaded script></code> - check and print script info<br />
** <code>source <address of loaded script></code> - run script<br />
<br />
<br />
== Booting linux with u-boot ==<br />
<br />
Usual booting procedure involves loading u-boot's payload from storage to ram, and invoking <code>bootm</code> command. If you don't have storage driver in u-boot for your SoC, you may pack u-boot's payload along with u-boot in one file. That file may be used as stock bootloader's payload. In such case, you should pay attention at <code>CONFIG_SYS_INIT_SP_BSS_OFFSET</code> and <code>CONFIG_SYS_INIT_SP_ADDR</code> options to avoid u-boot early c runtime screw up u-boot's payload. Default values for mentioned options is 512K. Since u-boot's size is usually less than 512K, putting u-boot's payload with 1M offset should be safe, i.e:<br />
<syntaxhighlight lang="sh"><br />
cp u-boot.bin stock_payload.bin<br />
dd if=u-boot_payload.bin of=stock_payload.bin seek=1 bs=$((0x100000))<br />
</syntaxhighlight><br />
<br />
=== Troubleshooting ===<br />
==== Failed to reserve memory... ====<br />
You may need to increase LMB_MAX_REGIONS config to be higher, than reserved memory regions count in your linux dts. This is because u-boot tries to reserved all reserved memory regions, and it should have regions in lmb library available.<br />
<br />
== See also == <br />
* {{MR|10|boot-deploy}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=User:MartijnBraam/ubootpage&diff=29001
User:MartijnBraam/ubootpage
2022-07-07T13:05:34Z
<p>MartijnBraam: Created page with "=== U-Boot devices === {{#cargo_query: tables=Devices |fields=CONCAT( '',Manufacturer,' ',Name,'' )=Device,Codename,StatusUbootPrimary=Primary,StatusUboot..."</p>
<hr />
<div>=== U-Boot devices ===<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusUbootPrimary=Primary,StatusUbootSecondary=Secondary,StatusUbootMainline=Mainline,StatusUbootInternalStorage=Internal storage,StatusUbootSd=SD,StatusUbootUsbhost=USB Host,StatusUbootUsbperipheral=USB Peripheral,StatusUbootScreen=Screen,StatusUbootKeyboard=Keyboard,StatusUbootButtons=Buttons,<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.StatusUboot = "yes"<br />
|more results text=<br />
}}</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=28968
Template:Infobox device
2022-07-06T00:31:54Z
<p>MartijnBraam: Add status_uboot to cargotables for filtering</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = postmarketOS kernel<br />
|data7 = {{{pmoskernel|}}}<br />
|header8 = Hardware<br />
|label8 =<br />
|data8 =<br />
|header9 = <br />
|label9 = Chipset<br />
|data9 = {{{chipset|}}}<br />
|header10 = <br />
|label10 = CPU<br />
|data10 = {{{cpu|}}}<br />
|header11 = <br />
|label11 = GPU<br />
|data11 = {{{gpu|}}}<br />
|header12 = <br />
|label12 = Display<br />
|data12 = {{{display|}}}<br />
|header13 = <br />
|label13 = Storage<br />
|data13 = {{{storage|}}}<br />
|header14 = <br />
|label14 = Memory<br />
|data14 = {{{memory|}}}<br />
|header15 = <br />
|label15 = Architecture<br />
|data15 = {{{architecture|}}}<br />
|header16 = <br />
|label16 = Non-Android based device<br />
|data16 = {{{n-android|}}}<br />
|header17 = <br />
|label17 = Unixbench Whet/Dhry score<br />
|data17 = {{{whet_dhry|}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Used as flip cover sensor, keyboard slide out sensor, etc.">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="It is possible to replace stock bootloader with U-Boot.">Primary Bootloader</abbr><br />
|data1 = {{Feature|{{{status_uboot_primary|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to chainload U-Boot from stock bootloader.">Secondary Bootloader</abbr><br />
|data2 = {{Feature|{{{status_uboot_secondary|}}}}}<br />
|header3 =<br />
|label3 = <abbr title="Latest versions of U-Boot are not broken and it is possible to use them.">Mainline</abbr><br />
|data3 = {{Feature|{{{status_uboot_mainline|}}}}}<br />
|header4 =<br />
|label4 = Internal Storage<br />
|data4 = {{Feature|{{{status_uboot_internalstorage|}}}}}<br />
|header5 =<br />
|label5 = SD card<br />
|data5 = {{Feature|{{{status_uboot_sd|}}}}}<br />
|header6 =<br />
|label6 = <abbr title="It is possible to boot from a USB storage or connect a keyboard.">USB Host</abbr><br />
|data6 = {{Feature|{{{status_uboot_usbhost|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.">USB Peripheral</abbr><br />
|data7 = {{Feature|{{{status_uboot_usbperipheral|}}}}}<br />
|header8 =<br />
|label8 = Display<br />
|data8 = {{Feature|{{{status_uboot_screen|}}}}}<br />
|header9 =<br />
|label9 = Keyboard<br />
|data9 = {{Feature|{{{status_uboot_keyboard|}}}}}<br />
|header10 =<br />
|label10 = <abbr title="It is possible to navigate in boot menu or grub with volume and power buttons.">Buttons</abbr><br />
|data10 = {{Feature|{{{status_uboot_buttons|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
<br />
{{#cargo_declare:_table=Devices|Manufacturer=String|Name=String|Codename=String|Released=Date|Chipset=String|OriginalSoftware=String|PmosKernel=String|CPU=String|GPU=String|Display=String|Storage=String|Memory=String|StatusUsbnet=String|StatusFlashing=String|StatusTouch=String|StatusScreen=String|StatusWifi=String|StatusXwayland=String|StatusFde=String|StatusMainline=String|StatusBattery=String|Status3d=String|StatusAccel=String|StatusMagnet=String|StatusLight=String|StatusProximity=String|StatusHall=String|StatusAudio=String|StatusBluetooth=String|StatusCamera=String|StatusGps=String|StatusMobiledata=String|StatusSms=String|StatusCalls=String|StatusStatus=String|Architecture=String|Booting=Boolean|NonAndroid=String|WhetDhry=Float|StatusOtg=String|Category=String|StatusNfc=String|StatusIrtx=String|StatusUbootPrimary=String|StatusUbootSecondary=String|StatusUbootMainline=String|StatusUbootInternalStorage=String|StatusUbootSd=String|StatusUbootUsbhost=String|StatusUbootUsbperipheral=String|StatusUbootScreen=String|StatusUbootKeyboard=String|StatusUbootButtons=String|StatusUboot=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}|StatusTrustZone={{{status_trustzone|}}}|StatusUbootPrimary={{{status_uboot_primary|}}}|StatusUbootSecondary={{{status_uboot_secondary|}}}|StatusUbootMainline={{{status_uboot_mainline|}}}|StatusUbootInternalStorage={{{status_uboot_internalstorage|}}}|StatusUbootSd={{{status_uboot_sd|}}}|StatusUbootUsbhost={{{status_uboot_usbhost|}}}|StatusUbootUsbperipheral={{{status_uboot_usbperipheral|}}}|StatusUbootScreen={{{status_uboot_screen|}}}|StatusUbootKeyboard={{{status_uboot_keyboard|}}}|StatusUbootButtons={{{status_uboot_buttons|}}}|StatusUboot={{{status_uboot|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=28945
Template:Infobox device
2022-07-05T23:11:44Z
<p>MartijnBraam: Add conditional u-boot block</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = postmarketOS kernel<br />
|data7 = {{{pmoskernel|}}}<br />
|header8 = Hardware<br />
|label8 =<br />
|data8 =<br />
|header9 = <br />
|label9 = Chipset<br />
|data9 = {{{chipset|}}}<br />
|header10 = <br />
|label10 = CPU<br />
|data10 = {{{cpu|}}}<br />
|header11 = <br />
|label11 = GPU<br />
|data11 = {{{gpu|}}}<br />
|header12 = <br />
|label12 = Display<br />
|data12 = {{{display|}}}<br />
|header13 = <br />
|label13 = Storage<br />
|data13 = {{{storage|}}}<br />
|header14 = <br />
|label14 = Memory<br />
|data14 = {{{memory|}}}<br />
|header15 = <br />
|label15 = Architecture<br />
|data15 = {{{architecture|}}}<br />
|header16 = <br />
|label16 = Non-Android based device<br />
|data16 = {{{n-android|}}}<br />
|header17 = <br />
|label17 = Unixbench Whet/Dhry score<br />
|data17 = {{{whet_dhry|}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Used as flip cover sensor, keyboard slide out sensor, etc.">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<br />
{{#if: {{{status_uboot|}}}<br />
| <br />
{{Infobox<br />
| name=U-Boot<br />
| bodystyle=<br />
| title = U-Boot<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
| <br />
}}<br />
<br />
<noinclude><br />
<br />
{{#cargo_declare:_table=Devices|Manufacturer=String|Name=String|Codename=String|Released=Date|Chipset=String|OriginalSoftware=String|PmosKernel=String|CPU=String|GPU=String|Display=String|Storage=String|Memory=String|StatusUsbnet=String|StatusFlashing=String|StatusTouch=String|StatusScreen=String|StatusWifi=String|StatusXwayland=String|StatusFde=String|StatusMainline=String|StatusBattery=String|Status3d=String|StatusAccel=String|StatusMagnet=String|StatusLight=String|StatusProximity=String|StatusHall=String|StatusAudio=String|StatusBluetooth=String|StatusCamera=String|StatusGps=String|StatusMobiledata=String|StatusSms=String|StatusCalls=String|StatusStatus=String|Architecture=String|Booting=Boolean|NonAndroid=String|WhetDhry=Float|StatusOtg=String|Category=String|StatusNfc=String|StatusIrtx=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}||StatusTrustZone={{{status_trustzone|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_device&diff=28944
Template:Infobox device
2022-07-05T23:07:16Z
<p>MartijnBraam: Remove the templatedata since it's not used and not up to date</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = {{#if:{{{image|}}}|[[{{{image|}}}|200px|alt={{{imagecaption|}}}]]}}<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codename<br />
|data3 = {{{codename|}}}<br />
|header4 =<br />
|label4 = Released<br />
|data4 = {{{releaseyear|}}}<br />
|header5 =<br />
|label5 = Category<br />
|data5 = {{{category|testing}}}<br />
|header6 =<br />
|label6 = Original software<br />
|data6 = {{{originalsoftware|}}}<br />
|header7 =<br />
|label7 = postmarketOS kernel<br />
|data7 = {{{pmoskernel|}}}<br />
|header8 = Hardware<br />
|label8 =<br />
|data8 =<br />
|header9 = <br />
|label9 = Chipset<br />
|data9 = {{{chipset|}}}<br />
|header10 = <br />
|label10 = CPU<br />
|data10 = {{{cpu|}}}<br />
|header11 = <br />
|label11 = GPU<br />
|data11 = {{{gpu|}}}<br />
|header12 = <br />
|label12 = Display<br />
|data12 = {{{display|}}}<br />
|header13 = <br />
|label13 = Storage<br />
|data13 = {{{storage|}}}<br />
|header14 = <br />
|label14 = Memory<br />
|data14 = {{{memory|}}}<br />
|header15 = <br />
|label15 = Architecture<br />
|data15 = {{{architecture|}}}<br />
|header16 = <br />
|label16 = Non-Android based device<br />
|data16 = {{{n-android|}}}<br />
|header17 = <br />
|label17 = Unixbench Whet/Dhry score<br />
|data17 = {{{whet_dhry|}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Features<br />
| bodystyle=<br />
| title = Features<br />
| titlestyle = <br />
<br />
|label1 = <abbr title="After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).">USB Networking</abbr><br />
|data1 = {{Feature|{{{status_usbnet|}}}}}<br />
|header2 =<br />
|label2 = <abbr title="It is possible to flash the device with `pmbootstrap flasher`.">Flashing</abbr><br />
|data2 = {{Feature|{{{status_flashing|}}}}}<br />
|header3 =<br />
|label3 = Touchscreen<br />
|data3 = {{Feature|{{{status_touch|}}}}}<br />
|header4 =<br />
|label4 = <abbr title="Display works. Ideally with sleep mode and brightness control.">Display</abbr><br />
|data4 = {{Feature|{{{status_screen|}}}}}<br />
|header5 =<br />
|label5 = WiFi<br />
|data5 = {{Feature|{{{status_wifi|}}}}}<br />
|header7 =<br />
|label7 = <abbr title="Full disk encryption and unlocking with osk-sdl.">FDE</abbr><br />
|data7 = {{Feature|{{{status_fde|}}}}}<br />
|header8 =<br />
|label8 = <abbr title="Instead of a Linux kernel fork, it is possible to run mainline.">Mainline</abbr><br />
|data8 = {{Feature|{{{status_mainline|}}}}}<br />
|header9 =<br />
|label9 = <abbr title="Charging and battery level reporting works">Battery</abbr><br />
|data9 = {{Feature|{{{status_battery|}}}}}<br />
|header10 =<br />
|label10 = 3D Acceleration<br />
|data10 = {{Feature|{{{status_3d|}}}}}<br />
|header11 =<br />
|label11 = <abbr title="Audio playback, microphone, headset and buttons.">Audio</abbr><br />
|data11 = {{Feature|{{{status_audio|}}}}}<br />
|header12 =<br />
|label12 = Bluetooth<br />
|data12 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header13 =<br />
|label13 = Camera<br />
|data13 = {{Feature|{{{status_camera|}}}}}<br />
|header14 =<br />
|label14 = GPS<br />
|data14 = {{Feature|{{{status_gps|}}}}}<br />
|header15 =<br />
|label15 = Mobile data<br />
|data15 = {{Feature|{{{status_mobiledata|}}}}}<br />
|header16 =<br />
|label16 = SMS<br />
|data16 = {{Feature|{{{status_sms|}}}}}<br />
|header17 =<br />
|label17 = Calls<br />
|data17 = {{Feature|{{{status_calls|}}}}}<br />
|header18 =<br />
|label18 = USB OTG<br />
|data18 = {{Feature|{{{status_otg|}}}}}<br />
|header19 =<br />
|label19 = NFC<br />
|data19 = {{Feature|{{{status_nfc|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Sensors<br />
| bodystyle=<br />
| title = Sensors<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = <abbr title="Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile">Accelerometer</abbr><br />
|data1 = {{Feature|{{{status_accel|}}}}}<br />
|header2 =<br />
|label2 = Magnetometer<br />
|data2 = {{Feature|{{{status_magnet|}}}}}<br />
|header3 =<br />
|label3 = Ambient Light<br />
|data3 = {{Feature|{{{status_light|}}}}}<br />
|header4 =<br />
|label4 = Proximity<br />
|data4 = {{Feature|{{{status_proximity|}}}}}<br />
|header5 =<br />
|label5 = <abbr title="Used as flip cover sensor, keyboard slide out sensor, etc.">Hall Effect</abbr><br />
|data5 = {{Feature|{{{status_hall|}}}}}<br />
}}<br />
<br />
{{Infobox<br />
| name=Misc<br />
| bodystyle=<br />
| title = Misc<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Ir TX<br />
|data1 = {{Feature|{{{status_irtx|}}}}}<br />
|header2 =<br />
|label2 = TrustZone<br />
|data2 = {{Feature|{{{status_trustzone|}}}}}<br />
|header3 =<br />
|label3 = FOSS bootloader<br />
|data3 = {{Feature|{{{status_fossbootloader|}}}}}<br />
}}<br />
<noinclude><br />
<br />
{{#cargo_declare:_table=Devices|Manufacturer=String|Name=String|Codename=String|Released=Date|Chipset=String|OriginalSoftware=String|PmosKernel=String|CPU=String|GPU=String|Display=String|Storage=String|Memory=String|StatusUsbnet=String|StatusFlashing=String|StatusTouch=String|StatusScreen=String|StatusWifi=String|StatusXwayland=String|StatusFde=String|StatusMainline=String|StatusBattery=String|Status3d=String|StatusAccel=String|StatusMagnet=String|StatusLight=String|StatusProximity=String|StatusHall=String|StatusAudio=String|StatusBluetooth=String|StatusCamera=String|StatusGps=String|StatusMobiledata=String|StatusSms=String|StatusCalls=String|StatusStatus=String|Architecture=String|Booting=Boolean|NonAndroid=String|WhetDhry=Float|StatusOtg=String|Category=String|StatusNfc=String|StatusIrtx=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Devices]]<br />
{{#ifeq:{{{booting|no}}}|no|[[Category:Not booting]]}}<br />
{{#cargo_store:_table=Devices|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codename={{{codename|}}}|Released={{{releaseyear|}}}|Chipset={{{chipset|}}}|OriginalSoftware={{{originalsoftware|}}}|PmosKernel={{{pmoskernel|}}}|CPU={{{cpu|}}}|GPU={{{gpu|}}}|Display={{{display|}}}|Storage={{{storage|}}}|Memory={{{memory|}}}|StatusUsbnet={{{status_usbnet|}}}|StatusFlashing={{{status_flashing|}}}|StatusTouch={{{status_touch|}}}|StatusScreen={{{status_screen|}}}|StatusWifi={{{status_wifi|}}}|StatusXwayland={{{status_xwayland|}}}|StatusFde={{{status_fde|}}}|StatusMainline={{{status_mainline|}}}|StatusBattery={{{status_battery|}}}|Status3d={{{status_3d|}}}|StatusAccel={{{status_accel|}}}|StatusMagnet={{{status_magnet|}}}|StatusLight={{{status_light|}}}|StatusProximity={{{status_proximity|}}}|StatusHall={{{status_hall|}}}|StatusAudio={{{status_audio|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusCamera={{{status_camera|}}}|StatusGps={{{status_gps|}}}|StatusMobiledata={{{status_mobiledata|}}}|StatusSms={{{status_sms|}}}|StatusCalls={{{status_calls|}}}|StatusStatus={{{status|}}}|Architecture={{{architecture|}}}|Booting={{{booting|}}}|NonAndroid={{{n-android|}}}|WhetDhry={{{whet_dhry|}}}|StatusOtg={{{status_otg|}}}|Category={{{category|testing}}}|StatusNfc={{{status_nfc|}}}|StatusIrtx={{{status_irtx|}}}||StatusTrustZone={{{status_trustzone|}}} }}<br />
</includeonly></div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Samsung-espresso3g&diff=27666
Samsung-espresso3g
2022-05-13T21:32:42Z
<p>MartijnBraam: Redirected page to Samsung Galaxy Tab 2 7.0" (samsung-espresso3g)</p>
<hr />
<div>#REDIRECT [[Samsung_Galaxy_Tab_2_7.0"_(samsung-espresso3g)]]</div>
MartijnBraam
https://wiki.postmarketos.org/index.php?title=Template:Infobox_soc&diff=26801
Template:Infobox soc
2022-04-07T13:23:47Z
<p>MartijnBraam: </p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|image = [[{{{image|}}}|200px|alt={{{imagecaption|}}}]]<br />
|imagestyle = <br />
|caption = {{{imagecaption|}}}<br />
|captionstyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codenames<br />
|data3 = {{{codenames|}}}<br />
|header4 =<br />
|label4 = Architecture<br />
|data4 = {{{arch|}}}<br />
|header5 =<br />
|label5 = CPU<br />
|data5 = {{{cpu|}}}<br />
|header6 =<br />
|label6 = GPU<br />
|data6 = {{{gpu|}}}<br />
|header7 =<br />
|label7 = Year<br />
|data7 = {{{year|}}}<br />
|header8 =<br />
|label8 = Process<br />
|data8 = {{{process|}}}nm<br />
|header9 =<br />
|label9 = Mainline<br />
|data9 = {{{mainline|}}}<br />
|label10 = <abbr title="A link to a git{hub,lab} organisation/repo where development happens">Community Page</abbr><br />
|data10 = {{{community_page|}}}<br />
|header11 = Components<br />
|label11 = <br />
|data11 = <br />
|header12 =<br />
|label12 = <abbr title="SMP (bring up secondary CPU cores), CPU frequency scaling, CPUidle">CPU</abbr><br />
|data13 = {{Feature|{{{status_cpu|}}}}}<br />
|header13 =<br />
|label13 = UART<br />
|data13 = {{Feature|{{{status_uart|}}}}}<br />
|header14 =<br />
|label14 = <abbr title="eMMC, SD cards, UFS, ...">Storage</abbr><br />
|data14 = {{Feature|{{{status_storage|}}}}}<br />
|header15 =<br />
|label15 = USB<br />
|data15 = {{Feature|{{{status_usb|}}}}}<br />
|header16 =<br />
|label16 = Display<br />
|data16 = {{Feature|{{{status_display|}}}}}<br />
|header17 =<br />
|label17 = GPU<br />
|data18 = {{Feature|{{{status_gpu|}}}}}<br />
|header18 =<br />
|label18 = Pinctrl<br />
|data18 = {{Feature|{{{status_pinctrl|}}}}}<br />
|header19 =<br />
|label19 = I²C<br />
|data19 = {{Feature|{{{status_i2c|}}}}}<br />
|header10 =<br />
|label20 = Audio<br />
|data20 = {{Feature|{{{status_audio|}}}}}<br />
|header21 =<br />
|label21 = <abbr title="Hardware-accelerated video de/encoding">Video</abbr><br />
|data21 = {{Feature|{{{status_video|}}}}}<br />
|header22 =<br />
|label22 = Thermal<br />
|data22 = {{Feature|{{{status_thermal|}}}}}<br />
|header23 =<br />
|label23 = WiFi<br />
|data23 = {{Feature|{{{status_wifi|}}}}}<br />
|header24 =<br />
|label24 = Bluetooth<br />
|data24 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header25 =<br />
|label25 = <abbr title="Calls, SMS, Internet">Modem</abbr><br />
|data25 = {{Feature|{{{status_modem|}}}}}<br />
|header26 =<br />
|label26 = GPS<br />
|data26 = {{Feature|{{{status_gps|}}}}}<br />
|header27 =<br />
|label27 = Camera<br />
|data27 = {{Feature|{{{status_camera|}}}}}<br />
|header28 =<br />
|label28 = Suspend<br />
|data28 = {{Feature|{{{status_suspend|}}}}}<br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:_table=Socs|Manufacturer=String|Name=String|Codenames=String|Arch=String|Year=String|Process=Integer|Cpu=String|Gpu=String|Mainline=Boolean|CommunityPage=URL|StatusCpu=String|StatusUart=String|StatusStorage=String|StatusUsb=String|StatusDisplay=String|StatusGpu=String|StatusPinctrl=String|StatusI2c=String|StatusAudio=String|StatusVideo=String|StatusThermal=String|StatusWiFi=String|StatusBluetooth=String|StatusModem=String|StatusGps=String|StatusCamera=String|StatusSuspend=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Socs]]<br />
{{#cargo_store:_table=Socs|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codenames={{{codenames|}}}|Arch={{{arch|}}}|Year={{{year|}}}|Process={{{process|}}}|Cpu={{{cpu|}}}|Gpu={{{gpu|}}}|Mainline={{{mainline|}}}|CommunityPage={{{community_page|}}}|StatusCpu={{{status_cpu|}}}|StatusUart={{{status_uart|}}}|StatusStorage={{{status_storage|}}}|StatusUsb={{{status_usb|}}}|StatusDisplay={{{status_display|}}}|StatusGpu={{{status_gpu|}}}|StatusPinctrl={{{status_pinctrl|}}}|StatusI2c={{{status_i2c|}}}|StatusAudio={{{status_audio|}}}|StatusVideo={{{status_video|}}}|StatusThermal={{{status_thermal|}}}|StatusWiFi={{{status_wifi|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusModem={{{status_modem|}}}|StatusGps={{{status_gps|}}}|StatusCamera={{{status_camera|}}}|StatusSuspend={{{status_suspend|}}} }}<br />
</includeonly></div>
MartijnBraam