https://wiki.postmarketos.org/api.php?action=feedcontributions&user=Begs&feedformat=atompostmarketOS - User contributions [en]2024-03-28T14:12:29ZUser contributionsMediaWiki 1.39.6https://wiki.postmarketos.org/index.php?title=User:Begs&diff=35684User:Begs2023-01-15T20:04:06Z<p>Begs: Migrated to new username.</p>
<hr />
<div>Moved to [[User:mxkrsv|mxkrsv]].</div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=31886User:Begs2022-10-23T15:37:39Z<p>Begs: Update badges</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|mxkrsv}}<br />
{{User SourceHut|begs}}<br />
{{User main device|OnePlus 6T (oneplus-fajita)}}<br />
</div><br />
== Personal site ==<br />
https://begs.srht.site/<br />
== Contact ==<br />
* begs at disroot dot org<br />
* beggs:matrix.org<br />
* beggggs on telegram<br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Daily driving LineageOS, waiting for call audio support}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo works flawlessly}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=25908Xunlong Orange Pi 3 (xunlong-orangepi3)2022-02-23T18:01:58Z<p>Begs: Update ethernet status</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| status_irtx = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1646.7<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Will work after [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/31369 this aports MR] is merged.<br />
<br />
== PCIe ==<br />
It doesn't work, and likely won't ever. See linux-sunxi wiki for details.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* [https://begs.srht.site/blog/2021/running-postmarketos-on-orange-pi-3/ Blogpost about porting efforts]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=25562Xunlong Orange Pi 3 (xunlong-orangepi3)2022-02-07T12:03:04Z<p>Begs: There's no Ir TX</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| status_irtx = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1646.7<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Main blocker is described [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24978 here]. Until it's resolved, you'll have to pick that patch and build u-boot manually, than flash it manually over an existing pmOS installation, out of scope of this page.<br />
<br />
== PCIe ==<br />
It doesn't work, and likely won't ever. See linux-sunxi wiki for details.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* [https://begs.srht.site/blog/2021/running-postmarketos-on-orange-pi-3/ Blogpost about porting efforts]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=25561User:Begs2022-02-07T12:00:00Z<p>Begs: </p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User SourceHut|begs}}<br />
{{User GitHub|begss}}<br />
{{User main device|OnePlus 6T (oneplus-fajita)}}<br />
</div><br />
== Personal site ==<br />
https://begs.srht.site/<br />
== Contact ==<br />
* begs at disroot dot org<br />
* beggs:matrix.org<br />
* beggggs on telegram<br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Daily driving LineageOS, waiting for call audio support}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo works flawlessly}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=23954Xunlong Orange Pi 3 (xunlong-orangepi3)2021-11-28T12:20:02Z<p>Begs: Re-run unixbench with better cooling</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1646.7<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Main blocker is described [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24978 here]. Until it's resolved, you'll have to pick that patch and build u-boot manually, than flash it manually over an existing pmOS installation, out of scope of this page.<br />
<br />
== PCIe ==<br />
It doesn't work, and likely won't ever. See linux-sunxi wiki for details.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* [https://begs.srht.site/blog/2021/running-postmarketos-on-orange-pi-3/ Blogpost about porting efforts]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=23422Xunlong Orange Pi 3 (xunlong-orangepi3)2021-11-01T16:01:10Z<p>Begs: Add PCIe status</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Main blocker is described [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24978 here]. Until it's resolved, you'll have to pick that patch and build u-boot manually, than flash it manually over an existing pmOS installation, out of scope of this page.<br />
<br />
== PCIe ==<br />
It doesn't work, and likely won't ever. See linux-sunxi wiki for details.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* [https://begs.srht.site/blog/2021/running-postmarketos-on-orange-pi-3/ Blogpost about porting efforts]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22742User:Begs2021-09-29T19:40:42Z<p>Begs: Add 'contact' section</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User SourceHut|begs}}<br />
{{User GitHub|begss}}<br />
{{User main device|OnePlus 6T (oneplus-fajita)}}<br />
</div><br />
== Personal site ==<br />
https://begs.srht.site/<br />
== Contact ==<br />
* begs on disroot dot org<br />
* beggs:matrix.org<br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Daily driving LineageOS, not too much time to experiment}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo works flawlessly}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Popcorn_Computer_PocketPC_(popcorncomputer-pocketpc)&diff=22741Popcorn Computer PocketPC (popcorncomputer-pocketpc)2021-09-29T19:20:40Z<p>Begs: Add some info</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Popcorn Computer<br />
| name = Pocket P.C.<br />
| codename = popcorncomputer-pocketpc<br />
| image = File:PocketPC_Cat.jpg<br />
| imagecaption = Pocket P.C. running glmark2-egl-drm with rainbow backlit keyboard.<br />
| releaseyear = 2021<br />
| originalsoftware = Mainline Linux<br />
| chipset = Allwinner A64<br />
| cpu = 4x 1.2 GHz Cortex-A53<br />
| gpu = Mali-400 MP2<br />
| storage = 32GB<br />
| display = 1920x1080 IPS<br />
| memory = 2GB<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 = <!-- 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 />
| n-android = ✔<br />
<!-- you can also use these lines if you need to:<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 />
}}<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 --><br />
<br />
== How to enter flash mode ==<br />
<br />
== Installation ==<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><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 />
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>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22511User:Begs2021-09-21T19:25:01Z<p>Begs: Add sr.ht profile</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User SourceHut|begs}}<br />
{{User GitHub|begss}}<br />
{{User main device|OnePlus 6T (oneplus-fajita)}}<br />
</div><br />
== Personal site ==<br />
https://begs.srht.site/<br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Daily driving LineageOS, not too much time to experiment}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo works flawlessly}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Template:User_SourceHut&diff=22510Template:User SourceHut2021-09-21T19:23:38Z<p>Begs: Add user's sourcehut template</p>
<hr />
<div><noinclude><br />
{{Template:Template}}<br />
</noinclude>{{userbox<br />
| border-c = #000<br />
| id = [[File:Sourcehut_logo.png|SourceHut logo|40px]]<br />
| id-c = #282828<br />
| info = This user has '''[https://sr.ht/~{{{1}}}<span style="color: #000 !important; text-decoration: underline !important;">a SourceHut profile</span>]'''.<br />
| info-c = #FFFFFF<br />
}}</div>Begshttps://wiki.postmarketos.org/index.php?title=File:Sourcehut-logo.png&diff=22509File:Sourcehut-logo.png2021-09-21T19:18:19Z<p>Begs: Begs moved page File:Sourcehut-logo.png to File:Sourcehut logo.png</p>
<hr />
<div>#REDIRECT [[File:Sourcehut logo.png]]</div>Begshttps://wiki.postmarketos.org/index.php?title=File:Sourcehut_logo.png&diff=22508File:Sourcehut logo.png2021-09-21T19:18:19Z<p>Begs: Begs moved page File:Sourcehut-logo.png to File:Sourcehut logo.png</p>
<hr />
<div></div>Begshttps://wiki.postmarketos.org/index.php?title=File:Sourcehut_logo.png&diff=22507File:Sourcehut logo.png2021-09-21T19:16:24Z<p>Begs: </p>
<hr />
<div></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=22505Xunlong Orange Pi 3 (xunlong-orangepi3)2021-09-21T19:08:54Z<p>Begs: Add link to blogpost</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Main blocker is described [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24978 here]. Until it's resolved, you'll have to pick that patch and build u-boot manually, than flash it manually over an existing pmOS installation, out of scope of this page.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* [https://begs.srht.site/blog/2021/running-postmarketos-on-orange-pi-3/ Blogpost about porting efforts]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22504User:Begs2021-09-21T19:05:55Z<p>Begs: Add personal site</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User GitHub|begss}}<br />
{{User main device|OnePlus 6T (oneplus-fajita)}}<br />
</div><br />
== Personal site ==<br />
https://begs.srht.site/<br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Daily driving LineageOS, not too much time to experiment}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo works flawlessly}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=22503Xunlong Orange Pi 3 (xunlong-orangepi3)2021-09-21T19:02:36Z<p>Begs: Fixup</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Main blocker is described [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24978 here]. Until it's resolved, you'll have to pick that patch and build u-boot manually, than flash it manually over an existing pmOS installation, out of scope of this page.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=22502Xunlong Orange Pi 3 (xunlong-orangepi3)2021-09-21T19:00:45Z<p>Begs: Update ethernet status</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Main blocker is described [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2487 here]. Until it's resolved, you'll have to pick that patch and build u-boot manually, than flash it manually over an existing pmOS installation, out of scope of this page.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22501User:Begs2021-09-21T18:58:24Z<p>Begs: Various updates</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User GitHub|begss}}<br />
{{User main device|OnePlus 6T (oneplus-fajita)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Daily driving LineageOS, not too much time to experiment}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo works flawlessly}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=22136Xunlong Orange Pi 3 (xunlong-orangepi3)2021-09-04T19:26:38Z<p>Begs: Update Ethernet status</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Workarounds required for Ethernet to work are on review [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2487 here] and [https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/24978 here]<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22070User:Begs2021-09-01T20:19:49Z<p>Begs: LoS on op6t</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User main device|BQ Aquaris X5 (bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|LineageOS for now, will make a dual-boot with pmOS soon}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22065User:Begs2021-09-01T17:16:08Z<p>Begs: Add op6t</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User main device|BQ Aquaris X5 (bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|OnePlus_6T_(oneplus-fajita)|Just bought, still OxygenOS}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Sway&diff=22036Sway2021-08-31T13:53:20Z<p>Begs: Use image from PineBook Pro page</p>
<hr />
<div>{{Infobox interface<br />
|name=Sway<br />
|image=File:Pine-pinebookpro.jpg<br />
|imagecaption=Sway on PineBook Pro<br />
|graphics=wlroots<br />
|toolkit=None<br />
}}<br />
<br />
== Installation ==<br />
Run <code>pmbootstrap init</code> and choose <code>sway</code> in the interface section.<br />
<br />
== Guide ==<br />
Follow the [https://wiki.postmarketos.org/wiki/Display Display] guide to change and fix display related issues.<br />
<br />
== See also ==<br />
* {{MR|374|pmaports}} initial merge request<br />
<br />
[[Category:Interface]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_410/412_(MSM8916)&diff=22035Qualcomm Snapdragon 410/412 (MSM8916)2021-08-31T13:43:51Z<p>Begs: Pulsemixer may also be controlled with Tab/S-Tab</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 />
| gpu = Adreno 306<br />
| year = 2014<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<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 support orginally 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 />
<br />
<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=Booting and Devices.chipset='Qualcomm MSM8916 Snapdragon 410'<br />
|more results text=<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 APQ8016 Snapdragon 410'<br />
|more results text=<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 MSM8916v2 Snapdragon 412'<br />
|more results text=<br />
}}<br />
<br />
== Installation ==<br />
All MSM8916 devices in postmarketOS use [https://github.com/msm8916-mainline/lk2nd 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 />
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 updated to the latest lk2nd: the boot process and installation instructions are different since lk2nd 0.10.0}}<br />
<br />
=== Installation from pre-built image ===<br />
The MSM8916-based devices in the <code>community</code> category (see table above) have pre-built images that can be easily installed without [[pmbootstrap]]. There are different images (e.g. [[Phosh]] or [[Plasma Mobile]]) to choose from and they are updated every week. If you want more control about the installation (e.g. no proprietary firmware, different UI, extra packages, ...) consider using the [[pmbootstrap]] installation method instead (documented further below).<br />
<br />
Choose an image for your device from the [https://postmarketos.org/download/ download] page.<br />
<br />
Pick the latest date, choose UI between the ones that are available and download the rootfs image file:<br />
# <code><date>-<release>-<ui>-<device>-mainline-modem.img.xz</code><br />
(You don't need the legacy <code>-boot.img</code> image since lk2nd 0.10.0)<br />
<br />
Unpack this file (<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 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 />
The default username is <code>user</code>, and the default password is <code>147147</code>. Enjoy postmarketOS!<br />
<br />
=== Installation using pmbootstrap ===<br />
Using [[pmbootstrap]] you can generate your own fully customized images, with many more UIs to choose from and other options. However, at the moment it works only on Linux systems.<br />
<br />
# [[Installing_pmbootstrap|Install pmbootstrap]]<br />
# Follow the [[Installation guide]] :<br />
## <code>pmbootstrap init</code> (choose your device, UI you like and other options)<br />
## <code>pmbootstrap install</code><br />
# Put phone into "lk2nd mode", and continue<br />
## (Ignore the proposed <code>flash_kernel</code> step as lk2nd will boot the kernel image from the installed rootfs)<br />
# It is recommended to install large phone UIs like [[Plasma Mobile]] or [[Phosh]] to <code>userdata</code> partition, because system partition is too small for them. Note that you can also install the system image onto an sdcard with <code>pmbootstrap install --sdcard=/dev/sdX</code>:<br />
## <code>pmbootstrap flasher flash_rootfs --partition userdata</code><br />
## <code>fastboot erase system</code><br />
# <code>fastboot reboot</code><br />
<br />
Enjoy postmarketOS!<br />
<br />
== Audio ==<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 />
{{note|'''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 />
To use the modem, select the <code>mainline-modem</code> kernel instead of <code>mainline</code>, and make sure to agree to the usage of non-free firmware (required for the modem).<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 />
On Qualcomm devices GNSS is usually part of the modem. ModemManager and libqmi (with qmicli) can configure and use the modem Location service. <br />
There is a [https://gitlab.com/gpsd/gpsd/-/merge_requests/139/commits WIP MR to the gpsd] that adds the support for GNSS via Qualcomm modems. Alternatively you can run gpsd to read NMEA output from qmicli. <br />
<br />
An example of that would be the following. (You need ModemManager to run and make sure that CID is correct)<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 />
== 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 ==<br />
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/Minecrell/linux/commits/cpr59).<br />
<br />
== Suspend ==<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 />
In Phosh, it can be disabled in Settings/Tweaks -> Power -> Automatic Suspend.<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 />
<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.</div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=22034User:Begs2021-08-31T13:41:57Z<p>Begs: hero2lte died</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User main device|BQ Aquaris X5 (bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS Sxmo daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Dead}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Serial_debugging&diff=21954Serial debugging2021-08-28T16:28:42Z<p>Begs: Add microcom.</p>
<hr />
<div>To get kernel or bootloader logs on a system without a working display/full USB configuration, a '''serial cable''' may be used, which allows us to preview the serial console on the device.<br />
<br />
To debug your device with a serial cable, you will need:<br />
<br />
* A serial debugging cable for your device. '''You will need to make this yourself''', so prior experience with soldering and soldering tools is recommended. (You might be able to make a cable without soldering if you find the right parts, though.)<br />
* A USB-UART adapter that will allow you to connect the UART cable from your phone/tablet to your computer.<br />
* A piece of software like microcom, minicom, screen, PuTTY or CuteCom that will be used to access the output from the USB-UART adapter on the computer.<br />
<br />
For the purpose of this page, the ''device'' is the phone/tablet you want to debug, and the ''computer'' is the device you want to access the logs from.<br />
<br />
== Working USB-UART adapters ==<br />
<br />
Adapters based on FT232 (for example [https://www.sparkfun.com/products/12731 this one on sparkfun]), CH340 and CP2102 are known to work. All adapters *should* work though. Try to verify if your device uses 3.3 V or 1.8 V and get an adapter with the correct voltage, so you do not have to use a [[Serial_debugging#3.3V_vs_1.8V_UARTs|voltage divider]].<br />
<br />
== Finding the UART ports on your device ==<br />
<br />
The serial port can be accessed by different means, depending on the device - through the microUSB port with a special cable, through the headphone jack, or only through UART ports on the main board. As such, the first step will be finding the proper way to connect to the UART ports on your device.<br />
<br />
First, '''look at your device's wiki page and the [[Serial debugging:Cable schematics]] page'''. You may find your device on there already - in which case, this section can be skipped. If you can't find any info, or you're unsure, continue with this section.<br />
<br />
=== Identifying the MUIC ===<br />
<br />
In some devices (for example, most Samsung phones) serial access can be gained through the microUSB port.<br />
<br />
Start by '''identifying the [[Micro-USB Interface Controller]]''' used in your device. The MUIC is what handles things like USB-OTG - it usually figures out what a cable is supposed to do by checking the resistance between the ground pin and the ID pin. Most MUICs implement an ''UART jig mode'' as part of the Carkit standard (see the [[Micro-USB Interface Controller]] page), which allows the USB port to be used as a serial input/output port.<br />
<br />
You can try looking for kernel options with "MUIC", "USB" or "UART" in the name in the downstream kernel's defconfig - if you find a seemingly SOC-specific option, grep through the kernel source to find the driver (hint: don't include the CONFIG_ part). Sometimes the MUIC is integrated into the PMU/PMIC or handled by the device's chipset, in which case using generic values from the MUIC page may work.<br />
<br />
Once you've found the model of your MUIC, look for similar chips in the [[Micro-USB Interface Controller|MUIC]] page to find the resistance values you should use for your cable. If you're unsure, look up your MUIC chip's datasheet; '''if you can't find the MUIC''' used in your device, or the datasheet does not have the resistance value table, use the default values from the MUIC page.<br />
<br />
=== Finding the UART ports on your device's main board ===<br />
<br />
Sometimes there is no other solution but to poke at random motherboard pins to find the serial port. This is mostly a lucky process, and you need to have access to an [https://en.wikipedia.org/wiki/Oscilloscope oscilloscope] (maybe a sensitive multimeter would work as well?). With such an instrument you try to find tx (and gnd) by measuring between different pins when you:<br />
<br />
* send either garbage, or a repeating pattern to the serial port at <code>/dev/ttysomething</code> (if you have a kernel where it's working)<br />
* reboot your phone, hopefully it writes something during boot (but that's really trying luck)<br />
<br />
Locating tx is usually good enough for debugging, but rx should be quite close, with a high impedance, or more likely a pulling resistor. A pull-up or pull-down resistor will make the pin look like gnd or vcc. <br />
<br />
[http://www.devttys0.com/2012/11/reverse-engineering-serial-ports See also]<br />
<br />
==== Main board UART on exynos devices ====<br />
<br />
On Samsung's exynos devices (and maybe some other Samsung devices), UART is available as part of a 12 or 20 pin connector. The connector might, or might not, be soldered onto the board. If it is not you can find just the set of pads. On more recent devices the pads might also be covered by the pcb coating/solder mask. In this case you would need to physically peel off the top layer to expose the pads, and then solder the wires or connector onto it. Chapter 22, "JTAG (Joint Test Action Group)", of the book [https://www.sciencedirect.com/book/9780128110560/seeking-the-truth-from-mobile-evidence Seeking the Truth from Mobile Evidence] show an example where this is done for some other Samsung Qualcomm device, for the purpose of getting JTAG access (check out the book if you have access).<br />
<br />
To peel of the mask you need a small flat screwdriver and a steady hand ([https://electronics.stackexchange.com/questions/81723/how-to-remove-solder-mask stackexchange recommends a fiberglass brush] but that does not seem to cut through the plastic/epoxy surface layer of the pcb).<br />
<br />
Exynos4 devices, or at least galaxy S3, has the 20 pin molex connector, from which UART and JTAG can be accessed. In the xda thread [https://forum.xda-developers.com/t/ref-gt-i9305-hardware-hacking.2939891 gt-i9305 hardware hacking], the different pads are identified, and the part number of the socket revealed to be AXE620124, a socket from Panasonic. The corresponding male, which we need to mount onto some sort of breakout board to easily access the pins, has part number AXE520127. The 12-pin molex connector found on other devices seem to be part of the same product family, and the female then has part number AXE612124 with the corresponding male AXE512127.<br />
<br />
In the figures below the pads are shown on a few exynos devices, with or without the connector, and with or without the pads being covered by solder mask.<br />
<br />
<gallery widths="240px" heights="180px"><br />
File:03_gt-i9305_ap_uart.jpg|Soldered 20 pin AXE620124 connector and pinout on [[Samsung Galaxy SIII LTE (samsung-i9305)|samsung-i9305]]. Taken from the xda thread [https://forum.xda-developers.com/t/ref-gt-i9305-hardware-hacking.2939891 gt-i9305 hardware hacking].<br />
File:chagallwifi_uart_jtag.jpg|Soldered 20 pin AXE620124 connector on [[Samsung Galaxy Tab S 10.5 WiFi (samsung-chagallwifi)|samsung-chagallwifi]].<br />
File:zeroltexx_uart_jtag.jpg|20 pin pads (without AXE620124, but with some tin on the pads) on [[Samsung Galaxy S6 Edge (samsung-zeroltexx)|samsung-zeroltexx]].<br />
File:a5y17lte_uart_jtag.jpg|12 pin pads (without AXE612124) on [[Samsung Galaxy A5 2017 (samsung-a5y17lte)|samsung-a5y17lte]]. The pads are quite inaccessible in between the cages. Some sort of flex cable with AXE512127 is needed to connect to it.<br />
File:dreamlte_uart_jtag.jpg|12 pin pads covered by pcb mask on [[Samsung Galaxy S8 (samsung-dreamlte)|samsung-dreamlte]].<br />
</gallery> <br />
<br />
On the devices where the connector is missing it would need to be soldered for easy access to UART. To do that you would need a hot air soldering station. Below can be seen that AXE620124 and AXE612124 fit onto the pads:<br />
<br />
<gallery widths="240px" heights="180px"><br />
File:zeroltexx_with_AXE620124.jpg|AXE620124 (badly) aligned on zeroltexx's pads. Properly aligning is difficult due to the tin blobs on the pads.<br />
File:a5y17lte_with_AXE612124.jpg|AXE612124 on top of a5y17lte's pads.<br />
</gallery><br />
<br />
== Building the cable ==<br />
<br />
Depending on the cable you need to make (microUSB, headphone jack, USB-C or just pins on the board) the process might be different. It's helpful to have a breadboard and some goldpin connector cables to go with it, as it makes putting together and tweaking the cable easier and reduces the amount of soldering that has to be done. You can find the build instructions for your cable on the [[Serial debugging:Cable schematics]] page.<br />
<br />
=== microUSB-based cables ===<br />
<br />
There are several ways to connect wires to a microUSB plug:<br />
<br />
* solder the wires to a [https://www.sparkfun.com/products/10031 microUSB type B breakout board]<br />
* using a [https://www.adafruit.com/product/3972 USB Micro B Male Plug to 5-pin Terminal Block] - '''this method does not require soldering!'''<br />
* solder the wires directly to a [https://www.adafruit.com/product/1826 microUSB type B plug] (note: the solder pads are very small, so it can be difficult to get just right. If you plan to use this method, order multiple plugs, in case you need to start over.)<br />
<br />
=== USB-C based cables ===<br />
<br />
USB-C has 24 pins compared to the 5 pins in microUSB. For most device models it is not known where to put the resistor to get serial output. Simply putting it between CC and GND, similar to on the microUSB cable, does not seem to give any output. As an alternative it might be possible to find the UART pins on the main board of the device, see the [[Serial_debugging#Finding the UART ports on your device's main board|finding the UART ports on your device's main board]] section.<br />
<br />
A Google engineer has also published schematics for a USB-C UART cable. It should be compatible with Google Pixel and possibly other devices, if (and only if) they are designed so that UART is available through the SBU1/2 pins. From the GitHub repository: "USB-Cereal is a debugging and development tool for designs that use USB-C port and bring out serial TX/RX lines into SBU1/2 pins. USB-Cereal is made compatible with both 1.8V and 3.3V signalling." -- https://github.com/google/usb-cereal<br />
<br />
=== Soldering a connector on your device ===<br />
<br />
This can be a bit involved, but is generally necessary if you want to use it:<br />
* This procedure is ''dangerous'' for your device, even more so if you are not very experienced<br />
** Prefer to ask help in a hackerspace, makerspace, fablab or similar ''you'll practice another day on something easier''<br />
** If you have to solder it yourself, it's probably a good idea to practice on an old motherboard before<br />
* Prefer soldering short cables to the PCB instead of full-length ones<br />
** The smaller (diameter) the cables, the better, generally<br />
** too long or too thick and the pads you have soldered risk being teared apart by the cables<br />
** too small and it will be a hassle to work with<br />
** The best is to have them a couple (4-8) centimeters long, to solder them, solder a connector on the other end, and scotch tape them to the pcb<br />
** Please, don't forget to pick insulated wires<br />
<br />
== Kernel configuration ==<br />
<br />
In your device tree (or defconfig's <code>CONFIG_CMDLINE</code> setting) add <code>console=ttyXXX,115200n8</code> to your cmdline. (Make sure that <code>CONFIG_CMDLINE_EXTEND</code> is enabled.)<br />
<br />
Replace <code>ttyXXX</code> with the TTY used in your system for serial output. If you're unsure, check the device trees of similar devices, or your device's configuration in downstream; if still in doubt, you can try sending random data to the TTY through <code>/dev/ttyXXX</code> and seeing what works.<br />
<br />
Some chipsets also require an additional defconfig setting to be set to enable the serial console (e.g. for OMAP: <code>CONFIG_SERIAL_OMAP</code> and <code>CONFIG_SERIAL_OMAP_CONSOLE</code>).<br />
<br />
== Plugging in the cable ==<br />
<br />
Once your cable is assembled, it is time to plug it into your USB-UART converter. The most important pins you need to know about are:<br />
<br />
* Ground - usually a black cable.<br />
* Power/VCC - usually a red cable. <br />
* TX - The '''transmission''' line, aka the '''output'''.<br />
* RX - The '''recieve''' line, aka the '''input'''.<br />
<br />
{{warning|'''DO NOT CONNECT THE POWER PIN IF YOU DON'T KNOW YOUR DEVICE'S UART OUTPUT VOLTAGE!''' Most UART adapters will send 5v or 3.3v by default and phones will usually use 1.8v (occasionally 3.3v). Plugging the power/VCC pin in when the voltages don't match on your adapter and device '''may kill it'''. See the "3.3v vs 1.8v" section at the bottom of this page.}}<br />
<br />
To recieve logs, '''you will only need to connect the ground and TX wires of your cable'''. To send information through the serial console, you will also need to connect the VCC and RX wires.<br />
<br />
On most schematics '''"TX" and "RX" refer to the TX/RX port on the UART board.''' Wire up your cable accordingly.<br />
<br />
<small>If this is not the case, you'll have to plug the TX (output) wire from your cable to the RX (input) line on your adapter. (You'll need to do the reverse - RX to TX - if you want to send data.)</small><br />
<br />
Then, plug the other end of the cable into your device. Some devices may automatically boot up when the jig is plugged in - if your device starts up without you pressing the power button when you plug the cable in, it means that the resistance is being detected and the serial mode has been triggered.<br />
<br />
=== Connecting to the serial console from your computer ===<br />
<br />
To connect to the serial console, you'll need a program that can do so. For this you can use:<br />
<br />
* '''microcom''' (included in BusyBox) - <code>microcom -s <baud_rate> /dev/ttyXXX</code><br />
* '''minicom''' - <code>minicom -D /dev/ttyXXX -b <baud_rate></code><br />
* '''screen''' - <code>screen /dev/ttyXXX <baud_rate></code><br />
* '''[https://putty.org/ PuTTY]''' (GUI)<br />
* '''[https://gitlab.com/cutecom/cutecom/ CuteCom]''' (GUI)<br />
* ...or any other program that supports connecting to the serial console.<br />
<br />
The baud rate used for the serial console will be stored in your device's device tree (assuming you are using mainline, otherwise you may have some luck looking around downstream's board and defconfig files).<br />
<br />
If you're using an USB serial adapter, the path to your TTY will be <code>/dev/ttyUSB[X]</code>, where <code>[X]</code> is a number. You can also look through the output of <code>ls /dev/tty*</code>; this will come up with a few different TTYs though, including ones that are used by the system.<br />
<br />
Note that on most Linux distributions only root and/or a special group (usually tty or dialout) can access serial ports; to access them as a regular user, see which group owns your TTY:<br />
<syntaxhighlight>$ ls -l /dev/ttyUSB0<br />
0 crw-rw---- 1 root dialout 4, 64 Aug 28 08:32 /dev/ttyUSB0<br />
</syntaxhighlight><br />
<br />
...then add yourself to that group by doing <code>sudo usermod -a -G dialout <username></code> (replace <code>dialout</code> with the group you saw in the ls -l command above).<br />
<br />
== Troubleshooting ==<br />
<br />
# Make sure you are using the correct connection settings: baud rate, parity, etc.<br />
# Make sure your ground connection is stable. If in doubt, replace the cables.<br />
# If you're only getting partial output, you may need to use a different resistance between the ID and Ground pins. Some devices return different things depending on the resistance given.<br />
# If you're not getting any output, try only plugging in the RX cable to your UART board. You may have swapped the RX and TX cables.<br />
# If there's no serial cable schematic for your phone, you may try to [[Bootloaders_porting_using_linux|port a chainloaded bootloader using linux]], which will force MUIC to multiplex uart out.<br />
<br />
On some Samsung devices using the S-Boot bootloader, [[Samsung_Galaxy_Core_Plus_(samsung-cs02)#Bootloader_.2F_S-Boot_4.0|you might need to abort autoboot and use the "log" command to see kernel/bootloader logs]].<br />
<br />
== Alternatives to using a serial cable ==<br />
<br />
You may have some luck with using RAM-storage-based methods of serial debugging. Tools like pstore and ramoops make this easy - they usually just need to be enabled in mainline and downstream, and a downstream kernel can be used to access the pstore-reserved RAM region where logs are dumped. The path for this is <code>/sys/fs/pstore/console-ramoops</code>, although older devices may use <code>/proc/last_kmsg</code>.<br />
<br />
{{todo|Verify this and elaborate.}}<br />
<br />
== 3.3V vs 1.8V UARTs ==<br />
<br />
[[File:Uart33_18_voltage_divider.png|thumb|Schematic for a 3.3v->1.8v UART voltage divider]]<br />
Most phones expose their UART pins on 1.8 V voltage, and most USB-UART converters expect UART side to have 3.3 V. This works well for receiving characters from device; this is enough to read bootloader logs or kernel boot logs (dmesg). However sending 3.3 V to device that expects 1.8 V is dangerous; so you can not use shell over UART without an additional effort. To check if your phone uses 3.3 V or 1.8 V you can connect an oscillioscope to the TX and GND on the phone (or maybe a sensitive multimeter?).<br />
<br />
You will need a voltage divider at least on converter->device TX line, which can be set up as in this stack exchange answer: https://electronics.stackexchange.com/a/333230<br />
<br />
Use also this https://ohmslawcalculator.com/voltage-divider-calculator<br />
<br />
== See also ==<br />
<br />
* [[Serial debugging:Cable schematics]]<br />
* [[Mainlining FAQ#Serial_cable]]<br />
* [[Micro-USB Interface Controller]]<br />
* [[User:Knuxfanwin8/Enabling_pstore_and_ramoops|Enabling pstore and ramoops]], as an alternative to building a serial cable - unfinished article, but might be useful<br />
* [https://code.paulk.fr/article21/a-hacker-s-journey-freeing-a-phone-from-the-ground-up-second-part exposing UART on the LG Optimus Black (P970)] (OMAP3)</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=21911Xunlong Orange Pi 3 (xunlong-orangepi3)2021-08-27T17:18:54Z<p>Begs: Add info about ethernet.</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== Ethernet ==<br />
Ethernet is currently broken. I came up with a patch below to fix PHY, but there is completely no data flow even though link is up.<br />
<br />
<source lang="diff"><br />
diff --git a/arch/arm/dts/sun50i-h6-orangepi-3.dts b/arch/arm/dts/sun50i-h6-orangepi-3.dts<br />
index 7e83f6146f..bb0b92e675 100644<br />
--- a/arch/arm/dts/sun50i-h6-orangepi-3.dts<br />
+++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts<br />
@@ -204,6 +204,11 @@<br />
};<br />
<br />
reg_aldo2: aldo2 {<br />
+ /*<br />
+ * HACK: forces TF-A to think this regulator is<br />
+ * disabled<br />
+ */<br />
+ status = "ok";<br />
regulator-min-microvolt = <3300000>;<br />
regulator-max-microvolt = <3300000>;<br />
regulator-name = "vcc33-audio-tv-ephy-mac";<br />
</source><br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Sway&diff=21613Sway2021-08-21T09:25:44Z<p>Begs: expand interface infobox a bit</p>
<hr />
<div>{{Infobox interface<br />
|name=Sway<br />
|image=TODO<br />
|imagecaption=TODO<br />
|graphics=wlroots<br />
|toolkit=None<br />
}}<br />
<br />
== Installation ==<br />
Run <code>pmbootstrap init</code> and choose <code>sway</code> in the interface section.<br />
<br />
== Guide ==<br />
Follow the [https://wiki.postmarketos.org/wiki/Display Display] guide to change and fix display related issues.<br />
<br />
== See also ==<br />
* {{MR|374|pmaports}} initial merge request<br />
<br />
[[Category:Interface]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Modem&diff=21442Modem2021-08-16T22:30:33Z<p>Begs: Fix typo</p>
<hr />
<div>{{note|This is a work in progress document where a lot of information is still missing. Please help to expand this page!}}<br />
<br />
There are two different userspace services in postmarketOS that can manage the modem:<br />
<br />
* '''oFono:''' Integrated in Plasma Mobile<br />
* '''ModemManager:''' Integrated in Phosh and Sxmo<br />
<br />
Some modems might be only supported in oFono, while others are only supported in ModemManager. But usually both can be used.<br />
<br />
== oFono ==<br />
oFono is integrated into the UI of Plasma Mobile. Alternatively it can be controlled using the Python oFono test scripts from the command line:<br />
<br />
$ sudo apk add ofono-scripts<br />
$ /usr/lib/ofono/test/enable-modem<br />
$ /usr/lib/ofono/test/online-modem<br />
$ /usr/lib/ofono/test/list-modems<br />
<br />
Check if the SIM card shows up. If you have a dual SIM Qualcomm device (e.g. [[Wileyfox_Swift_(wileyfox-crackling)|Wileyfox Swift]]), follow [[User:TravMurav/Dual-Sim_QMI_draft|this guide]].<br />
<br />
Unlock the SIM card:<br />
$ /usr/lib/ofono/test/enter-pin pin <pin><br />
<br />
Eventually, your SIM card should show up as registering in <code>/usr/lib/ofono/test/list-modems</code>.<br />
<br />
<code>ofonoctl</code> is also very useful test tool:<br />
<br />
$ sudo apk add ofonoctl<br />
$ ofonoctl list<br />
<br />
=== SMS ===<br />
Use the <code>send-sms</code> and <code>receive-sms</code> test scripts (from <code>ofono-scripts</code> package).<br />
<br />
$ /usr/lib/ofono/test/send-sms "COUNTRYCODENUMBER" "Test SMS from oFono" 0<br />
Send message using modem /gobi_0 ...<br />
/gobi_0/message_9914F33A7C53DD6F080B38755E7D64FD59EA8F8F<br />
<br />
== ModemManager ==<br />
ModemManager is integrated into the UI of Phosh. Alternatively it can be controlled using <code>mmcli</code> from the command line:<br />
<br />
# List modems<br />
$ sudo mmcli -m 0<br />
# Enter pin<br />
$ sudo mmcli --sim 0 --pin <pin><br />
<br />
Signal strength information can be viewed by using the following commands:<br />
<br />
# Set the interval<br />
$ mmcli -m any --signal-setup=120<br />
# Get the information<br />
$ mmcli -m any --signal-get<br />
<br />
=== SMS ===<br />
How to test SMS functionality with ModemManager:<br />
<br />
<syntaxhighlight lang="shell"><br />
$ sudo mmcli -m 0 --messaging-create-sms="number='+xxxxxxxxxx',text='Hello from MM'"<br />
Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/0<br />
<br />
$ sudo mmcli -m 0 -s /org/freedesktop/ModemManager1/SMS/0 --send<br />
successfully sent the SMS<br />
</syntaxhighlight><br />
<br />
{{note|number format is important, use correct format for example starting with "+xxxx"}}<br />
<br />
=== Mobile Data ===<br />
To set up mobile data in command line with ModemManager:<br />
* Make sure ModemManager is started (<code>sudo rc-service modemmanager start</code>).<br />
* If your SIM is locked, make sure to enter PIN (see above).<br />
* Check if there is <code>rpmsg0</code> in output of <code>mmcli d</code>.<br />
* Create network connection for modem:<br />
<pre><br />
$ nmcli c add con-name "modem" type "gsm" ifname "rpmsg0" auto-config "TRUE"<br />
</pre><br />
If autoconfig doesn't work, adjust this command to use your ISP's apn etc.<br />
* Enable the network connection: <code>nmcli c up modem</code>.<br />
* Check if you get an IP address assigned in <code>ip addr</code> (interface <code>rmnet0</code>).<br />
* Try to ping something (e.g. <code>ping 8.8.8.8</code>).<br />
NetworkManager will then connect mobile network automatically when it's available.<br />
<br />
See also https://gist.github.com/Minecrell/4cc2bfb9fcae18e294386b0a213907d1 for oFono instructions.<br />
<br />
== Qualcomm Modems ==<br />
<br />
On most Qualcomm SoCs the modem is a separate processor which lives next to the main CPU where Linux is running on. It needs to be given firmware by the host processor to start.<br />
<br />
The procedure for getting the modem to work is generally the following:<br />
* Package and install the [[Firmware]] of your modem into the file system, generally the <code>mba.*</code> and <code>modem.*</code> files.<br />
* Install the package <code>msm-modem-downstream</code> or <code>msm-modem-rpmsg</code> (for most older SoCs on mainline, see below), depending on the kernel you are using (and reboot to activate the udev rules and services).<br />
* Install <code>ofono</code> and start it using <code>rc-service ofono start</code><br />
* You should see signs of your firmware being loaded in the dmesg.<br />
* You can use the [https://git.kernel.org/pub/scm/network/ofono/ofono.git/tree/test ofono test scripts] (packaged in <code>ofono-scripts</code> or <code>ofonoctl</code> to see if the Linux recognized your modem and if it works correctly.<br />
* On some platforms you may need to manually install <code>msm-modem-uim-selection</code>, see [[User:TravMurav/Dual-Sim_QMI_draft| Dual-Sim QMI]] page for some details.<br />
<br />
'''Note:''' On newer SoCs (e.g. SDM845 or MSM8953), the modem seems to be available only through QRTR, and not through rpmsg channels as on older Qualcomm SoCs. You can see this if <code>qrtr-lookup</code> also lists modem services such as <code>User Identity Module service</code>. In that case, you can query the modem through libqmi 1.26.0+ like <code>qmicli -d qrtr://<node> --uim-get-card-status</code> (get <code><node></code> from the <code>qrtr-lookup</code> output). Currently, the QRTR transport does not seem to be supported in modem services like oFono or ModemManager yet. At least for ModemManager there seem to be ongoing efforts to make it work, though. See [[Qualcomm_Snapdragon_845_(SDM845)#Modem|SDM845 Modem]] for details and example output.<br />
<br />
== Troubleshooting ==<br />
=== When switching UI ===<br />
Ofono and ModemManager cannot run at the same time. If you switch UI from Plasma Mobile to Phosh, or vice versa, you might have to make sure that only the correct userspace service is running.<br />
<br />
=== Getting ModemManager logs ===<br />
<br />
1. Open <code>/etc/init.d/modemmanager</code> with your favorite text editor with root permissions<br />
<br />
2. Enable debug mode by changing the <code>command_args</code> line to <code>command_args="${modemmanager_opts} --debug --log-level=DEBUG"</code><br />
<br />
3. Output the logs to <code>/var/log/modemmanager.err</code> by adding <code>error_log="/var/log/modemmanager"</code> to the same file.<br />
<br />
4. Save and restart ModemManager with `rc-service modemmanager restart`<br />
<br />
5. The logs will now be available at <code>/var/log/modemmmanager.err</code>. Note that they contain sensitive information such as your phone number(s), IMEI, etc.! Scrub them when uploading these logs to the Web!<br />
<br />
Also note that the logs may take up a lot of space if you leave them running for a long time.<br />
<br />
<br />
<b>Example of <code>/etc/init.d/modemmanager</code></b><br />
<br />
#!/sbin/openrc-run<br />
<br />
supervisor=supervise-daemon<br />
command=/usr/sbin/ModemManager<br />
command_args="${modemmanager_opts} --debug --log-level=DEBUG"<br />
error_log="/var/log/modemmanager.err"<br />
<br />
description="ModemManager Daemon"<br />
<br />
depend() {<br />
need dbus<br />
}<br />
<br />
=== Getting eg25-manager logs ===<br />
<br />
This only applies to the PinePhone.<br />
<br />
1. Open <code>/etc/init.d/eg25-manager</code> with your favorite text editor with root permissions<br />
<br />
2. Output the logs to <code>/var/log/eg25-manager.err</code> by adding <code>error_log="/var/log/e25-manager"</code> to the same file.<br />
<br />
4. Save and restart eg25-manager with <code>rc-service eg25-manager restart</code><br />
<br />
5. The logs will now be available at <code>/var/log/eg25-manager.err</code>.<br />
<br />
<br />
<b>Example of <code>/etc/init.d/eg25-manager</code></b><br />
<br />
#!/sbin/openrc-run<br />
<br />
supervisor=supervise-daemon<br />
command=/usr/bin/eg25-manager<br />
error_log="/var/log/eg25-manager.err"<br />
<br />
description="EG25 Manager Daemon"<br />
<br />
=== usbmon logs ===<br />
<br />
The Linux kernel allows you to capture QMI and AT commands over USB using <code>usbmon</code> and can be read using Wireshark.<br />
See this page to use it: https://wiki.postmarketos.org/wiki/Create_usbmon_capture<br />
<br />
== Relevant issues ==<br />
* {{github|520}} N900: integrate ofono<br />
* {{github|598}} Let's get the cellular modem working! (presenting various stacks, general discussion)<br />
* {{github|1054}} Get qualcomm modems working (at the end of the thread scintill wrote a few wrappers and made SMS on a QC modem work with a downstream kernel without userspace blobs!)<br />
* {{github|1314}} i9195/Qualcomm modem support (scintill's work integrated)<br />
* {{issue|251|pmaports}} xiaomi-santoni: gets modem to work on the device<br />
<br />
== Relevant pages ==<br />
* [[QMI]]<br />
* [[Samsung Modem]]<br />
<br />
== See also ==<br />
* Maemo Leste {{github|27|bugtracker|maemo-leste}} Call/Phone support<br />
<br />
[[Category:Guide]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Modem&diff=21441Modem2021-08-16T22:29:10Z<p>Begs: ModemManager is integrated in Sxmo as well</p>
<hr />
<div>{{note|This is a work in progress document where a lot of information is still missing. Please help to expand this page!}}<br />
<br />
There are two different userspace services in postmarketOS that can manage the modem:<br />
<br />
* '''oFono:''' Integrated in Plasma Mobile<br />
* '''ModemManager:''' Integrated in Phosh and Sxmo<br />
<br />
Some modems might be only supported in oFono, while others are only supported in ModemManager. But usually both can be used.<br />
<br />
== oFono ==<br />
oFono is integrated into the UI of Plasma Mobile. Alternatively it can be controlled using the Python oFono test scripts from the command line:<br />
<br />
$ sudo apk add ofono-scripts<br />
$ /usr/lib/ofono/test/enable-modem<br />
$ /usr/lib/ofono/test/online-modem<br />
$ /usr/lib/ofono/test/list-modems<br />
<br />
Check if the SIM card shows up. If you have a dual SIM Qualcomm device (e.g. [[Wileyfox_Swift_(wileyfox-crackling)|Wileyfox Swift]]), follow [[User:TravMurav/Dual-Sim_QMI_draft|this guide]].<br />
<br />
Unlock the SIM card:<br />
$ /usr/lib/ofono/test/enter-pin pin <pin><br />
<br />
Eventually, your SIM card should show up as registering in <code>/usr/lib/ofono/test/list-modems</code>.<br />
<br />
<code>ofonoctl</code> is also very useful test tool:<br />
<br />
$ sudo apk add ofonoctl<br />
$ ofonoctl list<br />
<br />
=== SMS ===<br />
Use the <code>send-sms</code> and <code>receive-sms</code> test scripts (from <code>ofono-scripts</code> package).<br />
<br />
$ /usr/lib/ofono/test/send-sms "COUNTRYCODENUMBER" "Test SMS from oFono" 0<br />
Send message using modem /gobi_0 ...<br />
/gobi_0/message_9914F33A7C53DD6F080B38755E7D64FD59EA8F8F<br />
<br />
== ModemManager ==<br />
ModemManager is integrated into the UI of Phosh. Alternatively it can be controlled using <code>mmcli</code> from the command line:<br />
<br />
# List modems<br />
$ sudo mmcli -m 0<br />
# Enter pin<br />
$ sudo mmcli --sim 0 --pin <pin><br />
<br />
Signal strength information can be viewed by using the following commands:<br />
<br />
# Set the interval<br />
$ mmcli -m any --signal-setup=120<br />
# Get the information<br />
$ mmcli -m any --signal-get<br />
<br />
=== SMS ===<br />
How to test SMS functionality with ModemManager:<br />
<br />
<syntaxhighlight lang="shell"><br />
$ sudo mmcli -m 0 --messaging-create-sms="number='+xxxxxxxxxx',text='Hello from MM'"<br />
Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/0<br />
<br />
$ sudo mmcli -m 0 -s /org/freedesktop/ModemManager1/SMS/0 --send<br />
successfully sent the SMS<br />
</syntaxhighlight><br />
<br />
{{note|number format is important, use correct format for example starting with "+xxxx"}}<br />
<br />
=== Mobile Data ===<br />
To set up mobile data in command line with ModemManager:<br />
* Make sure ModemManager is started (<code>sudo rc-service modemmanager start</code>).<br />
* If your SIM is locked, make sure to enter PIN (see above).<br />
* Check if there is <code>rpmsg0</code> in output of <code>mmcli d</code>.<br />
* Create network connection for modem:<br />
<pre><br />
$ nmcli c add con-name "modem" type "gsm" ifname "rpmsg0" auto-config "TRUE"<br />
</pre><br />
If autoconfig doesn't work, adjust this command to use your ISP's apn etc.<br />
* Enable the network connection: <code>nmcli c up modem</code>.<br />
* Check if you get a IP address assigned in <code>ip addr</code> (interface <code>rmnet0</code>).<br />
* Try to ping something (e.g. <code>ping 8.8.8.8</code>).<br />
NetworkManager will then connect mobile network automatically when it's available.<br />
<br />
See also https://gist.github.com/Minecrell/4cc2bfb9fcae18e294386b0a213907d1 for oFono instructions.<br />
<br />
== Qualcomm Modems ==<br />
<br />
On most Qualcomm SoCs the modem is a separate processor which lives next to the main CPU where Linux is running on. It needs to be given firmware by the host processor to start.<br />
<br />
The procedure for getting the modem to work is generally the following:<br />
* Package and install the [[Firmware]] of your modem into the file system, generally the <code>mba.*</code> and <code>modem.*</code> files.<br />
* Install the package <code>msm-modem-downstream</code> or <code>msm-modem-rpmsg</code> (for most older SoCs on mainline, see below), depending on the kernel you are using (and reboot to activate the udev rules and services).<br />
* Install <code>ofono</code> and start it using <code>rc-service ofono start</code><br />
* You should see signs of your firmware being loaded in the dmesg.<br />
* You can use the [https://git.kernel.org/pub/scm/network/ofono/ofono.git/tree/test ofono test scripts] (packaged in <code>ofono-scripts</code> or <code>ofonoctl</code> to see if the Linux recognized your modem and if it works correctly.<br />
* On some platforms you may need to manually install <code>msm-modem-uim-selection</code>, see [[User:TravMurav/Dual-Sim_QMI_draft| Dual-Sim QMI]] page for some details.<br />
<br />
'''Note:''' On newer SoCs (e.g. SDM845 or MSM8953), the modem seems to be available only through QRTR, and not through rpmsg channels as on older Qualcomm SoCs. You can see this if <code>qrtr-lookup</code> also lists modem services such as <code>User Identity Module service</code>. In that case, you can query the modem through libqmi 1.26.0+ like <code>qmicli -d qrtr://<node> --uim-get-card-status</code> (get <code><node></code> from the <code>qrtr-lookup</code> output). Currently, the QRTR transport does not seem to be supported in modem services like oFono or ModemManager yet. At least for ModemManager there seem to be ongoing efforts to make it work, though. See [[Qualcomm_Snapdragon_845_(SDM845)#Modem|SDM845 Modem]] for details and example output.<br />
<br />
== Troubleshooting ==<br />
=== When switching UI ===<br />
Ofono and ModemManager cannot run at the same time. If you switch UI from Plasma Mobile to Phosh, or vice versa, you might have to make sure that only the correct userspace service is running.<br />
<br />
=== Getting ModemManager logs ===<br />
<br />
1. Open <code>/etc/init.d/modemmanager</code> with your favorite text editor with root permissions<br />
<br />
2. Enable debug mode by changing the <code>command_args</code> line to <code>command_args="${modemmanager_opts} --debug --log-level=DEBUG"</code><br />
<br />
3. Output the logs to <code>/var/log/modemmanager.err</code> by adding <code>error_log="/var/log/modemmanager"</code> to the same file.<br />
<br />
4. Save and restart ModemManager with `rc-service modemmanager restart`<br />
<br />
5. The logs will now be available at <code>/var/log/modemmmanager.err</code>. Note that they contain sensitive information such as your phone number(s), IMEI, etc.! Scrub them when uploading these logs to the Web!<br />
<br />
Also note that the logs may take up a lot of space if you leave them running for a long time.<br />
<br />
<br />
<b>Example of <code>/etc/init.d/modemmanager</code></b><br />
<br />
#!/sbin/openrc-run<br />
<br />
supervisor=supervise-daemon<br />
command=/usr/sbin/ModemManager<br />
command_args="${modemmanager_opts} --debug --log-level=DEBUG"<br />
error_log="/var/log/modemmanager.err"<br />
<br />
description="ModemManager Daemon"<br />
<br />
depend() {<br />
need dbus<br />
}<br />
<br />
=== Getting eg25-manager logs ===<br />
<br />
This only applies to the PinePhone.<br />
<br />
1. Open <code>/etc/init.d/eg25-manager</code> with your favorite text editor with root permissions<br />
<br />
2. Output the logs to <code>/var/log/eg25-manager.err</code> by adding <code>error_log="/var/log/e25-manager"</code> to the same file.<br />
<br />
4. Save and restart eg25-manager with <code>rc-service eg25-manager restart</code><br />
<br />
5. The logs will now be available at <code>/var/log/eg25-manager.err</code>.<br />
<br />
<br />
<b>Example of <code>/etc/init.d/eg25-manager</code></b><br />
<br />
#!/sbin/openrc-run<br />
<br />
supervisor=supervise-daemon<br />
command=/usr/bin/eg25-manager<br />
error_log="/var/log/eg25-manager.err"<br />
<br />
description="EG25 Manager Daemon"<br />
<br />
=== usbmon logs ===<br />
<br />
The Linux kernel allows you to capture QMI and AT commands over USB using <code>usbmon</code> and can be read using Wireshark.<br />
See this page to use it: https://wiki.postmarketos.org/wiki/Create_usbmon_capture<br />
<br />
== Relevant issues ==<br />
* {{github|520}} N900: integrate ofono<br />
* {{github|598}} Let's get the cellular modem working! (presenting various stacks, general discussion)<br />
* {{github|1054}} Get qualcomm modems working (at the end of the thread scintill wrote a few wrappers and made SMS on a QC modem work with a downstream kernel without userspace blobs!)<br />
* {{github|1314}} i9195/Qualcomm modem support (scintill's work integrated)<br />
* {{issue|251|pmaports}} xiaomi-santoni: gets modem to work on the device<br />
<br />
== Relevant pages ==<br />
* [[QMI]]<br />
* [[Samsung Modem]]<br />
<br />
== See also ==<br />
* Maemo Leste {{github|27|bugtracker|maemo-leste}} Call/Phone support<br />
<br />
[[Category:Guide]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Modem&diff=21440Modem2021-08-16T22:28:38Z<p>Begs: Adapt ModemManager mobile broadband instructions from Minecrell's gist</p>
<hr />
<div>{{note|This is a work in progress document where a lot of information is still missing. Please help to expand this page!}}<br />
<br />
There are two different userspace services in postmarketOS that can manage the modem:<br />
<br />
* '''oFono:''' Integrated in Plasma Mobile<br />
* '''ModemManager:''' Integrated in Phosh<br />
<br />
Some modems might be only supported in oFono, while others are only supported in ModemManager. But usually both can be used.<br />
<br />
== oFono ==<br />
oFono is integrated into the UI of Plasma Mobile. Alternatively it can be controlled using the Python oFono test scripts from the command line:<br />
<br />
$ sudo apk add ofono-scripts<br />
$ /usr/lib/ofono/test/enable-modem<br />
$ /usr/lib/ofono/test/online-modem<br />
$ /usr/lib/ofono/test/list-modems<br />
<br />
Check if the SIM card shows up. If you have a dual SIM Qualcomm device (e.g. [[Wileyfox_Swift_(wileyfox-crackling)|Wileyfox Swift]]), follow [[User:TravMurav/Dual-Sim_QMI_draft|this guide]].<br />
<br />
Unlock the SIM card:<br />
$ /usr/lib/ofono/test/enter-pin pin <pin><br />
<br />
Eventually, your SIM card should show up as registering in <code>/usr/lib/ofono/test/list-modems</code>.<br />
<br />
<code>ofonoctl</code> is also very useful test tool:<br />
<br />
$ sudo apk add ofonoctl<br />
$ ofonoctl list<br />
<br />
=== SMS ===<br />
Use the <code>send-sms</code> and <code>receive-sms</code> test scripts (from <code>ofono-scripts</code> package).<br />
<br />
$ /usr/lib/ofono/test/send-sms "COUNTRYCODENUMBER" "Test SMS from oFono" 0<br />
Send message using modem /gobi_0 ...<br />
/gobi_0/message_9914F33A7C53DD6F080B38755E7D64FD59EA8F8F<br />
<br />
== ModemManager ==<br />
ModemManager is integrated into the UI of Phosh. Alternatively it can be controlled using <code>mmcli</code> from the command line:<br />
<br />
# List modems<br />
$ sudo mmcli -m 0<br />
# Enter pin<br />
$ sudo mmcli --sim 0 --pin <pin><br />
<br />
Signal strength information can be viewed by using the following commands:<br />
<br />
# Set the interval<br />
$ mmcli -m any --signal-setup=120<br />
# Get the information<br />
$ mmcli -m any --signal-get<br />
<br />
=== SMS ===<br />
How to test SMS functionality with ModemManager:<br />
<br />
<syntaxhighlight lang="shell"><br />
$ sudo mmcli -m 0 --messaging-create-sms="number='+xxxxxxxxxx',text='Hello from MM'"<br />
Successfully created new SMS: /org/freedesktop/ModemManager1/SMS/0<br />
<br />
$ sudo mmcli -m 0 -s /org/freedesktop/ModemManager1/SMS/0 --send<br />
successfully sent the SMS<br />
</syntaxhighlight><br />
<br />
{{note|number format is important, use correct format for example starting with "+xxxx"}}<br />
<br />
=== Mobile Data ===<br />
To set up mobile data in command line with ModemManager:<br />
* Make sure ModemManager is started (<code>sudo rc-service modemmanager start</code>).<br />
* If your SIM is locked, make sure to enter PIN (see above).<br />
* Check if there is <code>rpmsg0</code> in output of <code>mmcli d</code>.<br />
* Create network connection for modem:<br />
<pre><br />
$ nmcli c add con-name "modem" type "gsm" ifname "rpmsg0" auto-config "TRUE"<br />
</pre><br />
If autoconfig doesn't work, adjust this command to use your ISP's apn etc.<br />
* Enable the network connection: <code>nmcli c up modem</code>.<br />
* Check if you get a IP address assigned in <code>ip addr</code> (interface <code>rmnet0</code>).<br />
* Try to ping something (e.g. <code>ping 8.8.8.8</code>).<br />
NetworkManager will then connect mobile network automatically when it's available.<br />
<br />
See also https://gist.github.com/Minecrell/4cc2bfb9fcae18e294386b0a213907d1 for oFono instructions.<br />
<br />
== Qualcomm Modems ==<br />
<br />
On most Qualcomm SoCs the modem is a separate processor which lives next to the main CPU where Linux is running on. It needs to be given firmware by the host processor to start.<br />
<br />
The procedure for getting the modem to work is generally the following:<br />
* Package and install the [[Firmware]] of your modem into the file system, generally the <code>mba.*</code> and <code>modem.*</code> files.<br />
* Install the package <code>msm-modem-downstream</code> or <code>msm-modem-rpmsg</code> (for most older SoCs on mainline, see below), depending on the kernel you are using (and reboot to activate the udev rules and services).<br />
* Install <code>ofono</code> and start it using <code>rc-service ofono start</code><br />
* You should see signs of your firmware being loaded in the dmesg.<br />
* You can use the [https://git.kernel.org/pub/scm/network/ofono/ofono.git/tree/test ofono test scripts] (packaged in <code>ofono-scripts</code> or <code>ofonoctl</code> to see if the Linux recognized your modem and if it works correctly.<br />
* On some platforms you may need to manually install <code>msm-modem-uim-selection</code>, see [[User:TravMurav/Dual-Sim_QMI_draft| Dual-Sim QMI]] page for some details.<br />
<br />
'''Note:''' On newer SoCs (e.g. SDM845 or MSM8953), the modem seems to be available only through QRTR, and not through rpmsg channels as on older Qualcomm SoCs. You can see this if <code>qrtr-lookup</code> also lists modem services such as <code>User Identity Module service</code>. In that case, you can query the modem through libqmi 1.26.0+ like <code>qmicli -d qrtr://<node> --uim-get-card-status</code> (get <code><node></code> from the <code>qrtr-lookup</code> output). Currently, the QRTR transport does not seem to be supported in modem services like oFono or ModemManager yet. At least for ModemManager there seem to be ongoing efforts to make it work, though. See [[Qualcomm_Snapdragon_845_(SDM845)#Modem|SDM845 Modem]] for details and example output.<br />
<br />
== Troubleshooting ==<br />
=== When switching UI ===<br />
Ofono and ModemManager cannot run at the same time. If you switch UI from Plasma Mobile to Phosh, or vice versa, you might have to make sure that only the correct userspace service is running.<br />
<br />
=== Getting ModemManager logs ===<br />
<br />
1. Open <code>/etc/init.d/modemmanager</code> with your favorite text editor with root permissions<br />
<br />
2. Enable debug mode by changing the <code>command_args</code> line to <code>command_args="${modemmanager_opts} --debug --log-level=DEBUG"</code><br />
<br />
3. Output the logs to <code>/var/log/modemmanager.err</code> by adding <code>error_log="/var/log/modemmanager"</code> to the same file.<br />
<br />
4. Save and restart ModemManager with `rc-service modemmanager restart`<br />
<br />
5. The logs will now be available at <code>/var/log/modemmmanager.err</code>. Note that they contain sensitive information such as your phone number(s), IMEI, etc.! Scrub them when uploading these logs to the Web!<br />
<br />
Also note that the logs may take up a lot of space if you leave them running for a long time.<br />
<br />
<br />
<b>Example of <code>/etc/init.d/modemmanager</code></b><br />
<br />
#!/sbin/openrc-run<br />
<br />
supervisor=supervise-daemon<br />
command=/usr/sbin/ModemManager<br />
command_args="${modemmanager_opts} --debug --log-level=DEBUG"<br />
error_log="/var/log/modemmanager.err"<br />
<br />
description="ModemManager Daemon"<br />
<br />
depend() {<br />
need dbus<br />
}<br />
<br />
=== Getting eg25-manager logs ===<br />
<br />
This only applies to the PinePhone.<br />
<br />
1. Open <code>/etc/init.d/eg25-manager</code> with your favorite text editor with root permissions<br />
<br />
2. Output the logs to <code>/var/log/eg25-manager.err</code> by adding <code>error_log="/var/log/e25-manager"</code> to the same file.<br />
<br />
4. Save and restart eg25-manager with <code>rc-service eg25-manager restart</code><br />
<br />
5. The logs will now be available at <code>/var/log/eg25-manager.err</code>.<br />
<br />
<br />
<b>Example of <code>/etc/init.d/eg25-manager</code></b><br />
<br />
#!/sbin/openrc-run<br />
<br />
supervisor=supervise-daemon<br />
command=/usr/bin/eg25-manager<br />
error_log="/var/log/eg25-manager.err"<br />
<br />
description="EG25 Manager Daemon"<br />
<br />
=== usbmon logs ===<br />
<br />
The Linux kernel allows you to capture QMI and AT commands over USB using <code>usbmon</code> and can be read using Wireshark.<br />
See this page to use it: https://wiki.postmarketos.org/wiki/Create_usbmon_capture<br />
<br />
== Relevant issues ==<br />
* {{github|520}} N900: integrate ofono<br />
* {{github|598}} Let's get the cellular modem working! (presenting various stacks, general discussion)<br />
* {{github|1054}} Get qualcomm modems working (at the end of the thread scintill wrote a few wrappers and made SMS on a QC modem work with a downstream kernel without userspace blobs!)<br />
* {{github|1314}} i9195/Qualcomm modem support (scintill's work integrated)<br />
* {{issue|251|pmaports}} xiaomi-santoni: gets modem to work on the device<br />
<br />
== Relevant pages ==<br />
* [[QMI]]<br />
* [[Samsung Modem]]<br />
<br />
== See also ==<br />
* Maemo Leste {{github|27|bugtracker|maemo-leste}} Call/Phone support<br />
<br />
[[Category:Guide]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=21023Xunlong Orange Pi 3 (xunlong-orangepi3)2021-08-06T01:28:21Z<p>Begs: clarify OTG status</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = Y<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB to transfer data, it will only gain charge. But there is 5 standard USB ports that can be used to connect any devices.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20706Xunlong Orange Pi 3 (xunlong-orangepi3)2021-07-16T13:21:47Z<p>Begs: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel = Mainline<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
To install to eMMC, flash ondev to SD or run pmbootstrap from present pmOS installation on SD.<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB (but you still can use type A to type A cable). However, connecting microUSB devices such as flash drive may work, but untested because microUSB is too near to AC, so most devices can't be connected.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=20705User:Begs2021-07-16T13:16:39Z<p>Begs: </p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|begss}}<br />
{{User main device|BQ Aquaris X5 (bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Running LineageOS, using as a modem}}</div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=20704User:Begs2021-07-16T13:16:03Z<p>Begs: </p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|Begggs}}<br />
{{User main device|BQ Aquaris X5 (bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Running LineageOS, using as a modem}}</div>Begshttps://wiki.postmarketos.org/index.php?title=BQ_Aquaris_X5_(bq-paella)&diff=20684BQ Aquaris X5 (bq-paella)2021-07-14T22:27:08Z<p>Begs: Unixbench score</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = BQ<br />
| name = Aquaris X5<br />
| codename = bq-paella<br />
| image = File:P_20200429_093001.jpg|thumb|133px<br />
| imagecaption = BQ Aquaris X5 running Plasma Mobile on postmarketOS mainline<br />
| releaseyear = 2015<br />
| category = community<br />
| originalsoftware = Android 7.1.2, CyanogenOS 12.1<br />
| chipset = Qualcomm MSM8916v2 Snapdragon 412<br />
| cpu = Quad-core 1.4 GHz Cortex-A53<br />
| gpu = Adreno 306<br />
| storage = 16GB / 32GB<br />
| display = 720 x 1280 (IPS LCD capacitive touchscreen, 16M colors)<br />
| memory = 2GB / 3GB<br />
| architecture = aarch64<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = Y<br />
| status_accel = Y<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps = Y<br />
| status_mobiledata = Y<br />
| status_sms = Y<br />
| status_calls = Y<br />
| status_nfc = -<br />
| status =<br />
| booting = yes<br />
| pmoskernel = Mainline<br />
<!-- you can also use these lines if you need to:<br />
| pmoskernel = 3.x.x<br />
--><br />
| whet_dhry = 913.7 <!-- NOTE: RESULT WITH FDE, PLEASE RE-TEST AND SUMBIT W/O IT; ALSO RE-TEST AFTER CPU WILL FINALLY RUN ON 1.4 GHZ --><br />
| status_otg = Y<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Lazzardo|Lazzardo]]<br />
<br />
== Maintainer(s) ==<br />
* [[User:Lazzardo|Lazzardo]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
The device is available in two variants: The normal edition from BQ and a special Cyanogen Edition that runs CyanogenOS. The hardware seems to be identical, but the firmware is different. How to enter Fastboot/Recovery mode depends on the firmware that is currently installed.<br />
<br />
=== BQ bootloader ===<br />
* '''Recovery''': Power on the device with both <code>Power</code> and <code>Volume Up</code> buttons.<br />
* '''Fastboot''': Power on the device with both <code>Power</code> and <code>Volume Down</code> buttons.<br />
<br />
=== Cyanogen bootloader ===<br />
* '''Recovery''': Power on the device with both <code>Power</code> and <code>Volume Down</code> buttons.<br />
* '''Stock fastboot''': Power on the device with both <code>Power</code> and <code>Volume Up</code> buttons.<br />
* '''lk2nd Fastboot''': Power on the device. After it vibrates, hold <code>Volume Down</code>.<br />
<br />
== Installation ==<br />
<br />
[[User:pojntfx|pojntfx]] made a video tutorial which follows the steps below:<br />
<br />
[[File:Bq-paella-installation-tutorial.jpg|256px|link=https://www.youtube.com/watch?v=4NpS1uqTjlQ]]<br />
<br />
=== Unlock bootloader ===<br />
To unlock your bootloader boot into Android, [https://developer.android.com/studio/debug/dev-options#enable enable Developer Options from the settings] and enable "Allow OEM unlock". Then boot into Fastboot and use <code>fastboot oem unlock</code>. You might need to use <code>fastboot oem unlock-go</code>. ('''Note:''' All your data will be erased!)<br />
<br />
=== Firmware ===<br />
It is recommended to flash to latest firmware from BQ before using postmarketOS. You can download it here: [https://github.com/JonnyMe/aquaris-x5-firmware/releases/download/v1.0/5.2.0_20180228-1305-picmt-user-637-Fastboot-FW.zip 5.2.0_20180228-1305-picmt-user-637-Fastboot-FW.zip] <del>[https://storage.googleapis.com/otas/2015/Smartphones/X5/Android_N/5.2.0_20180228-1305-picmt-user-637-Fastboot-FW.zip 5.2.0_20180228-1305-picmt-user-637-Fastboot-FW.zip]</del>.<br />
<br />
First flash the early boot firmware:<br />
<br />
$ fastboot flash sbl1 sbl1.mbn<br />
$ fastboot flash sbl1bak sbl1.mbn<br />
$ fastboot flash tz tz.mbn<br />
$ fastboot flash tzbak tz.mbn<br />
$ fastboot flash hyp hyp.mbn<br />
$ fastboot flash hypbak hyp.mbn<br />
$ fastboot flash rpm rpm.mbn<br />
$ fastboot flash rpmbak rpm.mbn<br />
$ fastboot flash modem NON-HLOS.bin<br />
<br />
As a next step you also need to flash a Linux/Android bootloader (<code>aboot</code>). There are two different versions available:<br />
<br />
* '''BQ bootloader:''' Can only boot downstream kernel<br />
* '''Cyanogen bootloader:''' Can boot both downstream and mainline kernel<br />
<br />
Therefore, you should flash the Cyanogen bootloader for postmarketOS. You can download it here: [https://github.com/JonnyMe/aquaris-x5-firmware/releases/download/v1.0/cm-13.1.4-ZNH2KAS5FE-paella-signed-fastboot-a6851b4fbe.zip cm-13.1.4-ZNH2KAS5FE-paella-signed-fastboot-a6851b4fbe.zip] <del>[https://storage.googleapis.com/support-files.bq.com/Bootloader/Cyanogen%20OS/cm-13.1.4-ZNH2KAS5FE-paella-signed-fastboot-a6851b4fbe.zip cm-13.1.4-ZNH2KAS5FE-paella-signed-fastboot-a6851b4fbe.zip]</del><br />
<br />
$ fastboot flash aboot emmc_appsboot.mbn<br />
$ fastboot flash splash splash.img<br />
<br />
The bootloader has a splash screen with black background.<br />
<br />
{{note|'''Note:''' After flashing a new bootloader you should reboot the device to make sure the new bootloader is running.}}<br />
<br />
=== postmarketOS ===<br />
The mainline kernel depends on an alternative bootloader ([https://github.com/msm8916-mainline/lk2nd lk2nd]). It does not replace the stock bootloader, but provides its own Fastboot interface. When using the mainline kernel you should always use lk2nd for flashing, not the stock Fastboot mode.<br />
<br />
# Install [https://github.com/msm8916-mainline/lk2nd#installation lk2nd]. (Just needed the first time).<br />
#* '''Warning:''' lk2nd is installed to the <code>boot</code> partition, '''not''' the <code>aboot</code> partition you flashed earlier!<br />
<br />
When you have lk2nd installed and running, follow [[Qualcomm_Snapdragon_410/412_(MSM8916)#Installation]].<br />
<br />
==== Downstream ====<br />
There is an alternative device port using the downstream kernel, <code>bq-paella-downstream</code>. It can be selected by entering the name in <code>pmbootstrap init</code>.<br />
<br />
{{note|'''WARNING:''' The downstream kernel is entirely '''unmaintained''' and only intended for testing features for the mainline kernel. DO NOT USE IT UNLESS YOU KNOW WHAT YOU ARE DOING!}}<br />
<br />
== Audio ==<br />
See [[Qualcomm_Snapdragon_410_(MSM8916)#Audio]].<br />
<br />
== Modem ==<br />
See [[Qualcomm_Snapdragon_410_(MSM8916)#Modem]].<br />
<br />
There might be sim detection problem, see how to fix {{issue|1107|pmaports}}<br />
<br />
You should also know how dual sim devices behave: [[User:TravMurav/Dual-Sim_QMI_draft]]<br />
<br />
== Wireguard ==<br />
See {{issue|1109|pmaports}}<br />
<br />
== Pictures ==<br />
<br />
<gallery><br />
File:P 20200521 144800.jpg|thumb|left|xeyes running on Weston on bq-paella<br />
File:P 20200521 144422.jpg|thumb|left|FDE, osk-sdl running on bq-paella<br />
File:EsBLYj1VgAATpGw.jpeg|thumb|left|phosh running on bq-paella<br />
File:EsBLYk2UcAAeMLt.jpeg|thumb|left|GNOME Settings running on bq-paella<br />
File:EsBLYnuUcAAT-2N.jpeg|thumb|left|GNOME Terminal on bq-paella<br />
File:EsBNMN8UwAAO363.jpeg|thumb|left|GNOME Clocks on bq-paella<br />
File:EsBLYmRVoAA7ZjJ.jpeg|thumb|left|Wi-Fi on bq-paella<br />
File:EsBNMMqVEAA3LBg.jpeg|thumb|left|Bluetooth on bq-paella<br />
File:EsBNMMRVcAAn9i3.jpeg|thumb|left|Firefox with WebGL on bq-paella<br />
File:Bq-paella-gtk-spotify-spot.jpg|thumb|left|Spot, a GTK Spotify client, running on bq-paella<br />
File:Bq-paella-fractal.jpg|thumb|left|Fractal, a GTK Matrix client, running on bq-paella<br />
File:Sxmo-bq-paella.jpg|thumb|left|Sxmo running on bq-paella<br />
File:Bq-paella-appgrid.jpg|thumb|left|Custom app grid on bq-paella<br />
File:Lollypop.jpg|thumb|left|Lollypop playing music on bq-paella<br />
File:Bq-paella-lockscreen-lollypop.jpg|thumb|left|Custom lockscreen with Lollypop player on bq-paella<br />
File:Bq-paella-retroarch.jpg|thumb|left|RetroArch on bq-paella<br />
</gallery><br />
<br />
== See also ==<br />
* {{MR|1134|pmaports}} Initial merge request<br />
* {{MR|1319|pmaports}} Moving to community<br />
* [https://twitter.com/pojntfx/status/1355851049798688769] Chromium running with full hardware acceleration</div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=20408User:Begs2021-07-04T15:26:26Z<p>Begs: update devices</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|Begggs}}<br />
{{User main device|BQ_Aquaris_X5_(bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Router/homeserver}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Nah, no omap4470 support in mainline}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Running LineageOS, using as a modem}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Troubleshooting&diff=20228Troubleshooting2021-06-27T23:46:40Z<p>Begs: remove coreutils section</p>
<hr />
<div>= General information =<br />
<br />
* Always look at the log file for a detailed error message: <code>~/.local/var/pmbootstrap/log.txt</code><br />
* Make sure, that you have the latest version. Your bug may already be fixed.<br />
* Please report the bugs you have found in the [https://gitlab.com/postmarketOS/pmbootstrap/-/issues issues], so we can fix them.<br />
* {{alpine|Syslog}} is enabled, and will log to shared memory once the OS has booted. It can be read with the <code>logread</code> tool in BusyBox. The syslog is currently not preserved across reboots.<br />
<br />
= Specific troubleshooting pages =<br />
* [[Troubleshooting:boot]] - Troubleshooting the boot process, figuring out if your device boots<br />
* [[Troubleshooting:display]] - Troubleshooting display issues<br />
* [[Troubleshooting:HID buttons]] - Troubleshooting on-device buttons<br />
* [[Troubleshooting:host]] - Troubleshooting the host system<br />
* [[Troubleshooting:kernel]] - Common kernel building related issues and how to fix them<br />
* [[Osk-sdl#Troubleshooting|Troubleshooting osk-sdl]]'''<br />
* [[Troubleshooting:Xorg]] - Troubleshooting problems with Xorg<br />
* [[Troubleshooting:QEMU]] - Debugging problems with <code>pmbootstrap qemu</code><br />
* [[Troubleshooting:dependencies]] - A guide to resolving <code>Could not find dependency</code> errors coming from pmbootstrap, as well as <code>unsatisfiable constraints</code> errors coming from apk.<br />
* [[Troubleshooting:grsec]] (TL;DR: doesn't work)<br />
* [[Run_pmbootstrap_on_non-x86_64_arches|Run pmbootstrap on non-x86_64 arches]]<br />
* [[Access eMMC install from second storage medium]]<br />
<br />
= Port/device troubleshooting =<br />
<br />
== References ==<br />
<br />
* [[Audio]]<br />
* [[Osk-sdl|osk-sdl]]<br />
* [[Serial debugging]]<br />
* [[Modem]]<br />
* [[WiFi]]<br />
* ...and specific troubleshooting pages linked above.<br />
<br />
== Porting process, preparation and various information ==<br />
<br />
See also: [[Troubleshooting#pmbootstrap and build related errors]]<br />
<br />
=== My device runs the Linux kernel (e.g. Android), but the vendor does not provide the source ===<br />
<br />
# Ask kindly via e-mail.<br />
# If they don't provide the source, team up with [http://gpl-violations.org/faq/violation-faq/ gpl-violations.org]. You have the legal right to get the source, because the Linux kernel is under the GPLv2!<br />
# Consider [[building generic kernels|building generic kernel]] for your device.<br />
# Another option is [[using prebuilt kernels]]<br />
<br />
=== My Android device does not have partition labels, how do I know where to put the boot.img file etc? ===<br />
* Search online for the partitions, they are probably documented somewhere.<br />
<br />
* Try to dump all partitions. Run `file` on them, it should roughly tell you the contents. If that does not help, run [https://github.com/ReFirmLabs/binwalk binwalk].<br />
** file output: check if it is a kernel (vmlinuz), <code>boot.img</code> file or just "data".<br />
** In case you have "data", don't flash anything there, we probably can't generate that format yet. Please open an issue in GitHub or ask on the channel.<br />
* You can also look at recovery zips from other Android ROMs, that were released for your device. Extract it and look at <code>META-INF/com/google/android/updater-script</code>, search for commands starting with <code>run_program("/sbin/busybox", "dd"</code>, they are for flashing partitions.<br />
<br />
** In one example, there was <code>run_program("/sbin/busybox", "dd", "if=/tmp/boot.blob", "of=/dev/block/mmcblk0p4");</code>, which means that a <code>boot.blob</code> file gets flashed to <code>/dev/block/mmcblk0p4</code>. That <code>boot.blob</code> file is also in the recovery zip - run the <code>file</code> program on it (see above).<br />
<br />
=== Serial Console Debug Cable (early boot debugging) ===<br />
<br />
For some devices it's possible to get early boot output using a debug cable that provides access to the UART. Unfortunately manufacturers do not use to publish the details and it is end users who in some cases have figured it out:<br />
<br />
* Here is one such cable for [https://www.optiv.com/blog/building-a-nexus-4-uart-debug-cable Nexus 4] and another for [https://www.abclinuxu.cz/blog/Lorris/2013/12/serial-console-on-google-nexus-5 Nexus 5].<br />
* [http://www.pabr.org/consolejack/consolejack.en.html This article] goes a step further with Google Nexus devices.<br />
* This guide explains how to create one for a [https://forum.xda-developers.com/galaxy-s7/how-to/guide-samsung-galaxy-s7-uart-t3743895 Samsung devices with a micro usb socket].<br />
* Sony has published information about how to access the UART port on their [https://developer.sonymobile.com/open-devices/how-to-access-uart-ports-on-xperia-devices/ Xperia series].<br />
* The [https://redmine.replicant.us/projects/replicant/wiki/SamsungSerial Replicant wiki] has useful information on this as well.<br />
<br />
On fastboot devices, you may have to enable UART debugging with <code>fastboot oem uart-on</code>.<br />
<br />
By default, all output from the initramfs get redirected to <code>/pmOS_init.log</code>. If you want the output through the debug cable you need to add <code>PMOS_NO_OUTPUT_REDIRECT</code> to your [[Troubleshooting:kernel#How_can_I_boot_the_kernel_with_some_specific_arguments.3F|kernel command line]].<br />
<br />
See [[Serial debugging]]<br />
<br />
=== Proprietary blobs ===<br />
<br />
Many devices require proprietary blobs for enabling certain peripherals (wifi/bluetooth/cellular/GPS). [https://github.com/TheMuppets These repositories] appear to contain blobs for a large percentage of devices out there.<br />
<br />
=== Force reboot ===<br />
<br />
On some phones, you can hold down the power button for ten seconds to force a reboot. If that does not work: On other phones, you have to hold the power button down for a full minute (or hold it together with volume down). On some phones, it might take even longer (3 minutes or so).<br />
<br />
You can also give from console <code>echo b > /proc/sysrq-trigger</code>.<br />
<br />
== Errors on the device ==<br />
<br />
=== Touch screen device present but not outputting any touch events ===<br />
For some devices (at least motorola-shamu and motorola-lux), the touch screen I2C device is present but not activated at boot, and must be activated before it produces any output.<br />
<br />
For the motorola-lux, this is done in the following way:<br />
<br />
<code>echo 1 > /sys/devices/soc.0/78b8000.i2c/i2c-4/4-0020/drv_irq</code><br />
<br />
The path to the correct touch device depends on the device. This can be added to an [[Device_specific_package#Initramfs_hook|initfs hook]] to activate the touch screen automatically at boot.<br />
<br />
=== CHARGING MODE: error starting charging-sdl ===<br />
When attaching the power cable while the device is off, Android devices boot into a special "charging mode". postmarketOS's [[charging-sdl]] display does not work yet on all devices.<br />
<br />
To debug the issue, follow instructions at [[Inspecting the initramfs]] including activating the initramfs-extra, then execute <code>start_charging_mode</code> in the shell.<br />
<br />
=== During initramfs generation: "modprobe: WARNING: Module drm not found in directory /lib/modules/..." ===<br />
This means, that a module can not be put in an initramfs. When you are not using a mainline kernel, it is likely that there are no modules configured, but the code is built directly into the kernel. This means, it is expected and can be ignored.<br />
<br />
=== Phone shows the telnet message, a black screen, or doesn't leave the bootloader or Samsung/Google/... splash screen ===<br />
<br />
See: [[Troubleshooting:boot]]<br />
<br />
=== I have ported postmarketOS to my device and the screen doesn't get updated ===<br />
<br />
There is a [https://github.com/postmarketOS/pmbootstrap/pull/66#issuecomment-306343779 known bug] where if you execute <code>cat /sys/class/graphics/fb0/modes &gt; /sys/class/graphics/fb0/mode</code> exactly one frame is drawn, and the screen isn't updated otherwise.<br />
<br />
=== Device reboots ===<br />
* If your device always reboots after the same time (e.g. 2 minutes) after booting, you probably need to feed (or disable) a watchdog. Try to search your kernel config for watchdog, and also the internet for watchdog + your phone name.<br />
* Android: The kernel config option <code>CONFIG_ANDROID_LOW_MEMORY_KILLER</code> may cause reboots. Please check if you have disabled it. If this helps you, please let us know, so we can consider checking for this option.<br />
* Android: it is possible to get the <code>dmesg</code> log from just before the crash after the reboot [https://stackoverflow.com/questions/9682306/android-how-to-get-kernel-logs-after-kernel-panic if you enable some kernel options].<br />
<br />
=== SSH / udev / touch screen doesn't work ===<br />
* Make sure that <code>DEVTMPFS</code> is enabled in your [[Kernel configuration|kernel config]]. Do not enable <code>DEVTMPFS_MOUNT</code>.<br />
<br />
=== I can't access the framebuffer device ===<br />
* <code>cat /dev/random &gt; /dev/fb0</code> returns: <code>cat: write error: No such device</code><br />
* This could be caused by a proprietary 3d driver enabled in the kernel config. [https://github.com/postmarketOS/pmbootstrap/pull/66/ Try to disable it (the actual config options may be different).]<br />
<br />
=== &quot;if running weston from ssh, use --tty to specify a tty&quot; ===<br />
<br />
Specify a tty in weston's commandline. The correct syntax is: <code>weston --tty=1</code>.<br />
<br />
=== Weston and fbsplash -s <image> do not work ===<br />
<br />
If Weston returns an error because it could not access <code>/dev/tty1</code>, even when you specify it on the command line as above, you may need to enable Virtual Terminals in the kernel config.<br /><br />
You can enable <code>CONFIG_VT</code> using <code>pmbootstrap menuconfig</code> and checking under Device Drivers -&gt; Character devices -&gt; Virtual terminal<br />
<br />
== Flashing problems ==<br />
<br />
=== Invalid sparse file format at header magic ===<br />
<br />
In some devices (e.g.: bullhead, titan), when flashing the system (<code>pmbootstrap flasher flash_rootfs</code>), it works but fastboot complains of <code>Invalid sparse file format at header magic</code>.<br />
<br />
<pre>$ ./pmbootstrap.py flasher flash_rootfs<br />
[23:02:58] (native) install android-tools<br />
[23:02:58] (native) flash rootfs image<br />
target reported max download size of 536870912 bytes<br />
Invalid sparse file format at header magic<br />
sending sparse 'system' 1/1 (274101 KB)...<br />
OKAY [ 9.452s]<br />
writing 'system' 1/1...<br />
OKAY [ 12.584s]<br />
finished. total time: 22.036s<br />
[23:03:20] Done</pre><br />
It happens when your device expects a sparse system image. The workaround is as follows:<br />
<br />
* Set <code>deviceinfo_flash_sparse=true</code> in deviceinfo<br />
<br />
To do this, edit the file in ./local/var/pmbootstrap/cache_git/pmaports/device/your_device_name/deviceinfo and add <code> deviceinfo_flash_sparse="true"</code>. When finished, run <code>"pmbootstrap install"</code> to rebuild the file system<br />
<br />
For more information, see issue [https://github.com/postmarketOS/pmbootstrap/issues/299 #299]<br />
<br />
=== Heimdall: Flashing fails at 7% ===<br />
<br />
You might also be getting the error "ERROR: Failed to confirm end of file transfer sequence"<br />
<br />
It might be, that your device only accepts "sparse images" ({{issue|1643}}). Try setting <code>deviceinfo_flash_sparse="true"</code> in the [[deviceinfo]].<br />
<br />
=== FAILED (remote: Unknown chunk type) ===<br />
<br />
This is a bootloader limitation. Flash [https://github.com/postmarketOS/pmbootstrap/issues/456 with netcat] as a workaround, or use this wiki's search feature to come up with more related information. Feel free to organize this in a better way, but this should be a good starting point. See also {{issue|1735}}.<br />
<br />
=== flasher (fastboot) is stuck in < waiting for any device > ===<br />
<br />
Maybe you need to install udev rules on your host Linux distribution. Arch has the [https://www.archlinux.org/packages/community/any/android-udev/ android-udev] package for example, which uses the rules from [https://github.com/M0Rf30/android-udev-rules here].<br />
<br />
If that does not help, it might be necessary to set the <code>flash_fastboot_vendor_id</code> in your [[deviceinfo]] (this was necessary for the [[Amazon Kindle Fire HDX]]). Try to search the web for your device name and "fastboot vendor id".<br />
<br />
If you were previously able to use fastboot and it stopped working, sometimes <code>pmbootstrap shutdown</code> to restart the chroot helps ({{issue|1633}}). Also try to reboot the device into fastboot again.<br />
<br />
=== ERROR: Failed to confirm end of file transfer sequence! ===<br />
<br />
This message can mean anything. To get more information you can instead create an [[Installation_from_recovery_mode|android-recovery-zip]] and install that from recovery. The installation will probably fail now as well, but at least this time you will have logs in <code>/tmp/postmarketos/</code>.<br />
<br />
One possible reason for the error is simply that the image is too large for the partition, in which case you need to decrease the size, or maybe re-partition your device.<br />
<br />
The whole error message might look something like<br />
<pre><br />
[...]<br />
Uploading BOOT<br />
100%<br />
ERROR: Failed to confirm end of file transfer sequence!<br />
ERROR: BOOT upload failed!<br />
<br />
Ending session...<br />
ERROR: Failed to send end session packet!<br />
Releasing device interface...<br />
</pre><br />
<br />
= pmbootstrap and build related errors =<br />
<br />
== Alpine, chroots and pmbootstrap ==<br />
<br />
=== pmbootstrap is broken! But it worked yesterday! ===<br />
Sorry! Revert to the last commit, that was known to work (git checkout $commit) and report an issue, if there is not already one. Consult with others in the [[Matrix_and_IRC|IRC/matrix]] channel to find out, which commit was the last one that worked.<br />
<br />
=== ERROR: This device does not exist anymore, check <https://postmarketos.org/renamed> to see if it was renamed ===<br />
<br />
One case where this might happen is if you remove pmbootstrap's work path, and then run a <code>pmbootstrap init</code>. As you might notice it is still remembering values and devices from previous executions. <br />
<br />
To solve this you need to remove (or rename) <code>$XDG_CONFIG/pmbootstrap.cfg</code> (i.e <code>~/.config/pmbootstrap.cfg</code>). After doing so <code>pmbootstrap init</code> should work fine.<br />
<br />
=== BusyBox does something different than the standard tool for the job, and this breaks building my package! ===<br />
<br />
'''Example:''' unzip in BusyBox doesn't extract symlinks like the normal unzip implementation ([https://github.com/postmarketOS/pmbootstrap/issues/82 #82]).<br />
<br />
'''Solution:''' Simply add <code>unzip</code> to the makedepends in the APKBUILD, and the &quot;real&quot; unzip will be used (or in that case, try to get the sources in another archive format, such as <code>.tar.bz2</code>, <code>.tar.xz</code>, <code>.tar.gz</code>).<br />
<br />
=== WARNING: No provider for dependency... ===<br />
<br />
'''Normal behavior.''' it means, that your &quot;user&quot; repository (the repository with all custom compiled packaged from pmOS, such as your device package and kernel) does not have the dependencies from the official Alpine Linux repositories (such as <code>cryptsetup</code>, <code>iw</code>, <code>htop</code>, ...) when indexing it. But these dependencies ''are'' in the official repositories, so they will be found when you try to install something. Usually the package indexing is done on all repositories at once in Alpine (then you wouldn't get the error), but pmOS does it only on the &quot;user&quot; repository.<br />
<br />
=== ERROR: busybox-1.27.0-r1.post-install: script exited with error 127 ===<br />
<br />
Programs running in (foreign arch) chroots cannot be executed. See {{issue|1972}}.<br />
<br />
=== ERROR: /mnt/pmbootstrap-packages/x86_64/qemu-user-static-repack-2.8-r6.apk: UNTRUSTED signature ===<br />
<br />
You don't have your own package signing key imported, which gets generated when you compile a package for the first time. pmbootstrap should automatically import it, but when you hit <code>^C</code> during that, it may go wrong.<br />
<br />
Your generated key is in <code>~/.local/var/pmbootstrap/config_abuild</code>, all imported keys are in <code>~/.local/var/pmbootstrap/config_apk_keys</code>.<br />
<br />
A quick fix is deleting all packages:<br />
<pre>./pmbootstrap zap -p</pre><br />
<br />
See issue [https://github.com/postmarketOS/pmbootstrap/issues/270 #270] for more information and don't hesitate to reopen if this didn't work for you.<br />
<br />
=== Installed version newer than the version in the repositories ===<br />
<br />
''You have a program installed in one of your chroots with a higher version, than what is available in the binary package repositories (either from upstream or the packages you have built yourself).''<br />
<br />
'''Example how this can happen:'''<br />
<br />
* Git branch switch to one which increased the version of <code>postmarketos-mkinitfs</code><br />
* Build <code>postmarketos-mkinitfs</code><br />
* Install it in a chroot (e.g. by running <code>pmbootstrap install</code>)<br />
* Branch switched to <code>master</code><br />
* All packages got zapped, but not the chroots<br />
* Build <code>postmarketos-mkinitfs</code> again (this time it has a lower version count!)<br />
<br />
'''Solution:''' Simply zap your chroot! When it gets set up again, it will use the current package version.<br />
<br />
=== It's not installing my changed package ===<br />
<br />
''You have changed a package but it's using the one from the repository and not your changed build.''<br />
<br />
You probably didn't build it or not for the correct architecture. <code>pmbootstrap build</code> defaults to <code>x86_64</code> architecture, if you need that package on your device, use the <code>--arch</code> flag.<br />
<br />
=== Newer version in binary package repositories than in aports folder ===<br />
<br />
''You have built a package earlier, and the branch you are currently working in has a lower version in the aports folder.''<br />
<br />
'''Example how this can happen:'''<br />
* Git branch switch to a feature branch which increased the version of <code>postmarketos-mkinitfs</code><br />
* Build <code>postmarketos-mkinitfs</code><br />
* Switch to <code>master</code> branch<br />
* Run just about any <code>pmbootstrap</code> command, it will print this warning:<br />
Package 'postmarketos-mkinitfs' in your aports folder has version X, but the binary package repositories already have version Y<br />
<br />
'''Solution:''' Run <code>pmbootstrap zap -m</code> to delete the mismatched binary packages.<br />
<br />
'''Note:''' If that does not help it, you can manually delete that specific packages from your aports folder: <code>sudo rm ~/.local/var/pmbootstrap/packages/*/postmarketos-mkinitfs*.apk</code> and run <code>pmbootstrap index</code> to re-index all packages. See also: [https://github.com/postmarketOS/pmbootstrap/issues/466 #466], [https://github.com/postmarketOS/pmbootstrap/pull/474 #474]<br />
<br />
=== mkbootimg: error: argument --dt: can't open '/boot/dt.img' ===<br />
This happens when you have <code>deviceinfo_bootimg_qcdt</code> enabled (which is correct when pmbootstrap generated it that way), but your kernel does not generate the <code>/boot/dt.img</code> file.<br />
Please adjust your kernel <code>APKBUILD</code> as follows:<br />
* add <code>dtbtool</code> to <code>makedepends</code><br />
* extend your <code>build()</code> function [https://github.com/postmarketOS/pmbootstrap/blob/bc2784ece7dbbb5b9fbc8e1855566d3e9e770e59/aports/device/linux-huawei-y530/APKBUILD#L74-L75 like this]<br />
* and your <code>package()</code> function [https://github.com/postmarketOS/pmbootstrap/blob/bc2784ece7dbbb5b9fbc8e1855566d3e9e770e59/aports/device/linux-huawei-y530/APKBUILD#L97-L99 like that]<br />
<br />
See {{github|688}} for a plan to automatically generate the linux APKBUILD right.<br />
<br />
=== Permission denied: .../pmbootstrap/work/chroot_native/proc/1/cwd' ===<br />
It looks like you have created your work folder as: <code>pmbootstrap/work</code>, where <code>pmbootstrap</code> is the folder with the checked out source code. That is not supported. Please run <code>pmbootstrap shutdown</code>, then delete that folder, then run <code>pmbootstrap init</code> again and choose another work folder (e.g. <code>~/.local/var/pmbootstrap</code>).<br />
<br />
After that it should work - if this still does not resolve it, please open up an issue in the GitLab issue tracker.<br />
<br />
=== can't create <code>/dev/null</code>: Permission denied ===<br />
Make sure that your working directory is mounted correctly. This can happen when working over NFS, or when you mounted the drive your working directory is on trough the file explorer (if that's the case, <code>umount</code> it, and <code>mount</code> it manually). This can probably happen on every drive mounted with <code>nosuid</code> or similar.<br />
<br />
=== cp: write error: No space left on device (during file transfer from chrooted environment to target image) ===<br />
This issue is triggered when <code>pmbootstrap</code> determines the wrong size for the target image, as it is unfortunately very hard to calculate the correct size independent of the filesystem on which the chroot resides. Some examples for this: {{issue|1916}}; {{issue|928}} where more elaborate information can be found.<br />
<br />
While fixing the problem seems impossible for every configuration, there is a workaround available ({{issue|1904}} and its associated merge request {{MR|1989}}): Use the <code>-E</code>/<code>--extra-space</code> option of <code>pmbootstrap</code> to specify extra space on the resulting image file in MB. Just play around with the value until it works for you. You can specify the value also through <code>pmbootstrap init</code> in its ''Additional options''.<br />
<br />
=== "ERROR: Is $builddir set correctly?" for linux-* package ===<br />
<br />
Check where the kernel sources archive has the kernel-related code stored and change the <code>builddir</code> value accordingly.<br />
<br />
== Build errors ==<br />
<br />
=== Errors with grsec-based kernel on the host system ===<br />
<br />
See: [[Troubleshooting:grsec]]<br />
<br />
=== Errors with ecryptfs ===<br />
<br />
When your &quot;work&quot; folder is inside an ecryptfs mounted folder, [https://github.com/postmarketOS/pmbootstrap/issues/53 <code>/dev/random</code> may not work inside the chroot] and you may have other issues. Try to move your ''work'' folder to another location, you can use <code>/tmp</code> to test if this resolves the issue. You can change the location in <code>pmbootstrap init</code>. See also: [https://github.com/postmarketOS/pmbootstrap/issues/61 #61]. (This doesn't seem to be an issue with newer versions of ecryptfs anymore.)<br />
<br />
=== <code>musl-*</code>/<code>busybox-static-*</code> fails to build with a 404 error ===<br />
<br />
Run <code>pmbootstrap aportgen musl-armhf musl-aarch64 musl-x86_64</code>. The reason why this fails from time to time is, that we use Alpine's binary <code>musl</code> lib c package for <code>armhf</code>/<code>aarch64</code> in the native chroot, to get the cross-compiler working. So the download URL inside the <code>aports/cross/musl-*/APKBUILD</code> file must be in sync with the upstream version. This pmbootstrap command safely gets the new version, uses <code>apk</code> to verify the signature of the package, generates the hash, and updates the <code>APKBUILD</code> file. To make sure, that <code>pmbootstrap aportgen</code> receives the latest <code>musl</code> version, delete your HTTP cache right before by executing this command: <code>pmbootstrap zap -hc</code>. Don't bother making a pull-request for this, as the fix is really trivial (see [https://gitlab.com/postmarketOS/pmbootstrap/commit/0f3b2ea4277679056079000eac581d1b9d05afc8 this commit]). Just report it as issue, if it happens.<br />
<br />
=== sh: can't create /proc/sys/fs/binfmt_misc/register: nonexistent directory ===<br />
<br />
This issue is known to happen in Alpine Virt hardened and Void Linux. These commands should fix it:<br />
<br />
<pre class="shell">sudo modprobe binfmt_misc<br />
sudo mount -t binfmt_misc none /proc/sys/fs/binfmt_misc</pre><br />
If it still does not work, it is probably not supported by your host Linux distribution's kernel (<code>CONFIG_BINFMT_MISC</code>). Try to use another kernel.<br />
<br />
=== du: unrecognized option: summarize ===<br />
Update pmbootstrap.<br />
<br />
=== Packaging for aarch64: ./config.guess: unable to guess system type ===<br />
<br />
This happens in packages built with autoconf (./configure; make; make install), when it ships an outdated config.guess file in the source code. Adjust your APKBUILD's <code>prepare()</code> function like done in {{github|698}}.<br />
<br />
=== ERROR: ... BAD archive ===<br />
If you <code>pmbootstrap log</code> shows something similar to the following:<br />
<pre><br />
(005853) [22:25:47] (native) % apk --no-progress add -u qemu-user-static-repack qemu-user-static-repack-binfmt<br />
WARNING: Ignoring /mnt/pmbootstrap-packages/x86_64/APKINDEX.tar.gz: No such file or directory<br />
(1/2) Installing qemu-user-static-repack (2.8-r9)<br />
ERROR: qemu-user-static-repack-2.8-r9: BAD archive<br />
(2/2) Installing qemu-user-static-repack-binfmt (2.8-r9)<br />
1 error; 20 MiB in 36 packages<br />
(005853) [22:25:53] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br />
</pre><br />
<br />
...then downloading a package (in this case <code>qemu-user-static-repack</code>) failed. Please delete the broken package and try it again:<br />
<br />
<syntaxhighlight lang="shell-session"><br />
$ cd ~/.local/var/pmbootstrap/ # go into your work folder, as specified in 'pmbootstrap init'<br />
$ sudo rm -v cache_apk_*/qemu-user-static-repack-* # adjust the failing package name accordingly<br />
</syntaxhighlight><br />
<br />
=== CROSS_COMPILE_ARM32 not defined or empty, the compat vDSO will not be built ===<br />
Disable <code>CONFIG_COMPAT_VDSO</code> in kernel config.<br />
<br />
=== ../tools/dct/DrvGen: No such file or directory ===<br />
This error is specific to Mediatek kernels and it occures when DrvGen tries to load libc6.so library it has been linked against but Alpine chroot doesn't support libc.<br />
One of the solutions is to copy [https://gitlab.com/postmarketOS/pmaports/-/blob/master/device/testing/linux-vernee-k506/python3dct.patch python3dct.patch] to your linux-... directory and activate it in the APKBUILD. This patch replaces precompiled DrvGen with a python3 version.<br />
<br />
== Errors while running pmbootstrap on non-x86_64 arches ==<br />
If you get <code>Can't build 'binutils-or1k-elf' for architecture aarch64</code>, see [[Run pmbootstrap on non-x86_64 arches]].<br />
<br />
= Troubleshooting steps kept around for historical reference =<br />
<br />
{{Note|You're most likely not going to encounter these errors. If you do, file an issue in the appropriate repository.}}<br />
<br />
=== pmbootstrap builds packages that it should download from the binary repo/that are already built ===<br />
{{note|Most likely, this is issue {{github|1023}}!}}<br />
Try to disable the "timestamp based rebuilds" feature in "pmbootstrap init" as a workaround and please report this as a bug. We need the following for the bug report:<br />
* *enable* timestamp based rebuilds<br />
* <code>pmbootstrap -v install</code> (let it run until it starts building the package it should not build)<br />
* <code>pmbootstrap log</code> (we need the log from here!)<br />
<br />
[[Category:Technical Reference]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Installing_pmbootstrap&diff=20227Installing pmbootstrap2021-06-27T23:43:36Z<p>Begs: coreutils are no longer required</p>
<hr />
<div>{{note|Running postmarketOS, Alpine or Void Linux? Grab pmbootstrap straight from your distribution's package manager (e.g. <code>apk add pmbootstrap</code>)! Note that when using a recent version of Alpine you might have to enable the community repository for this to work, see [https://wiki.alpinelinux.org/wiki/Enable_Community_Repository] on how to do that. You also have to install sudo and set it up so that you user can use it.}}<br />
<br />
== Requirements ==<br />
* <code>python</code> >=3.6<br />
* <code>openssl</code> or alternative(like <code>libressl</code>)<br />
* Depending on the installation method:<br />
** <code>pip3</code> (possibly shipped with Python)<br />
** <code>git</code><br />
<br />
Alpine Linux users also need to install <code>procps</code>:<br />
<syntaxhighlight lang="shell-session"><br />
$ apk add python3 procps<br />
</syntaxhighlight><br />
<br />
== pmaports.git ==<br />
pmbootstrap will automatically clone the [https://gitlab.com/postmarketOS/pmaports/ pmaports.git] repository during <code>pmbootstrap init</code> to the work dir of your choice, and afterwards you can look up the full path with <code>pmbootstrap config aports</code>. See [[git workflow]] for more information.<br />
<br />
== Installing automatically ==<br />
=== Latest release with pip ===<br />
pmbootstrap is up on [https://pypi.org/project/pmbootstrap/ pypi] now, so it can be installed with:<br />
<syntaxhighlight lang="shell-session"><br />
$ pip3 install --user pmbootstrap<br />
</syntaxhighlight><br />
<br />
You may need to reload your configuration by running <code>source ~/.profile</code>.<br />
<br />
That's it. The steps below are for alternative methods of installing <code>pmbootstrap</code>. Read on at [[#Tab completion]] if you are interested.<br />
<br />
==== Updating ====<br />
<br />
Updating to the latest version of pmbootstrap can be done like this:<br />
<br />
<syntaxhighlight lang="shell-session"><br />
$ pip3 install --user --upgrade pmbootstrap<br />
</syntaxhighlight><br />
<br />
=== Latest development version from git ===<br />
==== Download pmbootstrap ====<br />
<syntaxhighlight lang="shell-session"><br />
$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git<br />
</syntaxhighlight><br />
<br />
==== Install ====<br />
<syntaxhighlight lang="shell-session"><br />
$ cd pmbootstrap && python3 setup.py install<br />
</syntaxhighlight><br />
<br />
== Installing manually ==<br />
<br />
This setup is useful for hacking on pmbootstrap code, because you are directly running the code from your git tree. No need to run setup.py after each change.<br />
<br />
==== Download pmbootstrap ====<br />
<syntaxhighlight lang="shell-session"><br />
$ git clone https://gitlab.com/postmarketOS/pmbootstrap.git<br />
</syntaxhighlight><br />
<br />
==== Create a link ====<br />
If the directory <code>~/.local/bin</code> does not already exist, create it with:<br />
<syntaxhighlight lang="shell-session"><br />
$ mkdir -p ~/.local/bin<br />
</syntaxhighlight><br />
<br />
Create a symbolic link in <code>~/.local/bin</code> named <code>pmbootstrap</code>:<br />
<syntaxhighlight lang="shell-session"><br />
$ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap<br />
</syntaxhighlight><br />
<br />
==== Test installation ====<br />
To test that pmbootstrap is installed correctly, open a new terminal and run:<br />
<syntaxhighlight lang="shell-session"><br />
$ pmbootstrap --version<br />
</syntaxhighlight><br />
<br />
If this returns something like <code>pmbootstrap: command not found</code> instead of a version number, ensure that the following lines are in <code>~/.profile</code> (zsh: <code>~/.zprofile</code>): <br />
<syntaxhighlight lang="shell"><br />
# set PATH so it includes user's private bin if it exists<br />
if [ -d "$HOME/.local/bin" ] ; then<br />
PATH="$HOME/.local/bin:$PATH"<br />
fi<br />
</syntaxhighlight><br />
Then open a new terminal and try again.<br />
<br />
== Tab completion ==<br />
[https://en.wikipedia.org/wiki/Command-line_completion Tab completion] is an optional feature that saves you time by automatically filling in the rest of a command when you press the tab key. You can also see a list of possible commands by double pressing the tab key.<br />
<br />
Install [https://kislyuk.github.io/argcomplete argcomplete] with:<br />
<syntaxhighlight lang="shell-session"><br />
$ pip3 install --user argcomplete<br />
</syntaxhighlight><br />
<br />
Alternatively you can use your distro package manager to install <code>argcomplete</code>, for example in Ubuntu:<br />
<syntaxhighlight lang="shell-session"><br />
$ sudo apt install python-argcomplete<br />
</syntaxhighlight><br />
in Gentoo:<br />
<syntaxhighlight lang="shell-session"><br />
$ sudo emerge dev-python/argcomplete<br />
</syntaxhighlight><br />
in Arch Linux:<br />
<syntaxhighlight lang="shell-session"><br />
$ sudo pacman -S python-argcomplete<br />
</syntaxhighlight><br />
<br />
Next, do one of the following depending on the shell you use.<br />
<br />
==== Bash ====<br />
Add the following line to <code>~/.bashrc</code>:<br />
<syntaxhighlight lang="shell"><br />
eval "$(register-python-argcomplete pmbootstrap)"<br />
</syntaxhighlight><br />
<br />
Then reload your configuration by opening a new terminal or by running <code>source ~/.bashrc</code>.<br />
<br />
==== Zsh ====<br />
Add the following lines to <code>~/.zshrc</code>:<br />
<syntaxhighlight lang="shell"><br />
autoload bashcompinit<br />
bashcompinit<br />
eval "$(register-python-argcomplete pmbootstrap)"<br />
</syntaxhighlight><br />
<br />
Then reload your configuration by opening a new terminal or by running <code>source ~/.zshrc</code>.<br />
<br />
== Troubleshooting during installation==<br />
===ERROR: We have split the aports repository from the pmbootstrap repository (#383). Please run 'pmbootstrap init' again to clone it===<br />
According to [https://www.reddit.com/r/postmarketOS/comments/hkop88/pmbootstrap_setup/ this reddit post] you need to :<br />
- Delete ~/.config/pmbootstrap.cfg => command rm <br />
- Delete ~/.local/var/pmbootstrap<br />
- Run the pmbootstrap init again<br />
<br />
In command line :<br />
rm ~/.config/pmbootstrap.cfg<br />
rm -r ~/.local/var/pmbootstrap<br />
pmbootstrap init<br />
<br />
<br />
== See also ==<br />
* {{MR|1656}} implement bash tab completion<br />
<br />
[[Category:Guide]]</div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=20211User:Begs2021-06-27T01:25:05Z<p>Begs: ports++</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|2}}<br />
{{User GitLab|Begggs}}<br />
{{User main device|BQ_Aquaris_X5_(bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Using as a router and IRC bouncer}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Rare device (anyone else owns it?), probably an upcoming mainlining target}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Running LineageOS, using as a modem}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20210Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-27T01:20:33Z<p>Begs: FIXUP</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
| whet_dhry = 1455.9<br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB (but you still can use type A to type A cable). However, connecting microUSB devices such as flash drive may work, but untested because microUSB is too near to AC, so most devices can't be connected.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20209Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-27T01:19:42Z<p>Begs: Add unixbench whet_dhry</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
| whet_dhry = 1455.9<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB (but you still can use type A to type A cable). However, connecting microUSB devices such as flash drive may work, but untested because microUSB is too near to AC, so most devices can't be connected.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=User:Begs&diff=20200User:Begs2021-06-25T16:57:38Z<p>Begs: Update devices</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|1}}<br />
{{User GitLab|Begggs}}<br />
{{User main device|BQ_Aquaris_X5_(bq-paella)}}<br />
</div><br />
== Devices ==<br />
{{My devices}}<br />
{{Owns device|BQ_Aquaris_X5_(bq-paella)|CyanogenMod Edition, pmOS daily driver}}<br />
{{Owns device|Xunlong_Orange_Pi_3_(xunlong-orangepi3)|Using as a router and IRC bouncer}}<br />
{{Owns device|Samsung_Galaxy_Premier_(samsung-superior)|Rare device (anyone else owns it?), probably an upcoming mainlining target}}<br />
{{Owns device|Samsung_Galaxy_S7_Edge_(samsung-hero2lte)|Running LineageOS, using as a modem}}</div>Begshttps://wiki.postmarketos.org/index.php?title=Orange_Pi_4G-IoT&diff=20159Orange Pi 4G-IoT2021-06-23T15:16:57Z<p>Begs: Use correct codename and manufacturer</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 4G-IoT<br />
| codename = xunlong-orangepi4giot<br />
| image = File:orange-pi-4g-iot.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2018<br />
| originalsoftware = Android 6.0 on Linux 3.18<br />
| chipset = MediaTek MT6737M<br />
| cpu = Quad-core 1.25 GHz Cortex-A53<br />
| gpu = Mali-T720 MP1<br />
| storage = 8 GB<br />
| display = 720p @ 48Hz (incompatible with most displays)<br />
| memory = 1 GB DDR3<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 = <br />
| booting = no<br />
}}<br />
<br />
== Contributors ==<br />
* cyrozap<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== What works ==<br />
<br />
== What does not work ==<br />
<br />
== How to enter flash mode ==<br />
<br />
=== Flashing using the Preloader ===<br />
<br />
# Remove jumper J5. This will disable the USB hub on the board and enable you to connect the board to the host PC via USB. If you don't do this, USB errors will appear in dmesg.<br />
# Start the MediaTek Smartphone Flash Tool (SPFT) as root.<br />
# Select the scatter file and the partitions you want to flash.<br />
# Click "Download".<br />
# Plug the board into your computer via its micro-USB port.<br />
# Wait for flashing to complete.<br />
# If that fails, repeat steps 4-6 until it works. Maybe try a different USB cable/port.<br />
<br />
== Installation ==<br />
<!-- add more sections below as necessary, e.g. Wifi, photos, ... --><br />
<br />
== See also ==<br />
<!--<br />
Link to related GitHub issues or pull requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{github|CHANGEME}} Initial pull request<br />
* {{github|CHANGEME}} 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 />
* [http://www.orangepi.org/Orange%20Pi%204G-IOT/ Product page]<br />
* [http://www.orangepi.org/downloadresources/ Download page for the user manual, schematics, source code, Android image, etc.]<br />
* [https://it-explain.com/orangepi-4g-iot-review-single-board-computer-for-iot-with-lte/ Board review]<br />
<br />
[[Category:Mediatek]]</div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20158Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-23T15:10:35Z<p>Begs: More accurate OTG info</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
As said in board's DTS,<br />
<source lang="c"><br />
/*<br />
* This board doesn't have a controllable VBUS even though it<br />
* does have an ID pin. Using it as anything but a USB host is<br />
* unsafe.<br />
*/<br />
</source><br />
So you can't connect it to a PC via microUSB (but you still can use type A to type A cable). However, connecting microUSB devices such as flash drive may work, but untested because microUSB is too near to AC, so most devices can't be connected.<br />
<br />
== Audio ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI audio works.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20157Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-23T14:58:55Z<p>Begs: Sound tested</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
It seems to be impossible to connect a board to PC via microUSB port, as it only gains power and not recognises an interface, but it's hardware fault, not pmOS (see linux-sunxi wiki). However, board can act as OTG host, i.e. connect a keyboard via microUSB to USB adapter, or connect a flash drive with microUSB interface, or even a phone using microUSB to USB to microUSB adapter :D. However, when I connected my pmOS phone, it only started recieving power and hasn't been recognized at all, while phone detects board, but can't do anything. Also microUSB port is too near to AC, so I have to get another OTG adapter. Needs more testing. Regular USB ports work as expected.<br />
<br />
== Sound ==<br />
Hardware codec isn't supported in Linux kernel yet, so audio jack output won't work. However, HDMI sound works.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20156Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-23T12:26:43Z<p>Begs: Tested sway, works perfectly</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = Y<br />
| status_accel = -<br />
| status_audio = <br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
It seems to be impossible to connect a board to PC via microUSB port, as it only gains power and not recognises an interface, but it's hardware fault, not pmOS (see linux-sunxi wiki). However, board can act as OTG host, i.e. connect a keyboard via microUSB to USB adapter, or connect a flash drive with microUSB interface, or even a phone using microUSB to USB to microUSB adapter :D. However, when I connected my pmOS phone, it only started recieving power and hasn't been recognized at all, while phone detects board, but can't do anything. Also microUSB port is too near to AC, so I have to get another OTG adapter. Needs more testing. Regular USB ports work as expected.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20153Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-23T11:48:22Z<p>Begs: Fix typo</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = <br />
| status_accel = -<br />
| status_audio = <br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
It seems to be impossible to connect a board to PC via microUSB port, as it only gains power and not recognises an interface, but it's hardware fault, not pmOS (see linux-sunxi wiki). However, board can act as OTG host, i.e. connect a keyboard via microUSB to USB adapter, or connect a flash drive with microUSB interface, or even a phone using microUSB to USB to microUSB adapter :D. However, when I connected my pmOS phone, it only started recieving power and hasn't been recognized at all, while phone detects board, but can't do anything. Also microUSB port is too near to AC, so I have to get another OTG adapter. Needs more testing. Regular USB ports work as expected.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20152Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-23T11:47:24Z<p>Begs: Fix typo</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = <br />
| status_accel = -<br />
| status_audio = <br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ==<br />
It seems to be impossible to connect a board to PC via microUSB port, as it only gains power and not recognises an interface, but it's hardware fault, not pmOS (see linux-sunxi wiki). However, board can act as OTG host, i.e. connect a keyboard via microUSB to USB adapter, or connect a flash drive with microUSB interface, or even a phone using microUSB to USB to microUSB adapter :D. However, when I connected my pmOS phone, it only started recieved power and wasn't recognized at all, while phone detects board, but can't do anything. Also microUSB port is too near to AC, so I have to get another OTG adapter. Needs more testing. Regular USB ports work as expected.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begshttps://wiki.postmarketos.org/index.php?title=Xunlong_Orange_Pi_3_(xunlong-orangepi3)&diff=20151Xunlong Orange Pi 3 (xunlong-orangepi3)2021-06-23T11:47:03Z<p>Begs: Display and usbnet works</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Xunlong<br />
| name = Orange Pi 3<br />
| codename = xunlong-orangepi3<br />
| image = File:xunlong-orangepi3.jpg<br />
| imagecaption = Orange Pi 3 with UART connected<br />
| releaseyear = 2019<br />
| originalsoftware = BSP Linux 4.9<br />
| chipset = Allwinner H6<br />
| cpu = 4x 1.8 GHz ARM Cortex-A53<br />
| gpu = Mali T720 MP2 600 MHz<br />
| storage = 8 GB eMMC (or empty slot) + microSD<br />
| display = HDMI port<br />
| memory = 1/2 GiB <br />
| architecture = aarch64<br />
<br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = -<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = -<br />
| status_3d = <br />
| status_accel = -<br />
| status_audio = <br />
| status_bluetooth = Y<br />
| status_camera = -<br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = P<br />
| status_nfc = -<br />
| booting = yes<br />
<br />
| n-android = ✔<br />
| pmoskernel =<br />
<br />
<!--<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:Begs|Begs]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== Installation ==<br />
Follow the [[Installation_guide]], use sdcard method. Then insert microSD into TF-card slot and plug the power cable, pmOS should boot. If not, try once again (on cold boot SPL sometimes decides there is 4096 MiB of RAM and boot hangs).<br />
<br />
== Serial console ==<br />
See linux-sunxi wiki page, connect your USB-UART adapter's RX to board's TX and vice versa.<br />
<br />
== OTG ===<br />
It seems to be impossible to connect a board to PC via microUSB port, as it only gains power and not recognises an interface, but it's hardware fault, not pmOS (see linux-sunxi wiki). However, board can act as OTG host, i.e. connect a keyboard via microUSB to USB adapter, or connect a flash drive with microUSB interface, or even a phone using microUSB to USB to microUSB adapter :D. However, when I connected my pmOS phone, it only started recieved power and wasn't recognized at all, while phone detects board, but can't do anything. Also microUSB port is too near to AC, so I have to get another OTG adapter. Needs more testing. Regular USB ports work as expected.<br />
<br />
== See also ==<br />
* [https://linux-sunxi.org/Xunlong_Orange_Pi_3 linux-sunxi wiki page]<br />
* {{MR|2268|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 />
--></div>Begs