Difference between revisions of "Pinebook Pro"

From PINE64
Jump to: navigation, search
(Software and OS Image Downloads)
(Installing the adapter: Describe the new SSD adapter)
 
(392 intermediate revisions by 39 users not shown)
Line 1: Line 1:
 +
= User Guide =
 +
== Introducing PineBook Pro ==
 +
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running stock Debian with MATE]]
 +
 +
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]
 +
 +
It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open source project can deliver.
 +
 +
Key features include: the RK3399 SOC; USB-C for data, video-out and power-in (3A 5V); privacy switches for the microphone, BT/WiFi module, and camera; and expandable storage via NVMe (PCIe 4x) with an optional adapter.
 +
 +
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1x micro SD card reader (bootable), 1x USB 2.0, 1x USB 3.0, 1x USB type C Host with DP 1.2 and power-in, PCIe 4x for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch).
 +
 +
The keyboard and trackpad both use the USB 2.0 protocol.  The LCD panel uses eDP MiPi display protocol.
 +
 +
Many different Operating Systems (OS) are freely available from the open source community and partner projects.  These include various flavors of Linux (Ubuntu, Debian, Manjaro, etc.) and *BSD.
 +
 
== Software and OS Image Downloads ==
 
== Software and OS Image Downloads ==
=== [[PinebookPro_Software_Release|Pinebook Pro]] ===
 
  
Under [[PinebookPro_Software_Release|'Pinebook Pro Software and OS Image Download Section']] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software.  
+
=== Default Debian MATE Desktop Quick Start ===
 +
 
 +
The default Operating system that ships with the Pinebook Pro is Debian 9 with MATE desktop. It has been built by a community developer called MrFixIt2001, who can be reached on the PINE64 forum or in the chats.
 +
The newest release of the build can downloaded directly from [https://github.com/mrfixit2001/debian_desktop/releases MrFixIt2001's GitHub].
 +
 
 +
'''The default username and password is:'''
 +
* Username: rock
 +
* Password: rock
 +
 
 +
You can change the default ''rock'' username and ''rock'' home directory by logging into root (credentials root/root) instead of the default 'rock' user and running the following in root terminal and substituting desired username for NewUser:
 +
[[File:UpdateScript.png|350px|thumb|right|Location of update script applet icon on stock Debian with MATE]]
 +
<pre>
 +
usermod -l NewUser -d /home/NewUser -m rock
 +
</pre>
 +
 
 +
Once you log back into your new user, Bluetooth will complain about no transfer folder location. To fix this open terminal and type:
 +
<pre>
 +
blueman-services
 +
</pre>
 +
 
 +
From here, select incoming folder under the 'transfer' tab.
 +
 
 +
The build includes a custom updater capable of updating uboot, the Linux kernel and numerous packages. The update script can be ran from both the userspace and the commandline. You will find a small 'Update Script' applet icon in the bottom panel, next to time and date applet.   
 +
 
 +
You can run the script from the terminal using:
 +
<pre>
 +
sudo /usr/bin/mrfixit_update.sh
 +
</pre>
 +
 
 +
More information about the default OS build and version history can be found on the [https://forum.pine64.org/showthread.php?tid=7830 Default OS update log] PINE64 forum thread.
 +
 
 +
=== [[Pinebook Pro_Software_Release|Pinebook Pro]] ===
 +
Under [[Pinebook Pro Software Release|'Pinebook Pro Software and OS Image Download Section']] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software.  
 +
 
 
The list includes OS images and descriptions of:
 
The list includes OS images and descriptions of:
  
* [{{fullurl:PinebookPro_Software_Release#Xenial_Mate_eMMC}} http://files.pine64.org/sw/pine64_installer/json/mate.png] [[PinebookPro_Software_Release#Xenial_Mate_eMMC|'''Xenial Mate (eMMC)''']] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [{{fullurl:Pinebook_Software_Release#Xenial_Mate}} http://files.pine64.org/sw/pine64_installer/json/mate.png] [[Pinebook_Software_Release#Xenial_Mate|'''Xenial Mate (microSD Boot)''']]
+
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} http://files.pine64.org/sw/pine64_installer/json/debian.png] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]
  
* [{{fullurl:PinebookPro_Software_Release#Chromium_Image}} http://files.pine64.org/sw/pine64_installer/json/penguin.png] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]
+
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} http://files.pine64.org/sw/pine64_installer/json/lxde.png] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]
  
* [{{fullurl:PinebookPro_Software_Release#Chromium_Image}} http://files.pine64.org/sw/pine64_installer/json/chromium.jpg] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]
+
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} http://files.pine64.org/sw/pine64_installer/json/mate.png] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]
  
* [{{fullurl:Pinebook_Software_Release#Android_7.x}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[Pinebook_Software_Release#Android_7.x|'''Android 7.x (microSD Boot)''']] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [{{fullurl:Pinebook_Software_Release#Android_6.x_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[Pinebook_Software_Release#Android_7.x_eMMC|'''Android 7.x (eMMC)''']]
+
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} http://files.pine64.org/sw/pine64_installer/json/fedora.png] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]
  
----
+
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} http://files.pine64.org/sw/pine64_installer/json/manjaro.png] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} http://files.pine64.org/sw/pine64_installer/json/opensuse.png] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Q4OS}} http://files.pine64.org/sw/pine64_installer/json/q4os.png] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Armbian}} http://files.pine64.org/sw/pine64_installer/json/armbian.png] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#NetBSD}} http://files.pine64.org/sw/pine64_installer/json/netbsd.png] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Chropmium}} http://files.pine64.org/sw/pine64_installer/json/chromium.jpg] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[PinebookPro_Software_Release#Android_7.1_microSD|'''Android 7.1 (microSD Boot)''']] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [{{fullurl:PinebookPro_Software_Release#Android_7.1_eMMC}} http://files.pine64.org/sw/pine64_installer/json/android_7.png] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Debian_Installer_for_Pinebook_Pro}} http://files.pine64.org/sw/pine64_installer/json/debian.png] [[PinebookPro_Software_Release#Debian_Installer_for_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]
 +
 
 +
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} http://files.pine64.org/sw/pine64_installer/json/gentoo.png]
 +
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]
 +
 
 +
[{{fullurl:PinebookPro_Software_Release#Kali}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]
  
 
=== Quick Links to OS Images Build Sources===
 
=== Quick Links to OS Images Build Sources===
 
'''Some of the provided OS images are still in <span style="color:#FF0000">beta or nightly build</span> and only fit for testing purposes. These images ought to be avoided for normal usage - use them at <span style="color:#FF0000">your own risk</span>'''
 
'''Some of the provided OS images are still in <span style="color:#FF0000">beta or nightly build</span> and only fit for testing purposes. These images ought to be avoided for normal usage - use them at <span style="color:#FF0000">your own risk</span>'''
 
 
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo]
 
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo]
 
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]
 
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]
* [https://github.com/ayufan-rock64/linux-build/releases/ mrfixit2001's Linux debian desktop build repo]
+
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]
* [https://sourceforge.net/projects/q4os/files/stable/ Q4OS]
+
 
 +
== Keyboard ==
 +
The Pinebook Pro is available in two keyboard configurations: ISO and ANSI. Both the keyboard and trackpad in the Pinebook Pro use the USB 2.0 protocol and show up as such in xinput. The keyboard features function (Fn) keys in the F-key row, which include display brightness controls, sound volume, trackpad lock, and other functionality. There is also a custom PINE64 logo key that functions as Menu/Super key. It has also a secondary functionality for setting the privacy switches. 
 +
 
 +
The keyboard firmware binary can be flashed from userspace using the provided open source utility.
 +
 
 +
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].
 +
 
 +
=== Typing special characters ===
 +
The [[Wikipedia:British_and_American_keyboards#Other_keyboard_layouts|UK ISO Layout]] does not have dedicated keys for characters like the German umlauts (Ä,Ö,Ü, etc). Certain characters can still be generated by means of either key combinations or key sequences.
 +
{| class="wikitable"
 +
!Character
 +
!Key combination/sequence
 +
|-
 +
|Ä, Ö, Ü, ä, ö, ü
 +
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]
 +
|-
 +
 +
|[AltGr]+[m]
 +
|-
 +
|Ø, ø
 +
|[AltGr]+[O], [AltGr]+[o]
 +
|-
 +
|@
 +
|[AltGr]+[q] (as on the German layout)
 +
|-
 +
 +
|[AltGr]+[s]
 +
|-
 +
 +
|[AltGr]+[S]
 +
|-
 +
 +
|[AltGr]+[)]
 +
|}
 +
 
 +
=== Privacy Switches ===
 +
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:
 +
 
 +
{| class="wikitable"
 +
|+ Privacy switch function and description
 +
! Combination
 +
! Effect
 +
! Description
 +
! Notes
 +
|-
 +
! scope=row | PINE64 logo key+F10
 +
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled
 +
|-
 +
! scope=row | PINE64 logo key+F11
 +
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = enabled, 3 blinks = disabled.
 +
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).
 +
|-
 +
! scope=row | PINE64 logo key+F12
 +
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled
 +
|}
 +
 
 +
'''(Press the PINE64 logo key plus Fn (10/11/12) for 3 seconds)'''
 +
 
 +
The keyboard uses special firmware that operates separately of the operating system. It detects if either the F10, F11 or F12 key, and the Pine key were pressed for 3 seconds. This disables the peripherals as listed above by cutting off their power. Which has the same result as cutting off the power to each peripheral with a physical switch. This implementation is very secure since the firmware that determines whether a peripheral gets power is not a part of the Pinebook Pro’s operating system. So the power state value for each peripheral cannot be overridden or accessed from the operating system. The power state setting for each peripheral is stored across reboots.
 +
 
 +
== Trackpad ==
 +
The trackpad is large, smooth (metallic to-the-touch), and has two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality.
 +
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].
 +
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater).
 +
 
 +
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.'''
 +
 
 +
Before you start:
 +
 
 +
Please refer to original documentation for details.
 +
 
 +
Your Pinebook Pro should be either fully charged or, preferably, running of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.
 +
 
 +
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies.
 +
 
 +
There are two keyboard versions of the Pinebook Pro, ISO and ANSI. You need to know which model you have prior to running the updater.
 +
FW update steps for both models are listed below. 
 +
 
 +
What you will need:
 +
 
 +
*Your Pinebook Pro fully charged or running off of mains power
 +
*Connection to WiFi
 +
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH
 +
 
 +
'''ISO Model'''
 +
 
 +
From the terminal command line:
 +
 
 +
<pre>
 +
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater
 +
cd pinebook-pro-keyboard-updater
 +
sudo apt-get install build-essential libusb-1.0-0-dev xxd
 +
make
 +
</pre>
 +
 
 +
Step 1
 +
<pre>
 +
cd pinebook-pro-keyboard-updater
 +
sudo ./updater step-1 iso
 +
sudo reboot
 +
</pre>
 +
 
 +
Step 2 (after reboot)
 +
<pre>
 +
cd pinebook-pro-keyboard-updater
 +
sudo ./updater step-2 iso
 +
sudo reboot
 +
</pre>
 +
 
 +
----
 +
 
 +
'''ANSI Model'''
 +
 
 +
*<b>NOTE:</b> Running step-1 on the ansi keyboard model will make the keyboard and trackpad inaccessible until step-2 is run, so an external keyboard must be connected to complete the update on this model!
 +
 
 +
From the terminal command line:
 +
 
 +
<pre>
 +
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater
 +
cd pinebook-pro-keyboard-updater
 +
sudo apt-get install build-essential libusb-1.0-0-dev xxd
 +
make
 +
</pre>
 +
 
 +
Step 1
 +
<pre>
 +
cd pinebook-pro-keyboard-updater
 +
sudo ./updater step-1 ansi
 +
sudo reboot
 +
</pre>
 +
 
 +
Step 2 (after reboot)
 +
<pre>
 +
cd pinebook-pro-keyboard-updater
 +
sudo ./updater step-2 ansi
 +
sudo reboot
 +
</pre>
 +
When done, if some of the keys produce in-correct characters, please check your OSes' language settings. For ANSI users, the default OS shipped with English UK as the default language. You can change it to English US if desired.
 +
 
 +
== Power Supply ==
 +
* Input Power: 5V DC @ 3A
 +
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack
 +
* USB-C 15W PD quickcharge
 +
* Only use one power input at a time, barrel jack OR USB-C
 +
 
 +
== LEDs ==
 +
In total there are four LEDs on the Pinebook Pro, three of which are placed in the top left side of the keyboard, and one near the barrel-port:
 +
 
 +
:1. The red LED next to the barrel-port indicates charging. It will illuminate when mains power is supplied to the Pinebook Pro from either the standard power supply unit or a USB-C smartphone charger.
 +
 
 +
:2. The power indicator LED on the Pinebook Pro supports three different colours: green, amber and red. It is also capable of flashing/blinking to indicate activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused).
 +
 
 +
:3. The Num lock, green LED.
 +
 
 +
:4. The Caps lock, green LED.
 +
 
 +
(The Num and Caps lock LEDs have a secondary function. When the privacy switches get activated they blink to confirm that switch has been activated.)
 +
 
 +
== Webcam ==
 +
* Streaming video resolutions supported, (un-compressed):
 +
** 320 x 240
 +
** 640 x 480
 +
** 800 x 600
 +
** 1280 x 720
 +
** 1600 x 1200
 +
* Still frame resolutions supported:
 +
** 160 x 120
 +
** 176 x 144
 +
** 320 x 240
 +
** 352 x 288
 +
** 640 x 480
 +
** 800 x 600
 +
** 1280 x 720
 +
** 1600 x 1200
 +
* Some people test with the application Cheese
 +
WIP
 +
 
 +
== Microphones ==
 +
Some Pinebook Pro chassis have 2 microphone labeled holes. Only the right hole is populated with a microphone.
 +
 
 +
== Bluetooth and WiFi ==
 +
===Disable Bluetooth===
 +
<pre>
 +
#disable bluetooth once
 +
sudo rfkill block bluetooth &&
 +
 
 +
#confirm
 +
rfkill
 +
</pre>
 +
 
 +
<pre>
 +
#disable bluetooth on boot**
 +
sudo systemctl enable [email protected]
 +
</pre>
 +
 
 +
<nowiki>**This may not work on certain distros.</nowiki>
 +
 
 +
WIP
 +
 
 +
== LCD Panel ==
 +
* Model: BOE NV140FHM-N49
 +
* 14.0" (35.56cm) diagonal size
 +
* 1920x1080 resolution
 +
* 60hz refresh rate
 +
* IPS
 +
* 1000:1 contrast
 +
* 250nt brightness
 +
* 63% sRGB coverage
 +
* 6 bit colour
 +
* 30 pin eDP connection
 +
 
 +
Some people have tested hardware video decode using the following;
 +
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre>
 +
 
 +
== External ports list ==
 +
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.
 +
* Left side
 +
** Barrel jack for power, (with LED)
 +
** USB 3, Type A
 +
** USB 3, Type C
 +
* Right side
 +
** USB 2, Type A
 +
** Standard headset jack
 +
** MicroSD card slot
 +
 
 +
== Using the UART ==
 +
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.
 +
<br> Swapping the tx and rx around from this also works and is more traditional.
 +
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]
 +
 
 +
UART output is enabled by flipping the UART switch to the ON position (item 9). To do so you need to remove the Pinebook Pro's bottom cover - please follow [https://wiki.pine64.org/index.php/Pinebook_Pro_Main_Page#Accessing_the_Internals_-_Disassembly_and_Reassembly proper disassembly and reassembly protocol]. The OFF position is towards the touchpad, the ON position is towards the display hinges.
 +
 
 +
With the UART switch in the ON position, console is relayed via the audiojack and the laptop's sound is turned OFF. Please ensure that you are using a 3.3v interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3v and 5v variants) to avoid damage to the CPU.
 +
 
 +
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:
 +
 
 +
<code>
 +
$ lsusb
 +
</code>
 +
 
 +
you should find a line similar to this:
 +
 
 +
<code>
 +
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
 +
</code>
 +
 
 +
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.
 +
 
 +
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.
 +
 
 +
Serial output should now be accessible using screen, picocom or minicom (and others).
 +
Examples:
 +
 
 +
<code>
 +
screen /dev/ttyUSB0 1500000
 +
 
 +
picocom /dev/ttyUSB0 -b 1500000
 +
 
 +
minicom -D /dev/ttyUSB0 -b 1500000</code>
 +
 
 +
Old versions of U-Boot do not use the UART for console output. <strike>The console function is activated by the Linux kernel. Thus, if you use a non-Pinebook Pro Linux distro and want the UART as a console, you have to manually enable it.</strike>
 +
 
 +
== Using the optional NVMe adapter ==
 +
The optional NVMe adapter allows the use of M.2 cards that support the NVMe standard, (but not SATA standard). The optional NVMe M.2 adapter supports '''M''' & '''M'''+'''B''' keyed devices, in both 2242 & 2280 physical sizes, the most common ones available. In addition, 2230 & 2260 are also supported, though NVMe devices that use those sizes are rare.
 +
 
 +
Once you have fitted and tested your NVMe drive, please add a note to this page [[Pinebook_Pro_Hardware_Accessory_Compatibility]] to help build a list of tried and tested devices.
 +
 
 +
=== Installing the adapter ===
 +
The V2.1-2019-0809 SSD adapter that shipped with the initial Pinebook Pro batches had significant issues. A repair kit will be shipped to address those issues.
 +
(If necessary, it can be modified to work. There is [https://forum.pine64.org/showthread.php?tid=8322&pid=52700#pid52700 an unofficial tutorial on the forums] describing these modifications.)
 +
 
 +
The updated SSD adapter, labeled V2-2019-1107, takes into account the prior problems with trackpad interference. New orders as of Feb. 22nd, 2020 will be the updated adapter.
 +
 
 +
Actual installation instructions are a work in progress.
 +
 
 +
=== Post NVMe install power limiting ===
 +
Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life.
 +
Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);
 +
<pre>$ sudo nvme id-ctrl /dev/nvme0
 +
NVME Identify Controller:
 +
...
 +
ps    0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0
 +
        rwt:0 rwl:0 idle_power:- active_power:-
 +
ps    1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1
 +
        rwt:1 rwl:1 idle_power:- active_power:-
 +
ps    2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2
 +
        rwt:2 rwl:2 idle_power:- active_power:-
 +
ps    3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3
 +
        rwt:3 rwl:3 idle_power:- active_power:-
 +
ps    4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4
 +
        rwt:4 rwl:4 idle_power:- active_power:-
 +
 
 +
$ sudo nvme get-feature /dev/nvme0 -f 2
 +
get-feature:0x2 (Power Management), Current value:00000000
 +
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s
 +
set-feature:02 (Power Management), value:0x000002</pre>
 +
Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.<br>
 +
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/>
 +
<br/>
 +
There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;
 +
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre>
 +
Information for this feature, (on a Pinebook Pro), is a work in progress.
 +
 
 +
=== Using as data drive ===
 +
As long as the kernel in use has both the PCIe and NVMe drivers, you should be able to use a NVMe drive as a data drive. It can automatically mount when booting from either the eMMC or an SD card. This applies to Linux, FreeBSD, and Chromium, using the normal partitioning and file system creation tools. Android requires testing.
 +
 
 +
=== Using as OS root drive ===
 +
The SoC does not include the NVMe boot code, so the NVMe is not in the SoC's boot order. However, using the [https://github.com/mrfixit2001/updates_repo/blob/v1.1/pinebook/filesystem/mrfixit_update.sh u-boot update script] from the mrfixit2001 Debian or [https://pastebin.com/raw/EeK074XB Arglebargle's modified script], and [https://github.com/pcm720/rockchip-u-boot/releases the modified u-boot images] provided by forum user pcm720, you can now add support to boot from an NVMe drive. Binary images are useable with SD, eMMC, and [[Pinebook_Pro_SPI|SPI flash]]. For OS images using the mainline kernel, there are a few variants of u-boot available that also support NVMe as the OS drive. Though these may require writing the u-boot to the SPI flash for proper use of the NVMe as the OS drive.
 +
 
 +
The current boot order, per last testing, for this modified u-boot is:
 +
*microSD
 +
*eMMC
 +
*NVMe
 +
 
 +
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]
 +
 
 +
It is also possible to initially boot off an eMMC or SD card, then transfer to a root file system on the NVMe. Currently, it is necessary to have the U-Boot code on an eMMC or SD card.  (A forum member [https://forum.pine64.org/showthread.php?tid=8439 posted here] about using a modified version of U-Boot with NVMe drivers, that uses <code>/boot</code> and <code>/</code> off the NVMe drive. So this may change in the future.)
 +
 
 +
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].
 +
 
 +
== Caring for the PineBook Pro ==
 +
=== Bypass Cables ===
 +
The mainboard features two (disconnected by default) bypass cables that are only to be used with the battery disconnected. The female (10) male (6) ends of the bypass cables can be connected to provide power to the mainboard if you need to run the laptop without a battery. Please refer to this [http://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]
 +
 
 +
WARNING: Do not connect the bypass cables with the battery connected.  Using the bypass cables with the battery connected can permanently damage the computer.
 +
 
 +
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===
 +
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span>
  
== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ==
+
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can instructions guides concerning disassembly of:
+
  
 
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''
 
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''
Line 34: Line 427:
 
* 14″ Pinebook eMMC Module Removal Guide
 
* 14″ Pinebook eMMC Module Removal Guide
  
== Pinebook Pro Information ==
+
== FAQ ==
* Dimensions: 329mm x 220mm x 12mm (WxDxH)
+
What cool software works out of the box? [[Pinebook Pro OTB Experience]]
* Weight: 1.26Kg
+
* Input Power: DC 5V @ 3A 3.5mm OD/ 1.35mm ID Barrel jack or USB-C 15W PD quickcharge
+
  
 +
= Software tuning guide =
 +
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.
  
 +
== Customizing Pinebook Pro's factory OS ==
 +
Here are some hints on what you can do to customize the Pinebook Pro's factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])
 +
 +
=== Initial user changes, password, name, etc ===
 +
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.
 +
 +
* Reboot (this is just to ensure all background processes belong to the user are not running... there are other ways to achieve this but this way is easy)
 +
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal
 +
* Login as root (login: root, password: root)
 +
* Set a strong password for the root user using the following command and it's prompts:
 +
<pre># passwd (and follow prompts)</pre>
 +
* Rename the rock user to your prefered username (replace myself with whatever you like):
 +
<pre># usermod -l myself -d /home/myself -m rock</pre>
 +
* Rename the rock group to match your preferred username:
 +
<pre># groupmod -n myself rock</pre>
 +
* Put your name in the account, (replace "John A Doe" with your name):
 +
<pre># chfn -f "John A Doe" myself</pre>
 +
* Set a strong password for the normal user:
 +
<pre># passwd myself</pre>
 +
* Log out of the text terminal:
 +
<pre># logout</pre>
 +
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user
 +
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";
 +
<pre>$ blueman-services</pre>
 +
Select "Transfer" tab and set "Incoming Folder" to myself
 +
 +
=== Changing the default hostname ===
 +
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;
 +
<pre>> sudo hostnamectl
 +
  Static hostname: Debian-Desktop
 +
        Icon name: computer
 +
        Machine ID: dccbddccbdccbdccbdccbdccbdccbccb
 +
          Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99
 +
  Operating System: Debian GNU/Linux 9 (stretch)
 +
            Kernel: Linux 4.4.210
 +
      Architecture: arm64</pre>
 +
To change, use this, (with "My_Hostname" used as the example);
 +
<pre>> sudo hostnamectl set-hostname My_Hostname</pre>
 +
Whence done, you can re-verify using the first example.
 +
 +
Then you should backup and edit your <code>/etc/hosts</code> entry's name;
 +
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`
 +
> sudo vi /etc/hosts
 +
127.0.0.1 localhost
 +
127.0.0.1 My_Hostname
 +
::1 localhost ip6-localhost ip6-loopback
 +
fe00::0 ip6-localnet
 +
ff00::0 ip6-mcastprefix
 +
ff02::1 ip6-allnodes
 +
ff02::2 ip6-allrouters
 +
127.0.1.1      linaro-alip</pre>
 +
 +
=== Disable Chromium browser's prompt for passphrase & password storage ===
 +
 +
Perform the following steps:
 +
 +
* On the tool bar, hover over the Chromium icon
 +
* Using the right mouse button, select '''Properties'''
 +
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code>
 +
* Use the '''x Close''' button to save the change
 +
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.
 +
 +
=== Changing the boot splash picture ===
 +
 +
The default boot splash picture can be replaced using the following instructions:
 +
 +
* Install '''ImageMagick''' which will do the conversion
 +
<pre>$ sudo apt-get install imagemagick</pre>
 +
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).
 +
* From the directory in which your new image is stored run the following commands
 +
* Convert your image to the bootsplash raw format using imagemagick convert.
 +
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre>
 +
* Create a backup copy of your current splash screen
 +
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre>
 +
* Copy your new splash screen into place
 +
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre>
 +
* Set the correct permissions on the splash.fb file
 +
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre>
 +
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed
 +
 +
=== Enabling text boot time messages ===
 +
 +
By default most Linux distros have a boot screen with a picture. To see all the messages, use the following;
 +
 +
* Backup and edit the U-Boot configuration file:
 +
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`
 +
chmod a-w /etc/default/u-boot.`date +%Y%m%d`
 +
vi /etc/default/u-boot</pre>
 +
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.
 +
* Update the U-Boot configuration:
 +
<pre>u-boot-update</pre>
 +
* Test and verify you get what you think you should be seeing.
 +
 +
== Chromium tweaks ==
 +
 +
=== Flags ===
 +
 +
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:
 +
 +
<pre>
 +
--disable-low-res-tiling \
 +
--num-raster-threads=6 \
 +
--profiler-timing=0 \
 +
--disable-composited-antialiasing \
 +
--test-type \
 +
--show-component-extension-options \
 +
--ignore-gpu-blacklist \
 +
--use-gl=egl \
 +
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \
 +
--ppapi-flash-version=32.0.0.255 \
 +
--enable-pinch \
 +
--flag-switches-begin \
 +
--enable-gpu-rasterization \
 +
--enable-oop-rasterization \
 +
--flag-switches-end
 +
</pre>
 +
 +
== X-Windows & trackpad tuning ==
 +
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. Use this command to make the change live;
 +
<pre>synclient MinSpeed=0.25</pre>
 +
You may experiment with different settings, but 0.25 was tested as helping noticably.<br>
 +
<br>
 +
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;
 +
<pre>    Section "InputClass"
 +
        Identifier "touchpad catchall"
 +
        Driver "synaptics"
 +
        MatchIsTouchpad "on"
 +
        MatchDevicePath "/dev/input/event*"
 +
        Option "MinSpeed" "0.25"
 +
    EndSection</pre>
 +
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br>
 +
<br>
 +
Another forum user built on the above settings a little, and have found these to be very good:
 +
<pre>synclient MinSpeed=0.25
 +
synclient FingerLow=30
 +
synclient PalmDetect=1
 +
synclient VertScrollDelta=64
 +
synclient HorizScrollDelta=64</pre>
 +
 +
<code>FingerLow</code> has the same value as 'FingerHigh' in one config (30). It is believed to help reduce mouse movement as you lift your finger, but it's not sure if synaptic works like this.
 +
You may find this config to be comfortable for daily use.
 +
<br>
 +
 +
== GVIM has performance issue ==
 +
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/>
 +
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).
 +
 +
== Kernel options ==
 +
Here are some Pinebook Pro & its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.
 +
 +
To see if a specific feature is enabled in the current kernel, you can use something like this;
 +
 +
<pre>
 +
$ zgrep -i rockchip_pcie /proc/config.gz
 +
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set
 +
CONFIG_PHY_ROCKCHIP_PCIE=m
 +
</pre>
 +
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;
 +
<pre>
 +
$ lsmod | grep -i rockchip_pcie
 +
phy_rockchip_pcie      16384  0
 +
</pre>
 +
Note modules are not loaded until needed. Thus, we sometimes check the kernel configuration instead to see if a feature is configured first, then see if it's a module.
 +
 +
=== Hardware video decoding ===
 +
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br>
 +
The default Debian uses Rockchip supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used;
 +
<pre>
 +
$ lsmod | grep rk-vcodec
 +
    or
 +
$ zgrep RK_VCODEC /proc/config.gz
 +
CONFIG_RK_VCODEC=y
 +
</pre>
 +
Note that in the above example, the Rockchip video CODEC is not built as a module, but included into the kernel. Thus, it does not show up in the list modules check.<br>
 +
<br>
 +
Later kernels may use a different option in the configuration as below;
 +
<pre>
 +
$ zgrep HANTRO /proc/config.gz
 +
CONFIG_VIDEO_HANTRO=m
 +
CONFIG_VIDEO_HANTRO_ROCKCHIP=y
 +
</pre>
 +
&nbsp;<br>
 +
 +
= Troubleshooting guide =
 +
Tips, tricks and other information for troubleshooting your Pinebook Pro
 +
=== New from the factory - Pinebook Pro won't boot / power on ===
 +
* Some Pinebook Pros came from the factory with the eMMC switch in the disabled position. It should be switched towards the back / hinge to enable the eMMC.<br>
 +
* The eMMC may have come loose during shipment. [https://wiki.pine64.org/index.php/Pinebook_Pro_Main_Page#Accessing_the_Internals_-_Disassembly_and_Reassembly Open]  the back and verify that the eMMC is firmly seated.<br>
 +
* You may want to try unplugging the SD card daughterboard ribbon cable and see if it powers on (remove the battery and peel off a bit of the tape before unplugging it to avoid damage). If it does, try reseating it on both sides. It might have come loose during shipping.
 +
* It's possible that your eMMC is empty from the factory. Simply create a bootable SD card and see if your Pinebook Pro boots. If so, you can then write an OS image to the eMMC.
 +
 +
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===
 +
* This may happen if you meant to toggle the UART/Headphone switch (9) towards touchpad for headphone use and instead you toggled the eMMC enable/disable switch (24).
 +
* After reenabling eMMC by toggling switch (24) towards hinge, if Pinebook Pro does not turn on then press the RESET button (28). It is clearly marked 'reset' on the PCB board.
 +
 +
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===
 +
* Closely inspect that the shielding is firmly seated in the clips on all sides. You can be seated in the clips on one axis, and have missed on an another axis.
 +
 +
=== Pinebook Pro won't boot when using UART console cable ===
 +
* If you're using the UART cable sold on the Pine Store, you may want to see if it boots after you disconnect it. Some users report that custom-made cables based on FTDI UART adapters do not cause this issue.
 +
* Make sure your USB to serial UART device is 3.3v. Many are 5v and some even +-12v. Pinebook Pro's only support 3.3v and may act eratically when using higher voltage. Further, higher voltage could permananetly damage the Pinebook Pro's SoC.
 +
 +
=== WiFi issues ===
 +
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]
 +
* Next, you may have to modify the <code>/etc/NetworkManager/NetworkManager.conf</code> as root user, and replace <code>managed=false</code> with <code>managed=true</code>. Then reboot.
 +
* For connections that drop and resume too often, it might be due to WiFi power management from earlier OS releases. Later OS releases either removed WiFi power management, or default to full power. (Power management can be turned off via command line with <code>iw dev wlan0 set power_save off</code> or <code>iwconfig wlan0 power off</code>, although it is not persistent through re-boot.)
 +
* If WiFi is un-usable or often crashes when using an alternate OS, then it might because its WiFi firmware is not appropriate for the WiFi chip in the Pinebook Pro. Try the latest firmware patch from [https://gitlab.manjaro.org/tsys/pinebook-firmware/tree/master/brcm https://gitlab.manjaro.org/tsys/pinebook-firmware/tree/master/brcm]
 +
* After re-enabling WiFi via the privacy switch, you have to reboot to restore function. There is a work around for the default Debian, (and may work with others);
 +
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code>
 +
 +
=== Bluetooth issues ===
 +
* When connecting a Bluetooth device, such as a Bluetooth mouse, it does not automatically re-connect on re-boot. In the Bluetooth connection GUI, there is a yellow star for re-connect on boot. Use that button to enable a persistent connection. It can be changed back later.
 +
* Bluetooth-attached speakers or headset require the <b>pulseaudio-module-bluetooth</b> package. If not already installed, it can be installed with a package manager or with:<br>
 +
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre>
 +
* When using Bluetooth-attached speakers or headset and 2.4Ghz WiFi at the same time, you may experience stuttering of the audio. One solution is to use 5Ghz WiFi if you can. Or you may try using a different 2.4Ghz channel, perhaps channel 1 or the top channel, (11 in the USA, or 13/14 in some other countries).
 +
 +
=== Sound issues ===
 +
* Many reports of no sound are due to the OS, incorrect settings, or other software problems (eg. PulseAudio). So first test to see if it is a software or hardware problem, by trying another OS via SD card.  (For example, if Debian is installed on the eMMC, try Ubuntu on SD.)
 +
* If you cannot get sound from the headphone jack, but can get sound from the speakers, then the headphone / UART console switch may be set to the UART mode. You can open the back and check the position of the switch. If set to UART mode, switch it to headphone mode. See the parts layout for the location and correct position of the switch.
 +
* When using the USB C alternate DisplayPort mode, it is possible that the audio has been re-directed through this path. If your monitor has speakers, then see if they work.
 +
* See this [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state /var/lib/alsa/asound.state] for some Alsa tweaks
 +
 +
=== USB docks & USB C alternate mode video ===
 +
The Pinebook Pro uses the RK3399 SoC (System on a Chip). It supports a video pass through mode on the USB C port using DisplayPort alternate mode. This DisplayPort output comes from the same GPU used to display the built-in LCD.
 +
 +
Here are some selection criteria for successfully using the USB C alternate mode for video:
 +
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.
 +
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.
 +
* If USB 3 is also desired from a USB dock, the maximum resolution, frame rate and pixel depth is reduced to half the bandwidth. For example, 4K @ 30hz instead of 60hz.
 +
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).
 +
 +
=== Keys not registering / missing keys when typing ===
 +
This issue occurs when your thumb or edge of the palm makes contact with left or right tip of the trackpad when you type. This is due to the palm rejection firmware being too forceful.  Instead of only disabling the trackpad, so your cursor does not move all over the screen, it disables both the trackpad and the keyboard.
 +
 +
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.
 +
 +
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.
 +
 +
=== Key Mapping ===
 +
* See this [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/10-usb-kbd.hwdb /etc/udev/hwdb.d/10-usb-kbd.hwdb] for some key mapping tweaks
 +
 +
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===
 +
This refers to the firmware update shown here:
 +
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares
 +
* If the system is not responding after the 1st reboot, it's might be easiest to do a system restore, and follow up by running the second step of the trackpad firmware update.
 +
* System restore https://forum.pine64.org/showthread.php?tid=8229
 +
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares
 +
 +
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===
 +
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;
 +
 +
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678  Fn + F keys screwy for F9, F10, F11 and F12]
 +
* Proposed fix [https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater/issues/14#issuecomment-576825396 (ANSI) Fn + F(9-12) has wrong assignment after firmware update #14]
 +
&nbsp;<br>
 +
 +
=== After changing builtin LCD resolution, blank screen ===
 +
Some people find that the text or icons are too small, so they attempt to change the resolution of the built-in display. Afterwards, the display is blank.<br>
 +
Use the following to fix when logged into a text console as yourself, (Control-Alt-F1 through F6). After listing the resolutions, select the native resolution, (1920x1080 aka 1080p).
 +
<pre>export DISPLAY=:0.0
 +
xrandr -q
 +
xrandr -s [resolution]</pre>
 +
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br>
 +
<br>
 +
If the above fix did not work, you can try this:
 +
* Using a text console, (Control-Alt-F1), login with your normal user ID
 +
* Edit the file <code>nano ~/.config/monitors.xml</code>
 +
* Change the "width" value to "1920"
 +
* Change the "height" value to "1080"
 +
* If there is more than one monitor configuration listed, edit that one too.<br>
 +
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Be careful to make no other changes. If needed exit without saving and re-edit.
 +
* Save the file and exit.
 +
* Login using the GUI and test
 +
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code>
 +
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;After the reboot, you should be able to login to the GUI login and have the resolution back to normal.
 +
 +
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =
 +
 +
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!
 +
 +
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]
 +
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]
 +
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]
 +
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]
 +
&nbsp;<br/>
 +
&nbsp;
 +
 +
= Technical Reference =
 +
== Accessing the Internals - Disassembly and Reassembly  ==
 +
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]
 +
 +
'''WARNING:''' Do not open the laptop by lifting the lid while the Pinebook Pro bottom cover is removed - this can cause structural damage to the hinges and/or other plastic components of the chassis such as the IO port cut-outs.
 +
 +
'''WARNING:''' When removing the back cover plate, use care if sliding fingertips between back cover plate and palm rest assembly. The back cover plate edges are sharp.
 +
 +
When disassembling the laptop make sure that it is powered off and folded closed. To remove the bottom cover of the Pinebook Pro, first remove the ten (10) Phillips head screws that hold the bottom section of the laptop in place. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis.
 +
 +
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. To reassemble the Pinebook Pro, slide the bottom section into place so it meets the front lip of the keyboard section. Secure the front section (where the trackpad is located) in place using the short screws in the front left and right corners. Then proceed to pop in the bottom panel into place. Secure the bottom section (where hinges are located) by screwing in the left and right corners. Then screw in the remaining screws and run your finger though the rim on the chassis to make sure its fitted correctly. Note that the front uses the remaining 2 short screws.
 +
 +
NOTE: The screws are small and should only be finger tight. Too much force will strip the threads. If after installing screws the back cover plate has not seated properly on one side, open the display and hold the base on either side of the keyboard and gently flex the base with both hands in opposing directions. Once the side pops further in, then recheck the screws on that side. If it does not pop back in, just let it be.
 +
 +
Screw measurements in mm;
 +
 +
Small screw
 +
 +
Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1,  Overall length - 3.05
 +
 +
Long screw
 +
 +
Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85
 +
 +
== Pinebook Pro Internal Layout ==
 +
=== Main chips ===
 +
* RK3399 system-on-chip (1)
 +
* LPDDR4 SDRAM (21)
 +
* SPI NOR flash memory (29)
 +
* eMMC flash memory (26)
 +
* WiFi/BT module (27)
 +
 +
=== Mainboard Switches and Buttons ===
 +
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack.
 +
 +
The Reset and Recovery buttons (28): the reset button performs an immediate reset of the laptop. The Recovery button is used to place the device in maskrom mode; this mode allows flashing eMMC using Rockchip tools (e.g. rkflashtools).
 +
 +
[[File:PBPL_S.jpg]]
 +
 +
=== Key Internal Parts ===
 +
{| class="wikitable"
 +
|+ Numbered parts classification and description
 +
! Number
 +
! Type
 +
! Descriptor
 +
|-
 +
! scope=row | 1
 +
| Component || RK3399 System-On-Chip
 +
|-
 +
! scope=row | 2
 +
| Socket || PCIe 4X socket for optional NVMe adapter
 +
|-
 +
! scope=row | 3
 +
| Socket || Speakers socket
 +
|-
 +
! scope=row | 4
 +
| Socket || Trackpad socket
 +
|-
 +
! scope=row | 5
 +
| Component || Left speaker
 +
|-
 +
! scope=row | 6
 +
| Connector || Male power bridge connector
 +
|-
 +
! scope=row | 7
 +
| Socket || Keyboard Socket
 +
|-
 +
! scope=row | 8
 +
| Component || Optional NVMe SSD adapter
 +
|-
 +
! scope=row | 9
 +
| Switch || UART/Audio switch - outputs UART via headphone jack
 +
|-
 +
! scope=row | 10
 +
| Socket || Female power bridge socket
 +
|-
 +
! scope=row | 11
 +
| Socket || Battery socket
 +
|-
 +
! scope=row | 12
 +
| Component || Trackpad
 +
|-
 +
! scope=row | 13
 +
| Component || Battery
 +
|-
 +
! scope=row | 14
 +
| Component || Right speaker
 +
|-
 +
! scope=row | 15
 +
| Socket || MicroSD card slot
 +
|-
 +
! scope=row | 16
 +
| Socket || Headphone / UART jack
 +
|-
 +
! scope=row | 17
 +
| Socket || USB 2.0 Type A
 +
|-
 +
! scope=row | 18
 +
| Socket || Daughterboard-to-mainboard ribbon cable socket
 +
|-
 +
! scope=row | 19
 +
| Cable || Daughterboard-to-mainboard ribbon cable
 +
|-
 +
! scope=row | 20
 +
| Component || microphone
 +
|-
 +
! scope=row | 21
 +
| Component || LPDDR4 RAM
 +
|-
 +
! scope=row | 22
 +
| Socket || Mainboard-to-daughterboard ribbon cable socket
 +
|-
 +
! scope=row | 23
 +
| Socket || Microphone socket
 +
|-
 +
! scope=row | 24
 +
| Switch || Switch to hardware disable eMMC
 +
|-
 +
! scope=row | 25
 +
| Antenna || BT/WiFI antenna
 +
|-
 +
! scope=row | 26
 +
| Component || eMMC flash memory module
 +
|-
 +
! scope=row | 27
 +
| Component ||BT/WiFi module chip
 +
|-
 +
! scope=row | 28
 +
| Buttons || Reset and recovery buttons
 +
|-
 +
! scope=row | 29
 +
| Component || SPI flash storage
 +
|-
 +
! scope=row | 30
 +
| Socket || eDP LCD socket
 +
|-
 +
! scope=row | 31
 +
| Socket || Power in barrel socket
 +
|-
 +
! scope=row | 32
 +
| Socket || USB 3.0 Type A
 +
|-
 +
! scope=row | 33
 +
| Socket || USB 3.0 Type C
 +
|}
 +
 +
== Bootable Storage ==
 +
The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C.  The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG.
 +
 +
At this time, the Pinebook Pro ships with a Debian + MATE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC.  Its boot order is: SD, then eMMC. Booting off USB storage is not currently available, but will be in the future.
 +
 +
(An update has been pushed for the default Debian + MATE build that improves compatibility with booting other OSs from an SD card. In order to update, fully charge the battery, establish an internet connection, click the update icon in the toolbar, and then reboot your Pinebook Pro.  Please see [https://forum.pine64.org/showthread.php?tid=7830 this log] for details.)
 +
 +
Please note that PCIe, the interface used for NVMe SSD on the Pinebook Pro, is not bootable on the RK3399 and therefore is not a part of the boot hierarchy. It is possible to run the desired OS from NVMe by pointing extlinux on the eMMC to rootfs on the SSD. This requires uboot, the Kernel image, DTB, and extlinux.conf
 +
in a /boot partition on the eMMC.
 +
 +
=== eMMC information ===
 +
The eMMC storage will show up as multiple block devices:
 +
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB
 +
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB
 +
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB
 +
*mmcblk1 - This block contains the user areas
 +
 +
Only the last is usable as regular storage device in the Pinebook Pro.
 +
The device number of "1" shown above may vary, depending on kernel.
 +
 +
=== Boot sequence details ===
 +
The RK3399's mask 32KB ROM boot code looks for the next stage of code at byte off-set 32768, (sector 64 if using 512 byte sectors). This is where U-Boot code would reside on any media that is bootable.
 +
 +
== Pinebook Pro Dimensions ==
 +
* Dimensions: 329mm x 220mm x 12mm (WxDxH)
 +
* Weight: 1.26Kg
 +
* Screws, estimated dimensions, (until we can get confirmation)
 +
** M2 flat head machine screws
 +
** 6 x 6mm in length
 +
** 4 x 4mm in length, (used along the front edge)
  
 
== SoC and Memory Specification ==
 
== SoC and Memory Specification ==
 +
[[File:Rockchip_RK3399.png|right]]
 
* Based on Rockchip RK3399
 
* Based on Rockchip RK3399
[[File:Rockchip_RK3399.png]]
 
  
 
=== CPU Architecture ===
 
=== CPU Architecture ===
* [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]
 
* [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]
 
 
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU
 
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU
* Cortex-A72:
+
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)
** 1-4x Symmetrical Multiprocessing (SMP) within a single processor cluster, and multiple coherent SMP processor clusters through AMBA 5 CHI or AMBA 4 ACE technology
+
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
** AArch64 for 64-bit support and new architectural features
+
** ARMv8 Cryptography Extensions
 +
** VFPv4 floating point unit supporting single and double-precision operations
 +
** Hardware virtualization support
 +
** TrustZone technology support
 +
** Full CoreSight debug solution
 +
** One isolated voltage domain to support DVFS
 +
* Cortex-A72 (big cluster):
 +
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]
 +
** Superscalar, variable-length, out-of-order pipeline
 
** L1 cache 48KB Icache and 32KB Dcache for each A72  
 
** L1 cache 48KB Icache and 32KB Dcache for each A72  
 
** L2 cache 1024KB for big cluster  
 
** L2 cache 1024KB for big cluster  
** DSP & SIMD extensions
+
* Cortex-A53 (little cluster):
** VFPv4 floating point
+
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]
** Hardware virtualization support
+
** In-order pipeline with symmetric dual-issue of most instructions
* Cortex-A53:
+
 
** L1 cache 32KB Icache and 32KB Dcache for each A53
 
** L1 cache 32KB Icache and 32KB Dcache for each A53
** L2 cache 512KB for little cluster  
+
** L2 cache 512KB for little cluster
* Full implementation of the ARM architecture v8-A instruction set
+
* Cortex-M0 (control processors):
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
+
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]
* ARMv8 Cryptography Extensions
+
** Two Cortex-M0 cooperate with the central processors
* In-order pipeline with symmetric dual-issue of most instructions
+
** Architecture: Armv6-M
* Include VFP v3 hardware to support single and double-precision operations
+
** Thumb/Thumb2 instruction set
* TrustZone technology support
+
** 32 bit only
* Full CoreSight debug solution
+
* One isolated voltage domain to support DVFS
+
  
 
=== GPU Architecture ===
 
=== GPU Architecture ===
Line 77: Line 935:
  
 
=== System Memory ===
 
=== System Memory ===
* LPDDR4 RAM Memory Variants: Dual Channels 4GB.
+
* RAM Memory:
 +
** LPDDR4
 +
** Dual memory channels on the CPU, each 32 bits wide
 +
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel
 +
** 4GB as a single 366 pin mobile RAM chip
 
* Storage Memory:  
 
* Storage Memory:  
** 64GB eMMC module, can be upgrade to 128GB eMMC module. The initiial PINE64 community build version comes wit 128GB eMMC configuration
+
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)
**128Mb built-in SPI Flash memory
+
** eMMC version 5.1, HS400, 8 bit on RK3399 side
  
=== Battery ===
+
=== Video out ===
* Lithium Polymer Battery (10,000mAH)
+
* USB-C Alt mode DP
 +
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)
  
== Display ==
+
=== Expansion Ports ===
* 14.1" 1920x1080 IPS LCD panel
+
* MicroSD card:
 +
** Bootable
 +
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.
 +
** Version SD3.0, (MMC 4.5), up to 50MB/s
 +
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS
 +
* USB ports:
 +
** 1 x USB 2.0 Type-A Host Port, bootable
 +
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable
 +
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable
 +
** Note that high power USB devices may not work reliably on a PBP. Or they may draw enough power to drain the battery even when the PBP is plugged into A.C. One alternative is externally powered USB devices.
 +
* Headphone jack switchable to UART console mux circuit
  
=== Video ===
+
== Additional hardware ==
* USB-C Alt model DP up to 3840x2160p60
+
Hardware that is not part of the SoC.
 +
 
 +
=== Battery ===
 +
* Lithium Polymer Battery (10,000 mAH)
 +
 
 +
=== Display ===
 +
* 14.0" 1920x1080 IPS LCD panel
  
 
=== Audio ===
 
=== Audio ===
 
* 3.5mm stereo earphone/microphone plug
 
* 3.5mm stereo earphone/microphone plug
* Build in stereo speaker
+
* Built-in stereo speakers:
 
+
** Oval in design
 +
** 3 mm high x 20 mm x 30 mm
  
 
=== Network ===
 
=== Network ===
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0
+
* WiFi:
 
+
** 802.11 b/g/n/ac
=== Expansion Ports ===
+
** Dual band: 2.4Ghz & 5Ghz
* microSD - bootable, support SDHC and SDXC, storage up to 256GB
+
** Single antenna
* USB - 1x USB2.0 Type-A Host Port, 1x USB3.0 Type-A Host Port, 1x USB3.0 Type-C OTG Port
+
* Bluetooth 5.0
* optional NVMe adapter
+
* earphone plug with UART console mux circuit
+
 
+
  
 +
=== Optional NVMe adapter ===
 +
* PCIe 2.x, 5GT/s per lane
 +
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)
 +
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too
 +
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260
 +
* Power: 2.5W continuous, 8.25W peak momentary
 +
* Does not support SATA M.2 cards
 +
* Does not support USB M.2 cards
  
 
== Pinebook Pro Schematics and Certifications ==
 
== Pinebook Pro Schematics and Certifications ==
* Pinebook Pro Main Board Schematic:
+
* Pinebook Pro Main Board Schematic And Silkscreen:
** Not Yet Available
+
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]
* Pinkbook Daughter Board Schematic:
+
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]
** [http://files.pine64.org/doc/pinebook/pinebook_smallboard_schematic_1.0.pdf Pinebook Daughter Board Schematic]
+
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]
* Pinkbook Serial Console Earphone Jack Pinout:
+
* Pinebook Pro Daughter Board Schematic:
 +
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]
 +
* Optional Pinebook Pro NVMe Adapter Schematic:
 +
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]
 +
* Serial Console Earphone Jack Pinout:
 
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]
 
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]
 
+
* Pinebook Pro Case:
 +
** [https://send.firefox.com/download/b34c14f3e0a3d66d/#15Cx1vBaGKmJr57y85U2qQ AutoCAD DWG File]
 
* Pinebook Pro Certifications:
 
* Pinebook Pro Certifications:
** Not Yet Available
+
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]
 
+
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]
 +
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]
  
 
== Datasheets for Components and Peripherals ==
 
== Datasheets for Components and Peripherals ==
Line 125: Line 1,016:
 
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]
 
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]
 
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]
 
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]
* LPDDR4 (200 Balls) SDRAM:
+
* LPDDR4 (366 Balls) SDRAM:
** [http://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]
+
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]
 
* eMMC information:
 
* eMMC information:
 
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]
 
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]
Line 132: Line 1,023:
 
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]
 
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]
 
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]
 
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/H26M64003DQR%20Datasheet.pdf Hynix eMMC Datasheet]
 
** [http://files.pine64.org/doc/datasheet/pine64/FORESEE_eMMC_NCEMBSF9-xxG%20SPEC%20A0%2020150730.pdf Foresee eMMC Datasheet]
 
 
* SPI NOR Flash information:
 
* SPI NOR Flash information:
 
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]
 
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]
** [http://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]
+
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]
 
* Wireless related info:
 
* Wireless related info:
** [[Media:AP6356 datasheet V1.0 07252014.pdf|AMPAK AP6356 2x2 Wi-Fi + Bluetooth4.1 Datasheet]]
+
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]
 
* Audio Codec (ES8316)
 
* Audio Codec (ES8316)
 
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]
 
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]
 
 
* LCD Panel:
 
* LCD Panel:
** [http://files.pine64.org/doc/datasheet/pinebook/14inches-HB140WX1-501(%20EDP1.2)%20Preliminary%20Product%20specification.pdf 14" LCD Panel datasheet]
+
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]
 +
* Internal USB 2 hub:
 +
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]
 
* Touchpad information:
 
* Touchpad information:
** [http://files.pine64.org/doc/datasheet/pinebook/14-Touchpad-HK-9562%20specification.pdf Touchpad Specification for 14" model]
+
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]
* Camera sensor:
+
* Keyboard information:
** [http://files.pine64.org/doc/datasheet/pinebook/ZC-RZ3762-3703%C2%A0S1.0-Camera-Module%20spec.pdf VGA Camera module specification]
+
** [http://www.sinowealth.com/ftp/ph/SH68F83/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]
** [http://files.pine64.org/doc/datasheet/pinebook/VGA-CMOS-Sensor--BF3703%20Datasheet.pdf VGA Camera Sensor Data Sheet]
+
** US ANSI: XK-HS002 MB27716023
 +
* Full HD Camera sensor:
 +
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]
 +
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]
 
* Lithium Battery information:
 
* Lithium Battery information:
 
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]
 
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]
 +
 +
=Skinning and Case Customization=
 +
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.
 +
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]
 +
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]
 +
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]
  
 
= Other Resources =
 
= Other Resources =
 +
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]
 
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]
 
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]
 
* [[RockPro64 Guides]]
 
* [[RockPro64 Guides]]
 +
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)
 
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]
 
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]
 +
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]
 
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]
 
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]
 
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]
 
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]

Latest revision as of 19:57, 22 February 2020

Contents

User Guide

Introducing PineBook Pro

Pinebook Pro running stock Debian with MATE

The Pinebook Pro is a Linux and *BSD ARM laptop from PINE64

It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open source project can deliver.

Key features include: the RK3399 SOC; USB-C for data, video-out and power-in (3A 5V); privacy switches for the microphone, BT/WiFi module, and camera; and expandable storage via NVMe (PCIe 4x) with an optional adapter.

The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1x micro SD card reader (bootable), 1x USB 2.0, 1x USB 3.0, 1x USB type C Host with DP 1.2 and power-in, PCIe 4x for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch).

The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.

Many different Operating Systems (OS) are freely available from the open source community and partner projects. These include various flavors of Linux (Ubuntu, Debian, Manjaro, etc.) and *BSD.

Software and OS Image Downloads

Default Debian MATE Desktop Quick Start

The default Operating system that ships with the Pinebook Pro is Debian 9 with MATE desktop. It has been built by a community developer called MrFixIt2001, who can be reached on the PINE64 forum or in the chats. The newest release of the build can downloaded directly from MrFixIt2001's GitHub.

The default username and password is:

  • Username: rock
  • Password: rock

You can change the default rock username and rock home directory by logging into root (credentials root/root) instead of the default 'rock' user and running the following in root terminal and substituting desired username for NewUser:

Location of update script applet icon on stock Debian with MATE
usermod -l NewUser -d /home/NewUser -m rock

Once you log back into your new user, Bluetooth will complain about no transfer folder location. To fix this open terminal and type:

blueman-services

From here, select incoming folder under the 'transfer' tab.

The build includes a custom updater capable of updating uboot, the Linux kernel and numerous packages. The update script can be ran from both the userspace and the commandline. You will find a small 'Update Script' applet icon in the bottom panel, next to time and date applet.

You can run the script from the terminal using:

sudo /usr/bin/mrfixit_update.sh 

More information about the default OS build and version history can be found on the Default OS update log PINE64 forum thread.

Pinebook Pro

Under 'Pinebook Pro Software and OS Image Download Section' you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software.

The list includes OS images and descriptions of:

debian.png Debian Desktop (microSD and eMMC Boot)

lxde.png Bionic LXDE (microSD and eMMC Boot)

mate.png Bionic Mate (microSD and eMMC Boot)

fedora.png Fedora (microSD and eMMC Boot)

manjaro.png Manjaro ARM (microSD and eMMC Boot)

opensuse.png OpenSUSE (microSD and eMMC Boot)

q4os.png Q4OS (microSD and eMMC Boot)

armbian.png Armbian (microSD and eMMC Boot)

netbsd.png NetBSD (microSD and eMMC Boot)

chromium.jpg Chromium (microSD and eMMC Boot)

android_7.png Android 7.1 (microSD Boot)           android_7.png Android 7.1 (eMMC)

debian.png Debian Installer for Pinebook Pro

gentoo.png Gentoo Script for Pinebook Pro

Kali.jpeg Kali Script for Pinebook Pro (microSD and eMMC Boot)

Quick Links to OS Images Build Sources

Some of the provided OS images are still in beta or nightly build and only fit for testing purposes. These images ought to be avoided for normal usage - use them at your own risk

Keyboard

The Pinebook Pro is available in two keyboard configurations: ISO and ANSI. Both the keyboard and trackpad in the Pinebook Pro use the USB 2.0 protocol and show up as such in xinput. The keyboard features function (Fn) keys in the F-key row, which include display brightness controls, sound volume, trackpad lock, and other functionality. There is also a custom PINE64 logo key that functions as Menu/Super key. It has also a secondary functionality for setting the privacy switches.

The keyboard firmware binary can be flashed from userspace using the provided open source utility.

Documentation for the keyboard can be found in Datasheets for Components and Peripherals.

Typing special characters

The UK ISO Layout does not have dedicated keys for characters like the German umlauts (Ä,Ö,Ü, etc). Certain characters can still be generated by means of either key combinations or key sequences.

Character Key combination/sequence
Ä, Ö, Ü, ä, ö, ü [AltGr]+'[' followed by [A], [O], [U], [a], [o] or [u]
µ [AltGr]+[m]
Ø, ø [AltGr]+[O], [AltGr]+[o]
@ [AltGr]+[q] (as on the German layout)
ß [AltGr]+[s]
§ [AltGr]+[S]
° [AltGr]+[)]

Privacy Switches

There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:

Privacy switch function and description
Combination Effect Description Notes
PINE64 logo key+F10 Microphone Privacy switch CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled
PINE64 logo key+F11 WiFi Privacy switch NUM lock LED blinks. 2 blinks = enabled, 3 blinks = disabled. Re-enabling requires reboot (or a command line hack to bind/unbind).
PINE64 logo key+F12 Camera privacy switch CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled

(Press the PINE64 logo key plus Fn (10/11/12) for 3 seconds)

The keyboard uses special firmware that operates separately of the operating system. It detects if either the F10, F11 or F12 key, and the Pine key were pressed for 3 seconds. This disables the peripherals as listed above by cutting off their power. Which has the same result as cutting off the power to each peripheral with a physical switch. This implementation is very secure since the firmware that determines whether a peripheral gets power is not a part of the Pinebook Pro’s operating system. So the power state value for each peripheral cannot be overridden or accessed from the operating system. The power state setting for each peripheral is stored across reboots.

Trackpad

The trackpad is large, smooth (metallic to-the-touch), and has two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. Documentation for the trackpad can be found in Datasheets for Components and Peripherals. The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater).

Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.

Before you start:

Please refer to original documentation for details.

Your Pinebook Pro should be either fully charged or, preferably, running of mains. This utility will be writing chips on the keyboard and trackpad, so a loss of power during any stage of the update can result in irrecoverable damage to your trackpad or keyboard.

The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies.

There are two keyboard versions of the Pinebook Pro, ISO and ANSI. You need to know which model you have prior to running the updater. FW update steps for both models are listed below.

What you will need:

  • Your Pinebook Pro fully charged or running off of mains power
  • Connection to WiFi
  • An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH

ISO Model

From the terminal command line:

git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater
cd pinebook-pro-keyboard-updater
sudo apt-get install build-essential libusb-1.0-0-dev xxd
make

Step 1

cd pinebook-pro-keyboard-updater
sudo ./updater step-1 iso
sudo reboot

Step 2 (after reboot)

cd pinebook-pro-keyboard-updater
sudo ./updater step-2 iso
sudo reboot

ANSI Model

  • NOTE: Running step-1 on the ansi keyboard model will make the keyboard and trackpad inaccessible until step-2 is run, so an external keyboard must be connected to complete the update on this model!

From the terminal command line:

git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater
cd pinebook-pro-keyboard-updater
sudo apt-get install build-essential libusb-1.0-0-dev xxd
make

Step 1

cd pinebook-pro-keyboard-updater
sudo ./updater step-1 ansi
sudo reboot

Step 2 (after reboot)

cd pinebook-pro-keyboard-updater
sudo ./updater step-2 ansi
sudo reboot

When done, if some of the keys produce in-correct characters, please check your OSes' language settings. For ANSI users, the default OS shipped with English UK as the default language. You can change it to English US if desired.

Power Supply

  • Input Power: 5V DC @ 3A
  • Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack
  • USB-C 15W PD quickcharge
  • Only use one power input at a time, barrel jack OR USB-C

LEDs

In total there are four LEDs on the Pinebook Pro, three of which are placed in the top left side of the keyboard, and one near the barrel-port:

1. The red LED next to the barrel-port indicates charging. It will illuminate when mains power is supplied to the Pinebook Pro from either the standard power supply unit or a USB-C smartphone charger.
2. The power indicator LED on the Pinebook Pro supports three different colours: green, amber and red. It is also capable of flashing/blinking to indicate activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused).
3. The Num lock, green LED.
4. The Caps lock, green LED.

(The Num and Caps lock LEDs have a secondary function. When the privacy switches get activated they blink to confirm that switch has been activated.)

Webcam

  • Streaming video resolutions supported, (un-compressed):
    • 320 x 240
    • 640 x 480
    • 800 x 600
    • 1280 x 720
    • 1600 x 1200
  • Still frame resolutions supported:
    • 160 x 120
    • 176 x 144
    • 320 x 240
    • 352 x 288
    • 640 x 480
    • 800 x 600
    • 1280 x 720
    • 1600 x 1200
  • Some people test with the application Cheese

WIP

Microphones

Some Pinebook Pro chassis have 2 microphone labeled holes. Only the right hole is populated with a microphone.

Bluetooth and WiFi

Disable Bluetooth

#disable bluetooth once
sudo rfkill block bluetooth && 

#confirm
rfkill
#disable bluetooth on boot**
sudo systemctl enable [email protected]

**This may not work on certain distros.

WIP

LCD Panel

  • Model: BOE NV140FHM-N49
  • 14.0" (35.56cm) diagonal size
  • 1920x1080 resolution
  • 60hz refresh rate
  • IPS
  • 1000:1 contrast
  • 250nt brightness
  • 63% sRGB coverage
  • 6 bit colour
  • 30 pin eDP connection

Some people have tested hardware video decode using the following;

ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -

External ports list

Here are a list of the external ports. See Technical Reference - Expansion Ports for port specifications.

  • Left side
    • Barrel jack for power, (with LED)
    • USB 3, Type A
    • USB 3, Type C
  • Right side
    • USB 2, Type A
    • Standard headset jack
    • MicroSD card slot

Using the UART

Headphone jack UART wiring reference.
Swapping the tx and rx around from this also works and is more traditional.
See this official Pine64 .pdf.

UART output is enabled by flipping the UART switch to the ON position (item 9). To do so you need to remove the Pinebook Pro's bottom cover - please follow proper disassembly and reassembly protocol. The OFF position is towards the touchpad, the ON position is towards the display hinges.

With the UART switch in the ON position, console is relayed via the audiojack and the laptop's sound is turned OFF. Please ensure that you are using a 3.3v interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3v and 5v variants) to avoid damage to the CPU.

Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:

$ lsusb

you should find a line similar to this:

Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.

The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.

Serial output should now be accessible using screen, picocom or minicom (and others). Examples:

screen /dev/ttyUSB0 1500000

picocom /dev/ttyUSB0 -b 1500000

minicom -D /dev/ttyUSB0 -b 1500000

Old versions of U-Boot do not use the UART for console output. The console function is activated by the Linux kernel. Thus, if you use a non-Pinebook Pro Linux distro and want the UART as a console, you have to manually enable it.

Using the optional NVMe adapter

The optional NVMe adapter allows the use of M.2 cards that support the NVMe standard, (but not SATA standard). The optional NVMe M.2 adapter supports M & M+B keyed devices, in both 2242 & 2280 physical sizes, the most common ones available. In addition, 2230 & 2260 are also supported, though NVMe devices that use those sizes are rare.

Once you have fitted and tested your NVMe drive, please add a note to this page Pinebook_Pro_Hardware_Accessory_Compatibility to help build a list of tried and tested devices.

Installing the adapter

The V2.1-2019-0809 SSD adapter that shipped with the initial Pinebook Pro batches had significant issues. A repair kit will be shipped to address those issues. (If necessary, it can be modified to work. There is an unofficial tutorial on the forums describing these modifications.)

The updated SSD adapter, labeled V2-2019-1107, takes into account the prior problems with trackpad interference. New orders as of Feb. 22nd, 2020 will be the updated adapter.

Actual installation instructions are a work in progress.

Post NVMe install power limiting

Some NVMe SSDs allow reducing the maximum amount of power. Doing so may reduce the speed, but it may be needed in the Pinebook Pro to both improve reliability at lower battery levels. And to reduce power used, to maintain battery life. Here are the commands to obtain and change the power settings. The package 'nvme-cli' is required to run these commands. The example shows how to find the available power states, and then sets it to the lowest, non-standby setting, (which is 3.8 watts for the device shown);

$ sudo nvme id-ctrl /dev/nvme0
NVME Identify Controller:
...
ps    0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0
         rwt:0 rwl:0 idle_power:- active_power:-
ps    1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1
         rwt:1 rwl:1 idle_power:- active_power:-
ps    2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2
         rwt:2 rwl:2 idle_power:- active_power:-
ps    3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3
         rwt:3 rwl:3 idle_power:- active_power:-
ps    4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4
         rwt:4 rwl:4 idle_power:- active_power:-

$ sudo nvme get-feature /dev/nvme0 -f 2
get-feature:0x2 (Power Management), Current value:00000000
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s
set-feature:02 (Power Management), value:0x000002

Some NVMe SSDs don't appear to allow saving the setting with "-s" option. In those cases, leave off the "-s" and use a startup script to set the non-default power state at boot.
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.

There is another power saving feature for NVMes, APST, (Autonomous Power State Transitions). This performs the power saving & transitions based on usage. To check if you have a NVMe SSD with this feature;

$ sudo nvme get-feature -f 0x0c -H /dev/nvme0

Information for this feature, (on a Pinebook Pro), is a work in progress.

Using as data drive

As long as the kernel in use has both the PCIe and NVMe drivers, you should be able to use a NVMe drive as a data drive. It can automatically mount when booting from either the eMMC or an SD card. This applies to Linux, FreeBSD, and Chromium, using the normal partitioning and file system creation tools. Android requires testing.

Using as OS root drive

The SoC does not include the NVMe boot code, so the NVMe is not in the SoC's boot order. However, using the u-boot update script from the mrfixit2001 Debian or Arglebargle's modified script, and the modified u-boot images provided by forum user pcm720, you can now add support to boot from an NVMe drive. Binary images are useable with SD, eMMC, and SPI flash. For OS images using the mainline kernel, there are a few variants of u-boot available that also support NVMe as the OS drive. Though these may require writing the u-boot to the SPI flash for proper use of the NVMe as the OS drive.

The current boot order, per last testing, for this modified u-boot is:

  • microSD
  • eMMC
  • NVMe

For more information, please refer to the forum post.

It is also possible to initially boot off an eMMC or SD card, then transfer to a root file system on the NVMe. Currently, it is necessary to have the U-Boot code on an eMMC or SD card. (A forum member posted here about using a modified version of U-Boot with NVMe drivers, that uses /boot and / off the NVMe drive. So this may change in the future.)

Please see Bootable Storage.

Caring for the PineBook Pro

Bypass Cables

The mainboard features two (disconnected by default) bypass cables that are only to be used with the battery disconnected. The female (10) male (6) ends of the bypass cables can be connected to provide power to the mainboard if you need to run the laptop without a battery. Please refer to this engineering notice.

WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.

Pinebook Service Step-by-Step Guides

Placeholder for Pinebook Pro specific guides

Under 'Service Guides for Pinebook' you can find instructions guides concerning disassembly of:

Note: The installation process on Pinebook Pro similar to 14" Pinebook

Note: The installation process is the reverse order of removal guide

  • 14″ Pinebook Lithium Battery Pack Removal Guide
  • 14″ Pinebook LCD Panel Screen Removal Guide
  • 14″ Pinebook eMMC Module Removal Guide

FAQ

What cool software works out of the box? Pinebook Pro OTB Experience

Software tuning guide

Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.

Customizing Pinebook Pro's factory OS

Here are some hints on what you can do to customize the Pinebook Pro's factory image (aka mrfixit2001 debian build)

Initial user changes, password, name, etc

When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.

  • Reboot (this is just to ensure all background processes belong to the user are not running... there are other ways to achieve this but this way is easy)
  • Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal
  • Login as root (login: root, password: root)
  • Set a strong password for the root user using the following command and it's prompts:
# passwd (and follow prompts)
  • Rename the rock user to your prefered username (replace myself with whatever you like):
# usermod -l myself -d /home/myself -m rock
  • Rename the rock group to match your preferred username:
# groupmod -n myself rock
  • Put your name in the account, (replace "John A Doe" with your name):
# chfn -f "John A Doe" myself
  • Set a strong password for the normal user:
# passwd myself
  • Log out of the text terminal:
# logout
  • Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user
  • Open text terminal to fix login error: "Configured directory for incoming files does not exist";
$ blueman-services

Select "Transfer" tab and set "Incoming Folder" to myself

Changing the default hostname

Debian 9 has a command to allow you to change the hostname. You can see the current settings using;

> sudo hostnamectl
   Static hostname: Debian-Desktop
         Icon name: computer
        Machine ID: dccbddccbdccbdccbdccbdccbdccbccb
           Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99
  Operating System: Debian GNU/Linux 9 (stretch)
            Kernel: Linux 4.4.210
      Architecture: arm64

To change, use this, (with "My_Hostname" used as the example);

> sudo hostnamectl set-hostname My_Hostname

Whence done, you can re-verify using the first example.

Then you should backup and edit your /etc/hosts entry's name;

> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`
> sudo vi /etc/hosts
127.0.0.1	localhost
127.0.0.1	My_Hostname
::1		localhost ip6-localhost ip6-loopback
fe00::0		ip6-localnet
ff00::0		ip6-mcastprefix
ff02::1		ip6-allnodes
ff02::2		ip6-allrouters
127.0.1.1       linaro-alip

Disable Chromium browser's prompt for passphrase & password storage

Perform the following steps:

  • On the tool bar, hover over the Chromium icon
  • Using the right mouse button, select Properties
  • In the Command: line section, add --password-store=basic before the %U
  • Use the x Close button to save the change

This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.

Changing the boot splash picture

The default boot splash picture can be replaced using the following instructions:

  • Install ImageMagick which will do the conversion
$ sudo apt-get install imagemagick
  • Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).
  • From the directory in which your new image is stored run the following commands
  • Convert your image to the bootsplash raw format using imagemagick convert.
$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb
  • Create a backup copy of your current splash screen
$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb
  • Copy your new splash screen into place
$ sudo cp splash.fb /usr/share/backgrounds/splash.fb
  • Set the correct permissions on the splash.fb file
$ sudo chmod 644 /usr/share/backgrounds/splash.fb
  • If you do not want to see kernel console text messages, make sure you don't have Plymouth installed

Enabling text boot time messages

By default most Linux distros have a boot screen with a picture. To see all the messages, use the following;

  • Backup and edit the U-Boot configuration file:
cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`
chmod a-w /etc/default/u-boot.`date +%Y%m%d`
vi /etc/default/u-boot

Remove the quiet and splash parameters. Leave everything else alone.

  • Update the U-Boot configuration:
u-boot-update
  • Test and verify you get what you think you should be seeing.

Chromium tweaks

Flags

From the official Debian image:

--disable-low-res-tiling \
--num-raster-threads=6 \
--profiler-timing=0 \
--disable-composited-antialiasing \
--test-type \
--show-component-extension-options \
--ignore-gpu-blacklist \
--use-gl=egl \
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \
--ppapi-flash-version=32.0.0.255 \
--enable-pinch \
--flag-switches-begin \
--enable-gpu-rasterization \
--enable-oop-rasterization \
--flag-switches-end

X-Windows & trackpad tuning

Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. Use this command to make the change live;

synclient MinSpeed=0.25

You may experiment with different settings, but 0.25 was tested as helping noticably.

To make the change persist across reboots, change the file /etc/X11/xorg.conf similar to below;

    Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "MinSpeed" "0.25"
    EndSection

The line Option "MinSpeed" "0.25" is the change.

Another forum user built on the above settings a little, and have found these to be very good:

synclient MinSpeed=0.25
synclient FingerLow=30
synclient PalmDetect=1
synclient VertScrollDelta=64
synclient HorizScrollDelta=64

FingerLow has the same value as 'FingerHigh' in one config (30). It is believed to help reduce mouse movement as you lift your finger, but it's not sure if synaptic works like this. You may find this config to be comfortable for daily use.

GVIM has performance issue

It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).

Kernel options

Here are some Pinebook Pro & its RK3399 SoC Linux specific options. If kernel version, (or version range specific), it should list that information in the description.

To see if a specific feature is enabled in the current kernel, you can use something like this;

$ zgrep -i rockchip_pcie /proc/config.gz
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set
CONFIG_PHY_ROCKCHIP_PCIE=m

If it's listed as =m, then it's a module. You can see if the module is loaded with;

$ lsmod | grep -i rockchip_pcie
phy_rockchip_pcie      16384  0

Note modules are not loaded until needed. Thus, we sometimes check the kernel configuration instead to see if a feature is configured first, then see if it's a module.

Hardware video decoding

Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.
The default Debian uses Rockchip supplied kernel module rk-vcodec. To check, something like this can be used;

$ lsmod | grep rk-vcodec
    or
$ zgrep RK_VCODEC /proc/config.gz
CONFIG_RK_VCODEC=y

Note that in the above example, the Rockchip video CODEC is not built as a module, but included into the kernel. Thus, it does not show up in the list modules check.

Later kernels may use a different option in the configuration as below;

$ zgrep HANTRO /proc/config.gz
CONFIG_VIDEO_HANTRO=m
CONFIG_VIDEO_HANTRO_ROCKCHIP=y

 

Troubleshooting guide

Tips, tricks and other information for troubleshooting your Pinebook Pro

New from the factory - Pinebook Pro won't boot / power on

  • Some Pinebook Pros came from the factory with the eMMC switch in the disabled position. It should be switched towards the back / hinge to enable the eMMC.
  • The eMMC may have come loose during shipment. Open the back and verify that the eMMC is firmly seated.
  • You may want to try unplugging the SD card daughterboard ribbon cable and see if it powers on (remove the battery and peel off a bit of the tape before unplugging it to avoid damage). If it does, try reseating it on both sides. It might have come loose during shipping.
  • It's possible that your eMMC is empty from the factory. Simply create a bootable SD card and see if your Pinebook Pro boots. If so, you can then write an OS image to the eMMC.

Pinebook Pro will not power on after toggling the eMMC enable/disable switch

  • This may happen if you meant to toggle the UART/Headphone switch (9) towards touchpad for headphone use and instead you toggled the eMMC enable/disable switch (24).
  • After reenabling eMMC by toggling switch (24) towards hinge, if Pinebook Pro does not turn on then press the RESET button (28). It is clearly marked 'reset' on the PCB board.

Pinebook Pro will not power on after removing and replacing EMI shielding

  • Closely inspect that the shielding is firmly seated in the clips on all sides. You can be seated in the clips on one axis, and have missed on an another axis.

Pinebook Pro won't boot when using UART console cable

  • If you're using the UART cable sold on the Pine Store, you may want to see if it boots after you disconnect it. Some users report that custom-made cables based on FTDI UART adapters do not cause this issue.
  • Make sure your USB to serial UART device is 3.3v. Many are 5v and some even +-12v. Pinebook Pro's only support 3.3v and may act eratically when using higher voltage. Further, higher voltage could permananetly damage the Pinebook Pro's SoC.

WiFi issues

  • First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See Privacy Switches
  • Next, you may have to modify the /etc/NetworkManager/NetworkManager.conf as root user, and replace managed=false with managed=true. Then reboot.
  • For connections that drop and resume too often, it might be due to WiFi power management from earlier OS releases. Later OS releases either removed WiFi power management, or default to full power. (Power management can be turned off via command line with iw dev wlan0 set power_save off or iwconfig wlan0 power off, although it is not persistent through re-boot.)
  • If WiFi is un-usable or often crashes when using an alternate OS, then it might because its WiFi firmware is not appropriate for the WiFi chip in the Pinebook Pro. Try the latest firmware patch from https://gitlab.manjaro.org/tsys/pinebook-firmware/tree/master/brcm
  • After re-enabling WiFi via the privacy switch, you have to reboot to restore function. There is a work around for the default Debian, (and may work with others);

        sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'

Bluetooth issues

  • When connecting a Bluetooth device, such as a Bluetooth mouse, it does not automatically re-connect on re-boot. In the Bluetooth connection GUI, there is a yellow star for re-connect on boot. Use that button to enable a persistent connection. It can be changed back later.
  • Bluetooth-attached speakers or headset require the pulseaudio-module-bluetooth package. If not already installed, it can be installed with a package manager or with:
sudo apt-get install pulseaudio-module-bluetooth
  • When using Bluetooth-attached speakers or headset and 2.4Ghz WiFi at the same time, you may experience stuttering of the audio. One solution is to use 5Ghz WiFi if you can. Or you may try using a different 2.4Ghz channel, perhaps channel 1 or the top channel, (11 in the USA, or 13/14 in some other countries).

Sound issues

  • Many reports of no sound are due to the OS, incorrect settings, or other software problems (eg. PulseAudio). So first test to see if it is a software or hardware problem, by trying another OS via SD card. (For example, if Debian is installed on the eMMC, try Ubuntu on SD.)
  • If you cannot get sound from the headphone jack, but can get sound from the speakers, then the headphone / UART console switch may be set to the UART mode. You can open the back and check the position of the switch. If set to UART mode, switch it to headphone mode. See the parts layout for the location and correct position of the switch.
  • When using the USB C alternate DisplayPort mode, it is possible that the audio has been re-directed through this path. If your monitor has speakers, then see if they work.
  • See this /var/lib/alsa/asound.state for some Alsa tweaks

USB docks & USB C alternate mode video

The Pinebook Pro uses the RK3399 SoC (System on a Chip). It supports a video pass through mode on the USB C port using DisplayPort alternate mode. This DisplayPort output comes from the same GPU used to display the built-in LCD.

Here are some selection criteria for successfully using the USB C alternate mode for video:

  • The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.
  • The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.
  • If USB 3 is also desired from a USB dock, the maximum resolution, frame rate and pixel depth is reduced to half the bandwidth. For example, 4K @ 30hz instead of 60hz.
  • USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).

Keys not registering / missing keys when typing

This issue occurs when your thumb or edge of the palm makes contact with left or right tip of the trackpad when you type. This is due to the palm rejection firmware being too forceful. Instead of only disabling the trackpad, so your cursor does not move all over the screen, it disables both the trackpad and the keyboard.

Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.

A firmware update has been released to address this.

Key Mapping

Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update

This refers to the firmware update shown here: https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares

ANSI Fn + F keys wrong for F9, F10, F11 and F12

There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;

 

After changing builtin LCD resolution, blank screen

Some people find that the text or icons are too small, so they attempt to change the resolution of the built-in display. Afterwards, the display is blank.
Use the following to fix when logged into a text console as yourself, (Control-Alt-F1 through F6). After listing the resolutions, select the native resolution, (1920x1080 aka 1080p).

export DISPLAY=:0.0
xrandr -q
xrandr -s [resolution]

Once your resolution is restored, try using the Tweak app to set scaling, instead.

If the above fix did not work, you can try this:

  • Using a text console, (Control-Alt-F1), login with your normal user ID
  • Edit the file nano ~/.config/monitors.xml
  • Change the "width" value to "1920"
  • Change the "height" value to "1080"
  • If there is more than one monitor configuration listed, edit that one too.

      Be careful to make no other changes. If needed exit without saving and re-edit.

  • Save the file and exit.
  • Login using the GUI and test
  • If you are still loggied in via the GUI, you will have to reboot using sudo shutdown -r now

      After the reboot, you should be able to login to the GUI login and have the resolution back to normal.

PineBookPro Hardware Compatibility

Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!

 
 

Technical Reference

Accessing the Internals - Disassembly and Reassembly

Pinebook Screw stand-offs correct placement and location

WARNING: Do not open the laptop by lifting the lid while the Pinebook Pro bottom cover is removed - this can cause structural damage to the hinges and/or other plastic components of the chassis such as the IO port cut-outs.

WARNING: When removing the back cover plate, use care if sliding fingertips between back cover plate and palm rest assembly. The back cover plate edges are sharp.

When disassembling the laptop make sure that it is powered off and folded closed. To remove the bottom cover of the Pinebook Pro, first remove the ten (10) Phillips head screws that hold the bottom section of the laptop in place. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis.

During reassembly, make sure that the back-screw standoffs are in place and seated correctly. To reassemble the Pinebook Pro, slide the bottom section into place so it meets the front lip of the keyboard section. Secure the front section (where the trackpad is located) in place using the short screws in the front left and right corners. Then proceed to pop in the bottom panel into place. Secure the bottom section (where hinges are located) by screwing in the left and right corners. Then screw in the remaining screws and run your finger though the rim on the chassis to make sure its fitted correctly. Note that the front uses the remaining 2 short screws.

NOTE: The screws are small and should only be finger tight. Too much force will strip the threads. If after installing screws the back cover plate has not seated properly on one side, open the display and hold the base on either side of the keyboard and gently flex the base with both hands in opposing directions. Once the side pops further in, then recheck the screws on that side. If it does not pop back in, just let it be.

Screw measurements in mm;

Small screw

Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05

Long screw

Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85

Pinebook Pro Internal Layout

Main chips

  • RK3399 system-on-chip (1)
  • LPDDR4 SDRAM (21)
  • SPI NOR flash memory (29)
  • eMMC flash memory (26)
  • WiFi/BT module (27)

Mainboard Switches and Buttons

There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack.

The Reset and Recovery buttons (28): the reset button performs an immediate reset of the laptop. The Recovery button is used to place the device in maskrom mode; this mode allows flashing eMMC using Rockchip tools (e.g. rkflashtools).

PBPL S.jpg

Key Internal Parts

Numbered parts classification and description
Number Type Descriptor
1 Component RK3399 System-On-Chip
2 Socket PCIe 4X socket for optional NVMe adapter
3 Socket Speakers socket
4 Socket Trackpad socket
5 Component Left speaker
6 Connector Male power bridge connector
7 Socket Keyboard Socket
8 Component Optional NVMe SSD adapter
9 Switch UART/Audio switch - outputs UART via headphone jack
10 Socket Female power bridge socket
11 Socket Battery socket
12 Component Trackpad
13 Component Battery
14 Component Right speaker
15 Socket MicroSD card slot
16 Socket Headphone / UART jack
17 Socket USB 2.0 Type A
18 Socket Daughterboard-to-mainboard ribbon cable socket
19 Cable Daughterboard-to-mainboard ribbon cable
20 Component microphone
21 Component LPDDR4 RAM
22 Socket Mainboard-to-daughterboard ribbon cable socket
23 Socket Microphone socket
24 Switch Switch to hardware disable eMMC
25 Antenna BT/WiFI antenna
26 Component eMMC flash memory module
27 Component BT/WiFi module chip
28 Buttons Reset and recovery buttons
29 Component SPI flash storage
30 Socket eDP LCD socket
31 Socket Power in barrel socket
32 Socket USB 3.0 Type A
33 Socket USB 3.0 Type C

Bootable Storage

The Pinebook Pro is capable of booting from eMMC, USB 2.0, USB 3.0, or an SD card. It cannot boot from USB-C. The boot order of the hard-coded ROM of its RK3399 SoC is: SPI NOR, eMMC, SD, USB OTG.

At this time, the Pinebook Pro ships with a Debian + MATE build with uboot on the eMMC. Its boot order is: SD, then eMMC. Booting off USB storage is not currently available, but will be in the future.

(An update has been pushed for the default Debian + MATE build that improves compatibility with booting other OSs from an SD card. In order to update, fully charge the battery, establish an internet connection, click the update icon in the toolbar, and then reboot your Pinebook Pro. Please see this log for details.)

Please note that PCIe, the interface used for NVMe SSD on the Pinebook Pro, is not bootable on the RK3399 and therefore is not a part of the boot hierarchy. It is possible to run the desired OS from NVMe by pointing extlinux on the eMMC to rootfs on the SSD. This requires uboot, the Kernel image, DTB, and extlinux.conf in a /boot partition on the eMMC.

eMMC information

The eMMC storage will show up as multiple block devices:

  • mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB
  • mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB
  • mmcblk1rpmb - eMMC standard secure data partition, may be 16MB
  • mmcblk1 - This block contains the user areas

Only the last is usable as regular storage device in the Pinebook Pro. The device number of "1" shown above may vary, depending on kernel.

Boot sequence details

The RK3399's mask 32KB ROM boot code looks for the next stage of code at byte off-set 32768, (sector 64 if using 512 byte sectors). This is where U-Boot code would reside on any media that is bootable.

Pinebook Pro Dimensions

  • Dimensions: 329mm x 220mm x 12mm (WxDxH)
  • Weight: 1.26Kg
  • Screws, estimated dimensions, (until we can get confirmation)
    • M2 flat head machine screws
    • 6 x 6mm in length
    • 4 x 4mm in length, (used along the front edge)

SoC and Memory Specification

Rockchip RK3399.png
  • Based on Rockchip RK3399

CPU Architecture

  • big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU
    • Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)
    • ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
    • ARMv8 Cryptography Extensions
    • VFPv4 floating point unit supporting single and double-precision operations
    • Hardware virtualization support
    • TrustZone technology support
    • Full CoreSight debug solution
    • One isolated voltage domain to support DVFS
  • Cortex-A72 (big cluster):
  • Cortex-A53 (little cluster):
    • Quad-core Cortex-A53 up to 1.5GHz CPU
    • In-order pipeline with symmetric dual-issue of most instructions
    • L1 cache 32KB Icache and 32KB Dcache for each A53
    • L2 cache 512KB for little cluster
  • Cortex-M0 (control processors):
    • Cortex-M0 CPU
    • Two Cortex-M0 cooperate with the central processors
    • Architecture: Armv6-M
    • Thumb/Thumb2 instruction set
    • 32 bit only

GPU Architecture

  • ARM Mali-T860MP4 Quad-core GPU
  • The highest performance GPUs built on Arm Mali’s famous Midgard architecture, the Mali-T860 GPU is designed for complex graphics use cases and provide stunning visuals for UHD content.
  • Frequency 650MHz
  • Throughput 1300Mtri/s, 10.4Gpix/s
  • OpenGL® ES 1.1, 1.2, 2.0, 3.1, 3.2., Vulkan 1.0*., OpenCL™ 1.1, 1.2., DirectX® 11 FL11_1., RenderScript™.

System Memory

  • RAM Memory:
    • LPDDR4
    • Dual memory channels on the CPU, each 32 bits wide
    • Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel
    • 4GB as a single 366 pin mobile RAM chip
  • Storage Memory:
    • 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)
    • eMMC version 5.1, HS400, 8 bit on RK3399 side

Video out

  • USB-C Alt mode DP
  • Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)

Expansion Ports

  • MicroSD card:
    • Bootable
    • Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.
    • Version SD3.0, (MMC 4.5), up to 50MB/s
    • SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS
  • USB ports:
    • 1 x USB 2.0 Type-A Host Port, bootable
    • 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable
    • 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable
    • Note that high power USB devices may not work reliably on a PBP. Or they may draw enough power to drain the battery even when the PBP is plugged into A.C. One alternative is externally powered USB devices.
  • Headphone jack switchable to UART console mux circuit

Additional hardware

Hardware that is not part of the SoC.

Battery

  • Lithium Polymer Battery (10,000 mAH)

Display

  • 14.0" 1920x1080 IPS LCD panel

Audio

  • 3.5mm stereo earphone/microphone plug
  • Built-in stereo speakers:
    • Oval in design
    • 3 mm high x 20 mm x 30 mm

Network

  • WiFi:
    • 802.11 b/g/n/ac
    • Dual band: 2.4Ghz & 5Ghz
    • Single antenna
  • Bluetooth 5.0

Optional NVMe adapter

  • PCIe 2.x, 5GT/s per lane
  • 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)
  • M keyed, though M+B keyed devices will work too
  • Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260
  • Power: 2.5W continuous, 8.25W peak momentary
  • Does not support SATA M.2 cards
  • Does not support USB M.2 cards

Pinebook Pro Schematics and Certifications

Datasheets for Components and Peripherals

Skinning and Case Customization

Other Resources