<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Biktorgj</id>
	<title>PINE64 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Biktorgj"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Biktorgj"/>
	<updated>2026-04-09T14:37:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=11201</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=11201"/>
		<updated>2021-08-30T04:32:19Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: Small updates to the partition table description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
== Quectel EG25-G Modem ==&lt;br /&gt;
&lt;br /&gt;
Quectel EG25-G is an LTE Cat 4 module optimized specially for M2M and IoT applications. It is used in the [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
* Specifications:&amp;lt;br&amp;gt;[[File:Quectel_EG25-G_LTE_Standard_Specification_V1.3.pdf]]&lt;br /&gt;
* Hardware design:&amp;lt;br&amp;gt;[[File:Quectel_EG25-G_Hardware_Design_V1.4.pdf]]&lt;br /&gt;
* AT Interface reference manual:&lt;br /&gt;
** 1.3 for EC25:&amp;lt;br&amp;gt;[[File:Quectel_EC25&amp;amp;EC21_AT_Commands_Manual_V1.3.pdf]]&lt;br /&gt;
** 2.0 for EC25 and EG25-G:&amp;lt;br&amp;gt;[[File:Quectel_EC2x&amp;amp;EG9x&amp;amp;EG2x-G&amp;amp;EM05_Series_AT_Commands_Manual_V2.0.pdf]]&lt;br /&gt;
* AT Interface file operations:&amp;lt;br&amp;gt;[[File:Quectel_EC2xEG25-GEG9xEM05_FILE_AT_Commands_Manual_V1.0.pdf]]&lt;br /&gt;
* GNSS Application note:&amp;lt;br&amp;gt;[[File:Quectel_EC2x&amp;amp;EG9x&amp;amp;EG2x-G&amp;amp;EM05_Series_GNSS_Application_Note_V1.3.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|           Processor Family || Qualcomm MDM9607&lt;br /&gt;
|-&lt;br /&gt;
|                        CPU || Qualcomm MDM9207&lt;br /&gt;
|-&lt;br /&gt;
|                      Cores || 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
|-&lt;br /&gt;
|                  Total RAM || 256Mb&lt;br /&gt;
|-&lt;br /&gt;
|          Total flash space || 256Mb&lt;br /&gt;
|-&lt;br /&gt;
| Available RAM for the ACPU || 160Mb&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Index&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| MTD0 || &amp;lt;code&amp;gt;SBL&amp;lt;/code&amp;gt;&lt;br /&gt;
| Secondary Bootloader, called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
|-&lt;br /&gt;
| MTD1 || &amp;lt;code&amp;gt;mibib&amp;lt;/code&amp;gt;&lt;br /&gt;
| NAND Partition table&lt;br /&gt;
|-&lt;br /&gt;
| MTD2 || &amp;lt;code&amp;gt;EFS2&amp;lt;/code&amp;gt;&lt;br /&gt;
| IMEI and settings used by the ADSP are stored here&lt;br /&gt;
|-&lt;br /&gt;
| MTD3 || &amp;lt;code&amp;gt;sys_rev&amp;lt;/code&amp;gt;&lt;br /&gt;
| Unexplored&lt;br /&gt;
|-&lt;br /&gt;
| MTD4 || &amp;lt;code&amp;gt;rawdata&amp;lt;/code&amp;gt;&lt;br /&gt;
| This is where FOTA update data exists before being commited to system or recoveryfs partitions&lt;br /&gt;
|-&lt;br /&gt;
| MTD5 || &amp;lt;code&amp;gt;tz&amp;lt;/code&amp;gt;&lt;br /&gt;
| TrustZone kernel&lt;br /&gt;
|-&lt;br /&gt;
| MTD6 || &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt;&lt;br /&gt;
| Resource / Power Manager&lt;br /&gt;
|-&lt;br /&gt;
| MTD7 || &amp;lt;code&amp;gt;cust_info&amp;lt;/code&amp;gt;&lt;br /&gt;
| Unexplored&lt;br /&gt;
|-&lt;br /&gt;
| MTD8 || &amp;lt;code&amp;gt;aboot&amp;lt;/code&amp;gt;&lt;br /&gt;
| Application Bootloader. Uses [https://github.com/littlekernel/lk LK] (LittleKernel, LK embedded kernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
|-&lt;br /&gt;
| MTD9 || &amp;lt;code&amp;gt;boot&amp;lt;/code&amp;gt;&lt;br /&gt;
| [https://www.openembedded.org/wiki/Main_Page OpenEmbedded] boot kernel + DTB&lt;br /&gt;
|-&lt;br /&gt;
| MTD10 || &amp;lt;code&amp;gt;recovery&amp;lt;/code&amp;gt;&lt;br /&gt;
| Recovery kernel (used for FOTA updates)&lt;br /&gt;
|-&lt;br /&gt;
| MTD11 || &amp;lt;code&amp;gt;modem&amp;lt;/code&amp;gt;&lt;br /&gt;
| ADSP firmware blobs&lt;br /&gt;
|-&lt;br /&gt;
| MTD12 || &amp;lt;code&amp;gt;misc&amp;lt;/code&amp;gt;&lt;br /&gt;
| Some settings are stored here, along with commands that need to be picked by LK on next boot (to reboot to fastboot or recovery mode)&lt;br /&gt;
|-&lt;br /&gt;
| MTD13 || &amp;lt;code&amp;gt;recoveryfs&amp;lt;/code&amp;gt;&lt;br /&gt;
| Recovery filesystem image (FOTA updates)&lt;br /&gt;
|-&lt;br /&gt;
| MTD14 || &amp;lt;code&amp;gt;usr_data&amp;lt;/code&amp;gt;&lt;br /&gt;
| User data partition (&amp;lt;code&amp;gt;/data&amp;lt;/code&amp;gt; when mounted by OpenEmbedded)&lt;br /&gt;
|-&lt;br /&gt;
| MTD15 || &amp;lt;code&amp;gt;sec&amp;lt;/code&amp;gt;&lt;br /&gt;
| Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools&lt;br /&gt;
|-&lt;br /&gt;
| MTD16 || &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt;&lt;br /&gt;
| Linux OpenEmbedded root image, formatted in UBIFS (Unsorted Block Image File System, [https://en.wikipedia.org/wiki/UBIFS Wikipedia])&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
&lt;br /&gt;
{{warning|1= The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
The System partition is mounted as read-only mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|thumb|right|PinePhone USB_BOOT test points]]&lt;br /&gt;
&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might:&lt;br /&gt;
* not show anywhere (USB device missing)&lt;br /&gt;
* or malfunction (no radio but USB working)&lt;br /&gt;
* or enter EDL mode, if the entire flash is corrupt.&lt;br /&gt;
&lt;br /&gt;
'''Boot the device in EDL mode'''&lt;br /&gt;
&lt;br /&gt;
To check if the device is booted in EDL mode, run &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt; (a part of the &amp;lt;code&amp;gt;usbutils&amp;lt;/code&amp;gt; package) in a terminal and inspect the output. You should see the following device listed:&lt;br /&gt;
&lt;br /&gt;
 Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins on the PinePhone motherboard.&lt;br /&gt;
&lt;br /&gt;
# Power off the phone&lt;br /&gt;
# short the two test points&lt;br /&gt;
# boot the phone while keeping the test points shorted until fully booted up, at least until you hear the camera clicking twice (which is normally when the modem is powered).&lt;br /&gt;
&lt;br /&gt;
'''Get the Firmware Recovery Package'''&lt;br /&gt;
&lt;br /&gt;
The Firmware Recovery Package is at: https://github.com/Biktorgj/quectel_eg25_recovery&lt;br /&gt;
&lt;br /&gt;
Either clone its repo with git, or download its archive &amp;amp; unzip it.&lt;br /&gt;
&lt;br /&gt;
As you should have no access to the Internet on PinePhone when its modem need a Recovery, you can fetch it on other devices and copy it to the Pinephone.&lt;br /&gt;
&lt;br /&gt;
'''Execute the Quectel QFirehose utility'''&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal, navigate to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
* If you use an ARM64 distribution (most likely): &amp;lt;code&amp;gt;sudo ./qfirehose -f ./&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo ./qfirehose_arm64 -f ./&amp;lt;/code&amp;gt;&lt;br /&gt;
* If you use an ARMHF (32 bit) distribution: &amp;lt;code&amp;gt;sudo ./qfirehose_armhf -f ./&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will reboot the modem after finished. After about 30 seconds, it will get back up and running. To check the firmware version after that, use an AT command &amp;lt;code&amp;gt;AT+QGMR&amp;lt;/code&amp;gt; like at [[PinePhone#Firmware_update]].&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
&lt;br /&gt;
{{warning|1= The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
Unlocked bootloader:&lt;br /&gt;
* Source code: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
* Prebuilt binary releases: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
{{warning|1= The following instructions are directed towards expert-level users and developers!}}&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable.&lt;br /&gt;
&lt;br /&gt;
* The source code release for the kernel provided by the manufacturer is incomplete and won't build&lt;br /&gt;
* Common Android tools like mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTBs attached.&lt;br /&gt;
* Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a '''work in progress''' SDK to allow creating custom kernels and system images, which can be downloaded from the following repository: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
See its readme for infomations and instructions. Once downloaded, you should run the &amp;lt;code&amp;gt;init.sh&amp;lt;/code&amp;gt; script, which will create all the base directories and download all the different repositories required to build. After the initial setup is complete, run&amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; without arguments to list the available options.&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7506</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7506"/>
		<updated>2020-10-10T05:12:32Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: /* Firmware Recovery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quectel EG25-G Modem ===&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC25&amp;amp;EC21_AT_Commands_Manual_V1.3.pdf&lt;br /&gt;
* AT Interface file operations: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: This is where FOTA update data exists before being commited to system or recoveryfs partitions&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|thumb|right|PinePhone USB_BOOT test points]]&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7505</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7505"/>
		<updated>2020-10-10T05:11:07Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: /* Quectel EG25-G Modem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quectel EG25-G Modem ===&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC25&amp;amp;EC21_AT_Commands_Manual_V1.3.pdf&lt;br /&gt;
* AT Interface file operations: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: This is where FOTA update data exists before being commited to system or recoveryfs partitions&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|thumb|right|PinePhone USB_BOOT test points]]&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/archive/master.zip&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7504</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7504"/>
		<updated>2020-10-10T05:09:56Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: /* NAND Partition table layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quectel EG25-G Modem ===&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: This is where FOTA update data exists before being commited to system or recoveryfs partitions&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|thumb|right|PinePhone USB_BOOT test points]]&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/archive/master.zip&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone&amp;diff=7129</id>
		<title>PinePhone</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone&amp;diff=7129"/>
		<updated>2020-09-16T10:15:08Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: /* Modem and carrier support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone is a smartphone created by Pine64, capable of running mainline Linux and supported by many partner projects. The BraveHeart Edition was the first publicly-available version of the phone, though it came without a fully functional OS (factory test image) and was geared specifically towards tinkerers and hackers. Its successor is the Community Edition, the first Community Edition started to ship in June 2020. The phone will be available for at least five years.&lt;br /&gt;
&lt;br /&gt;
== First time installation ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone-3.jpg|400px|thumb|right|PinePhone is capable of running a multitude of different Linux mobile OSes]]&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhoneSides.svg|400px|thumb|right|Backward and front of PinePhone UBPorts Edition]]&lt;br /&gt;
&lt;br /&gt;
From the factory the battery has a sticker on it that isolates the battery from the phone. The battery '''will not''' charge until this is removed.&lt;br /&gt;
&lt;br /&gt;
After unboxing remove the back panel using the notch in the corner of the back panel. Then remove the battery and peel off the clear plastic sticker below it that isolates the charging contact. Then replace the battery. See [[PinePhone#Battery|Battery]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
'''Dimensions:''' 160.5 x 76.6 x 9.2mm &amp;lt;br&amp;gt;&lt;br /&gt;
'''Weight:''' Between 180-200 grams &amp;lt;br&amp;gt;&lt;br /&gt;
'''SIM Card:''' Micro-SIM &amp;lt;br&amp;gt;&lt;br /&gt;
'''Display:'''&lt;br /&gt;
: '''Size:''' 5.95 inches (151mm) diagonal&lt;br /&gt;
: '''Type:''' HD IPS capacitive touchscreen, 16M colors&lt;br /&gt;
: '''Resolution:''' 1440x720, 18:9 ratio &amp;lt;br&amp;gt;&lt;br /&gt;
'''System on Chip:''' [https://linux-sunxi.org/A64 Allwinner A64] &amp;lt;br&amp;gt;&lt;br /&gt;
'''RAM:''' 2GB or 3GB LPDDR3 SDRAM&amp;lt;br&amp;gt;&lt;br /&gt;
'''Internal Storage:''' 16GB or 32GB eMMC, extendable up to 2TB via microSD, supports SDHC and SDXC &amp;lt;br&amp;gt;&lt;br /&gt;
'''Back Camera:''' Single 5MP, 1/4&amp;quot;, LED Flash &amp;lt;br&amp;gt;&lt;br /&gt;
'''Selfie Camera:''' Single 2MP, f/2.8, 1/5&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
'''Sound:''' Loudspeaker, 3.5mm jack &amp;amp; mic (jack doubles as hardware UART if killswitch 6 is deactivated) &amp;lt;br&amp;gt;&lt;br /&gt;
'''Communication: G25-G'''&lt;br /&gt;
: '''LTE:''' B1, B2, B3, B4, B5, B7, B8, B12, B13, B18, B19, B20, B25, B26, B28, B38, B39, B40, B41&lt;br /&gt;
: '''WCDMA:''' B1, B2, B4, B5, B6, B8, B19&lt;br /&gt;
: '''GSM:''' 850, 900, 1800, 1900 (MHz)&lt;br /&gt;
: '''WLAN:''' Wi-Fi 802.11 b/g/n, single-band, hotspot&lt;br /&gt;
: '''Bluetooth:''' 4.0, A2DP&lt;br /&gt;
: '''GNSS:''' GPS/GLONASS/BeiDou/Galileo/QZSS, with A-GPS&lt;br /&gt;
'''Sensors:''' Accelerometer, gyro, proximity, ambient light, compass &amp;lt;br&amp;gt;&lt;br /&gt;
'''Killswitches:''' Modem, WiFi &amp;amp; Bluetooth, Microphone, Cameras &amp;lt;br&amp;gt;&lt;br /&gt;
'''Battery:''' Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) (nominally replaceable with any Samsung J7 form-factor battery) &amp;lt;br&amp;gt;&lt;br /&gt;
'''I/O:''' USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Component&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| Goodix GT917S&lt;br /&gt;
|-&lt;br /&gt;
| Rear camera&lt;br /&gt;
| OmniVision OV5640&lt;br /&gt;
|-&lt;br /&gt;
| Camera flash&lt;br /&gt;
| SGMICRO SGM3140&lt;br /&gt;
|-&lt;br /&gt;
| Front camera&lt;br /&gt;
| GalaxyCore GC2145&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| Xingbangda XBD599&lt;br /&gt;
|-&lt;br /&gt;
| WiFi&lt;br /&gt;
| Realtek RTL8723CS&lt;br /&gt;
|-&lt;br /&gt;
| Bluetooth&lt;br /&gt;
| Realtek RTL8723CS&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| Quectel EG25-G&lt;br /&gt;
|-&lt;br /&gt;
| GNSS/GPS&lt;br /&gt;
| Quectel EG25-G&lt;br /&gt;
|-&lt;br /&gt;
| Magnetometer&lt;br /&gt;
| ST LIS3MDL&lt;br /&gt;
|-&lt;br /&gt;
| Ambient light / Proximity&lt;br /&gt;
| SensorTek STK3335&lt;br /&gt;
|-&lt;br /&gt;
| Sixaxis&lt;br /&gt;
| InvenSense MPU-6050&lt;br /&gt;
|-&lt;br /&gt;
| Vibration motor&lt;br /&gt;
| Yes, unknown model&lt;br /&gt;
|-&lt;br /&gt;
| Notification LED&lt;br /&gt;
| LED0603RGB&lt;br /&gt;
|-&lt;br /&gt;
| Volume buttons&lt;br /&gt;
| Buttons connected to the KEYADC&lt;br /&gt;
|-&lt;br /&gt;
| Power button&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Battery fuel gauge&lt;br /&gt;
| X-Powers AXP803&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware revisions ==&lt;br /&gt;
&lt;br /&gt;
# [[Project Anakin]]&lt;br /&gt;
# [[Project Don't be evil|&amp;quot;Project Don't Be Evil&amp;quot; devkit]]&lt;br /&gt;
# [[PinePhone v1.0 - Dev|PinePhone v1.0 - Developer batch]]&lt;br /&gt;
# [[PinePhone v1.1 - Braveheart]]&lt;br /&gt;
# [[PinePhone v1.2‎]] - Community Edition&lt;br /&gt;
&lt;br /&gt;
== Hardware accessory ==&lt;br /&gt;
&lt;br /&gt;
=== PinePhone hardware accessory compatibility ===&lt;br /&gt;
See [[PinePhone Hardware Accessory Compatibility]] for a list of devices working with the PinePhone (depending on their OS support).&lt;br /&gt;
&lt;br /&gt;
=== USB-C connector ===&lt;br /&gt;
&lt;br /&gt;
The USB-C can be used to power the device, and offers USB2 host and OTG possibilities, and also can make use of the USB-C capability to integrate HDMI signals. Some USB-C hubs are available that offer power throughput, USB connection, HDMI port and Ethernet connection. The driver that would make this connection available is not supported at this time.&lt;br /&gt;
&lt;br /&gt;
=== Pogo pins ===&lt;br /&gt;
&lt;br /&gt;
The PinePhone has 6 pogo pins on the back allowing for custom hardware extensions such as wireless charging, an IR blaster, a keyboard extension or extended battery case. The pogo pins provide access to an interrupt line, power input to charge the battery, power source and an I2C interface.&lt;br /&gt;
&lt;br /&gt;
[[File:Pinephone pogo.png|none|400px]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Interrupt&lt;br /&gt;
| SDA&lt;br /&gt;
| SCL&lt;br /&gt;
|-&lt;br /&gt;
| 5V / VBUS&lt;br /&gt;
| VBAT&lt;br /&gt;
| GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The VBUS pin is powered by USB and is 5V. The second power pin is VBAT, which connects to the battery voltage. The I2C and interrupt lines have pull-ups on the phone side. The I2C lines are pulled up to 3V3 by the phone.&lt;br /&gt;
&lt;br /&gt;
For a breakout board see [https://github.com/SMR404/PinephonePogoBreakout here]. For an example project see Martijn's blog post [https://blog.brixit.nl/making-a-backcover-extension-for-the-pinephone/ &amp;lt;i&amp;gt;Making a backcover extension for the PinePhone&amp;lt;/i&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
=== Back cover ===&lt;br /&gt;
A step file for the back cover for creating custom cases is freely available [http://files.pine64.org/doc/PinePhone/PinePhone%20Back%20Cover%20ver%200.5.stp here].&lt;br /&gt;
&lt;br /&gt;
=== Serial console ===&lt;br /&gt;
&lt;br /&gt;
The PinePhone has a serial port in the headphone connector, it's activated by the 6th contact on the dipswitch. If the switch is set to &amp;quot;on&amp;quot;, the headphone connector is in audio mode, if it is set to &amp;quot;off&amp;quot; it's in UART mode. The UART serial connection can also be used for communication with other devices from the PinePhone.&lt;br /&gt;
&lt;br /&gt;
The UART is 115200n8.&lt;br /&gt;
&lt;br /&gt;
The pinout for the serial connector is:&lt;br /&gt;
&lt;br /&gt;
* Tip: RX&lt;br /&gt;
* Ring: TX&lt;br /&gt;
* Sleeve: GND&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone_Serial_Cable.png|none|400px]]&lt;br /&gt;
&lt;br /&gt;
You can buy a serial debug cable from the [https://store.pine64.org/product/pinebook-serial-console/ Pine64 Store]. The store cable uses a 4 ring plug, as seen in the [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf here], but a 3 ring plug works just as well. The cable uses a CH340 chipset based serial to USB converter, but any 3.3v serial connection can be used. Because it is a &amp;quot;host&amp;quot;/DTE it means that you need a ''cross modem cable'' ([https://en.wikipedia.org/wiki/Null_modem Null Modem]) with TX on Tip to be connected to RX. A cable like e.g. [https://www.ftdichip.com/Products/Cables/USBTTLSerial.htm FTDI TTL-232R-3V3-AJ] which has TX on Tip and RX on Ring fits perfectly.&lt;br /&gt;
&lt;br /&gt;
== Killswitch configuration ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone switches.jpeg|400px|thumb|right|Photo of BraveHeart switches from OSAKANA TARO on Twitter]]&lt;br /&gt;
&lt;br /&gt;
The PinePhone features six switches that can be used to configure its hardware. They are numbered 1-6, with switch 1 located nearest to the modem. Their &amp;quot;on&amp;quot; position is toward the top of the phone.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Explanation&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| Pulls Q1501 gate up (FET killing modem power)&lt;br /&gt;
| &amp;quot;On&amp;quot; enables 2G/3G/4G communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| WiFi / Bluetooth&lt;br /&gt;
| Pulls up CHIP_EN&lt;br /&gt;
| &amp;quot;On&amp;quot; enables WiFi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| Breaks microphone bias voltage from the SoC&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| Pulls up PWDN on OV5640 &lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| Pulls up PWDN on GC2145&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| Pulls up IN2 on analog switch BCT4717ETB&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Battery ==&lt;br /&gt;
&lt;br /&gt;
{{Hint|The EG25 modem and RTL8723CS WiFi/bluetooth do not work without battery power, even if you are supplying enough power to the PinePhone with USB-C.}}&lt;br /&gt;
&lt;br /&gt;
The [https://wiki.pine64.org/images/0/04/PinePhone_Battery_model_QZ01-396172-2750.pdf supplied battery] is [https://forum.pine64.org/showthread.php?tid=8120&amp;amp;pid=53307#pid53307 meant to be] compatible with Samsung part number EB-BJ700BBC / BBE / CBE from the 2015 J7 phone. &lt;br /&gt;
* The extended life aftermarket BBU do fit, however, somewhat firmly.&lt;br /&gt;
* There is [https://forum.pine64.org/showthread.php?tid=8563&amp;amp;pid=55053#pid55053 a report] that the EB-BJ700CBE isn't quite the same size, causing the back not to fit properly.&lt;br /&gt;
&lt;br /&gt;
The battery terminals, in order from nearest the edge to nearest the middle, are:&lt;br /&gt;
&lt;br /&gt;
# +ve&lt;br /&gt;
# thermistor&lt;br /&gt;
# -ve&lt;br /&gt;
# not connected&lt;br /&gt;
&lt;br /&gt;
The battery includes a protection circuit that isolates it in a number of fault conditions, including if it is discharged too far. The fully discharged battery [https://forum.pine64.org/showthread.php?tid=8563&amp;amp;pid=55377#pid55377 can be recharged] by connecting the phone to a charger. Once it has charged sufficiently you will be able to boot the phone.&lt;br /&gt;
&lt;br /&gt;
If your battery is hard to remove from the phone, try loosening the screws around it. Possibly cutting up a piece of plastic and sliding it under the battery as a pull tab can work too.&lt;br /&gt;
&lt;br /&gt;
{{Note|The phone ships with a plastic sticker between the battery and the phone. You need to open the back cover (gently), then remove the battery and finally remove the sticker and check that the pins aren't bent. This is to protect the device from turning on during shipping.}}&lt;br /&gt;
&lt;br /&gt;
If using an aftermarket battery on the CE edition phones, removing the lower tabs is not necessary as there is space supplied in the compartment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed&amp;quot;, heights=300px&amp;gt;&lt;br /&gt;
Image:PinePhone battery1.png|Photo of Brave Heart case from OSAKANA TARO on Twitter&lt;br /&gt;
Image:PinePhone battery3.jpeg|Photo of Brave Heart battery sticker from OSAKANA TARO on Twitter&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modem and carrier support ==&lt;br /&gt;
To check if the PinePhone is supported on your carrier:&lt;br /&gt;
&lt;br /&gt;
Search for your carrier on [https://www.frequencycheck.com/ frequencycheck.com] and compare the carrier's LTE/GSM/WCDMA frequencies to the PinePhone's supported frequencies (listed under the [[#Specifications|specifications]] section).&lt;br /&gt;
&lt;br /&gt;
It is likely that there will be a few frequencies that your carrier uses which are not supported by the PinePhone. Not all of the carrier's frequencies need to be supported by the PinePhone for it to work - as long as ''most'' of them are supported, you will still get good coverage.&lt;br /&gt;
&lt;br /&gt;
=== Voice mail ===&lt;br /&gt;
&lt;br /&gt;
Some phone operating systems may not have support for accessing your voicemail by holding down the 1 key. If you are in Canada and using rogers or a rogers associated carrier (such as ''Chatr''), you can access your voice mail by calling an external number, see: https://www.howardforums.com/showthread.php/913346-Rogers-GSM-Voicemail-Retrieval-Numbers&lt;br /&gt;
&lt;br /&gt;
In America, AT&amp;amp;T also has support for accessing your voicemail via an external phone number: https://www.att.com/support/article/wireless/KM1009101/&lt;br /&gt;
&lt;br /&gt;
=== APN settings ===&lt;br /&gt;
&lt;br /&gt;
For tested APN settings and how to apply them see [[PinePhone APN Settings]].&lt;br /&gt;
&lt;br /&gt;
=== Carrier support ===&lt;br /&gt;
The page [[PinePhone Carrier Support]] contains information about the frequency support of different carriers and hints on setting up cellular network connectivity.&lt;br /&gt;
&lt;br /&gt;
=== Documents ===&lt;br /&gt;
&lt;br /&gt;
There is a document about using the modem from January 18th 2020 by user ''megi'' [https://megous.com/dl/tmp/modem.txt here]. The script at the end to disable the modem before power off is pretty essential to avoid corrupting your modem's flash memory.&lt;br /&gt;
&lt;br /&gt;
=== Firmware modifications ===&lt;br /&gt;
&lt;br /&gt;
See [[PineModems]] for more information regarding bootloader unlocking, building a custom firmware and recovery&lt;br /&gt;
&lt;br /&gt;
== Operating Systems ==&lt;br /&gt;
&lt;br /&gt;
The PinePhone will automatically boot from microSD if a bootable card is inserted. Although it is technically possible to use any ARM distribution (because the PinePhone uses the mainline kernel), there are a few that are designed specifically for mobile use on devices like the PinePhone.&lt;br /&gt;
&lt;br /&gt;
The [[PinePhone Software Releases]] page has a complete list of currently supported phone-optimized Operating System images that work with the PinePhone as well as other related software information. As soon as more patches get mainlined and distributions ship with the updated kernel, they will also be able to run unmodified on the device.&lt;br /&gt;
&lt;br /&gt;
=== Installation instructions ===&lt;br /&gt;
&lt;br /&gt;
For instructions on how to install the operating systems to the eMMC or SD card see [[PinePhone Installation Instructions]].&lt;br /&gt;
&lt;br /&gt;
=== Flashing eMMC using Jumpdrive ===&lt;br /&gt;
&lt;br /&gt;
[[File:jumpdrive.jpg|400px|thumb|right|Jumpdrive running on the PinePhone]]&lt;br /&gt;
The internal eMMC flash storage can be flashed using the Jumpdrive utility by Danct12 and Martijn from postmarketOS.&lt;br /&gt;
This utility boots from micro SD and exposes the internal eMMC flash storage when the PinePhone is connected to a computer.&lt;br /&gt;
The process of flashing an OS to the exposed and mounted eMMC is identical to that of any other storage medium - e.g. a SD card. You can use the 'DD' command or a utility such as Etcher or Gnome Disks, etc.&lt;br /&gt;
&lt;br /&gt;
Latest Jumpdrive can be found [https://github.com/dreemurrs-embedded/Jumpdrive/releases/ here].&lt;br /&gt;
&lt;br /&gt;
==== Detailed usage instructions ====&lt;br /&gt;
&lt;br /&gt;
# Download the Jumpdrive image&lt;br /&gt;
# Flash the Jumpdrive image to a micro SD card&lt;br /&gt;
# Boot the PinePhone from the Jumpdrive micro SD card&lt;br /&gt;
# Connect the PinePhone to your computer using USB-A -&amp;gt; USB-C cable&lt;br /&gt;
# Flash the exposed PinePhone drive (e.g. /dev/mm..., check for the right device in dmesg, GNOME disks, or similar, and make sure it's unmounted) with your chosen OS image&lt;br /&gt;
# Once the flashing process is complete, disconnect the PinePhone from your PC, power it down and remove the Jumpdrive SD card&lt;br /&gt;
# The process is now finished, and you can boot from eMMC&lt;br /&gt;
&lt;br /&gt;
Jumpdrive also acts as a rescue image in case if you messed up your installation. To do so, you can telnet to '''172.16.42.1''', mount rootfs and fix it!&lt;br /&gt;
&lt;br /&gt;
==== Resize file system ====&lt;br /&gt;
&lt;br /&gt;
If you flash a 4GB image distribution (such as phosh+debian) to your eMMC, your eMMC will only have a 3.7GB partition on it. To use the entire 14.7GB on the eMMC, run the following commands:&lt;br /&gt;
&lt;br /&gt;
# sudo cfdisk /dev/sdX&lt;br /&gt;
# Change to [Resize] in the ncurses program, resize the 3.7GB partition to 14.7GB, and [Write]&lt;br /&gt;
# sudo resize2fs /dev/sdXY&lt;br /&gt;
&lt;br /&gt;
Replace X with your drive's name. Replace Y with the partition you resized in cfdisk.&lt;br /&gt;
&lt;br /&gt;
==== Feedback ====&lt;br /&gt;
&lt;br /&gt;
If you've found an issue or want to improve the tool consider these sites:&lt;br /&gt;
&lt;br /&gt;
* Issues: https://github.com/dreemurrs-embedded/Jumpdrive/issues&lt;br /&gt;
* Pull Requests: https://github.com/dreemurrs-embedded/Jumpdrive/pulls&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
&lt;br /&gt;
For a list of frequently asked questions (including information regarding the shipping) see [[PinePhone FAQ]].&lt;br /&gt;
&lt;br /&gt;
== PinePhone board information, schematics and certifications ==&lt;br /&gt;
* PinePhone mainboard schematic:&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2a%20Released%20Schematic.pdf PinePhone mainboard Released Schematic ver 1.2a]&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20v1.2%20Released%20Schematic.pdf PinePhone mainboard Released Schematic ver 1.2]&lt;br /&gt;
** [[PinePhone_v1.2|PinePhone schematic ver 1.2 change list]]&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20Schematic%20v1.1%2020191031.pdf &amp;quot;Braveheart&amp;quot; PinePhone mainboard Schematic ver 1.1]&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20mainboard%20top%20placement%20v1.1%2020191031.pdf &amp;quot;Braveheart&amp;quot; PinePhone mainboard component top placement drawing ver 1.1]&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20mainboard%20bottom%20placement%20v1.1%2020191031.pdf &amp;quot;Braveheart&amp;quot; PinePhone mainboard component bottom placement drawing ver 1.1]&lt;br /&gt;
* PinePhone USB-C small board schematic:&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20USB-C%20small%20board%20schematic%20v1.0%2020190730.pdf PinePhone USB-C small board Schematic ver 1.0]&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20USB-C%20small%20board%20top%20placement%20v1.0%2020190730.pdf PinePhone USB-C small board component top placement drawing ver 1.0]&lt;br /&gt;
** [http://files.pine64.org/doc/PinePhone/PinePhone%20USB-C%20small%20board%20bottom%20placement%20v1.0%2020190730.pdf PinePhone USB-C small board component bottom placement drawing ver 1.0]&lt;br /&gt;
* PinePhone certifications:&lt;br /&gt;
** [http://files.pine64.org/doc/cert/PinePhone%20FCC%20SDOC%20Certificate-S19112602605001.pdf PinePhone FCC Certificate]&lt;br /&gt;
** [https://fcc.report/FCC-ID/2AWAG-PINEPHONE RF Exposure SAR Information from FCC ID site]&lt;br /&gt;
** [http://files.pine64.org/doc/cert/PinePhone%20CE%20RED%20Certificate-S19112602602.pdf PinPhone CE RED Certificate]&lt;br /&gt;
** [http://files.pine64.org/doc/cert/PinePhone%20ROHS%20Report.pdf PinePhone ROHS Report]&lt;br /&gt;
* [[PinePhone component list]]&lt;br /&gt;
&lt;br /&gt;
== Datasheets for components and peripherals ==&lt;br /&gt;
&lt;br /&gt;
* Allwinner A64 SoC information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pine64/A64%20brief%20v1.0%2020150323.pdf Allwinner A64 SoC brief introduction]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pine64/A64_Datasheet_V1.1.pdf Allwinner A64 SoC Data Sheet V1.1 (Official Released Version)]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pine64/Allwinner_A64_User_Manual_V1.0.pdf Allwinner A64 SoC User Manual V1.0 (Official Release Version)]&lt;br /&gt;
&lt;br /&gt;
* X-Powers AXP803 PMU (Power Management Unit) information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf AXP803 PMIC datasheet]&lt;br /&gt;
&lt;br /&gt;
* LPDDR3 (178 Balls) SDRAM:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/ATL3A1632H12A_mobile_lpddr3_11x11.5_v1.0_1600.pdf Artmem LPDDR3 datasheet]&lt;br /&gt;
&lt;br /&gt;
* eMMC information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/Kimtigo_fbga153_16_32_64_eMMC_datasheet_v1.3.pdf Kimtigo eMMC datasheet]&lt;br /&gt;
&lt;br /&gt;
* CMOS camera module information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/QZ01-rear-2019-0717(HW)%20Model.pdf PinePhone 5M Pixel Real CMOS Image Sensor Module]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/OV5640_datasheet.pdf OV5640 5MP CMOS Image Sensor SoC for Rear Module datasheet]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/QZ01-front-2019-0717(HW)%20Model.pdf PinePhone 2M Pixel Front CMOS Image Sensor Module]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GC2145 2MP CMOS Image Sensor SoC for Front Module datasheet]&lt;br /&gt;
&lt;br /&gt;
* LCD touch screen panel information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/PinePhone%20LCD-QZ01.pdf 5.99&amp;quot; 1440x720 LCD IPS Panel specification]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/ST7703_DS_v01_20160128.pdf ST7703 LCD Controller datasheet]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/GT917S-Datasheet.pdf GOODiX GT917S Capacitive Touch Controller datasheet]&lt;br /&gt;
&lt;br /&gt;
* Lithium battery information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/PinePhone%20QZ01%20Battery%20Specification.pdf PinePhone Lithium Battery specification]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/PinePhone%20QZ01%20Battery%20ZCV%20Curve%20Chart.xlsx PinePhone Lithium Battery ZCV curve chart]&lt;br /&gt;
&lt;br /&gt;
* WiFi/BT module information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pine64/RTL8723BS.pdf RTL8723BS/RTL8723CS specification]&lt;br /&gt;
&lt;br /&gt;
* LTE module information:&lt;br /&gt;
** [https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Standard_Specification_V1.2.pdf Quectel EG25-G LTE Module specification]&lt;br /&gt;
** [[Media:Quectel EC25EC21 AT Commands Manual V1.2.pdf|EC25&amp;amp;EC21 AT Commands Manual]]&lt;br /&gt;
&lt;br /&gt;
* Sensors:&lt;br /&gt;
** [https://www.st.com/en/mems-and-sensors/lis3mdl.html ST LIS3MDL 3-axis Magnetomater Datasheet]&lt;br /&gt;
** [https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/ InvenSense MPU-6050 Six-Axis (Gyro + Accelerometer) MEMS datasheet]&lt;br /&gt;
** [http://www.sensortek.com.tw/en/product/Proximity_Sensor_with_ALS.html SensorTek STK3335 Ambient Light Sensor and Proximity Sensor]&lt;br /&gt;
&lt;br /&gt;
* Digital video to USB-C bridge:&lt;br /&gt;
** [https://www.analogix.com/en/system/files/AA-002281-PB-6-ANX7688_Product_Brief.pdf ANX7688 product brief]&lt;br /&gt;
&lt;br /&gt;
* Case information:&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/PinePhone%20Exploded%20Diagram%20ver%201.0.pdf PinePhone case exploded diagram]&lt;br /&gt;
** [http://files.pine64.org/doc/datasheet/pinephone/PinePhone%20Back%20Cover.stp PinePhone back cover 3D file]&lt;br /&gt;
&lt;br /&gt;
== Developer works ==&lt;br /&gt;
=== Megous ===&lt;br /&gt;
&lt;br /&gt;
* [https://xnux.eu/howtos/pine64-pinephone-getting-started.html Getting start with PinePhone Hardware]&lt;br /&gt;
* [https://xnux.eu/devices/pine64-pinephone.html#toc-pine64-pinephone State of development progress]&lt;br /&gt;
* [https://xnux.eu/news.html PinePhone Technical News and Update, also applies to other Allwinner devices including PINE A64 SBC]&lt;br /&gt;
&lt;br /&gt;
== External links == &lt;br /&gt;
* [https://store.pine64.org/?post_type=product Pine64 shop]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7128</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7128"/>
		<updated>2020-09-16T09:36:37Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: /* Firmware Recovery */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quectel EG25-G Modem ===&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: Unexplored&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|thumb|right|PinePhone USB_BOOT test points]]&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/archive/master.zip&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7127</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7127"/>
		<updated>2020-09-16T09:36:02Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quectel EG25-G Modem ===&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: Unexplored&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|thumb|PinePhone USB_BOOT test points]]&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/archive/master.zip&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7126</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7126"/>
		<updated>2020-09-16T09:35:17Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quectel EG25-G Modem ===&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: Unexplored&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
[[File:Pinephone-EG25-Recovery.jpg|400px|thumb|right|PinePhone USB_BOOT test points]]&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/archive/master.zip&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:Pinephone-EG25-Recovery.jpg&amp;diff=7125</id>
		<title>File:Pinephone-EG25-Recovery.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:Pinephone-EG25-Recovery.jpg&amp;diff=7125"/>
		<updated>2020-09-16T09:35:09Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{PD|PD}}&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7124</id>
		<title>PineModems</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PineModems&amp;diff=7124"/>
		<updated>2020-09-16T09:24:43Z</updated>

		<summary type="html">&lt;p&gt;Biktorgj: Created page with &amp;quot;= Modems used in Pine64 boards and devices =    == Quectel EG25-G Modem ==  * Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Modems used in Pine64 boards and devices =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Quectel EG25-G Modem ==&lt;br /&gt;
&lt;br /&gt;
* Specifications: https://www.quectel.com/UploadFile/Product/Quectel_EG25-G_LTE_Specification_V1.1.pdf&lt;br /&gt;
* Hardware design: https://www.quectel.com/UploadImage/Downlad/Quectel_EG25-G_Hardware_Design_V1.2.pdf&lt;br /&gt;
* AT Interface reference manual: https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG25-G&amp;amp;EG9x&amp;amp;EM05_FILE_AT_Commands_Manual_V1.0.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Specifications ===&lt;br /&gt;
* Processor Family: Qualcomm MDM9607&lt;br /&gt;
* CPU: Qualcomm MDM9207&lt;br /&gt;
* Cores: 1 ACPU Core, Qualcomm Hexagon DSP&lt;br /&gt;
* Total RAM: 256Mb&lt;br /&gt;
* Total flash space: 256Mb&lt;br /&gt;
* Available RAM for the ACPU: 160Mb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NAND Partition table layout ===&lt;br /&gt;
&lt;br /&gt;
* MTD0: SBL (Secondary Bootloader), called from the BootROM. Used to start the TrustZone kernel and the Application Bootloader (LK). Also used to enter Quectel's recovery mode&lt;br /&gt;
* MTD1: mibib (Unknown, used by the DSP)&lt;br /&gt;
* MTD2: EFS2 (Unexplored, probably NVRAM data, Used by the DSP)&lt;br /&gt;
* MTD3: sys_rev: Unexplored&lt;br /&gt;
* MTD4: rawdata: Unexplored&lt;br /&gt;
* MTD5: tz: TrustZone kernel&lt;br /&gt;
* MTD6: rpm: Resource / Power Manager&lt;br /&gt;
* MTD7: cust_info: Unexplored&lt;br /&gt;
* MTD8: aboot: Application Bootloader. Uses LK (LittleKernel) as the bootloader. By default it allows flashing unsigned images but won't allow booting them, soft-bricking the modem until you enter EDL mode&lt;br /&gt;
* MTD9:  boot: OpenEmbedded boot kernel + DTB&lt;br /&gt;
* MTD10: recovery: Recovery kernel (normally unused)&lt;br /&gt;
* MTD11: modem: ADSP firmware blobs&lt;br /&gt;
* MTD12: misc: Unexplored&lt;br /&gt;
* MTD13: recoveryfs: Recovery filesystem image (FOTA updates)&lt;br /&gt;
* MTD14: usr_data: User data partition (/data when mounted by OpenEmbedded)&lt;br /&gt;
* MTD15: sec (Used to blow fuses in the mdm9207 from images generated by Qualcomm Sectools)&lt;br /&gt;
* MTD16: system (Linux OpenEmbedded root image, formatted in Ubifs filesystem)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Firmware Recovery ===&lt;br /&gt;
The System partition is mounted as readonly mode, but the data partition is writable. It might be possible, if there's an unexpected reset or power is lost while running, that the data partition gets corrupt and thus unable to boot.&lt;br /&gt;
&lt;br /&gt;
The modem has 4 different boot modes:&lt;br /&gt;
* Normal boot&lt;br /&gt;
* Recovery mode (used by the modem usually to install a FOTA update)&lt;br /&gt;
* Fastboot mode&lt;br /&gt;
* Qualcomm EDL Mode&lt;br /&gt;
&lt;br /&gt;
If the modem is unable to boot, depending on the type of crash, it might not show anywhere (USB device missing), it might malfunction (no radio but USB working), or it might enter EDL mode if the entire flash is corrupt&lt;br /&gt;
&lt;br /&gt;
In any scenario, the modem can be triggered to enter EDL mode by shorting two test pins in the PinePhone Motherboard. Power off the phone, short the two test points and start it again while keeping the pads shorted at least until you hear the camera clicking twice (which is normally when the modem is powered)&lt;br /&gt;
[PHOTO]&lt;br /&gt;
&lt;br /&gt;
Download the Firmware Recovery Package and copy it to the Pinephone: https://github.com/Biktorgj/quectel_eg25_recovery/archive/master.zip&lt;br /&gt;
To check if you're currently booted in EDL mode, run lsusb in a terminal and inspect the output. &lt;br /&gt;
You should see the following device listed: Bus 003 Device 003: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)&lt;br /&gt;
&lt;br /&gt;
Once in EDL mode, open a terminal and go to the root directory of the recovery package, and run:&lt;br /&gt;
&lt;br /&gt;
If you use an ARM64 distro (most likely) ./qfirehose_arm64 -f ./&lt;br /&gt;
&lt;br /&gt;
If you use an ARMHF (32 bit) distro: ./qfirehose_armhf -f ./&lt;br /&gt;
&lt;br /&gt;
After it finishes, it will reboot the modem and after about 30 seconds it will get back up and running&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bootloader unlocking ===&lt;br /&gt;
The Modem has a locked bootloader. It won't allow to boot unsigned Kernel images, but will allow to flash them, making it easy to brick the modem. To fix this, you can flash an unlocked bootloader, which will then allow you to do as you please with the hardware.&lt;br /&gt;
&lt;br /&gt;
The source code for the Bootloader is here: https://github.com/Biktorgj/quectel_lk&lt;br /&gt;
Prebuilt binary releases can be downloaded from here: https://github.com/Biktorgj/quectel_lk/releases&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Custom Kernels and system images ===&lt;br /&gt;
&lt;br /&gt;
Custom kernel builds and system images can be created for the modem, though they require a couple of things to be correctly built and be bootable. The source code release for the kernel provided by the manufacturer is incomplete and won't build, and common Android tools mkbootimg and dtbtool won't build a bootable image, even if the kernel is correctly compiled and all the DTB's attached. Further, there's no source for the OpenEmbedded parts, so building a new system image must be done from scratch, and retrieving the mandatory binary blobs to use the ADSP part of the modem.&lt;br /&gt;
&lt;br /&gt;
There's a _Work in progress_ SDK to allow creating custom kernels and system images, which can be downloaded from the following repo: https://github.com/Biktorgj/pinephone_modem_sdk&lt;br /&gt;
&lt;br /&gt;
Once downloaded, you should run the 'init.sh' script, which will create all the base directories and download all the different repos required to build. After the initial setup is complete, run 'make' without arguments to list the available options&lt;/div&gt;</summary>
		<author><name>Biktorgj</name></author>
	</entry>
</feed>