https://wiki.pine64.org/api.php?action=feedcontributions&user=Arwen&feedformat=atomPINE64 - User contributions [en]2024-03-29T11:31:38ZUser contributionsMediaWiki 1.37.1https://wiki.pine64.org/index.php?title=Pinebook_Pro_Software_Releases&diff=11738Pinebook Pro Software Releases2021-11-03T18:39:43Z<p>Arwen: /* Armbian */ Mention PBP has no official support</p>
<hr />
<div>= Linux OS Image Releases =<br />
For information on how to install these images onto your device, please see the [[NOOB]] Page, which includes information on writing images to the device eMMC or an SD card<br />
<br />
== Manjaro ARM ==<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
The Manjaro project offers a mainline kernel with patches and modules to support PBPro hardware. To learn more about Manjaro please visit [https://forum.manjaro.org/tags/manjaroarm Manjaro Forum]. You can follow the ongoing discussion about Manjaro on the [https://forum.pine64.org/showthread.php?tid=8207 PINE64 forum].<br />
All images boot from both SD card and the internal eMMC module.<br />
<br />
=== Manjaro ARM with KDE Plasma ===<br />
<br />
* [https://manjaro.org/downloads/arm/pinebook-pro/arm8-pinebook-pro-kde-plasma/ Direct download from Manjaro]<br />
<br />
=== Manjaro ARM with Xfce ===<br />
<br />
* [https://manjaro.org/downloads/arm/pinebook-pro/arm8-pinebook-pro-xfce/ Direct download from Manjaro]<br />
<br />
=== Manjaro ARM with Gnome ===<br />
<br />
* [https://manjaro.org/downloads/arm/pinebook-pro/arm8-pinebook-pro-gnome/ Direct download from Manjaro]<br />
<br />
=== Manjaro ARM with Sway ===<br />
* [https://manjaro.org/downloads/arm/pinebook-pro/arm8-pinebook-pro-sway/ Direct download from Manjaro]<br />
<br />
=== Manjaro ARM with no desktop ===<br />
* [https://manjaro.org/downloads/arm/pinebook-pro/arm8-pinebook-pro-minimal/ Direct download from Manjaro]<br />
<br />
== Armbian ==<br />
[[File:armbian.png|right|100px]]<br />
As of Nov. 3rd, 2021, Pinebook Pro has No official support (CSC) from Armbian.<br />
<br />
To find out more about Armbian and available options please visit their [https://www.armbian.com/pinebook-pro/ site].<br />
<br />
=== Armbian Ubuntu Focal with Xfce (mainline kernel) ===<br />
<br />
Armbian provides a mainline kernel build images for Ubuntu Focal with Xfce Desktop. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://dl.armbian.com/pinebook-pro/Focal_current_desktop Armbian's Pinebook Pro Ubuntu Focal Xfce]<br />
<br />
=== Armbian Ubuntu Focal with Gnome (mainline kernel) ===<br />
<br />
Armbian provides a mainline kernel build images for Ubuntu Focal with GNOME Desktop. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://redirect.armbian.com/region/NA/pinebook-pro/Focal_current_gnome]<br />
<br />
=== Armbian Ubuntu Focal with Xfce (legacy kernel) ===<br />
<br />
Armbian provides a legacy kernel 4.4 build images for Ubuntu Focal with Xfce Desktop. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://dl.armbian.com/pinebook-pro/Focal_legacy_desktop Armbian's Pinebook Pro Ubuntu Focal Xfce]<br />
<br />
=== Armbian Debian Buster with Xfce (legacy kernel) ===<br />
<br />
Armbian provides a legacy kernel 4.4 build images for Debian Buster with Xfce Desktop. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://dl.armbian.com/pinebook-pro/Buster_legacy_desktop Armbian's Pinebook Pro Debian Buster Xfce]<br />
<br />
=== Armbian Ubuntu Bionic with Xfce (legacy kernel) ===<br />
<br />
Armbian provides a legacy kernel 4.4 build images for Ubuntu Bionic with Xfce Desktop. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://dl.armbian.com/pinebook-pro/Bionic_legacy_desktop Armbian's Pinebook Pro Ubuntu Bionic Xfce Desktop download site]<br />
<br />
== Twister OS ==<br />
[[File:Twister_OS.png|right|100px]]<br />
<br />
Twister OS Armbian-Reforged with Xfce. It boots from microSD card and from eMMC. For more information on Twister OS, please visit this [https://twisteros.com/ official site]. You can follow the ongoing discussion about Twister OS on the [https://forum.pine64.org/showthread.php?tid=12192 PINE64 forum].<br />
<br />
'''Installation'''<br />
<br />
* After flashing image, edit /boot/armbianEnv.txt, replace the dtb name with <code>rk3399-pinebook-pro.dtb</code><br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://twisteros.com/twisterarmbian.html Direct download latest images from Twister OS's website] (size: 2.8GB)<br />
<br />
'''Password'''<br />
<br />
asdasd<br />
<br />
== Fedora ==<br />
[[File:fedora1.png|right|100px]]<br />
<br />
=== Fedora Official ===<br />
<br />
Using this [https://nullr0ute.com/2021/05/fedora-on-the-pinebook-pro/ blog post] it is now possible to run Official Fedora on the Pinebook Pro. <br />
<br />
'''Notes'''<br />
Upstream Fedora uses SPI flash on the Pinebook Pro to manage uboot. <br />
<br />
=== Fedora 34/33/32 Gnome/KDE/Minimal Images ===<br />
<br />
Unofficial images based on Fedora, and a [https://copr.fedorainfracloud.org/coprs/aptupdate/pinebook-pro/ copr] repository for kernel and tweaks. It boots from microSD card and from eMMC. To learn more about how they are build [https://github.com/bengtfredh/pinebook-pro-fedora-installer Install script].<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://s3.fredhs.net/minio/pinebook-pro-image/ Fedora Pinebook Pro Images]<br />
<br />
=== Fedora 32 with Cinnamon ===<br />
<br />
This image contains an install of Fedora with [https://cinnamon-spices.linuxmint.com/ Cinnamon] desktop environment. It boots from microSD card and from eMMC. To learn more about Fedora please visit the [https://getfedora.org/ official website].<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://builds.armdevelopers.com/pinebook-pro/releases/dev/Fedora32-Cinnamon-Desktop-202009.0.pinebook-pro.img.xz Fedora 32 Pinebook Pro Image]<br />
<br />
'''Username and password'''<br />
<br />
root/fedora<br />
<br />
=== Fedora 32 with KDE ===<br />
<br />
This image contains an install of Fedora with [https://kde.org/ KDE aka Plasma] desktop environment. It boots from microSD card and from eMMC. To learn more about Fedora please visit the [https://getfedora.org/ official website].<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://builds.armdevelopers.com/pinebook-pro/releases/dev/Fedora32-KDE-Desktop-202009.0.pinebook-pro.img.xz Fedora 32 Pinebook Pro Image]<br />
<br />
'''Username and password'''<br />
<br />
root/fedora<br />
<br />
=== Fedora 32 with Xfce===<br />
<br />
This image contains an install of Fedora with [https://xfce.org/ Xfce] desktop environment. It boots from microSD card and from eMMC. To learn more about Fedora please visit the [https://getfedora.org/ official website].<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://builds.armdevelopers.com/pinebook-pro/releases/dev/Fedora32-Xfce-Desktop-202009.0.pinebook-pro.img.xz Fedora 32 Pinebook Pro Image]<br />
<br />
'''Username and password'''<br />
<br />
root/fedora<br />
<br />
=== Fedora 32 with Gnome ===<br />
<br />
This image contains an install of Fedora with [https://www.gnome.org/gnome-3/ GNOME 3] desktop environment. It boots from microSD card and from eMMC. To learn more about Fedora please visit the [https://getfedora.org/ official website].<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://builds.armdevelopers.com/pinebook-pro/releases/dev/Fedora32-Workstation-202009.0.pinebook-pro.img.xz Fedora 32 Pinebook Pro Image]<br />
<br />
'''Username and password'''<br />
<br />
root/fedora<br />
<br />
== Arch Linux ARM ==<br />
[[File:Archlinux-logo.png|right|100px]]<br />
<br />
Arch Linux ARM root filesystem customized for the Pinebook Pro. Instructions are included for installation on microSD card, eMMC module and NVME SSD.<br />
<br />
'''Download location'''<br />
<br />
[https://github.com/SvenKiljan/archlinuxarm-pbp/releases/latest Get the latest image from GitHub] (size: 591 MB).<br />
<br />
'''Installation'''<br />
<br />
Make sure to thoroughly read the [https://github.com/SvenKiljan/archlinuxarm-pbp/blob/main/README.md readme], [https://github.com/SvenKiljan/archlinuxarm-pbp/blob/main/README.md installation instructions] and [https://github.com/SvenKiljan/archlinuxarm-pbp/blob/main/FAQ.md FAQ].<br />
<br />
'''Username and password'''<br />
<br />
The default Arch Linux ARM user credentials.<br />
<br />
Username: alarm<br />
<br />
Password: alarm<br />
<br />
The password for the root account is 'root'.<br />
<br />
== postmarketOS ==<br />
[[File:PostmarketOS logo.png|right|100px]]<br />
<br />
Official postmarketOS build with the GNOME desktop for the Pinebook Pro. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://images.postmarketos.org/bpo/edge/pine64-pinebookpro/ Direct download latest images from postmarketOS] (size: 400 MB)<br />
<br />
'''Username and password'''<br />
<br />
demo/demo<br />
<br />
or:<br />
<br />
demo/147147<br />
<br />
==Kali Linux==<br />
[[File:Kali.jpeg|right|100px]]<br />
<br />
=== Kali Linux prebuilt OS images for Pinebook Pro===<br />
<br />
Official pre-built OS images of Kali Linux for the Pinebook Pro featuring all tools you'd expect from the distribution. It boots from microSD card and from eMMC.<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://www.offensive-security.com/kali-linux-arm-images/ Direct download latest images from Offensive Security's website] (size: 2.0 GB)<br />
<br />
'''Username and password'''<br />
<br />
kali/kali<br />
<br />
== Q4OS ==<br />
[[File:q4os.png|right|100px]]<br />
<br />
Q4OS is advertised as a 'fast and powerful operating system based on the latest technologies while offering highly productive desktop environment'. It boots from microSD card and from eMMC. To learn more please visit the [https://forum.pine64.org/showthread.php?tid=8385 PINE64 forum] or official [https://q4os.org/index.html Q4OS website].<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [https://sourceforge.net/projects/q4os/files/stable/ Direct download latest release build from SourceForge]<br />
<br />
'''Username and password'''<br />
<br />
User account and password are created on first run.<br />
<br />
== DietPi ==<br />
[[File:dietpi.png|right|100px]]<br />
<br />
* DietPi is a '''lightweight''', yet '''easy to setup''' and '''feature-rich''' Linux distribution, based on '''Debian'''.<br />
* To find out more about DietPi, please visit the [https://dietpi.com/docs/ official documentation].<br />
* Discuss the Pinebook build on the [https://forum.pine64.org/showthread.php?tid=14061 PINE64 forum thread].<br />
* DD image (for 4 GiB micro SD card and above)<br />
** [https://dietpi.com/downloads/images/DietPi_PinebookPro-ARMv8-Bullseye.7z Direct download from dietpi.com]<br />
* Login with<br />
** Username: '''root'''<br />
** Password: '''dietpi'''<br />
<br />
== openSUSE ==<br />
[[File:opensuse-distribution.png|right|100px]]<br />
<br />
'''Download location'''<br />
<br />
Get the latest openSUSE Tumbleweed images for Pinebook Pro here: [https://en.opensuse.org/HCL:Pinebook-Pro-RK3399]<br />
<br />
== FydeOS ==<br />
An operating system based on the Chromium Project<br />
<br />
https://fydeos.io/download/device/pinebook-pro<br />
<br />
= BSD =<br />
<br />
==NetBSD==<br />
[[File:netbsd.png|right|100px]]<br />
<br />
The image boots from microSD card and from eMMC. To learn more about NetBSD please visit [https://www.netbsd.org/ NetBSD main page]<br />
<br />
'''Download location'''<br />
<br />
Get the latest image here: [http://www.armbsd.org/arm/ Direct download from NetBSD]<br />
<br />
'''Installation'''<br />
<br />
Instructions concerning enabling SSH can be found [https://www.netbsd.org/docs/guide/en/chap-boot.html#chap-boot-ssh here].<br />
<br />
'''Username and password'''<br />
<br />
root/(none)<br />
<br />
==OpenBSD==<br />
[[File:Puffy_mascot_openbsd.png|right|100px]]<br />
<br />
The image boots from microSD card and from eMMC. To learn more about OpenBSD, please visit [https://www.openbsd.org/ OpenBSD main page]<br />
<br />
'''Download location'''<br />
<br />
ARM64 images, (including support for Pinebook Pro), can be found here [https://www.openbsd.org/arm64.html OpenBSD arm64]<br />
<br />
= Linux Installer Releases =<br />
<br />
== Manjaro ARM ==<br />
[[File:Manjaro.png|right|100px]]<br />
<br />
The [https://gitlab.manjaro.org/manjaro-arm/applications/manjaro-arm-installer manjaro-arm-installer] script is intended to install Manjaro ARM directly to SD/eMMC cards without the need for images (including LXQT, Mate & CuboCore editions, as well as full disk encryption). Running on a Linux x86 computer, it can install Manjaro ARM directly to an empty eMMC using an eMMC to USB adapter. The script can also be run from SD to install an image to the eMMC.<br />
<br />
== Debian ==<br />
[[File:debian.png|right|100px]]<br />
<br />
* Uses only the upstream kernel and firmware without special patches<br />
* No graphical display yet, works only through serial console<br />
* Requires adding the non-free component to your /etc/apt/sources.list file and installing the "firmware-linux" package for Wi-Fi and Bluetooth support<br />
* Installer is loaded into RAM, can install onto the same media from which it’s booted<br />
* Supports automatic partitioning and full disk encryption through LVM<br />
* Installer currently doesn't install the bootloader, leaving the installed system in an unbootable state until it's manually added<br />
<br />
[https://d-i.debian.org/daily-images/arm64/daily/netboot/SD-card-images/ The relevant files are built daily here] and may sometimes be unavailable if the build system is having issues. The "README.concatenateable_images" file provides instructions on how to combine the partition.img.gz file with the firmware.pinebook-pro.rk3399.img.gz file in order to create a DD-able image.<br />
<br />
The official images are '''not''' recommended yet until the display begins working and the installer properly installs the bootloader. Most users will want to see [[Pinebook Pro Debian Installer|Daniel Thompson's Debian Installer]] instead.<br />
<br />
== Gentoo ==<br />
[[File:GentooLogo.png|right|100px]]<br />
<br />
There is a script that prepares a Gentoo arm64 stage 3 tarball for the Pinebook Pro. The script takes care of device specifics like an optimized make.conf, an overlay that provides kernel and firmware amongst others, and other miscellaneous fixes.<br />
<br />
'''Installation'''<br />
<br />
* The usual tarball setup as per [https://wiki.gentoo.org/wiki/Handbook:AMD64 Gentoo Handbook] is left to the user.<br />
* Forum thread with instructions at https://forum.pine64.org/showthread.php?tid=8765<br />
<br />
== Kali Linux ==<br />
[[File:Kali.jpeg|right|100px]]<br />
<br />
There is a script to create official Kali Linux OS images for the Pinebook Pro. The script carries out the build process in entirety and is Pinebook Pro specific.<br />
<br />
'''Installation'''<br />
<br />
* Please pull the latest [https://gitlab.com/kalilinux/build-scripts/kali-arm/blob/master/pinebook-pro.sh Kali Linux install script] from the project's GitLab.<br />
* For more information regarding building the OS image please read the README instruction at https://gitlab.com/kalilinux/build-scripts/kali-arm/blob/master/README.md<br />
<br />
== K1ss OS ==<br />
[[File:K1ss.png|right|100px]]<br />
<br />
There is a repository containing an unofficial port of KISS Linux to AARCH64. The tarball is built for generic aarch64, currently being tested on the Pinebook Pro. You can follow the ongoing discussion about K1ss Linux on the [https://forum.pine64.org/showthread.php?tid=9304 PINE64 forum].<br />
<br />
'''Installation'''<br />
<br />
* Please pull the latest [https://github.com/jedavies-dev/kiss-aarch64 K1ss Linux install script] from the project's GitHub.<br />
<br />
== NixOS ==<br />
[[File:nixos.png|right|100px]]<br />
<br />
You can follow the ongoing discussion about NixOS on the [https://forum.pine64.org/showthread.php?tid=10524 PINE64 forum]. There is a good chance we will see Tier 1 support for aarch64, including the Pinebook Pro, in 2021 (see https://github.com/NixOS/rfcs/pull/87).<br />
<br />
'''Installation'''<br />
<br />
* This is instructions to install NixOS on the Pinebook Pro: https://nixos.wiki/wiki/NixOS_on_ARM/PINE64_Pinebook_Pro<br />
* Please pull the latest [https://github.com/samueldr/wip-pinebook-pro samueldr's repository ] from the project's GitHub.<br />
* [[NixOS Tutorials]]<br />
<br />
== SkiffOS ==<br />
[[File:SkiffOS-Icon-1.png|right|100px]]<br />
<br />
'''Installation'''<br />
<br />
* Instructions to build/install on the Pinebook Pro: https://github.com/skiffos/SkiffOS/tree/master/configs/pine64/book<br />
* Please pull the latest version from the project's GitHub.<br />
* Compiling the boot image takes approximately 30 minutes.<br />
* Easily configure the kernel, compiler, etc with Buildroot.<br />
* Pre-built ISOs will be available with the upcoming 2021.02 release.<br />
<br />
<br />
[[Category:PineBook Pro]]</div>Arwenhttps://wiki.pine64.org/index.php?title=PineNote&diff=11099PineNote2021-08-19T16:30:08Z<p>Arwen: /* Android SDK */ Add section for hardware troubleshooting</p>
<hr />
<div>[[File:PineNote-1.jpg|frame]]<br />
<br />
The PineNote is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.<br />
<br />
== Specification ==<br />
<br />
[[File:PineNote_Pen_function.jpg|300px|right]]<br />
[[File:PineNote_Cover-1.jpg|300px|right]]<br />
<br />
=== General Information ===<br />
* Dimensions: 191.1x232.5x7.4mm<br />
* Weight: 438g<br />
<br />
=== Core ===<br />
* CPU: RK3566 1.8GHz 64-bit quad-core A55<br />
* GPU: MALI G52 2EE<br />
* System memory: 4GB LPDDR4<br />
* Flash: 128GB eMMC<br />
<br />
=== E-ink Display ===<br />
* Size: 10.3"<br />
* Resolution: 1404x1872<br />
* DPI: 227<br />
* Grayscale: 16<br />
* Front Light: 36 level cold and warm <br />
* Capacitive multi-touch panel<br />
* EMR pen digitizer<br />
<br />
=== Network ===<br />
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac<br />
* Bluetooth: 5.0<br />
<br />
=== Audio ===<br />
* Built in stereo speakers<br />
* 4 x DMIC microphone<br />
<br />
=== Sensor ===<br />
* G-Sensor for portrait and landscape sensing<br />
<br />
=== Power ===<br />
* 4000mAH LiPo battery<br />
* DC 5V @ 3A USB-C connector<br />
<br />
=== Accessories ===<br />
* Optional EMR pen with magnetic attachment (included in the first production batch)<br />
* Optional Cover (included in the first production batch)<br />
<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
* Not yet available<br />
<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory : 4GB LPDDR4.<br />
* Flash Memory: 128GB eMMC<br />
<br />
== PineNote Information, Schematics, and Certifications ==<br />
* The early release schematic just for reference only and used by developers who received the prototype. <br />
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]<br />
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** Not yet available<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip RK817 PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** ---<br />
* eMMC information:<br />
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G] <br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3" 1872x1404 ES103TC2 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* Touch Screen information:<br />
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]<br />
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3" Display Module<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* G Sensor info:<br />
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]<br />
* Audio Amplifier information:<br />
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]<br />
<br />
<br />
== Development Efforts ==<br />
<br />
=== Software ===<br />
<br />
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC<br />
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver<br />
<br />
=== Hardware ===<br />
<br />
This section includes discussions and their results regarding hardware changes to the PineNote.<br />
<br />
==== Closed-Case UART ====<br />
<br />
Developers usually don't like taking their devices apart to debug bootloaders. Therefore, it is important to provide resources to debug the PineNote's boot process such as a hardware UART. Recent PINE64 devices have included a hardware UART connected to their 3.5mm TRRS jacks through a hardware switch. However, the PineNote doesn't have an audio jack. It also doesn't have a convenient place to put a hardware switch which is accessible without taking the device apart. The case only has the affordance for a single USB-C port.<br />
<br />
We decided to ask the PineNote product team to explore USB-C Debug Accessory Mode, where the product changes the USB-C port's personality when both CC1 and CC2 are pulled high. In normal usage, either CC1 or CC2 will be floating since these are the connector rotation pins. When both are detected, there is a very good chance that a debug harness is connected.<br />
<br />
This decision requires the PineNote motherboard to be able to detect an AND condition between CC1 and CC2 and connect one of the SOC's UARTs to pins on the USB-C connector. In all other cases, the UART should be disconnected. It also requires the PINE64 Store ship a simple one-sided (no magical flipping here, sorry) connector board which breaks out USB 2.0 and UART.<br />
<br />
There were concerns that cheap USB-C cables have both CC1 and CC2 shorted together to save a wire. This may cause the PineNote to output 3.3v UART to a device that isn't expecting it, assuming the two are plugged together with a nonstandard cable. This seems unfounded (or not enough of a problem to worry about on a large scale), since the USB-C specification states in section B.2.3.1, "The general concept for setting up a valid connection between a DTS and TS is based on being able to detect the typical USB Type-C termination resistances. However, detecting a Debug Accessory Mode connection requires that both CC pins must detect a pull-up (Rp) or pull-down (Rd) termination. A USB Type-C Cable does not pass both CC wires so a receptacle to receptacle Debug Accessory Mode connection cannot be detected."<br />
<br />
There were concerns that checking CC1 and CC2 being pulled high was not strictly to USB-C standard, as detecting them being pulled low is mentioned in the standard. However, detecting a pull-up condition is all that is required. According to the USB-C spec, 'B.2.4.1.5.1 ("UnattachedDeb.SRC Requirements"), a Debug and Test System (DTS) that is a power source must pull CC1/CC2 up, while the Target System (TS) in Unattached.SNK is supposed to pull them low.' In English, this means that we'd only need to detect a pull-up condition on CC1 and CC2, meaning a logical AND between them is a sane solution.<br />
IRC logs of this discussion can be found at [[PineNote/Debug_Accessory_Mode_Discussion]].<br />
<br />
It should be possible to make the UART connection and breakout cable magically flippable by connecting the UART multiple times to the USB-C port.<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for PineNote and Quart64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 eink SDK for PineNote and Quart64 model A SBC ===<br />
* This is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
== Hardware troubleshooting guide ==<br />
At present, nothing is available.<br />
<br />
[[Category:PineNote]] [[Category:Rockchip RK3566]]</div>Arwenhttps://wiki.pine64.org/index.php?title=PineNote&diff=11098PineNote2021-08-19T16:20:42Z<p>Arwen: /* Audio */ Fixed wording</p>
<hr />
<div>[[File:PineNote-1.jpg|frame]]<br />
<br />
The PineNote is the first hybrid notepad computer device combination of notebook, tablet and e-reader using an e-ink panel. It is derived from the Quartz64 model A SBC and powered by a Rockchip RK3566 quad-core ARM Cortex A55 64-bit processor with a MALI G-52 GPU.<br />
<br />
== Specification ==<br />
<br />
[[File:PineNote_Pen_function.jpg|300px|right]]<br />
[[File:PineNote_Cover-1.jpg|300px|right]]<br />
<br />
=== General Information ===<br />
* Dimensions: 191.1x232.5x7.4mm<br />
* Weight: 438g<br />
<br />
=== Core ===<br />
* CPU: RK3566 1.8GHz 64-bit quad-core A55<br />
* GPU: MALI G52 2EE<br />
* System memory: 4GB LPDDR4<br />
* Flash: 128GB eMMC<br />
<br />
=== E-ink Display ===<br />
* Size: 10.3"<br />
* Resolution: 1404x1872<br />
* DPI: 227<br />
* Grayscale: 16<br />
* Front Light: 36 level cold and warm <br />
* Capacitive multi-touch panel<br />
* EMR pen digitizer<br />
<br />
=== Network ===<br />
* WiFi: 2.4/5GHz 802.11a/b/g/n/ac<br />
* Bluetooth: 5.0<br />
<br />
=== Audio ===<br />
* Built in stereo speakers<br />
* 4 x DMIC microphone<br />
<br />
=== Sensor ===<br />
* G-Sensor for portrait and landscape sensing<br />
<br />
=== Power ===<br />
* 4000mAH LiPo battery<br />
* DC 5V @ 3A USB-C connector<br />
<br />
=== Accessories ===<br />
* Optional EMR pen with magnetic attachment (included in the first production batch)<br />
* Optional Cover (included in the first production batch)<br />
<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
* Not yet available<br />
<br />
<br />
== SoC and Memory Specifications ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core ARM Cortex-A55@1.8GHz]<br />
* AArch32 for full backwards compatibility with ARMv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Includes VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache and 32KB L1 data cache per core<br />
* 512KB unified system L3 cache<br />
* [https://developer.arm.com/ip-products/security-ip/trustzone TrustZone] technology support<br />
* [https://www.cnx-software.com/2020/12/01/rockchip-rk3568-processor-to-power-edge-computing-and-nvr-applications 22nm process, believed to be FD-SOI]<br />
<br />
=== GPU (Graphics Processing Unit) Capabilities ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Supports OpenGL ES 1.1, 2.0, and 3.2<br />
* Supports Vulkan 1.0 and 1.1<br />
* Supports OpenCL 2.0 Full Profile<br />
* Supports 1600 Mpix/s fill rate when at 800MHz clock frequency<br />
* Supports 38.4 GLOP/s when at 800MHz clock frequency <br />
<br />
=== NPU (Neural Processing Unit) Capabilities ===<br />
* Neural network acceleration engine with processing performance of up to 0.8 TOPS<br />
* Supports integer 8 and integer 16 convolution operations<br />
* Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory : 4GB LPDDR4.<br />
* Flash Memory: 128GB eMMC<br />
<br />
== PineNote Information, Schematics, and Certifications ==<br />
* The early release schematic just for reference only and used by developers who received the prototype. <br />
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1%20-%20Schematic-20210726.pdf PineNote early released Schematic ver 1.1 20210726 PDF file]<br />
** [https://files.pine64.org/doc/PineNote/PINENOTE_MAIN-V1R1-REF-TOP-20210726.pdf PineNote early released ver 1.1 20210726 PCB Connector placement PDF file]<br />
<br />
* Certifications:<br />
** Not yet available<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* Rockchip RK817 PMU (Power Management Unit) Information:<br />
** [https://www.rockchip.fr/RK817%20datasheet%20V1.01.pdf Rockchip RK817 ver 1.01 datasheet]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** ---<br />
* eMMC information:<br />
** [https://en.biwin.com.cn/product/detail/6 Biwin 128GB eMMC model: BWCTASC41P128G] <br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf E-Ink 10.3" 1872x1404 ES103TC2 Glass Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/PineNote/TI%20PMU-TPS651851.pdf TPS65185x PMIC for E-Ink Enabled Electronic Paper Display Datasheet]<br />
* Touch Screen information:<br />
** [https://files.pine64.org/doc/datasheet/PineNote/CYTMA448_Summary_RevC_5-26-16.pdf Cypress CYTMA448 multi-Point Capacitive Touch Controller Datasheet]<br />
** Wacom Pen Digitizer Unit Model: SUDE-10S15MI-01X for 10.3" Display Module<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AW-CM256SM_DS_DF_V1.9_STD.pdf Azurewave CM256SM 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* G Sensor info:<br />
** [http://www.silan.com.cn/en/product/details/47.html#app01 Silan SC7A20 3-Axis MEMS Accelerometer]<br />
* Audio Amplifier information:<br />
** [https://files.pine64.org/doc/datasheet/PineNote/Awinic%20AW87318%20Class-K%20Audio%20Amp%20Datasheet.pdf Awinic AW87318 Class-K Audio Amp Datasheet]<br />
<br />
<br />
== Development Efforts ==<br />
<br />
=== Software ===<br />
<br />
* [[Quartz64 Development]] for the mainlining status of various functions on the Rockchip RK3566 SoC<br />
* [[RK3566 EBC Reverse-Engineering]] for the EBC (eInk Panel) driver<br />
<br />
=== Hardware ===<br />
<br />
This section includes discussions and their results regarding hardware changes to the PineNote.<br />
<br />
==== Closed-Case UART ====<br />
<br />
Developers usually don't like taking their devices apart to debug bootloaders. Therefore, it is important to provide resources to debug the PineNote's boot process such as a hardware UART. Recent PINE64 devices have included a hardware UART connected to their 3.5mm TRRS jacks through a hardware switch. However, the PineNote doesn't have an audio jack. It also doesn't have a convenient place to put a hardware switch which is accessible without taking the device apart. The case only has the affordance for a single USB-C port.<br />
<br />
We decided to ask the PineNote product team to explore USB-C Debug Accessory Mode, where the product changes the USB-C port's personality when both CC1 and CC2 are pulled high. In normal usage, either CC1 or CC2 will be floating since these are the connector rotation pins. When both are detected, there is a very good chance that a debug harness is connected.<br />
<br />
This decision requires the PineNote motherboard to be able to detect an AND condition between CC1 and CC2 and connect one of the SOC's UARTs to pins on the USB-C connector. In all other cases, the UART should be disconnected. It also requires the PINE64 Store ship a simple one-sided (no magical flipping here, sorry) connector board which breaks out USB 2.0 and UART.<br />
<br />
There were concerns that cheap USB-C cables have both CC1 and CC2 shorted together to save a wire. This may cause the PineNote to output 3.3v UART to a device that isn't expecting it, assuming the two are plugged together with a nonstandard cable. This seems unfounded (or not enough of a problem to worry about on a large scale), since the USB-C specification states in section B.2.3.1, "The general concept for setting up a valid connection between a DTS and TS is based on being able to detect the typical USB Type-C termination resistances. However, detecting a Debug Accessory Mode connection requires that both CC pins must detect a pull-up (Rp) or pull-down (Rd) termination. A USB Type-C Cable does not pass both CC wires so a receptacle to receptacle Debug Accessory Mode connection cannot be detected."<br />
<br />
There were concerns that checking CC1 and CC2 being pulled high was not strictly to USB-C standard, as detecting them being pulled low is mentioned in the standard. However, detecting a pull-up condition is all that is required. According to the USB-C spec, 'B.2.4.1.5.1 ("UnattachedDeb.SRC Requirements"), a Debug and Test System (DTS) that is a power source must pull CC1/CC2 up, while the Target System (TS) in Unattached.SNK is supposed to pull them low.' In English, this means that we'd only need to detect a pull-up condition on CC1 and CC2, meaning a logical AND between them is a sane solution.<br />
IRC logs of this discussion can be found at [[PineNote/Debug_Accessory_Mode_Discussion]].<br />
<br />
It should be possible to make the UART connection and breakout cable magically flippable by connecting the UART multiple times to the USB-C port.<br />
<br />
== BSP Linux SDK ==<br />
<br />
=== BSP Linux SDK ver 4.19 for PineNote and Quart64 model A SBC ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_BSP%20Linux.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 24554419aec29700add97167a3a4c9ed<br />
** File Size: 32.67.00GB<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 eink SDK for PineNote and Quart64 model A SBC ===<br />
* This is the Android SDK build for 10.3" eink panel on Quartz64 model A SBC. <br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64-model-A_eink.android11_SDK.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 293a550584298de4fb95ceae18103672<br />
** File Size: 72.88GB<br />
** Just the boot blobs (<1MB): [[File:Rk35-blobs.tar.gz]]<br />
<br />
[[Category:PineNote]] [[Category:Rockchip RK3566]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=10842Pinebook Pro2021-06-27T08:55:27Z<p>Arwen: /* Improving readability */ Fixed syntax and added comment about adjusting the DPI number 150</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).<br />
<br />
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 x4) with an optional adapter. <br />
<br />
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1 x micro SD card reader (bootable), 1 x USB 2.0, 1 x USB 3.0, 1 x USB type C Host with DP 1.2 and power-in, PCIe x4 for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== Pinebook Pro images ===<br />
Under [[Pinebook Pro Software Release]] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
* [[PinebookPro_Software_Release#Manjaro ARM|Manjaro ARM]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Armbian|Armbian]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Twister OS|Twister OS]] (microSD Boot)<br />
* [[PinebookPro_Software_Release#Fedora|Fedora]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Arch_Linux_ARM|Arch Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#postmarketOS|Postmarket OS]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#Kali Linux|Kali Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#DietPi|DietPi]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Q4OS|Q4OS]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#NetBSD|NetBSD]] (microSD and eMMC Boot)<br />
* [[Pinebook_Pro_Software_Release#OpenBSD|OpenBSD release for ARM64]]<br />
* [[Pinebook_Pro_Software_Release#Gentoo|Gentoo]]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility.<br />
<br />
{{warning|DO NOT update the keyboard firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed, see the [https://reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread]. The keyboard IC corresponds to <code>U23</code> on the [[#Pinebook_Pro_Schematics_and_Certifications|top layer silkscreen of the main board]]. It is located under the keyboard flat flexible cable.}}<br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch<br />
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch<br />
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch<br />
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
| Can use tools like '''<code>lsusb</code>''' to detect camera's presence. If not detected, check privacy switch.<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independent of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
=== Basic summary of replacing keyboard ===<br />
<br />
This guide is very basic and should be fleshed out with pictures. There just isn't a list of steps anywhere else yet.<br />
<br />
''Step 0'': If changing from ISO keyboard to ANSI keyboard, or vice versa, be sure to have a system capable of running the firmware updater that you can access either remotely or with a USB keyboard beyond the internal keyboard, as the firmware for each is very different and keys won't work correctly. See https://forum.pine64.org/showthread.php?tid=8407 (and for NetBSD, https://forum.pine64.org/showthread.php?tid=8716).<br />
<br />
''Step 1'': The remove back back panel.<br />
<br />
There are 10 screws on the back that must be removed, and the back panel detached. The speakers may remain attached via glue to the case and should be carefully pried off. When this is done, taking photos of how everything looks now can help put it all back together later.<br />
<br />
''Step 2'': Places to unscrew.<br />
<br />
There are 3 items screwed into the keyboard frame that must be removed. There are 2 large screws for daughter board, 3 large screws and 1 small screw for mainboard, and 4 screws for battery. Be sure to not lose them.<br />
<br />
''Step 3'': Remove the battery.<br />
<br />
Once the battery screws are removed, it should be unplugged from the mainboard and removed. Note that there are two unconnected cables lying around, that should remain unconnected. They are used when the battery is disconnected entirely.<br />
<br />
''Step 4'': Unplug the ribbon cables.<br />
<br />
There are several ribbon cables. To remove, flip up the tab and gentle pull the ribbon out.<br />
<br />
* One cable runs from the mainboard to the daughterboard underneath the battery. Detach from both ends. With the battery removed, detach from keyboard shell, and set aside for the new keyboard shell.<br />
* One cable runs between the trackpad and the mainboard. Detach from both ends, and also set aside.<br />
* One cable runs between the keyboard and the mainboard. This one remains attached to the keyboard and only needs to be detached from the mainboard.<br />
* One cable from the LCD attaches near the lid hinge. It should be just unplugged.<br />
<br />
''Step 5'': Detach microphone and speakers.<br />
<br />
The speakers and microphone don't have to be detached from the mainboard, but they need to be detached from the keyboard shell. The microphones are held in place by tape, and the speakers have sticky sides. The speakers are found obviously, but the microphones (two of) can be found between the battery and the hinge area.<br />
<br />
''Step 6'': Remove mainboard and daughterboard.<br />
<br />
At this point, the mainboard and daughterboards should be removed. When unscrewed (see Step 2) they should pull out fairly easily. Put them aside (including microphones and speakers if left attached.)<br />
<br />
''Step 7'': Detach the LCD panel.<br />
<br />
Step 2 didn't tell you, there are 6 more screws to remove here, 3 for each of the hinges. Unscrew these and the LCD panel will be able to be removed. You may have to jiggle or move the hinges for this. When detached, be sure to place the LCD panel such that the display is protected.<br />
<br />
''Step 8'': Try Not To Break Your Trackpad, or, How I Learned To Love Things That Bend<br />
<br />
'''NOTE This section really feels like you're going to break something.'''<br />
<br />
The trackpad is glued to the keyboard shell and it's glued well. There are two places it is glued to. If you can, only the middle must be force-detached. You will think you're going to break it. Gently apply increasing force until the glue begins to detach (you will hear a crackle as it comes off), and continue very slowly until the whole thing is detached. This may take minutes due to that feeling you're going to break it.<br />
<br />
''Step 9'': Over the hill, trackpad goes into new shell.<br />
<br />
In the new keyboard shell put the trackpad back where it was, hopefully the glue will remain sufficiently attached. If there is a glue issue, this guide unfortunately has no advice currently.<br />
<br />
''Step 10'': Reattach the LCD panel.<br />
<br />
The LCD panel should slot back into the keyboard frame, the same way it came out. If the hinges were moved, they should be *very* *gently* closed such that the LCD panel and keyboard closed like normal for the remaining steps.<br />
<br />
''Step 11'': Tape it out.<br />
<br />
Move any tape from the old keyboard shell to the new one. These items protect the mainboard and daughterboard, and keep various wires in their right place. Some are grey and some are black. For tape that holds the speakers, microhones, or their cables in place, do not reattach yet.<br />
<br />
''Step 12'': Board install.<br />
<br />
Install the mainboard, the daughtboard, and their connecting ribbon cable. Be sure to put the boards in place, 2 large flat screws for the daughterboard, 3 large flat screws and one small screw for the mainboard, before attempting to place the ribbon.<br />
<br />
''Step 13'': Microphone and speaker install.<br />
<br />
Reattached the microphones and speakers to their respective areas, making sure that both are properly oriented - the speaker "out" faces up, and the microphone cables as connected must face up (these are opposite directions.)<br />
<br />
''Step 14'': Reattach other ribbon cables.<br />
<br />
The LCD panel, keyboard and trackpad ribbon cables should be reattached. Make sure the flap is open, insert the ribbon into the slot (a portion of the cable will disappear), and push the flap down. The cable should not be easy to pull out.<br />
<br />
''Step 15'': Reattach the battery, and final re-tape.<br />
<br />
The battery should be installed with the 4 screws holding it in place, and the connector attached to the mainboard. Be sure to keep the two other cables remain unconnected. Ensure all wires and other tapes are held in place.<br />
<br />
''Step 16'': Reattach the back panel.<br />
<br />
Put the back panel back on, and reattach the 10 screws.<br />
<br />
''Step 17'': If you changed from ISO to ANSI or from ANSI to ISO, you'll need to update your firmware now. See the links in Step 0 above.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
{{warning| DO NOT update the trackpad firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread]. The keyboard IC corresponds to <code>U23</code> on the [[#Pinebook_Pro_Schematics_and_Certifications|top layer silkscreen of the main board]]. It is located under the keyboard flat flexible cable.}}<br />
<br />
Please refer to the original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off 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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
{{Hint| Note: Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!}}<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s 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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient TapButton1=1<br />
synclient TapButton2=3<br />
synclient TapButton3=2<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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 unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
<code>TabButton</code> allows to just tab the touchpad instead of physically pressing it down (to get this click noise).<br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
# The red LED next to the barrel port indicates charging, in three ways. First, it will illuminate steadily when either the factory power supply or a USB Type-C charger is connected to the Pinebook Pro, and the battery is getting charged. Second, if the battery is at 100%, the LED will remain turned off regardless of the connected power input; however, this is [https://forum.pine64.org/showthread.php?tid=10899 rather rarely achieved]. Third, this LED will flash at 0.5&nbsp;Hz if there are any problems that prevent charging, such as the battery becoming too hot.<br />
# The power indicator LED, above the keyboard, supports three different colors: green, amber and red. It is also capable of flashing to indicate eMMC activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused). <br />
# The green NumLock LED, above the keyboard.<br />
# The green CapsLock LED, above the keyboard.<br />
<br />
The NumLock and CapsLock LEDs serve their usual purposes on a keyboard, but they also have a secondary function. When the privacy switches get activated they blink to confirm that the switch has been activated.<br />
<br />
== Webcam ==<br />
{{Hint| You can use Cheese to test the Camera functionality}}<br />
* Streaming video resolutions supported, (uncompressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try changing the [[Pinebook_Pro#Privacy_Switches|privacy switches]]. If the switches are in the correct place and microphone input isn't working you can run <code>alsamixer</code> from the command line, hit <i>F6</i> and select the <i>es8316</i>, hit F4 to get to the capture screen, select the bar labeled ADC, increase the gain to 0dB, change the audio profile in pavucontrol to another one with input. Additionally you may want to modify ADC PGA to get the levels to where you want them. If that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the section [[#Technical Reference|Technical Reference]]).<br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilities are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<br />
To disable Bluetooth under Linux once:<br />
<br />
sudo rfkill block bluetooth<br />
<br />
To confirm if Bluetooth under Linux is disabled:<br />
<br />
rfkill<br />
<br />
To disable Bluetooth on boot (note: for distributions such as Manjaro XFCE see the step below):<br />
<br />
sudo systemctl enable rfkill-block@bluetooth<br />
<br />
To disable Bluetooth on certain distributions, such as Manjaro XFCE, right click on the Bluetooth panel icon, select <i>plugins</i>, then <i>PowerManager</i>, then <i>configuration</i> and then deselect the <i>auto power on</i> option<br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56&nbsp;cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60&nbsp;Hz refresh rate<br />
* IPS technology<br />
* 1000:1 contrast<br />
* 250&nbsp;nit brightness<br />
* 63% sRGB coverage<br />
* 6-bit color<br />
* 30-pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PinePhone_Serial_Cable.png|400px|thumb|right|Pinout of the serial adapter. Swapping the tx and rx around from this also works and is more traditional. See the official [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pine64 document].]]<br />
<br />
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.<br />
<br />
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.3&nbsp;V interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3&nbsp;V and 5&nbsp;V variants) to avoid damage to the CPU. Older version of the serial console cable sold by Pine64 uses wrong voltage level and should not be used; see [https://forum.pine64.org/showthread.php?tid=9367 this forum thread] for further information. Recent version of the same cable uses the right voltage level.<br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor, ensuring that the audio jack of the serial cable is be fully inserted into the Pinebook Pro audio port. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
This is the link to the Pinebook Pro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [https://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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 [https://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
{{warning|Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.}}<br />
<br />
=== Pinebook Service Step-by-Step Guides ===<br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|Service Guides for Pinebook]] you can find instructions guides concerning disassembly of:<br />
<br />
* The installation process on Pinebook Pro similar to 14" Pinebook<br />
* The installation process is the reverse order of removal guide:<br />
** 14″ Pinebook Lithium Battery Pack Removal Guide<br />
** 14″ Pinebook LCD Panel Screen Removal Guide<br />
** 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook Pro SPI]] for details.<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to: code>/dev/mtd0</code><br />
* The Linux package below, will need to be available: <code>mtd-utils</code><br />
* You can then use this program from the package to write the SPI device: <code>flashcp &lt;filename&gt; /dev/mtd0</code><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware. At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
<br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
With Mesa 20.2 there is no longer much reason to use this over the standard mesa package, and applications may occasionally break with mesa-git.<br />
<br />
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.<br />
<br />
=== OpenGL 3.3 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 3.0. If you want to use OpenGL 3.3, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gl3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL 3.3 and applications that rely on it should function properly. Note that GL 3.3 support is incomplete and some rendering features do not work yet, notably geometry shaders.<br />
<br />
=== Install Anbox on Pinebook Pro Manjaro 20.10 ===<br />
[https://www.youtube.com/watch?v=EU8_Q11dATs Youtube video on installing Anbox on Pienbook Pro Manjaro Build 20.10 by LivingLinux]<br />
<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>$ sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>$ sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>$ sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
$ sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
==== Debian ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot<br />
<br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
<br />
* Update the U-Boot configuration:<br />
<br />
u-boot-update<br />
<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
==== Manjaro ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf<br />
<br />
* Change '''console=ttyS2,1500000''' to '''console=tty1'''<br />
* Remove the '''bootsplash.bootfile''' option and it's parameter.<br />
* You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Leave everything else alone.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI. One such method that someone used successfully, is:<br><blockquote><code>echo "Xft.dpi: 150" >> ~/.Xresources</code></blockquote>Change the 150 as desired to get the size adjustment you want.<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
<br />
= Troubleshooting guide =<br />
<br />
Do not to panic if something goes wrong or in an unexpected way. Instead, stop and consider carefully how to undo something, or how to redo it. This particularly applies when flashing a new operating system, or flashing new firmware to the keyboard or touchpad. If everything fails, consider reporting the issue on the forums, with as many relevant details as available.<br />
<br />
Please, have a look at the [[Pinebook Pro Troubleshooting Guide]], which details a number of issues you may encounter.<br />
<br />
= Hardware/Accessory Compatibility =<br />
Please contribute to the [[Pinebook Pro Hardware Accessory Compatibility|hardware/accessory compatibility page]], which lists the status of hardware tested with the Pinebook Pro. Available hardware categories include the following:<br />
<br />
* [[Pinebook Pro Hardware Accessory Compatibility#NVMe SSD drives|NVMe SSD drives]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB hardware|USB hardware]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB C alternate mode DP|USB-C alternate mode DP]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#Other hardware|Other hardware]]<br />
<br />
= Technical Reference =<br />
== Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
There are a few '''mandatory''' precautions to be taken:<br />
<br />
* 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.<br />
* When removing the back cover plate, *do not, under any circumstances, slide your fingertips between the metal shell and the plastic frame!* The back cover plate edges are sharp, and when combined with the pressure and movement generated from, specifically, attempting to slide the tips of your fingers along the bottom edge of the plate along the lid-hinge, they *will* slice open the tips of your fingers like a knife.<br />
* When removing the back cover plate, use care to avoid damaging the speakers. They can be stuck to the back cover with double-sided tape, and the thin wires are very delicate. Newer Pinebook Pro laptops (as of the May 2021 batch, and perhaps earlier) seem to lack the double-sided tape to the rear cover, instead opting for tape or glue that makes them stick to the front cover. Nevertheless, be gentle when removing the back cover.<br />
<br />
[[File:PinebookProScrewGuide.png|400px|thumb|right|Pinebook Pro external screws (this particular unit has suffered damage on screw (4)L)]]<br />
<br />
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. There are four (4) short screws along the front edge, and six (6) long screws along the 3 remaining sides. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis. The aluminum case is held on only by screws. There are no plastic snaps, and the shell should pull away without any effort. If you experience any resistance at all stop and ensure all ten (10) screws are accounted for.<br />
<br />
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. Before replacing the aluminum back-plate, ensure that the speakers are properly seated by pressing gently on the hard plastic edge of the speaker module. 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 4 short screws.<br />
<br />
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 (which may be caused by the aforementioned misseating of the speakers), 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, re-open the machine and check for misseated components.<br />
<br />
A basic 3D model to print replacement standoffs for the back cover screws is [https://www.thingiverse.com/thing:4226648 available on Thingiverse], until the official drawings or 3D models are made available.<br />
<br />
== Internal Layout ==<br />
<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe x4 slot for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ u-boot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older Debian + MATE build that improves compatibility with booting other OSes 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Case Dimensions and Data ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.0, 5&nbsp;GT/s per lane<br />
* Four PCIe lanes, which can not be bifurcated, but can be used with one- or two-lane NVMe cards<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5&nbsp;W continuous, 8.25&nbsp;W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.4, part 1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.3, part 1] and [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf part 2]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]<br />
* LPDDR4 SDRAM (366-pin BGA):<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]<br />
* Wireless and Bluetooth information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio codec:<br />
** [http://www.everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]<br />
* LCD panel:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* USB-related information:<br />
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]<br />
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]<br />
* Touchpad information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD camera sensor:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]<br />
* Battery-related information:<br />
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]<br />
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf FH26-35S-0.3SHW flat flex connector (compatible, not OEM)]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111]<br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (no login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* [[Pinebook Pro/Freepascal and Lazarus IDE on Manjaro|Freepascal and Lazarus IDE on Pinebook Pro]]<br />
<br />
[[Category:PineBook Pro]]<br />
[[Category:Rockchip RK3399]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=10841Pinebook Pro2021-06-27T08:13:54Z<p>Arwen: /* Improving readability */ Added example of changing X-Windows' DPI</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).<br />
<br />
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 x4) with an optional adapter. <br />
<br />
The Pinebook Pro is equipped with 4GB LPDDR4 system memory, high capacity eMMC flash storage, and 128Mb SPI boot Flash. The I/O includes: 1 x micro SD card reader (bootable), 1 x USB 2.0, 1 x USB 3.0, 1 x USB type C Host with DP 1.2 and power-in, PCIe x4 for an NVMe SSD drive (requires an optional adapter), and UART (via the headphone jack by setting an internal switch). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== Pinebook Pro images ===<br />
Under [[Pinebook Pro Software Release]] you will find a complete list of currently supported Operating System images that work with the Pinebook as well as other related software. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
* [[PinebookPro_Software_Release#Manjaro ARM|Manjaro ARM]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Armbian|Armbian]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Twister OS|Twister OS]] (microSD Boot)<br />
* [[PinebookPro_Software_Release#Fedora|Fedora]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Arch_Linux_ARM|Arch Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#postmarketOS|Postmarket OS]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#Kali Linux|Kali Linux]] (microSD and USB boot)<br />
* [[PinebookPro_Software_Release#DietPi|DietPi]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#Q4OS|Q4OS]] (microSD and eMMC Boot)<br />
* [[PinebookPro_Software_Release#NetBSD|NetBSD]] (microSD and eMMC Boot)<br />
* [[Pinebook_Pro_Software_Release#OpenBSD|OpenBSD release for ARM64]]<br />
* [[Pinebook_Pro_Software_Release#Gentoo|Gentoo]]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility.<br />
<br />
{{warning|DO NOT update the keyboard firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed, see the [https://reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread]. The keyboard IC corresponds to <code>U23</code> on the [[#Pinebook_Pro_Schematics_and_Certifications|top layer silkscreen of the main board]]. It is located under the keyboard flat flexible cable.}}<br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch<br />
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch<br />
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch<br />
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
| Can use tools like '''<code>lsusb</code>''' to detect camera's presence. If not detected, check privacy switch.<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independent of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
=== Basic summary of replacing keyboard ===<br />
<br />
This guide is very basic and should be fleshed out with pictures. There just isn't a list of steps anywhere else yet.<br />
<br />
''Step 0'': If changing from ISO keyboard to ANSI keyboard, or vice versa, be sure to have a system capable of running the firmware updater that you can access either remotely or with a USB keyboard beyond the internal keyboard, as the firmware for each is very different and keys won't work correctly. See https://forum.pine64.org/showthread.php?tid=8407 (and for NetBSD, https://forum.pine64.org/showthread.php?tid=8716).<br />
<br />
''Step 1'': The remove back back panel.<br />
<br />
There are 10 screws on the back that must be removed, and the back panel detached. The speakers may remain attached via glue to the case and should be carefully pried off. When this is done, taking photos of how everything looks now can help put it all back together later.<br />
<br />
''Step 2'': Places to unscrew.<br />
<br />
There are 3 items screwed into the keyboard frame that must be removed. There are 2 large screws for daughter board, 3 large screws and 1 small screw for mainboard, and 4 screws for battery. Be sure to not lose them.<br />
<br />
''Step 3'': Remove the battery.<br />
<br />
Once the battery screws are removed, it should be unplugged from the mainboard and removed. Note that there are two unconnected cables lying around, that should remain unconnected. They are used when the battery is disconnected entirely.<br />
<br />
''Step 4'': Unplug the ribbon cables.<br />
<br />
There are several ribbon cables. To remove, flip up the tab and gentle pull the ribbon out.<br />
<br />
* One cable runs from the mainboard to the daughterboard underneath the battery. Detach from both ends. With the battery removed, detach from keyboard shell, and set aside for the new keyboard shell.<br />
* One cable runs between the trackpad and the mainboard. Detach from both ends, and also set aside.<br />
* One cable runs between the keyboard and the mainboard. This one remains attached to the keyboard and only needs to be detached from the mainboard.<br />
* One cable from the LCD attaches near the lid hinge. It should be just unplugged.<br />
<br />
''Step 5'': Detach microphone and speakers.<br />
<br />
The speakers and microphone don't have to be detached from the mainboard, but they need to be detached from the keyboard shell. The microphones are held in place by tape, and the speakers have sticky sides. The speakers are found obviously, but the microphones (two of) can be found between the battery and the hinge area.<br />
<br />
''Step 6'': Remove mainboard and daughterboard.<br />
<br />
At this point, the mainboard and daughterboards should be removed. When unscrewed (see Step 2) they should pull out fairly easily. Put them aside (including microphones and speakers if left attached.)<br />
<br />
''Step 7'': Detach the LCD panel.<br />
<br />
Step 2 didn't tell you, there are 6 more screws to remove here, 3 for each of the hinges. Unscrew these and the LCD panel will be able to be removed. You may have to jiggle or move the hinges for this. When detached, be sure to place the LCD panel such that the display is protected.<br />
<br />
''Step 8'': Try Not To Break Your Trackpad, or, How I Learned To Love Things That Bend<br />
<br />
'''NOTE This section really feels like you're going to break something.'''<br />
<br />
The trackpad is glued to the keyboard shell and it's glued well. There are two places it is glued to. If you can, only the middle must be force-detached. You will think you're going to break it. Gently apply increasing force until the glue begins to detach (you will hear a crackle as it comes off), and continue very slowly until the whole thing is detached. This may take minutes due to that feeling you're going to break it.<br />
<br />
''Step 9'': Over the hill, trackpad goes into new shell.<br />
<br />
In the new keyboard shell put the trackpad back where it was, hopefully the glue will remain sufficiently attached. If there is a glue issue, this guide unfortunately has no advice currently.<br />
<br />
''Step 10'': Reattach the LCD panel.<br />
<br />
The LCD panel should slot back into the keyboard frame, the same way it came out. If the hinges were moved, they should be *very* *gently* closed such that the LCD panel and keyboard closed like normal for the remaining steps.<br />
<br />
''Step 11'': Tape it out.<br />
<br />
Move any tape from the old keyboard shell to the new one. These items protect the mainboard and daughterboard, and keep various wires in their right place. Some are grey and some are black. For tape that holds the speakers, microhones, or their cables in place, do not reattach yet.<br />
<br />
''Step 12'': Board install.<br />
<br />
Install the mainboard, the daughtboard, and their connecting ribbon cable. Be sure to put the boards in place, 2 large flat screws for the daughterboard, 3 large flat screws and one small screw for the mainboard, before attempting to place the ribbon.<br />
<br />
''Step 13'': Microphone and speaker install.<br />
<br />
Reattached the microphones and speakers to their respective areas, making sure that both are properly oriented - the speaker "out" faces up, and the microphone cables as connected must face up (these are opposite directions.)<br />
<br />
''Step 14'': Reattach other ribbon cables.<br />
<br />
The LCD panel, keyboard and trackpad ribbon cables should be reattached. Make sure the flap is open, insert the ribbon into the slot (a portion of the cable will disappear), and push the flap down. The cable should not be easy to pull out.<br />
<br />
''Step 15'': Reattach the battery, and final re-tape.<br />
<br />
The battery should be installed with the 4 screws holding it in place, and the connector attached to the mainboard. Be sure to keep the two other cables remain unconnected. Ensure all wires and other tapes are held in place.<br />
<br />
''Step 16'': Reattach the back panel.<br />
<br />
Put the back panel back on, and reattach the 10 screws.<br />
<br />
''Step 17'': If you changed from ISO to ANSI or from ANSI to ISO, you'll need to update your firmware now. See the links in Step 0 above.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
{{warning| DO NOT update the trackpad firmware before checking which keyboard IC your Pinebook Pro has.</b> Some Pinebook Pro were delivered with a '''SH61F83''' instead of a '''SH68F83'''. The SH61F83 can only be written 8 times, this will render the keyboard and trackpad unusable if this limit is reached when <code>step-1</code> is flashed. See [//old.reddit.com/r/PINE64official/comments/loq4db/very_disappointed/ Reddit SH61F83 thread]. The keyboard IC corresponds to <code>U23</code> on the [[#Pinebook_Pro_Schematics_and_Certifications|top layer silkscreen of the main board]]. It is located under the keyboard flat flexible cable.}}<br />
<br />
Please refer to the original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off 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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
{{Hint| Note: Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!}}<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s 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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient TapButton1=1<br />
synclient TapButton2=3<br />
synclient TapButton3=2<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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 unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
<code>TabButton</code> allows to just tab the touchpad instead of physically pressing it down (to get this click noise).<br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
# The red LED next to the barrel port indicates charging, in three ways. First, it will illuminate steadily when either the factory power supply or a USB Type-C charger is connected to the Pinebook Pro, and the battery is getting charged. Second, if the battery is at 100%, the LED will remain turned off regardless of the connected power input; however, this is [https://forum.pine64.org/showthread.php?tid=10899 rather rarely achieved]. Third, this LED will flash at 0.5&nbsp;Hz if there are any problems that prevent charging, such as the battery becoming too hot.<br />
# The power indicator LED, above the keyboard, supports three different colors: green, amber and red. It is also capable of flashing to indicate eMMC activity. In the default Debian with MATE build, green LED means power and red means suspend (amber is unused). <br />
# The green NumLock LED, above the keyboard.<br />
# The green CapsLock LED, above the keyboard.<br />
<br />
The NumLock and CapsLock LEDs serve their usual purposes on a keyboard, but they also have a secondary function. When the privacy switches get activated they blink to confirm that the switch has been activated.<br />
<br />
== Webcam ==<br />
{{Hint| You can use Cheese to test the Camera functionality}}<br />
* Streaming video resolutions supported, (uncompressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try changing the [[Pinebook_Pro#Privacy_Switches|privacy switches]]. If the switches are in the correct place and microphone input isn't working you can run <code>alsamixer</code> from the command line, hit <i>F6</i> and select the <i>es8316</i>, hit F4 to get to the capture screen, select the bar labeled ADC, increase the gain to 0dB, change the audio profile in pavucontrol to another one with input. Additionally you may want to modify ADC PGA to get the levels to where you want them. If that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the section [[#Technical Reference|Technical Reference]]).<br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilities are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<br />
To disable Bluetooth under Linux once:<br />
<br />
sudo rfkill block bluetooth<br />
<br />
To confirm if Bluetooth under Linux is disabled:<br />
<br />
rfkill<br />
<br />
To disable Bluetooth on boot (note: for distributions such as Manjaro XFCE see the step below):<br />
<br />
sudo systemctl enable rfkill-block@bluetooth<br />
<br />
To disable Bluetooth on certain distributions, such as Manjaro XFCE, right click on the Bluetooth panel icon, select <i>plugins</i>, then <i>PowerManager</i>, then <i>configuration</i> and then deselect the <i>auto power on</i> option<br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56&nbsp;cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60&nbsp;Hz refresh rate<br />
* IPS technology<br />
* 1000:1 contrast<br />
* 250&nbsp;nit brightness<br />
* 63% sRGB coverage<br />
* 6-bit color<br />
* 30-pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PinePhone_Serial_Cable.png|400px|thumb|right|Pinout of the serial adapter. Swapping the tx and rx around from this also works and is more traditional. See the official [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pine64 document].]]<br />
<br />
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.<br />
<br />
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.3&nbsp;V interface (such as the CH340, FTDI-232R, or PL2303, which are sold in both 3.3&nbsp;V and 5&nbsp;V variants) to avoid damage to the CPU. Older version of the serial console cable sold by Pine64 uses wrong voltage level and should not be used; see [https://forum.pine64.org/showthread.php?tid=9367 this forum thread] for further information. Recent version of the same cable uses the right voltage level.<br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor, ensuring that the audio jack of the serial cable is be fully inserted into the Pinebook Pro audio port. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
Please see [[Pinebook Pro Troubleshooting Guide#NVMe SSD issues|a separate section]] that describes reported issues with the NVMe drives in PineBook Pro.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
This is the link to the Pinebook Pro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [https://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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 [https://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
{{warning|Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.}}<br />
<br />
=== Pinebook Service Step-by-Step Guides ===<br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|Service Guides for Pinebook]] you can find instructions guides concerning disassembly of:<br />
<br />
* The installation process on Pinebook Pro similar to 14" Pinebook<br />
* The installation process is the reverse order of removal guide:<br />
** 14″ Pinebook Lithium Battery Pack Removal Guide<br />
** 14″ Pinebook LCD Panel Screen Removal Guide<br />
** 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook Pro SPI]] for details.<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to: code>/dev/mtd0</code><br />
* The Linux package below, will need to be available: <code>mtd-utils</code><br />
* You can then use this program from the package to write the SPI device: <code>flashcp &lt;filename&gt; /dev/mtd0</code><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware. At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
<br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
With Mesa 20.2 there is no longer much reason to use this over the standard mesa package, and applications may occasionally break with mesa-git.<br />
<br />
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.<br />
<br />
=== OpenGL 3.3 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 3.0. If you want to use OpenGL 3.3, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gl3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL 3.3 and applications that rely on it should function properly. Note that GL 3.3 support is incomplete and some rendering features do not work yet, notably geometry shaders.<br />
<br />
=== Install Anbox on Pinebook Pro Manjaro 20.10 ===<br />
[https://www.youtube.com/watch?v=EU8_Q11dATs Youtube video on installing Anbox on Pienbook Pro Manjaro Build 20.10 by LivingLinux]<br />
<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>$ sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>$ sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>$ sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
$ sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
==== Debian ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot<br />
<br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
<br />
* Update the U-Boot configuration:<br />
<br />
u-boot-update<br />
<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
==== Manjaro ====<br />
* Backup and edit the U-Boot configuration file:<br />
<br />
cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf<br />
<br />
* Change '''console=ttyS2,1500000''' to '''console=tty1'''<br />
* Remove the '''bootsplash.bootfile''' option and it's parameter.<br />
* You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Leave everything else alone.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI. One such method that a someone used successfully, is:<br><blockquote><code>echo "Xft.dpi: 150" >> ~/.Xresources</code></blockquote><br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
<br />
= Troubleshooting guide =<br />
<br />
Do not to panic if something goes wrong or in an unexpected way. Instead, stop and consider carefully how to undo something, or how to redo it. This particularly applies when flashing a new operating system, or flashing new firmware to the keyboard or touchpad. If everything fails, consider reporting the issue on the forums, with as many relevant details as available.<br />
<br />
Please, have a look at the [[Pinebook Pro Troubleshooting Guide]], which details a number of issues you may encounter.<br />
<br />
= Hardware/Accessory Compatibility =<br />
Please contribute to the [[Pinebook Pro Hardware Accessory Compatibility|hardware/accessory compatibility page]], which lists the status of hardware tested with the Pinebook Pro. Available hardware categories include the following:<br />
<br />
* [[Pinebook Pro Hardware Accessory Compatibility#NVMe SSD drives|NVMe SSD drives]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB hardware|USB hardware]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#USB C alternate mode DP|USB-C alternate mode DP]]<br />
* [[Pinebook Pro Hardware Accessory Compatibility#Other hardware|Other hardware]]<br />
<br />
= Technical Reference =<br />
== Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
There are a few '''mandatory''' precautions to be taken:<br />
<br />
* 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.<br />
* When removing the back cover plate, *do not, under any circumstances, slide your fingertips between the metal shell and the plastic frame!* The back cover plate edges are sharp, and when combined with the pressure and movement generated from, specifically, attempting to slide the tips of your fingers along the bottom edge of the plate along the lid-hinge, they *will* slice open the tips of your fingers like a knife.<br />
* When removing the back cover plate, use care to avoid damaging the speakers. They can be stuck to the back cover with double-sided tape, and the thin wires are very delicate. Newer Pinebook Pro laptops (as of the May 2021 batch, and perhaps earlier) seem to lack the double-sided tape to the rear cover, instead opting for tape or glue that makes them stick to the front cover. Nevertheless, be gentle when removing the back cover.<br />
<br />
[[File:PinebookProScrewGuide.png|400px|thumb|right|Pinebook Pro external screws (this particular unit has suffered damage on screw (4)L)]]<br />
<br />
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. There are four (4) short screws along the front edge, and six (6) long screws along the 3 remaining sides. Remove the cover from the back where the hinges are situated by lifting it up and away from the rest of the chassis. The aluminum case is held on only by screws. There are no plastic snaps, and the shell should pull away without any effort. If you experience any resistance at all stop and ensure all ten (10) screws are accounted for.<br />
<br />
During reassembly, make sure that the back-screw standoffs are in place and seated correctly. Before replacing the aluminum back-plate, ensure that the speakers are properly seated by pressing gently on the hard plastic edge of the speaker module. 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 4 short screws.<br />
<br />
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 (which may be caused by the aforementioned misseating of the speakers), 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, re-open the machine and check for misseated components.<br />
<br />
A basic 3D model to print replacement standoffs for the back cover screws is [https://www.thingiverse.com/thing:4226648 available on Thingiverse], until the official drawings or 3D models are made available.<br />
<br />
== Internal Layout ==<br />
<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe x4 slot for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ u-boot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older Debian + MATE build that improves compatibility with booting other OSes 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Case Dimensions and Data ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.0, 5&nbsp;GT/s per lane<br />
* Four PCIe lanes, which can not be bifurcated, but can be used with one- or two-lane NVMe cards<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5&nbsp;W continuous, 8.25&nbsp;W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.4%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.4, part 1]<br />
** [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part1.pdf Rockchip RK3399 Technical Reference Manual v1.3, part 1] and [https://www.rockchip.fr/Rockchip%20RK3399%20TRM%20V1.3%20Part2.pdf part 2]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]<br />
* LPDDR4 SDRAM (366-pin BGA):<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]<br />
* Wireless and Bluetooth information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio codec:<br />
** [http://www.everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]<br />
* LCD panel:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* USB-related information:<br />
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]<br />
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]<br />
* Touchpad information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD camera sensor:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]<br />
* Battery-related information:<br />
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]<br />
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf FH26-35S-0.3SHW flat flex connector (compatible, not OEM)]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111]<br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (no login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
* [[Pinebook Pro/Freepascal and Lazarus IDE on Manjaro|Freepascal and Lazarus IDE on Pinebook Pro]]<br />
<br />
[[Category:PineBook Pro]]<br />
[[Category:Rockchip RK3399]]</div>Arwenhttps://wiki.pine64.org/index.php?title=User:Barray/PineFlash&diff=9783User:Barray/PineFlash2021-04-08T16:27:32Z<p>Arwen: /* Suggested Features */ Added 2 copies of wear leveling & indirect table</p>
<hr />
<div>{{Note|Page under construction, information subject to change.}}<br />
<br />
The following is the documentation draft for a proposed new PINE64 storage product, PineFlash. As such, PineFlash is proposed by the community and, as of April 2021, is '''neither endorsed nor acknowledged''' by PINE64 as a possible new official PINE64 product. This content is the result of initial discussions about this storage device, documented in [https://forum.pine64.org/showthread.php?tid=13301 this forum thread].<br />
<br />
Please, consider joining us for discussion in [https://kiwiirc.com/nextclient/coffeespace.org.uk#pineflash IRC].<br />
<br />
== Goal ==<br />
<br />
The aim of this project is to create an open-hardware USB flash drive, hence the name ''PineFlash'', which can act as the basis of future projects in the area of open storage. An open-hardware flash device with open-source firmware would allow the community to address storage safety and information security. Additionally, issues such as speed, functionality and compatibility could also be addressed.<br />
<br />
== Requirements ==<br />
<br />
{| class="wikitable"<br />
! Property<br />
! Minimum<br />
! Ideal<br />
|-<br />
| Read speed<br />
| [https://en.wikipedia.org/wiki/USB#USB_2.0 12&nbsp;Mbit/s] (Full-Speed USB 1.x)<br />
| [https://en.wikipedia.org/wiki/USB#USB_2.0 480&nbsp;Mbit/s] (High-Speed USB 2.0)<br />
|-<br />
| Write speed<br />
| 12&nbsp;Mbit/s (Full-Speed USB 1.x)<br />
| 480&nbsp;Mbit/s (High-Speed USB 2.0)<br />
|}<br />
<br />
== Road Map ==<br />
<br />
This is intended to document the project direction towards a manufacturing-viable device.<br />
<br />
=== Prototype ===<br />
<br />
==== Hardware ====<br />
<br />
The initial idea is for the storage device to be in form of a "hat" for one of the BL602 devices manufactured and sold by PINE64, such as the [[Nutcracker]] board.<br />
<br />
'''TO-DO:''' Plan out hardware steps.<br />
<br />
==== Software ====<br />
<br />
# ''USB 1.x speed mass storage device, no real storage.'' Get the controller presenting itself as a mass storage device. Data read and written will just be placeholder data to prove that the USB communication is working correctly.<br />
# ''Single flash chip selected for storage - quad-SPI.'' Prove out that we can select a single flash chip, store data to it and read it back. This proves our understanding of the quad-SPI interface and implement some basic interface for communicating with a single flash chip.<br />
# ''Multiple flash chips selected for storage - quad-SPI.'' Prove that we can communicate with multiple flash chips via quad-SPI.<br />
<br />
== Prototyping ==<br />
<br />
This is the documentation of the initial prototype design.<br />
<br />
=== Hardware ===<br />
<br />
The initial prototype is intended to be a "hat" for the community-driven [[Nutcracker]] project, based on the BL602 SoC. The CPU core is RISC-V (as the final controller is planned to be) and the SoC supports a quad-SPI flash interface.<br />
<br />
==== Schematic ====<br />
<br />
'''TO-DO:''' The proposed schematic for the device.<br />
<br />
==== BOM ====<br />
<br />
'''TO-DO:''' The bill of materials used in the schematic.<br />
<br />
* [https://nz.mouser.com/ProductDetail/Winbond/W25N512GWFIG?qs=T3oQrply3y%2Fc2oXtef14%252Bg%3D%3D 512Mb serial NAND] @ $3.23 ([https://nz.mouser.com/datasheet/2/949/w25n512gw_rev_c_011419-1608377.pdf Datasheet])<br />
* [https://ww1.microchip.com/downloads/en/DeviceDoc/22288A.pdf USB-to-SPI converter]<br />
<br />
==== PCB ====<br />
<br />
'''TO-DO:''' The PCB design for the device.<br />
<br />
=== Software ===<br />
<br />
The work on the BL602 is to be on-top of the documented work by [https://lupyuen.github.io/articles/book Lupyuen].<br />
<br />
==== Libraries ====<br />
<br />
'''TO-DO:''' Document the prototype's software stack.<br />
<br />
* [https://github.com/hathach/tinyusb TinyUSB] - An open source software stack for slave USB devices<br />
<br />
==== Testing ====<br />
<br />
'''TO-DO:''' Figure out exactly how the prototype will be tested to ensure robustness and performance.<br />
<br />
== Suggested Features ==<br />
<br />
This is a list of suggested features, collated and attributed (where possible). This list is not meant to encapsulate ''every'' possible idea or suggestion, just a series of plausible ones that can be considered within the scope of this project.<br />
<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=90935#pid90935 Type-A & Type-C USB interfaces] ([https://forum.pine64.org/member.php?action=profile&uid=16880 barray])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=90935#pid90935 RAID] ([https://forum.pine64.org/member.php?action=profile&uid=16880 barray])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91066#pid91066 Dynamically adjusted wear leveling pool] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=92518#pid92518 Keep 2 copies of the wear leveling & indirect table, with checksum, to avoid corruption] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91066#pid91066 USB Attached SCSI (UASP)] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91066#pid91066 SMART (probably requires UASP first)] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=92698#pid92698 Ability to define and enforce write barriers] ([https://forum.pine64.org/member.php?action=profile&uid=18910 dsimic])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91118#pid91118 Fingerprint scanner] ([https://forum.pine64.org/member.php?action=profile&uid=20753 Julius_GU])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91122#pid91122 Lit Pine logo on casing] ([https://forum.pine64.org/member.php?action=profile&uid=20753 Julius_GU])<br />
<br />
== Additional Resources ==<br />
<br />
* [https://forum.pine64.org/attachment.php?aid=2261 ''The PineDrive''] ([https://forum.pine64.org/member.php?action=profile&uid=20753 Julius_GU])</div>Arwenhttps://wiki.pine64.org/index.php?title=User:Barray/PineFlash&diff=9696User:Barray/PineFlash2021-04-03T20:40:49Z<p>Arwen: /* Suggested Features */ Added SMART</p>
<hr />
<div>{{Note|Page under construction, information subject to change.}}<br />
<br />
The following is the documentation draft for a proposed new PINE64 storage product, PineFlash. As such, PineFlash is proposed by the community and, as of April 2021, is '''neither endorsed nor acknowledged''' by PINE64 as a possible new official PINE64 product. This content is the result of initial discussions about this storage device, documented in [https://forum.pine64.org/showthread.php?tid=13301 this forum thread].<br />
<br />
Please, consider joining us for discussion in [https://kiwiirc.com/nextclient/coffeespace.org.uk#pineflash IRC].<br />
<br />
== Goal ==<br />
<br />
The aim of this project is to create an open-hardware USB flash drive, hence the name ''PineFlash'', which can act as the basis of future projects in the area of open storage. An open-hardware flash device with open-source firmware would allow the community to address storage safety and information security. Additionally, issues such as speed, functionality and compatibility could also be addressed.<br />
<br />
== Requirements ==<br />
<br />
{| class="wikitable"<br />
! Property<br />
! Minimum<br />
! Ideal<br />
|-<br />
| Read speed<br />
| [https://en.wikipedia.org/wiki/USB#USB_2.0 12&nbsp;Mbit/s] (Full-Speed USB 1.x)<br />
| [https://en.wikipedia.org/wiki/USB#USB_2.0 480&nbsp;Mbit/s] (High-Speed USB 2.0)<br />
|-<br />
| Write speed<br />
| 12&nbsp;Mbit/s (Full-Speed USB 1.x)<br />
| 480&nbsp;Mbit/s (High-Speed USB 2.0)<br />
|}<br />
<br />
== Road Map ==<br />
<br />
This is intended to document the project direction towards a manufacturing-viable device.<br />
<br />
=== Prototype ===<br />
<br />
==== Hardware ====<br />
<br />
The initial idea is for the storage device to be in form of a "hat" for one of the BL602 devices manufactured and sold by PINE64, such as the [[Nutcracker]] board.<br />
<br />
'''TO-DO:''' Plan out hardware steps.<br />
<br />
==== Software ====<br />
<br />
# ''USB 1.x speed mass storage device, no real storage.'' Get the controller presenting itself as a mass storage device. Data read and written will just be placeholder data to prove that the USB communication is working correctly.<br />
# ''Single flash chip selected for storage - quad-SPI.'' Prove out that we can select a single flash chip, store data to it and read it back. This proves our understanding of the quad-SPI interface and implement some basic interface for communicating with a single flash chip.<br />
# ''Multiple flash chips selected for storage - quad-SPI.'' Prove that we can communicate with multiple flash chips via quad-SPI.<br />
<br />
== Prototyping ==<br />
<br />
This is the documentation of the initial prototype design.<br />
<br />
=== Hardware ===<br />
<br />
The initial prototype is intended to be a "hat" for the community-driven [[Nutcracker]] project, based on the BL602 SoC. The CPU core is RISC-V (as the final controller is planned to be) and the SoC supports a quad-SPI flash interface.<br />
<br />
==== Schematic ====<br />
<br />
'''TO-DO:''' The proposed schematic for the device.<br />
<br />
==== BOM ====<br />
<br />
'''TO-DO:''' The bill of materials used in the schematic.<br />
<br />
* [https://nz.mouser.com/ProductDetail/Winbond/W25N512GWFIG?qs=T3oQrply3y%2Fc2oXtef14%252Bg%3D%3D 512Mb serial NAND] @ $3.23 ([https://nz.mouser.com/datasheet/2/949/w25n512gw_rev_c_011419-1608377.pdf Datasheet])<br />
* [https://ww1.microchip.com/downloads/en/DeviceDoc/22288A.pdf USB-to-SPI converter]<br />
<br />
==== PCB ====<br />
<br />
'''TO-DO:''' The PCB design for the device.<br />
<br />
=== Software ===<br />
<br />
The work on the BL602 is to be on-top of the documented work by [https://lupyuen.github.io/articles/book Lupyuen].<br />
<br />
==== Libraries ====<br />
<br />
'''TO-DO:''' Document the prototype's software stack.<br />
<br />
* [https://github.com/hathach/tinyusb TinyUSB] - An open source software stack for slave USB devices<br />
<br />
==== Testing ====<br />
<br />
'''TO-DO:''' Figure out exactly how the prototype will be tested to ensure robustness and performance.<br />
<br />
== Suggested Features ==<br />
<br />
This is a list of suggested features, collated and attributed (where possible). This list is not meant to encapsulate ''every'' possible idea or suggestion, just a series of plausible ones that can be considered within the scope of this project.<br />
<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=90935#pid90935 Type A & Type C USB interfaces] ([https://forum.pine64.org/member.php?action=profile&uid=16880 barray])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=90935#pid90935 RAID] ([https://forum.pine64.org/member.php?action=profile&uid=16880 barray])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91066#pid91066 Dynamically adjusted wear leveling pool] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91066#pid91066 USB attached SCSI, (aka UASP)] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91066#pid91066 SMART, (probably requires UASP first)] ([https://forum.pine64.org/member.php?action=profile&uid=7999 Arwen])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91118#pid91118 Fingerprint scanner] ([https://forum.pine64.org/member.php?action=profile&uid=20753 Julius_GU])<br />
* [https://forum.pine64.org/showthread.php?tid=13301&pid=91122#pid91122 Lit Pine logo on casing] ([https://forum.pine64.org/member.php?action=profile&uid=20753 Julius_GU])<br />
<br />
== Additional Resources ==<br />
<br />
* [https://forum.pine64.org/attachment.php?aid=2261 ''The PineDrive''] ([https://forum.pine64.org/member.php?action=profile&uid=20753 Julius_GU])</div>Arwenhttps://wiki.pine64.org/index.php?title=Main_Page&diff=9378Main Page2021-03-04T17:58:18Z<p>Arwen: /* Devices */ Added the PineBook Pro docking station</p>
<hr />
<div>PINE64 is a community-driven company focused on creating high-quality, low cost ARM devices for businesses and individuals around the globe. PINE64 made its debut with the [[PINE_A64|Pine A64]] single-board computer, which successfully launched on Kickstarter in 2015. PINE64 has since released a multitude of other devices, including both development boards and end-user devices.<br />
<br />
PINE64 has a large and active community and offers a variety of resources for businesses and hobbyists to take advantage of their projects. To learn more about PINE64 and the available devices, please visit the main [https://www.pine64.org/ PINE64 website].<br />
<br />
= Devices =<br />
<br />
* [[Nutcracker]]<br />
* [[PINE A64]]<br />
* [[PINE A64-LTS/SOPine]], [[SOPine_Clusterboard | Clusterboard]]<br />
* [[PINE H64]]<br />
* Pinebook:<br />
** [[Pinebook]]<br />
** [[Pinebook Pro]]<br />
*** [[Pinebook_Pro_Dock|Pinebook Pro Docking station]]<br />
* [[Pinecil]]<br />
* [[PineCube]]<br />
* [[PinePhone]]<br />
* [[PinePower]]<br />
* [[PineTab]]<br />
* [[PineTime]]<br />
* [[Quartz64]]<br />
* [[ROCK64]]<br />
* [[ROCKPro64]]<br />
* [[SOEdge]]<br />
<br />
= Community and Support =<br />
<br />
== Chat platforms ==<br />
Pine64 has a large and very active community. Community discussion takes place on a variety of chat platforms, which are all bridged together - messages sent via one platform will be sent to all other platforms automatically.<br />
<br />
The community chat platforms are:<br />
<br />
'''IRC'''<br />
: Server: [ircs://irc.pine64.org irc.pine64.org], type <code>/list</code> to see all available channels (web IRC: https://www.pine64.org/web-irc/). Only some of the channels are available.<br />
<br />
'''Discord'''<br />
: [https://discordapp.com/invite/DgB7kzr Discord invite link] (all channels are available)<br />
<br />
'''Matrix and Telegram'''<br />
<br />
{| class="wikitable"<br />
! Name !! Matrix !! Telegram<br />
|-<br />
| PINE64 News || missing || [https://t.me/PINE64_News @PINE64_News]<br />
|-<br />
| PINE A64 SBC || [https://riot.im/app/#/room/#pine64:matrix.org #pine64:matrix.org] || [https://t.me/mtrx_rock64 @mtrx_pine64]<br />
|-<br />
| ROCK64 / ROCKPro64 || [https://riot.im/app/#/room/#rock64:matrix.org #rock64:matrix.org] || [https://t.me/mtrx_rock64 @mtrx_rock64]<br />
|-<br />
| Pinebook and Pinebook Pro || [https://riot.im/app/#/room/#pinebook:matrix.org #pinebook:matrix.org] || [https://t.me/mtx_pinebook @mtx_pinebook]<br />
|-<br />
| PinePhone || [https://riot.im/app/#/room/#pinephone:matrix.org #pinephone:matrix.org] || [https://t.me/pinephone @pinephone]<br />
|-<br />
| PineTab || [https://riot.im/app/#/room/#pinetab:pine64.org #pinetab:matrix.org] || [https://t.me/PineTab @PineTab]<br />
|-<br />
| PineTime || [https://riot.im/app/#/room/#pinetime:matrix.org #pinetime:matrix.org] || [https://t.me/pinetime @pinetime]<br />
|-<br />
| PineTime Development || [https://riot.im/app/#/room/#pinetime-dev:matrix.org #pinetime-dev:matrix.org] || [https://t.me/pinetime_dev @pinetime_dev]<br />
|-<br />
| Pinecil || [https://riot.im/app/#/room/#pinecil:matrix.org #pinecil:matrix.org] || [https://t.me/joinchat/Kmi2S1iej-_4DgrVf3jjnQ Pinecil]<br />
|-<br />
| Pinetalk || missing || missing<br />
|-<br />
| Cube || [https://riot.im/app/#/room/#cube64:matrix.org #cube64:matrix.org] || missing<br />
|-<br />
| Nutcracker || [https://riot.im/app/#/room/#pine64-nutcracker:matrix.org #pine64-nutcracker:matrix.org] || [https://t.me/joinchat/Kmi2S0nOsT240emHk-aO6g Nutcracker]<br />
|-<br />
| Off-topic || [https://riot.im/app/#/room/#offtopic64:matrix.org #offtopic64:matrix.org] || [https://t.me/pine64offtopic @pine64offtopic]<br />
|-<br />
|}<br />
<br />
<!--<br />
'''Matrix'''<br />
: PINE64 News (missing)<br />
: [https://riot.im/app/#/room/#pine64:matrix.org #pine64:matrix.org] - PINE A64 SBC room<br />
: [https://riot.im/app/#/room/#rock64:matrix.org #rock64:matrix.org] - ROCK64 / ROCKPro64 room<br />
: [https://riot.im/app/#/room/#pinebook:matrix.org #pinebook:matrix.org] - Pinebook and Pinebook Pro room<br />
: [https://riot.im/app/#/room/#pinephone:matrix.org #pinephone:matrix.org] - PinePhone room<br />
: [https://riot.im/app/#/room/#pinetab:pine64.org #pinetab:matrix.org] - PineTab room<br />
: [https://riot.im/app/#/room/#pinetime64:matrix.org #pinetime64:matrix.org] - PineTime room<br />
: [https://riot.im/app/#/room/#pinetime-dev:matrix.org #pinetime-dev:matrix.org] - PineTime Development room<br />
: [https://riot.im/app/#/room/#pinecil:matrix.org #pinecil:matrix.org] - Pinecil room<br />
: Pinetalk (missing)<br />
: [https://riot.im/app/#/room/#cube64:matrix.org #cube64:matrix.org] - Cube room<br />
: [https://riot.im/app/#/room/#pine64-nutcracker:matrix.org #pine64-nutcracker:matrix.org] - Nutcracker room<br />
: [https://riot.im/app/#/room/#offtopic64:matrix.org #offtopic64:matrix.org] - Off-topic room<br />
<br />
'''Telegram'''<br />
: [https://t.me/PINE64_News PINE64 News]<br />
: [https://t.me/mtrx_pine64 PINE A64 SBC]<br />
: [https://t.me/mtrx_rock64 ROCK64 / ROCKPro64]<br />
: [https://t.me/mtx_pinebook Pinebook and Pinebook Pro]<br />
: [https://t.me/pinephone PinePhone]<br />
: [https://t.me/PineTab PineTab]<br />
: [https://t.me/pinetime PineTime]<br />
: [https://t.me/pinetime_dev PineTime Development]<br />
: [https://t.me/joinchat/Kmi2S1iej-_4DgrVf3jjnQ Pinecil]<br />
: Pinetalk (missing)<br />
: Cube (missing)<br />
: [https://t.me/joinchat/Kmi2S0nOsT240emHk-aO6g Nutcracker]<br />
: [https://t.me/pine64offtopic Pine64 Off-topic]<br />
--><br />
<br />
== Forums ==<br />
PINE64 runs an offical forum powered by open source [https://mybb.com/ MyBB] forum server software. According to [https://www.pine64.org/gettings-started/ Getting Started | PINE64], on the forum one can report issues, help out other users, offer up findings and new information, but also engage directly with community and partner-project developers, as well as with PINE64 members.<br />
<br />
: [https://forum.pine64.org/ Official Pine64 Forum]<br />
<br />
'''Reddit'''<br />
: [https://www.reddit.com/r/PINE64official/ Official Pine64 Reddit]<br />
: [https://www.reddit.com/r/PinePhoneOfficial/ Official PinePhone Reddit]<br />
<br />
= Helpful Information for Beginners =<br />
Sections dedicated to the very beginners who are just getting started in the SBC and ARM64 world. If you're just starting out and having issues with getting going, please consider browsing both sections for pointers. <br />
<br />
'''Getting Started'''<br />
: [[NOOB]] - Basic information on how to flash SD cards and eMMC modules as well as handling your devices.<br />
<br />
'''Project Ideas'''<br />
: [[Project]] - A variety of well-documented PINE64 projects to serve as inspiration.<br />
<br />
__FORCETOC__</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro_Dock&diff=9377Pinebook Pro Dock2021-03-04T17:57:15Z<p>Arwen: Starting point for Pinebook Pro docking station</p>
<hr />
<div>Starting point for PineBook Pro Docking station<br><br />
<br><br />
= Description =<br />
The PineBook Pro's docking station was custom designed for both physical dimensions and ports to compliment the PineBook Pro laptop. While it may work for other laptops, convergence devices, (tablets and smart phones), it has not been tested on such.<br />
= Ports available =<br />
List of ports available on docking station:<br />
* USB 3.0 Ports x3<br />
* USB-C Ports 2x<br />
* 4K @ 30fps HDMI x1<br />
* 1080P VGA x1<br />
* Gigabit Ethernet networking port x 1<br />
* Card readers: micro SD x 1 & SD x 1, supports: SD, SDHC and SDXC<br />
* Audio Jack: 3.5mm Earphone Jack with mic x1<br />
= Chips used =<br />
List of chips used in the docking station:<br />
* PD Negotiation chip - PDFL7102<br />
* HDMI/VGA chip - IT6564<br />
* GbE Ethernet chip - RTL8153B<br />
* USB 3.0 Hub chip - VL817<br />
* SD card reader chip - GL823K<br />
* Audio CODEC chip - HZD100</div>Arwenhttps://wiki.pine64.org/index.php?title=Quartz64&diff=9303Quartz642021-02-16T12:54:52Z<p>Arwen: /* System Memory */ Put eMMC under storage, instead of memory</p>
<hr />
<div>The Quartz64 is the most recent Single Board Computer offering from Pine64, scheduled for release in 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x2 open ended slot (model A) or m.2 (model B), the use of LPDDR4 RAM.<br />
<br />
The Quartz64 is equipped with 2GB, 4GB or 8GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, GPIO Bus, MiPi DSI interface, eink interface (Model A), eDP interface (model A), touch Panel interface (model A), MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
* TBD<br />
<br />
== SoC and Memory Specification ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core Cortex-A55@1.8GHz]<br />
<br />
* Quad-core ARM Cortex-A55 CPU<br />
* AArch32 for full backward compatibility with Armv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Include VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache, 32KB L1 data cache<br />
* 512KB unified system L3 cache<br />
* TrustZone technology support<br />
<br />
=== Graphic Process Unit GPU Capability ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Support OpenGL ES 1.1, 2.0, and 3.2<br />
* Support Vulkan 1.0 and 1.1<br />
* Support OpenCL 2.0 Full Profile<br />
* Support 1600Mpix/s fill rate when 800MHz clock frequency<br />
* Support 38.4GLOPs when 800MHz clock frequency <br />
<br />
=== Neural Process Unit NPU Capability ===<br />
* Neural network acceleration engine with processing performance up to 0.8 TOPS<br />
* Support integer 8, integer 16 convolution operation<br />
* Support deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB - 8GB LPDDR4.<br />
* SPI Flash: 128Mbit / 16MByte<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, build in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, support SDHC and SDXC, storage up to 256GB<br />
* USB - 2 ports on model B, 3 ports on model A USB 2.0 Host port, 1 USB 3.0 Host port<br />
* native SATA 2.0 Port (only on model A, share with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
=== Expansion Ports ===<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe 2x open ended slot on model A, m.2 slot on model B<br />
<br />
== Quartz64 board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v1.0_20201124.pdf Quartz64 Model "A" SBC Schematic ver 1.0 20201124 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V1.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certification:<br />
** Not yet available<br />
<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
<br />
<br />
== Other Resources ==<br />
<br />
<br />
<br />
[[Category:Quartz64]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Quartz64&diff=9302Quartz642021-02-16T12:53:33Z<p>Arwen: /* Storage */ Put eMMC under storage, instead of memory</p>
<hr />
<div>The Quartz64 is the most recent Single Board Computer offering from Pine64, scheduled for release in 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x2 open ended slot (model A) or m.2 (model B), the use of LPDDR4 RAM.<br />
<br />
The Quartz64 is equipped with 2GB, 4GB or 8GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, GPIO Bus, MiPi DSI interface, eink interface (Model A), eDP interface (model A), touch Panel interface (model A), MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
* TBD<br />
<br />
== SoC and Memory Specification ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core Cortex-A55@1.8GHz]<br />
<br />
* Quad-core ARM Cortex-A55 CPU<br />
* AArch32 for full backward compatibility with Armv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Include VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache, 32KB L1 data cache<br />
* 512KB unified system L3 cache<br />
* TrustZone technology support<br />
<br />
=== Graphic Process Unit GPU Capability ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Support OpenGL ES 1.1, 2.0, and 3.2<br />
* Support Vulkan 1.0 and 1.1<br />
* Support OpenCL 2.0 Full Profile<br />
* Support 1600Mpix/s fill rate when 800MHz clock frequency<br />
* Support 38.4GLOPs when 800MHz clock frequency <br />
<br />
=== Neural Process Unit NPU Capability ===<br />
* Neural network acceleration engine with processing performance up to 0.8 TOPS<br />
* Support integer 8, integer 16 convolution operation<br />
* Support deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB - 8GB LPDDR4.<br />
* Storage Memory: SPI Flash and optional eMMC module from 16GB up to 128GB<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, build in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, support SDHC and SDXC, storage up to 256GB<br />
* USB - 2 ports on model B, 3 ports on model A USB 2.0 Host port, 1 USB 3.0 Host port<br />
* native SATA 2.0 Port (only on model A, share with USB 3.0 host port)<br />
* optional eMMC module from 16GB up to 128GB<br />
<br />
=== Expansion Ports ===<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe 2x open ended slot on model A, m.2 slot on model B<br />
<br />
== Quartz64 board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v1.0_20201124.pdf Quartz64 Model "A" SBC Schematic ver 1.0 20201124 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V1.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certification:<br />
** Not yet available<br />
<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
<br />
<br />
== Other Resources ==<br />
<br />
<br />
<br />
[[Category:Quartz64]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Quartz64&diff=9301Quartz642021-02-16T12:52:19Z<p>Arwen: /* Datasheets for Components and Peripherals */ Fixed formatting, LCD et. all should not be list items under SPI NOR Flash</p>
<hr />
<div>The Quartz64 is the most recent Single Board Computer offering from Pine64, scheduled for release in 2021. It is powered by a Rockchip RK3566 Quad-Core ARM Cortex A55 64-Bit Processor with a MALI G-52 GPU.<br />
<br />
Key features include a PCIe x2 open ended slot (model A) or m.2 (model B), the use of LPDDR4 RAM.<br />
<br />
The Quartz64 is equipped with 2GB, 4GB or 8GB LPDDR4 system memory, and 128Mb SPI boot Flash. There is also an optional eMMC module (up to 128GB) and microSD slot for booting. The board is equipped with 1x USB 3.0 type A Host, 3x USB 2.0 Host, Gigabit Ethernet, GPIO Bus, MiPi DSI interface, eink interface (Model A), eDP interface (model A), touch Panel interface (model A), MiPi CSI interface, as well as many other device interfaces such as UART, SPI, I2C, for makers to integrate with sensors and other peripherals. Many different Operating Systems (OS) are freely available from the open source community, such as Linux (Ubuntu, Debian, Arch), BSD, and Android.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
* TBD<br />
<br />
== SoC and Memory Specification ==<br />
* Based on [https://www.rock-chips.com/a/en/products/RK35_Series/2021/0113/1274.html Rockchip RK3566]<br />
[[File:RK3566_icon.png|right]]<br />
<br />
=== CPU Architecture ===<br />
* [https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55 Quad-core Cortex-A55@1.8GHz]<br />
<br />
* Quad-core ARM Cortex-A55 CPU<br />
* AArch32 for full backward compatibility with Armv7<br />
* ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
* Include VFP hardware to support single and double-precision operations<br />
* ARMv8 Cryptography Extensions<br />
* Integrated 32KB L1 instruction cache, 32KB L1 data cache<br />
* 512KB unified system L3 cache<br />
* TrustZone technology support<br />
<br />
=== Graphic Process Unit GPU Capability ===<br />
* [https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu Mali-G52 2EE Bifrost GPU@800MHz]<br />
* 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop <br />
* 128KB L2 Cache configurations<br />
* Support OpenGL ES 1.1, 2.0, and 3.2<br />
* Support Vulkan 1.0 and 1.1<br />
* Support OpenCL 2.0 Full Profile<br />
* Support 1600Mpix/s fill rate when 800MHz clock frequency<br />
* Support 38.4GLOPs when 800MHz clock frequency <br />
<br />
=== Neural Process Unit NPU Capability ===<br />
* Neural network acceleration engine with processing performance up to 0.8 TOPS<br />
* Support integer 8, integer 16 convolution operation<br />
* Support deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet<br />
<br />
=== System Memory ===<br />
* RAM Memory Variants: 2GB - 8GB LPDDR4.<br />
* Storage Memory: SPI Flash and optional eMMC module from 16GB up to 128GB<br />
<br />
=== Network ===<br />
* 10/100/1000Mbps Ethernet<br />
* WiFi 802.11 b/g/n/ac with Bluetooth 5.0 (optional on model A, build in on model B)<br />
<br />
=== Storage ===<br />
* microSD - bootable, support SDHC and SDXC, storage up to 256GB<br />
* USB - 2 ports on model B, 3 ports on model A USB 2.0 Host port, 1 USB 3.0 Host port<br />
* native SATA 2.0 Port (only on model A, share with USB 3.0 host port)<br />
<br />
=== Expansion Ports ===<br />
* eDP - 4 lanes of 2.7Gbps, up to 2560x1600@60Hz (only on model A)<br />
* DSI - Display Serial Interface, 4 lanes MiPi, up to 1440P on model A, 2 lanes MiPi, up to 1080p on model B <br />
* CSI - CMOS Camera Interface, 4 lanes MiPi up to 8 mega pixel on model A, 2 lanes MiPi up to 5 mega pixel on model B <br />
* TP - Touch Panel Port, SPI with interrupt on model A<br />
* RTC - Real Time Clock Battery Connector<br />
* VBAT - Lithium Battery Connector with temperature sensor input on model A<br />
* Wifi/BT Module Header - SDIO 3.0 and UART on model A, build in Wifi/BT Module on model B<br />
* 2x20 pins "Pi2" GPIO Header on model B, 2x10 pins GPO header on model A<br />
* PCIe 2x open ended slot on model A, m.2 slot on model B<br />
<br />
== Quartz64 board Information, Schematics, and Certifications ==<br />
* Model "A" Baseboard Dimensions: 133mm x 80mm x 19mm<br />
* Input Power: DC 12V @ 3A 5.5mmOD/2.1mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "A" SBC Schematic and PCB Board Resource:<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_schematic_v1.0_20201124.pdf Quartz64 Model "A" SBC Schematic ver 1.0 20201124 PDF file]<br />
** [https://files.pine64.org/doc/quartz64/Quartz64_model-A_V1.0_connector_placement.pdf Quartz64 Model "A" SBC PCB Connector placement PDF file]<br />
<br />
* Model "B" Baseboard Dimensions: 85mm x 56mm x 18.8mm<br />
* Input Power: DC 5V @ 3A 3.5mmOD/1.35mmID Barrel DC Jack connector<br />
<br />
* Quartz64 Model "B" SBC Schematic and PCB Board Resource:<br />
** Quartz64 Model "B" SBC Schematic not yet available<br />
** [https://files.pine64.org/doc/quartz64/Quartz64%20model-B%20PCB%20placement.pdf Quartz64 Model "B" SBC PCB Connector placement PDF file]<br />
<br />
* Certification:<br />
** Not yet available<br />
<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3566 SoC information:<br />
** [https://files.pine64.org/doc/quartz64/Rockchip%20RK3566%20Datasheet%20V1.0-20201210.pdf Rockchip RK3566 ver 1.0 datasheet, already got release permission from Rockchip]<br />
* LPDDR4 (200 Balls) SDRAM:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/SM512M32Z01MD2BNP(200BALL).pdf Micron LPDDR4 Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/E-00517%20FORESEE_eMMC_NCEMAM8B-16G%20SPEC.pdf 16GB Foresee eMMC Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 32GB/64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GD25Q128C-Rev2.5.pdf GigaDevice 128Mb SPI Flash Datasheet]<br />
* E-ink Panel information:<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-754-V3_ES103TC1%20Specification%20V3.0(Signed)-20190702.pdf Eink 10.3" 1872x1404 ES103TC1 Flex Panel Specification]<br />
** [https://files.pine64.org/doc/quartz64/Eink%20P-511-828-V1_ED103TC2%20Formal%20Spec%20V1.0_20190514.pdf Eink 10.3" 1872x1404 ES103TC1 Glass Panel Specification]<br />
* LCD Touch Screen Panel information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/FY07024DI26A30-D_feiyang_LCD_panel.pdf 7.0" 1200x600 TFT-LCD Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/HK70DR2459-PG-V01.pdf Touch Panel Specification]<br />
** [https://files.pine64.org/doc/datasheet/pine64/GT911%20Capacitive%20Touch%20Controller%20Datasheet.pdf GOODiX GT911 5-Point Capacitive Touch Controller Datasheet]<br />
* Ethernet PHY information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/rtl8211e(g)-vb(vl)-cg_datasheet_1.6.pdf Realtek RTL8211 10/100/1000M Ethernet Transceiver]<br />
* WiFi/BT module info:<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/AP6256%20datasheet_V1.3_12202017.pdf AMPAK AP6256 11AC WiFi + Bluetooth5.0 Datasheet]]<br />
* Enclosure information:<br />
** [https://files.pine64.org/doc/datasheet/case/playbox_enclosure_20160426.stp Playbox Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/ABS_enclosure_20160426.stp ABS Enclosure 3D file]<br />
** [https://files.pine64.org/doc/datasheet/case/pine64%20Die%20Cast%20casing-final.jpg Outdoor Aluminum Cast Dust-proof IP67 Enclosure Drawing]<br />
* Connector information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/ePH.pdf 2.0mm PH Type connector specification use in Lithium Battery (VBAT) port and RTC Battery port]<br />
** [https://files.pine64.org/doc/datasheet/pine64/0.5FPC%20Front%20Open%20Connector%20H=1.5.pdf 0.5mm Pitch cover type FPC connector specification use in DSI port, TP port and CSI port]<br />
<br />
== Android SDK ==<br />
<br />
=== Android 11 SDK ===<br />
* [http://files.pine64.org/SDK/Quartz64/QUARTZ64_SDK_android11.tar.gz Direct Download from pine64.org]<br />
** MD5 (TAR-GZip file): 77c2ff57ea3372fb04da7fb49e17d12b<br />
** File Size: 79.00GB<br />
<br />
<br />
== Other Resources ==<br />
<br />
<br />
<br />
[[Category:Quartz64]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinecil&diff=8770Pinecil2020-12-31T15:35:38Z<p>Arwen: Added initial picture of Pinecil</p>
<hr />
<div>PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE<br />
== Overall description ==<br />
[[File:Pinecil-bb2-01_rotate.jpg]]<br><br />
The Pinecil is a portable, temperature controlled soldering iron. It's main features are:<br />
<br />
* Portability<br />
* Settable temperature<br />
* Soldering tips:<br />
** Replaceable<br />
** More than half a dozen available. Currently sold as 2 separate sets of 4, one fine set, the other larger.<br />
** Compatible with TS100<br />
* Flexible power sources:<br />
** Barrel jack<br />
** USB Type C power delivery<br />
<br />
There are additional features that include:<br />
<br />
* Programmable via embedded processor<br />
* Display that can have items like temperature<br />
* Idle detection, for automatic power down of tip<br />
<br />
== Pictures ==<br />
* Pinecil Renders:<br />
<br />
[[File:Pinecil_Exploded_Diagram_ver_0.9.png]]<br />
<br />
<br />
[[File:Pinecil-bb2-01.jpg]]<br />
<br />
* Pinecil Prototype:<br />
<br />
[[File:PinecilPrototype.jpg|800px]]<br />
== Pinecil tips ==<br />
* Default tip model TS-B2 accompany with Pinecil<br />
<br />
* Tip set 1 (left) & 2 (right): [[File:PinecilTipSets.jpg|800px]]<br />
<br />
* Uses TS-100 compatible tips<br />
== Specifications ==<br />
* '''Dimensions:''' 170mm with solder tip or 98mm without solder tip x 12.8mm x 16.2mm<br />
* '''Weight:''' 30g with solder tip, 20g without solder tip<br />
* '''CPU:''' GD32VF103TB 32-bit RV32IMAC RISC-V “Bumblebee Core” @ 108 MHz<br />
* '''Memory:'''<br />
** 128KB Flash<br />
** 32KB SRAM<br />
* '''DC in (only one of the following at a time):'''<br />
** 12V- 24V DC5525 Barrel Jack<br />
** USB-C 12-20V PD<br />
** QC3.0<br />
** Recommend operating voltage 12-21V, maximum rating at 24V<br />
<br />
== Pinecil board information, schematics and certifications ==<br />
<br />
* Pinecil breakout board: [[File:Pinecil-breakout-board-02.jpg]]<br />
<br />
* Pinecil mainboard schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf Pinecil mainboard schematic ver 1.0 20201120, this is production version schematic]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Top PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Bottom PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Top Drawing file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Bottom Drawing file]<br />
<br />
* Pinecil breakout board schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_Schematic_v1.0_20201005.pdf Pinecil breakout board schematic ver 1.0 20201005]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_PCB_layout_v1.0_20201005.pdf Pinecil breakout board PCB layout ver 1.0]<br />
<br />
* Pinecil certifications:<br />
** [https://files.pine64.org/doc/cert/Pinecil%20CE%20RED%20Certificate-S20102803801001.pdf Pinecil CE RED Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20FCC%20Certificate-S20102803802001.pdf Pinecil FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20RoHS10%20Certificate-S20102803803001.pdf Pinecil ROHS Certificate]<br />
<br />
<br />
== Firmware Image Releases ==<br />
<br />
* [https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip Pinecil production firmware 20201115, thanks to Ralimtek]<br />
<br />
Links to development firmware and documentation:<br />
<br />
* [https://github.com/Ralim/IronOS/releases GitHub repository for IronOS, from Ralimtek]<br />
* [https://github.com/Ralim/IronOS/blob/master/Documentation/Flashing.md GitHub link for IronOS flashing documentation]<br />
== Datasheets for components and peripherals ==<br />
* GigaDevice RISC-V SoC information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_Datasheet_Rev%201.1.pdf GigaDevice RISC-V GD32VF103TB SoC Datasheet V1.1]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_User_Manual_EN_V1.2.pdf GigaDevice RISC-V GD32VF103TB SoC Usermanual V1.2]<br />
* Display Module information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/1810010328_UG-Univision-Semicon-UG-9616TSWCG02_C88335.pdf QUG 9616TSWCG02 Display Module Datasheet]<br />
* USB Type-C PD Controller information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/FUSB302-D.PDF ON Semiconductor FUSB302 USB Type-C PD Controller Datasheet]<br />
* Sensor information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/BMA223-Bosch.pdf Bosch BMA223 Acceleration Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/si7210-datasheet.pdf Silicon Lab Si7210 Hall-Effect Magnetic Position Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/TMP35_36_37.pdf Analog Device TMP36 Temparature Sensor Datasheet]<br />
* Power Regulator information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/RT7272B-05.pdf Ricktek RT7272B 3A Switching Power Regulator Datasheet - on mainboard]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/LP6498B6F.pdf LowPowerSemi LP6498B6F 1.2A Switching Power Regulator Datasheet - on breakout board]<br />
* Power MOSFET Switch information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/Changjiang-Electronics-Tech-CJ-CJQ7328.pdf Chang Jiang CJQ7328 8A MOSFET Datasheet]<br />
* OP Amp information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/SGM8557.pdf SGMicro SGM8557-1 Low Noise OP Amp Datasheet]<br />
<br />
<br />
<br />
== Development efforts ==<br />
<br />
{| class="wikitable"<br />
!<br />
! Project Homepage<br />
! Project Source<br />
! Implementations<br />
<br />
|-<br />
! Ralimtek<br />
| https://ralimtek.com<br />
| https://www.gitmemory.com/Ralim<br />
|}<br />
<br />
=== How to update a firmware ===<br />
<br />
(Method tested on Linux, should work on any OS where dfu-util works, instructions assumes you have dfu-util 0.9)<br />
<br />
{{warning|1=This potentially can brick your device. Do on your own risk!}}<br />
<br />
{{note|1=If <code>dfu-util</code> command cannot find a device with 28e9:0189 ID, try to run it with <code>sudo</code>}}<br />
<br />
# Enter an update mode. For that plug USB cable while holding *-* button (button, that's closest to USB-C port)<br />
# Make a firmware backup: <code>dfu-util -d 28e9:0189 -a 0 -U ~/pinecil/internal.flash.stock -s 0x08000000</code><br />
## <code>28e9:0189</code> -- USB Device ID (can be obtained from <code>lsusb</code> or <code>dfu-util -l</code> but in dfu-util output it might be hard to identify the Pinecil device)<br />
## <code>-a 0</code> -- selects partition to flash. List of possible options can be obtained via <code>dfu-util -l</code>. Partition 0 - internal SPI flash. Partition 1 - fuses (description of fuses can be found in User Manual for the chip)<br />
## <code>-U</code> -- specifies a mode. U is upload, which means that firmware will be downloaded and saved to file (yes, that's confusing, but it is what it is, feel free to verify that in a manual of your version of dfu-util). Command must be followed by a path to file where you want to save your firmware. dfu-util will refuse to dump firmware if you already have a file with that name.<br />
## <code>-s 0x08000000</code> -- specify the address in a flash from which dump will start. This can be obtained from <code>dfu-util -l</code>.<br />
# Flash a new firmware: <code>dfu-util -d 28e9:0189 -a 0 -D ~/pinecil/internal.flash.stock -s 0x08000000:mass-erase:force</code><br />
## <code>-D</code> -- is a mode to Download firmware to the device (yes, that's confusing, but you indeed Upload from device and Download to device with dfu-util). That should follow the file with the firmware Same stock one from (1) used here on purpose.<br />
## <code>-s 0x08000000:mass-erase:force</code> -- specified the address where to flash the file. <code>:mass-erase:force</code> is required to force-erase flash before updating firmware, otherwise you might have unpredictable results.<br />
<br />
== Disassembly steps ==<br />
<br />
# Remove tip if present.<br />
## Let tip cool down.<br />
## Loosen top (display side) screw (PH1) on the tip side of the device.<br />
## Gently pull tip out.<br />
# Slide rubber off towards the tip side.<br />
# Remove the ground screw (longer screw on the top side towards the port side) (PH1).<br />
# Remove the bottom screw (at the tip side, between the legs) (PH1).<br />
# Slightly pull the two halves of the case apart at the tip side, enough to get a fingernail or guitar pick between the halves.<br />
# Move the pick down the length of the split to loosen the bottom half's clips from the top half of the case.<br />
# Once loose, remove the bottom half by moving it forward (it is retained by the top half at the port side).<br />
# Remove the screws retaining the copper tip contacts (PH000).<br />
# Remove the now loose copper tip contacts.<br />
# Gently push the board towards the tip side by pushing on one of the ports (for example, by using a misaligned USB C connector).<br />
# The PCB assembly is now free to be lifted out.<br />
## The key caps are now no longer retained, carefully set aside the top half, or remove the caps and store them separately.<br />
<br />
=== Assembly steps ===<br />
<br />
# Place the key caps into their recesses in the top half of the case.<br />
# Place the PCB assembly into the top half of the case ports first.<br />
## Lower the rest of the board into the case and move the PCB assembly towards the port side of the case (the DC barrel connector may be a firm place to gently push).<br />
# Install the copper tip contacts.<br />
## Orient the contact to align the alignment pin with the alignment hole next to the big hole on one of the big gold pads.<br />
## Install and gently tighten the PH000 screw until the clip is no longer loose.<br />
# Place the bottom half of the case into the top half by sliding the lip on the port side (side without the feet) of the bottom half under the arch of the port side of the top half.<br />
# Gently close the case by bringing the two halves together, paying attention to each clip's alignment and ensuring the case edges align.<br />
# Install the short PH1 screw at the bottom of the tip side of the case.<br />
# Install the longer PH1 screw at the ground connection point at the top side of the case (between the display and the ports).<br />
# Slide the rubber sleeve on (larger ridge first).<br />
# Gently insert tip.<br />
# Gently tighten the top PH1 screw to retain the tip.<br />
<br />
[[Category:Pinecil]]</div>Arwenhttps://wiki.pine64.org/index.php?title=File:Pinecil-bb2-01_rotate.jpg&diff=8769File:Pinecil-bb2-01 rotate.jpg2020-12-31T15:35:20Z<p>Arwen: Arwen uploaded a new version of File:Pinecil-bb2-01 rotate.jpg</p>
<hr />
<div>== Summary ==<br />
Pinecil in package, rotated</div>Arwenhttps://wiki.pine64.org/index.php?title=File:Pinecil-bb2-01_rotate.jpg&diff=8768File:Pinecil-bb2-01 rotate.jpg2020-12-31T15:31:14Z<p>Arwen: Pinecil in package, rotated</p>
<hr />
<div>== Summary ==<br />
Pinecil in package, rotated</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinecil&diff=8767Pinecil2020-12-31T15:25:12Z<p>Arwen: /* Overall description */ Fixed syntax with comma</p>
<hr />
<div>PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE<br />
== Overall description ==<br />
The Pinecil is a portable, temperature controlled soldering iron. It's main features are:<br />
<br />
* Portability<br />
* Settable temperature<br />
* Soldering tips:<br />
** Replaceable<br />
** More than half a dozen available. Currently sold as 2 separate sets of 4, one fine set, the other larger.<br />
** Compatible with TS100<br />
* Flexible power sources:<br />
** Barrel jack<br />
** USB Type C power delivery<br />
<br />
There are additional features that include:<br />
<br />
* Programmable via embedded processor<br />
* Display that can have items like temperature<br />
* Idle detection, for automatic power down of tip<br />
<br />
== Pictures ==<br />
* Pinecil Renders:<br />
<br />
[[File:Pinecil_Exploded_Diagram_ver_0.9.png]]<br />
<br />
<br />
[[File:Pinecil-bb2-01.jpg]]<br />
<br />
* Pinecil Prototype:<br />
<br />
[[File:PinecilPrototype.jpg|800px]]<br />
== Pinecil tips ==<br />
* Default tip model TS-B2 accompany with Pinecil<br />
<br />
* Tip set 1 (left) & 2 (right): [[File:PinecilTipSets.jpg|800px]]<br />
<br />
* Uses TS-100 compatible tips<br />
== Specifications ==<br />
* '''Dimensions:''' 170mm with solder tip or 98mm without solder tip x 12.8mm x 16.2mm<br />
* '''Weight:''' 30g with solder tip, 20g without solder tip<br />
* '''CPU:''' GD32VF103TB 32-bit RV32IMAC RISC-V “Bumblebee Core” @ 108 MHz<br />
* '''Memory:'''<br />
** 128KB Flash<br />
** 32KB SRAM<br />
* '''DC in (only one of the following at a time):'''<br />
** 12V- 24V DC5525 Barrel Jack<br />
** USB-C 12-20V PD<br />
** QC3.0<br />
** Recommend operating voltage 12-21V, maximum rating at 24V<br />
<br />
== Pinecil board information, schematics and certifications ==<br />
<br />
* Pinecil breakout board: [[File:Pinecil-breakout-board-02.jpg]]<br />
<br />
* Pinecil mainboard schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf Pinecil mainboard schematic ver 1.0 20201120, this is production version schematic]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Top PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Bottom PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Top Drawing file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Bottom Drawing file]<br />
<br />
* Pinecil breakout board schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_Schematic_v1.0_20201005.pdf Pinecil breakout board schematic ver 1.0 20201005]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_PCB_layout_v1.0_20201005.pdf Pinecil breakout board PCB layout ver 1.0]<br />
<br />
* Pinecil certifications:<br />
** [https://files.pine64.org/doc/cert/Pinecil%20CE%20RED%20Certificate-S20102803801001.pdf Pinecil CE RED Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20FCC%20Certificate-S20102803802001.pdf Pinecil FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20RoHS10%20Certificate-S20102803803001.pdf Pinecil ROHS Certificate]<br />
<br />
<br />
== Firmware Image Releases ==<br />
<br />
* [https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip Pinecil production firmware 20201115, thanks to Ralimtek]<br />
<br />
Links to development firmware and documentation:<br />
<br />
* [https://github.com/Ralim/IronOS/releases GitHub repository for IronOS, from Ralimtek]<br />
* [https://github.com/Ralim/IronOS/blob/master/Documentation/Flashing.md GitHub link for IronOS flashing documentation]<br />
== Datasheets for components and peripherals ==<br />
* GigaDevice RISC-V SoC information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_Datasheet_Rev%201.1.pdf GigaDevice RISC-V GD32VF103TB SoC Datasheet V1.1]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_User_Manual_EN_V1.2.pdf GigaDevice RISC-V GD32VF103TB SoC Usermanual V1.2]<br />
* Display Module information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/1810010328_UG-Univision-Semicon-UG-9616TSWCG02_C88335.pdf QUG 9616TSWCG02 Display Module Datasheet]<br />
* USB Type-C PD Controller information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/FUSB302-D.PDF ON Semiconductor FUSB302 USB Type-C PD Controller Datasheet]<br />
* Sensor information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/BMA223-Bosch.pdf Bosch BMA223 Acceleration Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/si7210-datasheet.pdf Silicon Lab Si7210 Hall-Effect Magnetic Position Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/TMP35_36_37.pdf Analog Device TMP36 Temparature Sensor Datasheet]<br />
* Power Regulator information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/RT7272B-05.pdf Ricktek RT7272B 3A Switching Power Regulator Datasheet - on mainboard]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/LP6498B6F.pdf LowPowerSemi LP6498B6F 1.2A Switching Power Regulator Datasheet - on breakout board]<br />
* Power MOSFET Switch information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/Changjiang-Electronics-Tech-CJ-CJQ7328.pdf Chang Jiang CJQ7328 8A MOSFET Datasheet]<br />
* OP Amp information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/SGM8557.pdf SGMicro SGM8557-1 Low Noise OP Amp Datasheet]<br />
<br />
<br />
<br />
== Development efforts ==<br />
<br />
{| class="wikitable"<br />
!<br />
! Project Homepage<br />
! Project Source<br />
! Implementations<br />
<br />
|-<br />
! Ralimtek<br />
| https://ralimtek.com<br />
| https://www.gitmemory.com/Ralim<br />
|}<br />
<br />
=== How to update a firmware ===<br />
<br />
(Method tested on Linux, should work on any OS where dfu-util works, instructions assumes you have dfu-util 0.9)<br />
<br />
{{warning|1=This potentially can brick your device. Do on your own risk!}}<br />
<br />
{{note|1=If <code>dfu-util</code> command cannot find a device with 28e9:0189 ID, try to run it with <code>sudo</code>}}<br />
<br />
# Enter an update mode. For that plug USB cable while holding *-* button (button, that's closest to USB-C port)<br />
# Make a firmware backup: <code>dfu-util -d 28e9:0189 -a 0 -U ~/pinecil/internal.flash.stock -s 0x08000000</code><br />
## <code>28e9:0189</code> -- USB Device ID (can be obtained from <code>lsusb</code> or <code>dfu-util -l</code> but in dfu-util output it might be hard to identify the Pinecil device)<br />
## <code>-a 0</code> -- selects partition to flash. List of possible options can be obtained via <code>dfu-util -l</code>. Partition 0 - internal SPI flash. Partition 1 - fuses (description of fuses can be found in User Manual for the chip)<br />
## <code>-U</code> -- specifies a mode. U is upload, which means that firmware will be downloaded and saved to file (yes, that's confusing, but it is what it is, feel free to verify that in a manual of your version of dfu-util). Command must be followed by a path to file where you want to save your firmware. dfu-util will refuse to dump firmware if you already have a file with that name.<br />
## <code>-s 0x08000000</code> -- specify the address in a flash from which dump will start. This can be obtained from <code>dfu-util -l</code>.<br />
# Flash a new firmware: <code>dfu-util -d 28e9:0189 -a 0 -D ~/pinecil/internal.flash.stock -s 0x08000000:mass-erase:force</code><br />
## <code>-D</code> -- is a mode to Download firmware to the device (yes, that's confusing, but you indeed Upload from device and Download to device with dfu-util). That should follow the file with the firmware Same stock one from (1) used here on purpose.<br />
## <code>-s 0x08000000:mass-erase:force</code> -- specified the address where to flash the file. <code>:mass-erase:force</code> is required to force-erase flash before updating firmware, otherwise you might have unpredictable results.<br />
<br />
== Disassembly steps ==<br />
<br />
# Remove tip if present.<br />
## Let tip cool down.<br />
## Loosen top (display side) screw (PH1) on the tip side of the device.<br />
## Gently pull tip out.<br />
# Slide rubber off towards the tip side.<br />
# Remove the ground screw (longer screw on the top side towards the port side) (PH1).<br />
# Remove the bottom screw (at the tip side, between the legs) (PH1).<br />
# Slightly pull the two halves of the case apart at the tip side, enough to get a fingernail or guitar pick between the halves.<br />
# Move the pick down the length of the split to loosen the bottom half's clips from the top half of the case.<br />
# Once loose, remove the bottom half by moving it forward (it is retained by the top half at the port side).<br />
# Remove the screws retaining the copper tip contacts (PH000).<br />
# Remove the now loose copper tip contacts.<br />
# Gently push the board towards the tip side by pushing on one of the ports (for example, by using a misaligned USB C connector).<br />
# The PCB assembly is now free to be lifted out.<br />
## The key caps are now no longer retained, carefully set aside the top half, or remove the caps and store them separately.<br />
<br />
=== Assembly steps ===<br />
<br />
# Place the key caps into their recesses in the top half of the case.<br />
# Place the PCB assembly into the top half of the case ports first.<br />
## Lower the rest of the board into the case and move the PCB assembly towards the port side of the case (the DC barrel connector may be a firm place to gently push).<br />
# Install the copper tip contacts.<br />
## Orient the contact to align the alignment pin with the alignment hole next to the big hole on one of the big gold pads.<br />
## Install and gently tighten the PH000 screw until the clip is no longer loose.<br />
# Place the bottom half of the case into the top half by sliding the lip on the port side (side without the feet) of the bottom half under the arch of the port side of the top half.<br />
# Gently close the case by bringing the two halves together, paying attention to each clip's alignment and ensuring the case edges align.<br />
# Install the short PH1 screw at the bottom of the tip side of the case.<br />
# Install the longer PH1 screw at the ground connection point at the top side of the case (between the display and the ports).<br />
# Slide the rubber sleeve on (larger ridge first).<br />
# Gently insert tip.<br />
# Gently tighten the top PH1 screw to retain the tip.<br />
<br />
[[Category:Pinecil]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinecil&diff=8766Pinecil2020-12-31T15:19:27Z<p>Arwen: Moved the soldering tips above the technical details</p>
<hr />
<div>PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE<br />
== Overall description ==<br />
The Pinecil is a portable, temperature controlled soldering iron. It's main features are:<br />
<br />
* Portability<br />
* Settable temperature<br />
* Soldering tips:<br />
** Replaceable<br />
** More than half a dozen available. Currently sold as 2 separate sets of 4, one fine set the other larger.<br />
** Compatible with TS100<br />
* Flexible power sources:<br />
** Barrel jack<br />
** USB Type C power delivery<br />
<br />
There are additional features that include:<br />
<br />
* Programmable via embedded processor<br />
* Display that can have items like temperature<br />
* Idle detection, for automatic power down of tip<br />
== Pictures ==<br />
* Pinecil Renders:<br />
<br />
[[File:Pinecil_Exploded_Diagram_ver_0.9.png]]<br />
<br />
<br />
[[File:Pinecil-bb2-01.jpg]]<br />
<br />
* Pinecil Prototype:<br />
<br />
[[File:PinecilPrototype.jpg|800px]]<br />
== Pinecil tips ==<br />
* Default tip model TS-B2 accompany with Pinecil<br />
<br />
* Tip set 1 (left) & 2 (right): [[File:PinecilTipSets.jpg|800px]]<br />
<br />
* Uses TS-100 compatible tips<br />
== Specifications ==<br />
* '''Dimensions:''' 170mm with solder tip or 98mm without solder tip x 12.8mm x 16.2mm<br />
* '''Weight:''' 30g with solder tip, 20g without solder tip<br />
* '''CPU:''' GD32VF103TB 32-bit RV32IMAC RISC-V “Bumblebee Core” @ 108 MHz<br />
* '''Memory:'''<br />
** 128KB Flash<br />
** 32KB SRAM<br />
* '''DC in (only one of the following at a time):'''<br />
** 12V- 24V DC5525 Barrel Jack<br />
** USB-C 12-20V PD<br />
** QC3.0<br />
** Recommend operating voltage 12-21V, maximum rating at 24V<br />
<br />
== Pinecil board information, schematics and certifications ==<br />
<br />
* Pinecil breakout board: [[File:Pinecil-breakout-board-02.jpg]]<br />
<br />
* Pinecil mainboard schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf Pinecil mainboard schematic ver 1.0 20201120, this is production version schematic]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Top PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Bottom PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Top Drawing file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Bottom Drawing file]<br />
<br />
* Pinecil breakout board schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_Schematic_v1.0_20201005.pdf Pinecil breakout board schematic ver 1.0 20201005]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_PCB_layout_v1.0_20201005.pdf Pinecil breakout board PCB layout ver 1.0]<br />
<br />
* Pinecil certifications:<br />
** [https://files.pine64.org/doc/cert/Pinecil%20CE%20RED%20Certificate-S20102803801001.pdf Pinecil CE RED Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20FCC%20Certificate-S20102803802001.pdf Pinecil FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20RoHS10%20Certificate-S20102803803001.pdf Pinecil ROHS Certificate]<br />
<br />
<br />
== Firmware Image Releases ==<br />
<br />
* [https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip Pinecil production firmware 20201115, thanks to Ralimtek]<br />
<br />
Links to development firmware and documentation:<br />
<br />
* [https://github.com/Ralim/IronOS/releases GitHub repository for IronOS, from Ralimtek]<br />
* [https://github.com/Ralim/IronOS/blob/master/Documentation/Flashing.md GitHub link for IronOS flashing documentation]<br />
== Datasheets for components and peripherals ==<br />
* GigaDevice RISC-V SoC information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_Datasheet_Rev%201.1.pdf GigaDevice RISC-V GD32VF103TB SoC Datasheet V1.1]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_User_Manual_EN_V1.2.pdf GigaDevice RISC-V GD32VF103TB SoC Usermanual V1.2]<br />
* Display Module information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/1810010328_UG-Univision-Semicon-UG-9616TSWCG02_C88335.pdf QUG 9616TSWCG02 Display Module Datasheet]<br />
* USB Type-C PD Controller information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/FUSB302-D.PDF ON Semiconductor FUSB302 USB Type-C PD Controller Datasheet]<br />
* Sensor information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/BMA223-Bosch.pdf Bosch BMA223 Acceleration Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/si7210-datasheet.pdf Silicon Lab Si7210 Hall-Effect Magnetic Position Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/TMP35_36_37.pdf Analog Device TMP36 Temparature Sensor Datasheet]<br />
* Power Regulator information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/RT7272B-05.pdf Ricktek RT7272B 3A Switching Power Regulator Datasheet - on mainboard]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/LP6498B6F.pdf LowPowerSemi LP6498B6F 1.2A Switching Power Regulator Datasheet - on breakout board]<br />
* Power MOSFET Switch information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/Changjiang-Electronics-Tech-CJ-CJQ7328.pdf Chang Jiang CJQ7328 8A MOSFET Datasheet]<br />
* OP Amp information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/SGM8557.pdf SGMicro SGM8557-1 Low Noise OP Amp Datasheet]<br />
<br />
<br />
<br />
== Development efforts ==<br />
<br />
{| class="wikitable"<br />
!<br />
! Project Homepage<br />
! Project Source<br />
! Implementations<br />
<br />
|-<br />
! Ralimtek<br />
| https://ralimtek.com<br />
| https://www.gitmemory.com/Ralim<br />
|}<br />
<br />
=== How to update a firmware ===<br />
<br />
(Method tested on Linux, should work on any OS where dfu-util works, instructions assumes you have dfu-util 0.9)<br />
<br />
{{warning|1=This potentially can brick your device. Do on your own risk!}}<br />
<br />
{{note|1=If <code>dfu-util</code> command cannot find a device with 28e9:0189 ID, try to run it with <code>sudo</code>}}<br />
<br />
# Enter an update mode. For that plug USB cable while holding *-* button (button, that's closest to USB-C port)<br />
# Make a firmware backup: <code>dfu-util -d 28e9:0189 -a 0 -U ~/pinecil/internal.flash.stock -s 0x08000000</code><br />
## <code>28e9:0189</code> -- USB Device ID (can be obtained from <code>lsusb</code> or <code>dfu-util -l</code> but in dfu-util output it might be hard to identify the Pinecil device)<br />
## <code>-a 0</code> -- selects partition to flash. List of possible options can be obtained via <code>dfu-util -l</code>. Partition 0 - internal SPI flash. Partition 1 - fuses (description of fuses can be found in User Manual for the chip)<br />
## <code>-U</code> -- specifies a mode. U is upload, which means that firmware will be downloaded and saved to file (yes, that's confusing, but it is what it is, feel free to verify that in a manual of your version of dfu-util). Command must be followed by a path to file where you want to save your firmware. dfu-util will refuse to dump firmware if you already have a file with that name.<br />
## <code>-s 0x08000000</code> -- specify the address in a flash from which dump will start. This can be obtained from <code>dfu-util -l</code>.<br />
# Flash a new firmware: <code>dfu-util -d 28e9:0189 -a 0 -D ~/pinecil/internal.flash.stock -s 0x08000000:mass-erase:force</code><br />
## <code>-D</code> -- is a mode to Download firmware to the device (yes, that's confusing, but you indeed Upload from device and Download to device with dfu-util). That should follow the file with the firmware Same stock one from (1) used here on purpose.<br />
## <code>-s 0x08000000:mass-erase:force</code> -- specified the address where to flash the file. <code>:mass-erase:force</code> is required to force-erase flash before updating firmware, otherwise you might have unpredictable results.<br />
<br />
== Disassembly steps ==<br />
<br />
# Remove tip if present.<br />
## Let tip cool down.<br />
## Loosen top (display side) screw (PH1) on the tip side of the device.<br />
## Gently pull tip out.<br />
# Slide rubber off towards the tip side.<br />
# Remove the ground screw (longer screw on the top side towards the port side) (PH1).<br />
# Remove the bottom screw (at the tip side, between the legs) (PH1).<br />
# Slightly pull the two halves of the case apart at the tip side, enough to get a fingernail or guitar pick between the halves.<br />
# Move the pick down the length of the split to loosen the bottom half's clips from the top half of the case.<br />
# Once loose, remove the bottom half by moving it forward (it is retained by the top half at the port side).<br />
# Remove the screws retaining the copper tip contacts (PH000).<br />
# Remove the now loose copper tip contacts.<br />
# Gently push the board towards the tip side by pushing on one of the ports (for example, by using a misaligned USB C connector).<br />
# The PCB assembly is now free to be lifted out.<br />
## The key caps are now no longer retained, carefully set aside the top half, or remove the caps and store them separately.<br />
<br />
=== Assembly steps ===<br />
<br />
# Place the key caps into their recesses in the top half of the case.<br />
# Place the PCB assembly into the top half of the case ports first.<br />
## Lower the rest of the board into the case and move the PCB assembly towards the port side of the case (the DC barrel connector may be a firm place to gently push).<br />
# Install the copper tip contacts.<br />
## Orient the contact to align the alignment pin with the alignment hole next to the big hole on one of the big gold pads.<br />
## Install and gently tighten the PH000 screw until the clip is no longer loose.<br />
# Place the bottom half of the case into the top half by sliding the lip on the port side (side without the feet) of the bottom half under the arch of the port side of the top half.<br />
# Gently close the case by bringing the two halves together, paying attention to each clip's alignment and ensuring the case edges align.<br />
# Install the short PH1 screw at the bottom of the tip side of the case.<br />
# Install the longer PH1 screw at the ground connection point at the top side of the case (between the display and the ports).<br />
# Slide the rubber sleeve on (larger ridge first).<br />
# Gently insert tip.<br />
# Gently tighten the top PH1 screw to retain the tip.<br />
<br />
[[Category:Pinecil]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinecil&diff=8765Pinecil2020-12-31T15:16:55Z<p>Arwen: /* Pictures */ Added an overall description at the beginning</p>
<hr />
<div>PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE<br />
== Overall description ==<br />
The Pinecil is a portable, temperature controlled soldering iron. It's main features are:<br />
<br />
* Portability<br />
* Settable temperature<br />
* Soldering tips:<br />
** Replaceable<br />
** More than half a dozen available. Currently sold as 2 separate sets of 4, one fine set the other larger.<br />
** Compatible with TS100<br />
* Flexible power sources:<br />
** Barrel jack<br />
** USB Type C power delivery<br />
<br />
There are additional features that include:<br />
<br />
* Programmable via embedded processor<br />
* Display that can have items like temperature<br />
* Idle detection, for automatic power down of tip<br />
== Pictures ==<br />
* Pinecil Renders:<br />
<br />
[[File:Pinecil_Exploded_Diagram_ver_0.9.png]]<br />
<br />
<br />
[[File:Pinecil-bb2-01.jpg]]<br />
<br />
* Pinecil Prototype:<br />
<br />
[[File:PinecilPrototype.jpg|800px]]<br />
<br />
== Specifications ==<br />
* '''Dimensions:''' 170mm with solder tip or 98mm without solder tip x 12.8mm x 16.2mm<br />
* '''Weight:''' 30g with solder tip, 20g without solder tip<br />
* '''CPU:''' GD32VF103TB 32-bit RV32IMAC RISC-V “Bumblebee Core” @ 108 MHz<br />
* '''Memory:'''<br />
** 128KB Flash<br />
** 32KB SRAM<br />
* '''DC in (only one of the following at a time):'''<br />
** 12V- 24V DC5525 Barrel Jack<br />
** USB-C 12-20V PD<br />
** QC3.0<br />
** Recommend operating voltage 12-21V, maximum rating at 24V<br />
<br />
== Pinecil board information, schematics and certifications ==<br />
<br />
* Pinecil breakout board: [[File:Pinecil-breakout-board-02.jpg]]<br />
<br />
* Pinecil mainboard schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf Pinecil mainboard schematic ver 1.0 20201120, this is production version schematic]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Top PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Bottom PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Top Drawing file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Bottom Drawing file]<br />
<br />
* Pinecil breakout board schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_Schematic_v1.0_20201005.pdf Pinecil breakout board schematic ver 1.0 20201005]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_PCB_layout_v1.0_20201005.pdf Pinecil breakout board PCB layout ver 1.0]<br />
<br />
* Pinecil certifications:<br />
** [https://files.pine64.org/doc/cert/Pinecil%20CE%20RED%20Certificate-S20102803801001.pdf Pinecil CE RED Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20FCC%20Certificate-S20102803802001.pdf Pinecil FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20RoHS10%20Certificate-S20102803803001.pdf Pinecil ROHS Certificate]<br />
<br />
<br />
== Firmware Image Releases ==<br />
<br />
* [https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip Pinecil production firmware 20201115, thanks to Ralimtek]<br />
<br />
Links to development firmware and documentation:<br />
<br />
* [https://github.com/Ralim/IronOS/releases GitHub repository for IronOS, from Ralimtek]<br />
* [https://github.com/Ralim/IronOS/blob/master/Documentation/Flashing.md GitHub link for IronOS flashing documentation]<br />
<br />
== Pinecil tips ==<br />
* Default tip model TS-B2 accompany with Pinecil<br />
<br />
* Tip set 1 (left) & 2 (right): [[File:PinecilTipSets.jpg|800px]]<br />
<br />
* Uses TS-100 compatible tips<br />
<br />
== Datasheets for components and peripherals ==<br />
* GigaDevice RISC-V SoC information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_Datasheet_Rev%201.1.pdf GigaDevice RISC-V GD32VF103TB SoC Datasheet V1.1]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_User_Manual_EN_V1.2.pdf GigaDevice RISC-V GD32VF103TB SoC Usermanual V1.2]<br />
* Display Module information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/1810010328_UG-Univision-Semicon-UG-9616TSWCG02_C88335.pdf QUG 9616TSWCG02 Display Module Datasheet]<br />
* USB Type-C PD Controller information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/FUSB302-D.PDF ON Semiconductor FUSB302 USB Type-C PD Controller Datasheet]<br />
* Sensor information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/BMA223-Bosch.pdf Bosch BMA223 Acceleration Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/si7210-datasheet.pdf Silicon Lab Si7210 Hall-Effect Magnetic Position Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/TMP35_36_37.pdf Analog Device TMP36 Temparature Sensor Datasheet]<br />
* Power Regulator information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/RT7272B-05.pdf Ricktek RT7272B 3A Switching Power Regulator Datasheet - on mainboard]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/LP6498B6F.pdf LowPowerSemi LP6498B6F 1.2A Switching Power Regulator Datasheet - on breakout board]<br />
* Power MOSFET Switch information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/Changjiang-Electronics-Tech-CJ-CJQ7328.pdf Chang Jiang CJQ7328 8A MOSFET Datasheet]<br />
* OP Amp information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/SGM8557.pdf SGMicro SGM8557-1 Low Noise OP Amp Datasheet]<br />
<br />
<br />
<br />
== Development efforts ==<br />
<br />
{| class="wikitable"<br />
!<br />
! Project Homepage<br />
! Project Source<br />
! Implementations<br />
<br />
|-<br />
! Ralimtek<br />
| https://ralimtek.com<br />
| https://www.gitmemory.com/Ralim<br />
|}<br />
<br />
=== How to update a firmware ===<br />
<br />
(Method tested on Linux, should work on any OS where dfu-util works, instructions assumes you have dfu-util 0.9)<br />
<br />
{{warning|1=This potentially can brick your device. Do on your own risk!}}<br />
<br />
{{note|1=If <code>dfu-util</code> command cannot find a device with 28e9:0189 ID, try to run it with <code>sudo</code>}}<br />
<br />
# Enter an update mode. For that plug USB cable while holding *-* button (button, that's closest to USB-C port)<br />
# Make a firmware backup: <code>dfu-util -d 28e9:0189 -a 0 -U ~/pinecil/internal.flash.stock -s 0x08000000</code><br />
## <code>28e9:0189</code> -- USB Device ID (can be obtained from <code>lsusb</code> or <code>dfu-util -l</code> but in dfu-util output it might be hard to identify the Pinecil device)<br />
## <code>-a 0</code> -- selects partition to flash. List of possible options can be obtained via <code>dfu-util -l</code>. Partition 0 - internal SPI flash. Partition 1 - fuses (description of fuses can be found in User Manual for the chip)<br />
## <code>-U</code> -- specifies a mode. U is upload, which means that firmware will be downloaded and saved to file (yes, that's confusing, but it is what it is, feel free to verify that in a manual of your version of dfu-util). Command must be followed by a path to file where you want to save your firmware. dfu-util will refuse to dump firmware if you already have a file with that name.<br />
## <code>-s 0x08000000</code> -- specify the address in a flash from which dump will start. This can be obtained from <code>dfu-util -l</code>.<br />
# Flash a new firmware: <code>dfu-util -d 28e9:0189 -a 0 -D ~/pinecil/internal.flash.stock -s 0x08000000:mass-erase:force</code><br />
## <code>-D</code> -- is a mode to Download firmware to the device (yes, that's confusing, but you indeed Upload from device and Download to device with dfu-util). That should follow the file with the firmware Same stock one from (1) used here on purpose.<br />
## <code>-s 0x08000000:mass-erase:force</code> -- specified the address where to flash the file. <code>:mass-erase:force</code> is required to force-erase flash before updating firmware, otherwise you might have unpredictable results.<br />
<br />
== Disassembly steps ==<br />
<br />
# Remove tip if present.<br />
## Let tip cool down.<br />
## Loosen top (display side) screw (PH1) on the tip side of the device.<br />
## Gently pull tip out.<br />
# Slide rubber off towards the tip side.<br />
# Remove the ground screw (longer screw on the top side towards the port side) (PH1).<br />
# Remove the bottom screw (at the tip side, between the legs) (PH1).<br />
# Slightly pull the two halves of the case apart at the tip side, enough to get a fingernail or guitar pick between the halves.<br />
# Move the pick down the length of the split to loosen the bottom half's clips from the top half of the case.<br />
# Once loose, remove the bottom half by moving it forward (it is retained by the top half at the port side).<br />
# Remove the screws retaining the copper tip contacts (PH000).<br />
# Remove the now loose copper tip contacts.<br />
# Gently push the board towards the tip side by pushing on one of the ports (for example, by using a misaligned USB C connector).<br />
# The PCB assembly is now free to be lifted out.<br />
## The key caps are now no longer retained, carefully set aside the top half, or remove the caps and store them separately.<br />
<br />
=== Assembly steps ===<br />
<br />
# Place the key caps into their recesses in the top half of the case.<br />
# Place the PCB assembly into the top half of the case ports first.<br />
## Lower the rest of the board into the case and move the PCB assembly towards the port side of the case (the DC barrel connector may be a firm place to gently push).<br />
# Install the copper tip contacts.<br />
## Orient the contact to align the alignment pin with the alignment hole next to the big hole on one of the big gold pads.<br />
## Install and gently tighten the PH000 screw until the clip is no longer loose.<br />
# Place the bottom half of the case into the top half by sliding the lip on the port side (side without the feet) of the bottom half under the arch of the port side of the top half.<br />
# Gently close the case by bringing the two halves together, paying attention to each clip's alignment and ensuring the case edges align.<br />
# Install the short PH1 screw at the bottom of the tip side of the case.<br />
# Install the longer PH1 screw at the ground connection point at the top side of the case (between the display and the ports).<br />
# Slide the rubber sleeve on (larger ridge first).<br />
# Gently insert tip.<br />
# Gently tighten the top PH1 screw to retain the tip.<br />
<br />
[[Category:Pinecil]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinecil&diff=8764Pinecil2020-12-31T14:56:06Z<p>Arwen: /* Firmware Image Releases */ Added new IronOS links</p>
<hr />
<div>PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE<br />
== Pictures ==<br />
* Pinecil Renders:<br />
<br />
[[File:Pinecil_Exploded_Diagram_ver_0.9.png]]<br />
<br />
<br />
[[File:Pinecil-bb2-01.jpg]]<br />
<br />
* Pinecil Prototype:<br />
<br />
[[File:PinecilPrototype.jpg|800px]]<br />
<br />
== Specifications ==<br />
* '''Dimensions:''' 170mm with solder tip or 98mm without solder tip x 12.8mm x 16.2mm<br />
* '''Weight:''' 30g with solder tip, 20g without solder tip<br />
* '''CPU:''' GD32VF103TB 32-bit RV32IMAC RISC-V “Bumblebee Core” @ 108 MHz<br />
* '''Memory:'''<br />
** 128KB Flash<br />
** 32KB SRAM<br />
* '''DC in (only one of the following at a time):'''<br />
** 12V- 24V DC5525 Barrel Jack<br />
** USB-C 12-20V PD<br />
** QC3.0<br />
** Recommend operating voltage 12-21V, maximum rating at 24V<br />
<br />
== Pinecil board information, schematics and certifications ==<br />
<br />
* Pinecil breakout board: [[File:Pinecil-breakout-board-02.jpg]]<br />
<br />
* Pinecil mainboard schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf Pinecil mainboard schematic ver 1.0 20201120, this is production version schematic]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Top PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.pdf Pinecil mainboard ver 1.0 PCB Component Placement Bottom PDF file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-topplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Top Drawing file]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil-PCB-placement-v1.0-bottomplace.dxf Pinecil mainboard ver 1.0 PCB Component Placement Bottom Drawing file]<br />
<br />
* Pinecil breakout board schematic:<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_Schematic_v1.0_20201005.pdf Pinecil breakout board schematic ver 1.0 20201005]<br />
** [https://files.pine64.org/doc/Pinecil/Pinecil_Breakout_Board_PCB_layout_v1.0_20201005.pdf Pinecil breakout board PCB layout ver 1.0]<br />
<br />
* Pinecil certifications:<br />
** [https://files.pine64.org/doc/cert/Pinecil%20CE%20RED%20Certificate-S20102803801001.pdf Pinecil CE RED Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20FCC%20Certificate-S20102803802001.pdf Pinecil FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinecil%20RoHS10%20Certificate-S20102803803001.pdf Pinecil ROHS Certificate]<br />
<br />
<br />
== Firmware Image Releases ==<br />
<br />
* [https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip Pinecil production firmware 20201115, thanks to Ralimtek]<br />
<br />
Links to development firmware and documentation:<br />
<br />
* [https://github.com/Ralim/IronOS/releases GitHub repository for IronOS, from Ralimtek]<br />
* [https://github.com/Ralim/IronOS/blob/master/Documentation/Flashing.md GitHub link for IronOS flashing documentation]<br />
<br />
== Pinecil tips ==<br />
* Default tip model TS-B2 accompany with Pinecil<br />
<br />
* Tip set 1 (left) & 2 (right): [[File:PinecilTipSets.jpg|800px]]<br />
<br />
* Uses TS-100 compatible tips<br />
<br />
== Datasheets for components and peripherals ==<br />
* GigaDevice RISC-V SoC information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_Datasheet_Rev%201.1.pdf GigaDevice RISC-V GD32VF103TB SoC Datasheet V1.1]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/GD32VF103_User_Manual_EN_V1.2.pdf GigaDevice RISC-V GD32VF103TB SoC Usermanual V1.2]<br />
* Display Module information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/1810010328_UG-Univision-Semicon-UG-9616TSWCG02_C88335.pdf QUG 9616TSWCG02 Display Module Datasheet]<br />
* USB Type-C PD Controller information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/FUSB302-D.PDF ON Semiconductor FUSB302 USB Type-C PD Controller Datasheet]<br />
* Sensor information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/BMA223-Bosch.pdf Bosch BMA223 Acceleration Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/si7210-datasheet.pdf Silicon Lab Si7210 Hall-Effect Magnetic Position Sensor Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/TMP35_36_37.pdf Analog Device TMP36 Temparature Sensor Datasheet]<br />
* Power Regulator information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/RT7272B-05.pdf Ricktek RT7272B 3A Switching Power Regulator Datasheet - on mainboard]<br />
** [https://files.pine64.org/doc/datasheet/pinecil/LP6498B6F.pdf LowPowerSemi LP6498B6F 1.2A Switching Power Regulator Datasheet - on breakout board]<br />
* Power MOSFET Switch information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/Changjiang-Electronics-Tech-CJ-CJQ7328.pdf Chang Jiang CJQ7328 8A MOSFET Datasheet]<br />
* OP Amp information:<br />
** [https://files.pine64.org/doc/datasheet/pinecil/SGM8557.pdf SGMicro SGM8557-1 Low Noise OP Amp Datasheet]<br />
<br />
<br />
<br />
== Development efforts ==<br />
<br />
{| class="wikitable"<br />
!<br />
! Project Homepage<br />
! Project Source<br />
! Implementations<br />
<br />
|-<br />
! Ralimtek<br />
| https://ralimtek.com<br />
| https://www.gitmemory.com/Ralim<br />
|}<br />
<br />
=== How to update a firmware ===<br />
<br />
(Method tested on Linux, should work on any OS where dfu-util works, instructions assumes you have dfu-util 0.9)<br />
<br />
{{warning|1=This potentially can brick your device. Do on your own risk!}}<br />
<br />
{{note|1=If <code>dfu-util</code> command cannot find a device with 28e9:0189 ID, try to run it with <code>sudo</code>}}<br />
<br />
# Enter an update mode. For that plug USB cable while holding *-* button (button, that's closest to USB-C port)<br />
# Make a firmware backup: <code>dfu-util -d 28e9:0189 -a 0 -U ~/pinecil/internal.flash.stock -s 0x08000000</code><br />
## <code>28e9:0189</code> -- USB Device ID (can be obtained from <code>lsusb</code> or <code>dfu-util -l</code> but in dfu-util output it might be hard to identify the Pinecil device)<br />
## <code>-a 0</code> -- selects partition to flash. List of possible options can be obtained via <code>dfu-util -l</code>. Partition 0 - internal SPI flash. Partition 1 - fuses (description of fuses can be found in User Manual for the chip)<br />
## <code>-U</code> -- specifies a mode. U is upload, which means that firmware will be downloaded and saved to file (yes, that's confusing, but it is what it is, feel free to verify that in a manual of your version of dfu-util). Command must be followed by a path to file where you want to save your firmware. dfu-util will refuse to dump firmware if you already have a file with that name.<br />
## <code>-s 0x08000000</code> -- specify the address in a flash from which dump will start. This can be obtained from <code>dfu-util -l</code>.<br />
# Flash a new firmware: <code>dfu-util -d 28e9:0189 -a 0 -D ~/pinecil/internal.flash.stock -s 0x08000000:mass-erase:force</code><br />
## <code>-D</code> -- is a mode to Download firmware to the device (yes, that's confusing, but you indeed Upload from device and Download to device with dfu-util). That should follow the file with the firmware Same stock one from (1) used here on purpose.<br />
## <code>-s 0x08000000:mass-erase:force</code> -- specified the address where to flash the file. <code>:mass-erase:force</code> is required to force-erase flash before updating firmware, otherwise you might have unpredictable results.<br />
<br />
== Disassembly steps ==<br />
<br />
# Remove tip if present.<br />
## Let tip cool down.<br />
## Loosen top (display side) screw (PH1) on the tip side of the device.<br />
## Gently pull tip out.<br />
# Slide rubber off towards the tip side.<br />
# Remove the ground screw (longer screw on the top side towards the port side) (PH1).<br />
# Remove the bottom screw (at the tip side, between the legs) (PH1).<br />
# Slightly pull the two halves of the case apart at the tip side, enough to get a fingernail or guitar pick between the halves.<br />
# Move the pick down the length of the split to loosen the bottom half's clips from the top half of the case.<br />
# Once loose, remove the bottom half by moving it forward (it is retained by the top half at the port side).<br />
# Remove the screws retaining the copper tip contacts (PH000).<br />
# Remove the now loose copper tip contacts.<br />
# Gently push the board towards the tip side by pushing on one of the ports (for example, by using a misaligned USB C connector).<br />
# The PCB assembly is now free to be lifted out.<br />
## The key caps are now no longer retained, carefully set aside the top half, or remove the caps and store them separately.<br />
<br />
=== Assembly steps ===<br />
<br />
# Place the key caps into their recesses in the top half of the case.<br />
# Place the PCB assembly into the top half of the case ports first.<br />
## Lower the rest of the board into the case and move the PCB assembly towards the port side of the case (the DC barrel connector may be a firm place to gently push).<br />
# Install the copper tip contacts.<br />
## Orient the contact to align the alignment pin with the alignment hole next to the big hole on one of the big gold pads.<br />
## Install and gently tighten the PH000 screw until the clip is no longer loose.<br />
# Place the bottom half of the case into the top half by sliding the lip on the port side (side without the feet) of the bottom half under the arch of the port side of the top half.<br />
# Gently close the case by bringing the two halves together, paying attention to each clip's alignment and ensuring the case edges align.<br />
# Install the short PH1 screw at the bottom of the tip side of the case.<br />
# Install the longer PH1 screw at the ground connection point at the top side of the case (between the display and the ports).<br />
# Slide the rubber sleeve on (larger ridge first).<br />
# Gently insert tip.<br />
# Gently tighten the top PH1 screw to retain the tip.<br />
<br />
[[Category:Pinecil]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=8428Pinebook Pro2020-12-16T17:07:57Z<p>Arwen: /* Privacy Switches */ Added note about using "lsusb" for camera's status</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
It's compact and slim dimensions are 329mm x 220mm x 12mm (WxDxH).<br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
Under [[Pinebook Pro Software Release|'Pinebook Pro Software Release/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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[[PinebookPro_Software_Release#elementary OS|'''elementary OS 6 (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[[PinebookPro_Software_Release#Android_7.1_microSD|'''Android 7.1 (microSD Boot)''']] <br />
<br />
[[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch<br />
| CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch<br />
| NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch<br />
| CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
| Can use tools like '''<code>lsusb</code>''' to detect camera's presence. If not detected, check privacy switch.<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off 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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s 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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient TapButton1=1<br />
synclient TapButton2=3<br />
synclient TapButton3=2<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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 unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
<code>TabButton</code> allows to just tab the touchpad instead of physically pressing it down (to get this click noise).<br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
This is the link to the PBPro accessories in the store: [[https://pine64.com/?v=0446c16e2e66]]<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [https://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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 [https://files.pine64.org/doc/PinebookPro/PinebookPro_Engineering_Notice.pdf engineering notice]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook_Pro_SPI]]<br />
<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
With Mesa 20.2 there is no longer much reason to use this over the standard mesa package, and applications may occasionally break with mesa-git.<br />
<br />
[https://docs.mesa3d.org/bugs.html Reporting bugs] to the Mesa project will help make sure any problems are quickly fixed.<br />
<br />
=== OpenGL 3.3 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 3.0. If you want to use OpenGL 3.3, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gl3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL 3.3 and applications that rely on it should function properly. Note that GL 3.3 support is incomplete and some rendering features do not work yet, notably geometry shaders.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Change '''console=ttyS2,1500000''' to '''console=tty1'''<br> <br />
Remove the '''bootsplash.bootfile''' option and it's parameter.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br><br />
Leave everything else alone.<br><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
<br />
The important thing is not to panic and if something goes wrong, to stop and consider carefully how to undo something, or, to redo it. This particularly applies when flashing a new operating system or new firmware to the touchpad.<br />
<br />
[[Pinebook_Pro_Troubleshooting_Guide]]<br />
<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [https://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [https://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [https://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [https://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [https://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [https://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet v2.1]<br />
** [https://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual, part 1]<br />
** [https://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet v0.8]<br />
* LPDDR4 SDRAM (366-pin BGA):<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [https://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [https://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [https://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [https://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf 64GB/128GB SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [https://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (updated)]<br />
* Wireless and Bluetooth information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio codec:<br />
** [https://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec Datasheet]<br />
* LCD panel:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* USB-related information:<br />
** Internal USB 2.0 hub: [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub Datasheet]<br />
** USB Type-C Controller: [https://www.onsemi.com/pub/Collateral/FUSB302-D.PDF ON Semiconductor FUSB302 Datasheet]<br />
* Touchpad information:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf PineBook Pro Touchpad Specification]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD camera sensor:<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification (in Chinese)]<br />
** [https://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Datasheet]<br />
* Battery-related information:<br />
** Battery charging IC: [https://www.ti.com/lit/ds/symlink/bq24171.pdf?ts=1607068456825&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FBQ24171 Texas Instruments BQ24171 Datasheet]<br />
** Battery monitoring IC: [https://cdn.datasheetspdf.com/pdf-down/C/W/2/CW2015-Cellwise.pdf Cellwise CW2015 Datasheet]<br />
** [https://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf FH26-35S-0.3SHW flat flex connector (compatible, not OEM)]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [https://opensource.rock-chips.com/ Rockchip Open Source Wiki]<br />
<br />
[[Category:PineBook Pro]] [[Category:Rockchip RK3399]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro_Troubleshooting_Guide&diff=8364Pinebook Pro Troubleshooting Guide2020-12-03T00:50:22Z<p>Arwen: /* WiFi issues */ Added WiFi antenna cable loose fix.</p>
<hr />
<div><br />
=Useful Links=<br />
<br />
[[Pinebook_Pro|Back to the main Pinebook Pro page]]<br />
<br />
[[Pinebook_Pro_Hardware_Accessory_Compatibility|Hardware Compatibility page]]<br />
<br />
[[Pinebook Pro Software Release]]<br />
<br />
<br />
=Tips, tricks and other information for troubleshooting your Pinebook Pro=<br />
<br />
If something has gone wrong, the key thing is remain calm and not do anything hasty and make things worse, particularly when flashing the eMMC or firmware. Try and make a record of all the things you did in the run-up to the problem (even to the point of using a camera to take a note of errors on the screen, this record can be vital later).<br />
<br />
=Manjaro Updates Fail With 404=<br />
If you have an old Manjaro installation then it will have the wrong repositories/mirrors set up and they won't work. Set up new repositories by following these instructions:<br />
https://forum.manjaro.org/t/another-mirror-transition-manual-intervention-required/132302<br />
<br />
=Power And Boot=<br />
<br />
== New from the factory - Pinebook Pro won't boot / power on ==<br />
* 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><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><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.<br />
* 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.<br />
<br />
== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ==<br />
* 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).<br />
* 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.<br />
<br />
== Pinebook Pro will not power on after removing and replacing EMI shielding ==<br />
* 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.<br />
<br />
== Pinebook Pro won't boot when using UART console cable ==<br />
* 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.<br />
* 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.<br />
<br />
== Pinebook Pro will not sleep with lid closed ==<br />
A problem with the positioning of the lid magnet has been identified by several forum users in mid-2020 models of the Pinebook Pro. The magnetic field from the lid magnet operates a hall effect sensor located on the daughterboard (smallboard), which causes the Pinebook Pro to sleep when the lid is closed. If the magnet is not positioned correctly, the Pinebook Pro will not sleep when the lid is fully closed, but may sleep if the lid is open about an inch. If you experience this problem, repositioning of the magnet may be necessary.<br />
=== Lid Magnet Repositioning Step-by-Step ===<br />
*Read these steps thoroughly before starting. This is a somewhat laborious process involving fragile parts!<br />
# Remove bottom cover.<br />
# Disconnect LCD and webcam ribbon cable from main board. Flip the small black strip on the connector upward and the ribbon cable can be easily removed. Do not pull the cable out without first raising the black retaining mechanism.<br />
# Remove the small black plastic standoffs on each hinge and set aside.<br />
# Remove the three screws from each hinge on the display assembly.<br />
# Move the hinges upward to a 90 degree angle independently from the main body. Then lift the main body to the same 90 degree angle and you should be able to separate the display assembly from the main body. Set the main body aside.<br />
# Remove the plastic hinge cover on the display assembly. There's not really an easy way to do this, just work slowly and deliberately so as not to damage the sensitive cable inside. Start from either end and work your way inward. Use a small flathead screwdriver or similar tool to get started.<br />
# Remove the hinges from the display assembly.<br />
# Remove the rubber bumpers at the top corners of the display assembly to expose two screws. Remove the screws.<br />
# Starting at the corners, separate the bezel from the lid. The clips that hold it in place are similar to those found on the hinge cover. Again, slow deliberate work will get it done. Work from the top down. Take care not to damage the cables in the bottom.<br />
# With the bezel separated from the lid, feed the cable through the slot and set the bezel aside.<br />
# Without removing the LCD panel completely, lift and move the panel slightly to the left, taking care not to damage the cable running underneath up to the webcam. This will give you room to remove the magnet without risking damage to the panel.<br />
# The magnet is a silver colored bar near the bottom right side of the lid. Pry the magnet out with a small flathead or similar tool and set it aside. There is some adhesive but it's not very strong.<br />
# Put the LCD panel back where it belongs. Note the foam pads on either side of the panel. The magnet is the same width as the foam pad that keeps the panel in place, and should fit perfectly in the same channel.<br />
# The magnet should be placed about 1 to 1.5cm lower than where it was originally. There should be no need for adhesive, as the magnet will stick to the LCD panel. For reference, the hall effect sensor that the magnet interacts with is in between the USB port and audio jack.<br />
# Reassemble using these steps in reverse order.<br />
<br />
Your PineBook Pro should now sleep properly when the lid is closed.<br />
<br />
=WiFi And Bluetooth=<br />
<br />
== WiFi issues ==<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
* On extremely rare occasions, the WiFi antenna connection is loose. To fix, simply open up the bottom, re-connect the WiFi antenna cable.<br>This may show up as any of the following symptoms:<br />
** Can't connect to any network, but the network manager software sees the WiFi device, (so it has not been disabled by the Privacy Switch)<br />
** Very limited range, meaning you can make a connection if the Pinebook Pro is next to the WiFi router. But not the next room.<br />
** Unreliable connections, that are also limited by range.<br />
<br />
== Bluetooth issues ==<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
<br />
=Sound=<br />
<br />
== Sound issues ==<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
<br />
=Keyboard And Trackpad=<br />
<br />
== Keys not registering / missing keys when typing ==<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
== Key Mapping ==<br />
* 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<br />
<br />
== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ==<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* If the system is not responding after the 1st reboot, it might be easiest to do a system restore or boot an sdcard-only OS, and follow up by running the second step of the trackpad firmware update with a USB keyboard and mouse plugged in<br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ==<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
= USB docks & USB C alternate mode video =<br />
<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=Screen=<br />
<br />
Also see above about external screen using USB-C adaptor<br />
<br />
== After changing builtin LCD resolution, blank screen ==<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=Outer Shell=<br />
<br />
== Cracks in the plastic ==<br />
There have been multiple reports of cracks in the plastic keyboard and trackpad part of the case. These are generally near:<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard and trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with top cases available in the Pine64 Store.<br />
<br />
[[Category:PineBook Pro]]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinecil&diff=7632Pinecil2020-10-15T14:46:59Z<p>Arwen: /* Specifications */ Clarified information, made separate lines for some items, and separate list items as appropriate.</p>
<hr />
<div>PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE<br />
<br />
[[File:Pinecil_Exploded_Diagram_ver_0.9.png]]<br />
<br />
<br />
== Specifications ==<br />
* '''Dimensions:''' 170mm with solder tip or 98mm without solder tip x 12.8mm x 16.2mm<br />
* '''Weight:''' 30g with solder tip, 20g without solder tip<br />
* '''CPU:''' GD32VF103TB 32-bit RV32IMAC RISC-V “Bumblebee Core” @ 108 MHz<br />
* '''Memory:'''<br />
** 128KB Flash<br />
** 32KB SRAM<br />
* '''DC in (only one of the following at a time):'''<br />
** 12V- 24V DC5525 Barrel Jack<br />
** USB-C 12-20V PD<br />
** QC3.0<br />
<br />
== Pinecil board information, schematics and certifications ==<br />
* Pinecil mainboard schematic:<br />
<br />
* Pinecil certifications:<br />
<br />
== Datasheets for components and peripherals ==<br />
* GigaDevice RISC-V SoC information:<br />
** [http://files.pine64.org/doc/datasheet/pinecil/GD32VF103_Datasheet_Rev%201.1.pdf GigaDevice RISC-V GD32VF103TB SoC Data Sheet V1.1]<br />
** [http://files.pine64.org/doc/datasheet/pinecil/GD32VF103_User_Manual_EN_V1.2.pdf GigaDevice RISC-V GD32VF103TB SoC User manual V1.2]<br />
<br />
<br />
== Development efforts ==<br />
<br />
{| class="wikitable"<br />
!<br />
! Project Homepage<br />
! Project Source<br />
! Implementations<br />
<br />
|-<br />
! Ralimtek<br />
| https://ralimtek.com<br />
| https://www.gitmemory.com/Ralim<br />
|}</div>Arwenhttps://wiki.pine64.org/index.php?title=PineCube&diff=7631PineCube2020-10-15T14:16:55Z<p>Arwen: /* Specifications */ Improved clarity of options, by making both separate lines and list items</p>
<hr />
<div>{{note|1=PAGE UNDER CONSTRUCTION, INFO SUBJECT TO CHANGE}}<br />
<br />
<br />
<br />
== Specifications ==<br />
* '''Dimensions:''' 55mm x 51mm x 51.5mm<br />
* '''Weight:''' 55g<br />
* '''Storage:'''<br />
** MicroSD slot, bootable<br />
** 128Mb SPI Nor Flash, bootable<br />
* '''Cameras:''' OV5640, 5Mpx <br />
* '''CPU:''' Allwinner(Sochip) ARM Cortex-A7 MPCore, 800MHz<br />
* '''RAM:''' 128MB DDR3<br />
* '''I/O:'''<br />
** 10/100Mbps Ethernet with passive PoE<br />
** USB 2.0 A host<br />
** 26 pins GPIO port<br />
** internal mic<br />
* '''Network:'''<br />
** WiFi<br />
* '''Screen:''' optional 4.5" RGB LCD screen<br />
* '''Misc. features:''' <br />
** Volume and home buttons<br />
** Speakers and Microphone<br />
* '''Power DC in:'''<br />
** 5V 1A from MicroUSB Port or GPIO port<br />
** 8V-24V from Ethernet passive PoE<br />
* '''Battery:''' optional 950-1600mAh model: 903048 Lithium Polymer Ion Battery Pack, can be purchase at [https://www.amazon.com/AKZYTUE-1200mAh-Battery-Rechargeable-Connector/dp/B07TWHHCNK/ Amazom.com]<br />
<br />
== PineCube board information, schematics and certifications ==<br />
* PineCube mainboard schematic:<br />
** [http://files.pine64.org/doc/PineCube/PineCube%20MainBoard%20Schematic%20ver%201.0-20200727.pdf PineCube mainboard Released Schematic ver 1.0]<br />
* PineCube faceboard schematic:<br />
** [http://files.pine64.org/doc/PineCube/PineCube%20FaceBoard%20Schematic%20ver%201.0-20200727.pdf PineCube faceboard Released Schematic ver 1.0]<br />
* PineCube certifications:<br />
<br />
<br />
<br />
== Datasheets for components and peripherals ==<br />
* Allwinner (Sochip) S3 SoC information:<br />
** [http://files.pine64.org/doc/datasheet/pinecube/S3_Datasheet_V1.1-20180123.pdf Sochip S3 SoC Data Sheet V1.1]<br />
<br />
* X-Powers AXP209 PMU (Power Management Unit) information:<br />
** [http://files.pine64.org/doc/datasheet/pinecube/AXP209_Datasheet_v1.0en.pdf AXP209 PMIC datasheet]<br />
<br />
* CMOS camera module information:<br />
** [http://files.pine64.org/doc/datasheet/pinephone/OV5640_datasheet.pdf OV5640 5MP CMOS Image Sensor SoC datasheet]<br />
<br />
* LCD touch screen panel information:<br />
<br />
* Lithium battery information:<br />
<br />
* WiFi/BT module information:<br />
** [http://files.pine64.org/doc/datasheet/pinecube/rtl8189es.pdf RTL8189ES specification]<br />
<br />
<br />
<br />
== Operating Systems ==<br />
<br />
=== Stock Linux ===<br />
<br />
<br />
<br />
<br />
== SDK ==<br />
<br />
==== Stock Linux ====<br />
* [http://files.pine64.org/SDK/PineCube/PineCube%20Stock%20BSP-SDK%20ver1.0.7z Direct Download from pine64.org]<br />
** MD5 (7zip file): efac108dc98efa0a1f5e77660ba375f8<br />
** File Size: 3.50GB<br />
===== How to compile =====<br />
<br />
Recommended system requirements:<br />
* OS: (L)Ubuntu 16.04<br />
* CPU: 64-bit based<br />
* Memory: 8 GB or higher<br />
* Disk: 15 GB free hard disk space<br />
<br />
'''Install required packages'''<br />
<pre><br />
sudo apt-get install p7zip-full git make u-boot-tools libxml2-utils bison build-essential gcc-arm-linux-gnueabi g++-arm-linux-gnueabi zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32z1-dev<br />
</pre><br />
'''Install older Make 3.82 and Java JDK 6'''<br />
<pre><br />
pushd /tmp<br />
wget https://ftp.gnu.org/gnu/make/make-3.82.tar.gz<br />
tar xfv make-3.82.tar.gz<br />
cd make-3.82<br />
./configure<br />
make<br />
sudo apt purge -y make<br />
sudo ./make install<br />
cd ..<br />
# Please, download jdk-6u45-linux-x64.bin from https://www.oracle.com/java/technologies/javase-java-archive-javase6-downloads.html (requires free login)<br />
chmod +x jdk-6u45-linux-x64.bin <br />
./jdk-6u45-linux-x64.bin <br />
sudo mkdir /opt/java/<br />
sudo mv jdk1.6.0_45/ /opt/java/<br />
sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.6.0_45/bin/javac 1<br />
sudo update-alternatives --install /usr/bin/java java /opt/java/jdk1.6.0_45/bin/java 1<br />
sudo update-alternatives --install /usr/bin/javaws javaws /opt/java/jdk1.6.0_45/bin/javaws 1<br />
sudo update-alternatives --config javac<br />
sudo update-alternatives --config java<br />
sudo update-alternatives --config javaws<br />
popd<br />
</pre><br />
'''Unpack SDK and then compile and pack the image'''<br />
<pre><br />
7z x 'PineCube Stock BSP-SDK ver1.0.7z'<br />
mv 'PineCube Stock BSP-SDK ver1.0' pinecube-sdk<br />
cd pinecube-sdk/camdroid<br />
source build/envsetup.sh<br />
lunch<br />
mklichee<br />
make -j3<br />
pack<br />
</pre></div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=7165Pinebook Pro2020-09-16T18:26:49Z<p>Arwen: /* Trackpad */ Describe how the trackpad is connected to the SoC.</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
Under [[Pinebook Pro Software Release|'Pinebook Pro Software Release/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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#elementary_OS}} [[File:elementaryLogo.png|125px]]] [[PinebookPro_Software_Release#elementary OS|'''elementary OS 6 (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
The trackpad controller is connected to the keyboard controller. All trackpad events go through the keyboard controller and it's software, then to the keyboard controller's USB port. Note that the trackpad does have separate firmware, (which has to be written through the keyboard controller).<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off 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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s 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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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 unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [http://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
<br />
See [[Pinebook_Pro_SPI]]<br />
<br />
<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
Note that this might also solve graphical glitches that you were seeing previously.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Change '''console=ttyS2,150000''' to '''console=tty1'''<br> <br />
Remove the '''bootsplash.bootfile''' option and it's parameter.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br><br />
Leave everything else alone.<br><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
<br />
The important thing is not to panic and if something goes wrong, to stop and consider carefully how to undo something, or, to redo it. This particularly applies when flashing a new operating system or new firmware to the touchpad.<br />
<br />
[[Pinebook_Pro_Troubleshooting_Guide]]<br />
<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
=== Boot devices ===<br />
<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** [[Pinebook Pro SPI]]<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=6845Pinebook Pro2020-09-04T17:35:18Z<p>Arwen: /* Lid closed magnet */ Added Hall sensor info</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
Under [[Pinebook Pro Software Release|'Pinebook Pro Software Release/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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off 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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s 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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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 unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [http://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
Note that this might also solve graphical glitches that you were seeing previously.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Change '''console=ttyS2,150000''' to '''console=tty1'''<br> <br />
Remove the '''bootsplash.bootfile''' option and it's parameter.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br><br />
Leave everything else alone.<br><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
<br />
The important thing is not to panic and if something goes wrong, to stop and consider carefully how to undo something, or, to redo it. This particularly applies when flashing a new operating system or new firmware to the touchpad.<br />
<br />
[[Pinebook_Pro_Troubleshooting_Guide]]<br />
<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep. This meets up with the Hall sensor on the daughter / small board to detect lid closed.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=6844Pinebook Pro2020-09-04T17:29:17Z<p>Arwen: /* Display */ Added sleep magnet</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up (use a single word, all lower case, no punctuation; e.g. "pbpro").<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
Under [[Pinebook Pro Software Release|'Pinebook Pro Software Release/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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
Your Pinebook Pro should be either fully charged or, preferably, running off 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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop. Newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
Firmware update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse (or access to the Pinebook Pro via SSH)<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<b>NOTE:</b> Running step 1 on the ANSI keyboard model will make the keyboard and trackpad inaccessible until step 2 is ran, so an external keyboard must be connected to complete the update on this model!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
When done, if some of the keys produce incorrect characters, please check your OS’s 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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver, use this command to make the change live:<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticeably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below:<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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 unknown whether synaptic works like this.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [http://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
Note that this might also solve graphical glitches that you were seeing previously.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Change '''console=ttyS2,150000''' to '''console=tty1'''<br> <br />
Remove the '''bootsplash.bootfile''' option and it's parameter.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br><br />
Leave everything else alone.<br><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use and read.<br><br />
* Increase the font size<br />
* Use a font with more pronounced features<br />
* Increase the various window manager sizes (e.g. increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes. Higher contrast can help usability.<br />
* Change the window manager's decorations (e.g. use larger icons)<br />
* Use a workspace manager, with one application per workspace<br />
* When at home or office, use an external monitor<br />
* Change the X-Windows DPI<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this troubleshooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== gVim has performance issue ==<br />
It appears that using GTK3 can cause very slow scrolling, while Vim in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so is somewhat Linux distro-specific).<br />
<br />
Another solution may be to run gVim with <br />
<br />
GDK_RENDERING=image<br />
<br />
environment variable set. It seems that this improves the performance by reverting back to software-only rendering.<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
<br />
The important thing is not to panic and if something goes wrong, to stop and consider carefully how to undo something, or, to redo it. This particularly applies when flashing a new operating system or new firmware to the touchpad.<br />
<br />
[[Pinebook_Pro_Troubleshooting_Guide]]<br />
<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Lid closed magnet ===<br />
There is a magnet to detect when the laptop lid is closed, so action can be taken like sleep.<br />
* The magnet is located on the LCD panel right side, around 1.5 inches up measure from bottom edge.<br />
<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro_Troubleshooting_Guide&diff=6369Pinebook Pro Troubleshooting Guide2020-07-31T07:19:28Z<p>Arwen: /* Screen */ Put in USB dock section</p>
<hr />
<div><br />
=Useful Links=<br />
<br />
[[Pinebook_Pro|Back to the main Pinebook Pro page]]<br />
<br />
[[Pinebook_Pro_Hardware_Accessory_Compatibility|Hardware Compatibility page]]<br />
<br />
[[Pinebook Pro Software Release]]<br />
<br />
<br />
=Tips, tricks and other information for troubleshooting your Pinebook Pro=<br />
<br />
If something has gone wrong, the key thing is remain calm and not do anything hasty and make things worse, particularly when flashing the eMMC or firmware. Try and make a record of all the things you did in the run-up to the problem (even to the point of using a camera to take a note of errors on the screen, this record can be vital later).<br />
<br />
=Manjaro Updates Fail With 404=<br />
If you have an old Manjaro installation then it will have the wrong repositories/mirrors set up and they won't work. Set up new repositories by following these instructions:<br />
https://forum.manjaro.org/t/another-mirror-transition-manual-intervention-required/132302<br />
<br />
=Power And Boot=<br />
<br />
== New from the factory - Pinebook Pro won't boot / power on ==<br />
* 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><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><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.<br />
* 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.<br />
<br />
== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ==<br />
* 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).<br />
* 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.<br />
<br />
== Pinebook Pro will not power on after removing and replacing EMI shielding ==<br />
* 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.<br />
<br />
== Pinebook Pro won't boot when using UART console cable ==<br />
* 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.<br />
* 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.<br />
<br />
=WiFi And Bluetooth=<br />
<br />
== WiFi issues ==<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
== Bluetooth issues ==<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
<br />
=Sound=<br />
<br />
== Sound issues ==<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
<br />
=Keyboard And Trackpad=<br />
<br />
== Keys not registering / missing keys when typing ==<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
== Key Mapping ==<br />
* 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<br />
<br />
== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ==<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* If the system is not responding after the 1st reboot, it might be easiest to do a system restore or boot an sdcard-only OS, and follow up by running the second step of the trackpad firmware update with a USB keyboard and mouse plugged in<br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ==<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
= USB docks & USB C alternate mode video =<br />
<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=Screen=<br />
<br />
Also see above about external screen using USB-C adaptor<br />
<br />
== After changing builtin LCD resolution, blank screen ==<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=Outer Shell=<br />
<br />
== Cracks in the plastic ==<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro_Troubleshooting_Guide&diff=6368Pinebook Pro Troubleshooting Guide2020-07-31T07:18:44Z<p>Arwen: /* USB docks & USB C alternate mode video */ Moving to another location</p>
<hr />
<div><br />
=Useful Links=<br />
<br />
[[Pinebook_Pro|Back to the main Pinebook Pro page]]<br />
<br />
[[Pinebook_Pro_Hardware_Accessory_Compatibility|Hardware Compatibility page]]<br />
<br />
[[Pinebook Pro Software Release]]<br />
<br />
<br />
=Tips, tricks and other information for troubleshooting your Pinebook Pro=<br />
<br />
If something has gone wrong, the key thing is remain calm and not do anything hasty and make things worse, particularly when flashing the eMMC or firmware. Try and make a record of all the things you did in the run-up to the problem (even to the point of using a camera to take a note of errors on the screen, this record can be vital later).<br />
<br />
=Manjaro Updates Fail With 404=<br />
If you have an old Manjaro installation then it will have the wrong repositories/mirrors set up and they won't work. Set up new repositories by following these instructions:<br />
https://forum.manjaro.org/t/another-mirror-transition-manual-intervention-required/132302<br />
<br />
=Power And Boot=<br />
<br />
== New from the factory - Pinebook Pro won't boot / power on ==<br />
* 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><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><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.<br />
* 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.<br />
<br />
== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ==<br />
* 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).<br />
* 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.<br />
<br />
== Pinebook Pro will not power on after removing and replacing EMI shielding ==<br />
* 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.<br />
<br />
== Pinebook Pro won't boot when using UART console cable ==<br />
* 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.<br />
* 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.<br />
<br />
=WiFi And Bluetooth=<br />
<br />
== WiFi issues ==<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
== Bluetooth issues ==<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
<br />
=Sound=<br />
<br />
== Sound issues ==<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
<br />
=Keyboard And Trackpad=<br />
<br />
== Keys not registering / missing keys when typing ==<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
== Key Mapping ==<br />
* 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<br />
<br />
== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ==<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* If the system is not responding after the 1st reboot, it might be easiest to do a system restore or boot an sdcard-only OS, and follow up by running the second step of the trackpad firmware update with a USB keyboard and mouse plugged in<br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ==<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=Screen=<br />
<br />
Also see above about external screen using USB-C adaptor<br />
<br />
== After changing builtin LCD resolution, blank screen ==<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
<br />
=Outer Shell=<br />
<br />
== Cracks in the plastic ==<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=6200Pinebook Pro2020-07-15T16:11:58Z<p>Arwen: /* Datasheets for Components and Peripherals */ Added one of the power path N-MOS / MOSFETs</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [http://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
Note that this might also solve graphical glitches that you were seeing previously.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* Power path device:<br />
** [https://wiki.pine64.org/images/9/99/Sis412dn.pdf N-MOS / MOSFET]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=File:Sis412dn.pdf&diff=6199File:Sis412dn.pdf2020-07-15T16:09:29Z<p>Arwen: Power path N-MOS / MOSFET</p>
<hr />
<div>== Summary ==<br />
Power path N-MOS / MOSFET</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=6198Pinebook Pro2020-07-15T16:02:23Z<p>Arwen: /* Datasheets for Components and Peripherals */ Added local copy of non-OEM NVMe flat flex cable's PDF</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress. Unofficial instructions for installing V2-2019-1107 can be found [http://eli.gladman.cc/blog/2020/06/23/pine-book-pro-nvme.html here].<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
Note that this might also solve graphical glitches that you were seeing previously.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
'''WARNING:''' When removing the back cover plate, use care to avoid damaging the speakers. They are stuck to the back cover with double-sided tape, and the thin wires are very delicate.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/PinebookPro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://wiki.pine64.org/images/d/d0/Hirose-FH26W-35S-0.3SHW%2860%29-datasheet.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=File:Hirose-FH26W-35S-0.3SHW(60)-datasheet.pdf&diff=6197File:Hirose-FH26W-35S-0.3SHW(60)-datasheet.pdf2020-07-15T16:00:21Z<p>Arwen: Non-OEM NVMe flat flex cable</p>
<hr />
<div>== Summary ==<br />
Non-OEM NVMe flat flex cable</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5977Pinebook Pro2020-06-24T11:59:48Z<p>Arwen: /* Display */ Added webcam section</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
=== Webcam ===<br />
* Internal USB attached Webcam<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5976Pinebook Pro2020-06-24T11:50:42Z<p>Arwen: /* Audio */ Added that a microphone is included</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in microphone<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5975Pinebook Pro2020-06-24T11:47:18Z<p>Arwen: /* System Memory */ Added SPI flash device</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
** Bootable<br />
* SPI flash:<br />
** 128Mbit / 16MByte<br />
** 1 bit interface<br />
** Bootable, (first boot device, ahead of eMMC & SD card)<br />
** U-Boot images can be made to work, but as of 2020/06/24 there is no standardized image available.<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5974Pinebook Pro2020-06-24T11:39:40Z<p>Arwen: /* System Memory */ Listed RAM speed, (limited by SoC)</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** 800MHz, (limited by RK3399)<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to an 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5973Pinebook Pro2020-06-24T11:06:53Z<p>Arwen: /* GPU Architecture */ Separated out the graphic interface standards to their own line</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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.<br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Arch_Linux}} [[File:Archlinux-logo.png|125px]]] [[PinebookPro_Software_Release#Arch_Linux|'''Arch Linux ARM installer (microSD and USB boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you need to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s<br />
* Graphic interface standards:<br />
** OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2. (Panfrost has initial support of 3.0 beginning 2020/02/27)<br />
** Vulkan 1.0, using the Mali binary blob. (Panfrost does not support Vulkan as of 2020/06/24)<br />
** OpenCL™ 1.1, 1.2<br />
** DirectX® 11 FL11_1<br />
** RenderScript™<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/pinebookpro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.pdf AutoCAD PDF File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.ai AutoCAD AI File ]<br />
** [http://files.pine64.org/doc/pinebookpro/drawings/Pinebook%20Pro%20Principle%20Views.dwg AutoCAD DWG File ]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* IRC Server: irc.pine64.org Channel: PineBook<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5935Pinebook Pro2020-06-16T20:34:03Z<p>Arwen: /* Enabling text boot time messages */ Added Amazon Prime video watching</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running stock Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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. <br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo] (Includes Ubuntu 20.04 Focal Fossa and Debian Buster images. Click 'Assets' at the end of the releases text to view images) <br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you'll first need to install the "mesa-git" package (as documented above). Then, to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Watching Amazon Prime videos with Chromium ===<br />
When you create a new user, it will be necessary to launch the Chromium browswer with a specific user agent like below;<br />
<pre>chromium-browser --user-agent="Mozilla/5.0 (X11; CrOS armv7l 6946.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"</pre><br />
There may be more tweaks needed.<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s <br />
* OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2., Vulkan 1.0*., OpenCL™ 1.1, 1.2., DirectX® 11 FL11_1., RenderScript™.<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://send.firefox.com/download/b34c14f3e0a3d66d/#15Cx1vBaGKmJr57y85U2qQ AutoCAD DWG File]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5921RK3399 boot sequence2020-06-14T18:55:30Z<p>Arwen: /* Description */</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. While some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space in each section.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
If a new U-Boot is supplied, it is generally installed similar to this;<br />
<pre># dd if=/boot/idbloader.img conv=notrunc seek=64 of=/dev/mmcblkX<br />
# dd if=/boot/u-boot.itb conv=notrunc seek=16384 of=/dev/mmcblkX</pre><br />
<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in the following order, it can not be changed.<br><br />
If a device is blank / un-used, the SoC code moves on to the next device in the list.<br />
* SPI<br />
* eMMC<br />
* SD card<br />
However, whence the user boot code runs, it can then give priority to other devices, if available.<br />
The following devices are not directly bootable;<br />
* NVMe<br />
* USB 3<br />
* WiFi<br />
They can be made bootable by using one of the other devices as an initial boot loader. For example, several people have gotten their NVMe drives to be bootable, with "/boot" and "/" on the NMVe. This either entails using the SPI or eMMC has the initial boot loader, with code to support PCIe NVMe devices.<br />
<br />
== Boot loader development ==<br />
There are several projects that have their own versions of U-Boot, with different features. Here are some of the more common ones at present, 2020/06/14;<br />
* Rockchip<br />
* The original default Debian<br />
* Manajaro<br />
* U-Boot mainline<br />
<br />
== Grub as the target of the boot loader ==<br />
It is possible to use Grub as the target of U-Boot. This would allow;<br />
* Selecting a different boot device<br />
* Choosing a partition on a boot device for booting<br />
* Different kernels <br />
* Changes in kernel command line options<br />
However, at present, Grub does not support the video & keyboard of the Pinebook Pro. So, any selection is done through the serial console.</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5920RK3399 boot sequence2020-06-14T18:54:09Z<p>Arwen: /* Different devices */</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. While some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
If a new U-Boot is supplied, it is generally installed similar to this;<br />
<pre># dd if=/boot/idbloader.img conv=notrunc seek=64 of=/dev/mmcblkX<br />
# dd if=/boot/u-boot.itb conv=notrunc seek=16384 of=/dev/mmcblkX</pre><br />
<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in the following order, it can not be changed.<br><br />
If a device is blank / un-used, the SoC code moves on to the next device in the list.<br />
* SPI<br />
* eMMC<br />
* SD card<br />
However, whence the user boot code runs, it can then give priority to other devices, if available.<br />
The following devices are not directly bootable;<br />
* NVMe<br />
* USB 3<br />
* WiFi<br />
They can be made bootable by using one of the other devices as an initial boot loader. For example, several people have gotten their NVMe drives to be bootable, with "/boot" and "/" on the NMVe. This either entails using the SPI or eMMC has the initial boot loader, with code to support PCIe NVMe devices.<br />
<br />
== Boot loader development ==<br />
There are several projects that have their own versions of U-Boot, with different features. Here are some of the more common ones at present, 2020/06/14;<br />
* Rockchip<br />
* The original default Debian<br />
* Manajaro<br />
* U-Boot mainline<br />
<br />
== Grub as the target of the boot loader ==<br />
It is possible to use Grub as the target of U-Boot. This would allow;<br />
* Selecting a different boot device<br />
* Choosing a partition on a boot device for booting<br />
* Different kernels <br />
* Changes in kernel command line options<br />
However, at present, Grub does not support the video & keyboard of the Pinebook Pro. So, any selection is done through the serial console.</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5919RK3399 boot sequence2020-06-14T18:50:10Z<p>Arwen: /* Boot loader development */</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. While some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
If a new U-Boot is supplied, it is generally installed similar to this;<br />
<pre># dd if=/boot/idbloader.img conv=notrunc seek=64 of=/dev/mmcblkX<br />
# dd if=/boot/u-boot.itb conv=notrunc seek=16384 of=/dev/mmcblkX</pre><br />
<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in the following order, it can not be changed.<br><br />
If a device is blank / un-used, the SoC code moves on to the next device in the list.<br />
* SPI<br />
* eMMC<br />
* SD card<br />
However, whence the user boot code runs, it can then give priority to other devices, if available.<br />
<br />
== Boot loader development ==<br />
There are several projects that have their own versions of U-Boot, with different features. Here are some of the more common ones at present, 2020/06/14;<br />
* Rockchip<br />
* The original default Debian<br />
* Manajaro<br />
* U-Boot mainline<br />
<br />
== Grub as the target of the boot loader ==<br />
It is possible to use Grub as the target of U-Boot. This would allow;<br />
* Selecting a different boot device<br />
* Choosing a partition on a boot device for booting<br />
* Different kernels <br />
* Changes in kernel command line options<br />
However, at present, Grub does not support the video & keyboard of the Pinebook Pro. So, any selection is done through the serial console.</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5918RK3399 boot sequence2020-06-14T18:44:46Z<p>Arwen: /* General maintenance */</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. While some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
If a new U-Boot is supplied, it is generally installed similar to this;<br />
<pre># dd if=/boot/idbloader.img conv=notrunc seek=64 of=/dev/mmcblkX<br />
# dd if=/boot/u-boot.itb conv=notrunc seek=16384 of=/dev/mmcblkX</pre><br />
<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in the following order, it can not be changed.<br><br />
If a device is blank / un-used, the SoC code moves on to the next device in the list.<br />
* SPI<br />
* eMMC<br />
* SD card<br />
However, whence the user boot code runs, it can then give priority to other devices, if available.<br />
<br />
== Boot loader development ==</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5917RK3399 boot sequence2020-06-14T18:42:49Z<p>Arwen: /* Different devices */ More details</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. While some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in the following order, it can not be changed.<br><br />
If a device is blank / un-used, the SoC code moves on to the next device in the list.<br />
* SPI<br />
* eMMC<br />
* SD card<br />
However, whence the user boot code runs, it can then give priority to other devices, if available.<br />
<br />
== Boot loader development ==</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5916RK3399 boot sequence2020-06-14T18:40:00Z<p>Arwen: /* Rockchip RK3399 boot sequence */</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. While some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in this order;<br />
* SPI<br />
* eMMC<br />
* SD card<br />
== Boot loader development ==</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5915RK3399 boot sequence2020-06-14T18:39:05Z<p>Arwen: /* Description */ Added details</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. Which some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
There are 3 sections for the boot loader. They are in order, without gap, though their is no need to use all the space.<br><br />
Here are the details:<br />
{| class="wikitable"<br />
!Start in<br>sectors<br />
!Size in<br>sectors<br />
!Name<br />
!Description<br />
|-<br />
| 64<br />
| 16320<br />
| IDBLoader<br />
| SoC initialization code<br />
|-<br />
| 16384<br />
| 8192<br />
| OS loader<br />
| Generally U-Boot<br />
|-<br />
| 24576<br />
| 8192<br />
| TrustedFirmware-A<br />
| &nbsp;<br />
|}<br />
<br />
== General maintenance ==<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in this order;<br />
* SPI<br />
* eMMC<br />
* SD card<br />
== Boot loader development ==</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5914Pinebook Pro2020-06-14T18:27:04Z<p>Arwen: /* Boot sequence details */ Added link to new page</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running stock Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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. <br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi [https://wiki.pine64.org/index.php/Pinebook_Pro#ANSI_Fn_.2B_F_keys_wrong_for_F9.2C_F10.2C_F11_and_F12 privacy switch] is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo]<br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you'll first need to install the "mesa-git" package (as documented above). Then, to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br><br />
[[RK3399_boot_sequence|RK3399 boot sequence]]<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s <br />
* OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2., Vulkan 1.0*., OpenCL™ 1.1, 1.2., DirectX® 11 FL11_1., RenderScript™.<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://send.firefox.com/download/b34c14f3e0a3d66d/#15Cx1vBaGKmJr57y85U2qQ AutoCAD DWG File]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=RK3399_boot_sequence&diff=5913RK3399 boot sequence2020-06-14T18:21:43Z<p>Arwen: Initial creation</p>
<hr />
<div>= Rockchip RK3399 boot sequence =<br />
This is for the Pine64 ROCKPro64 single board computer, and the Pinebook Pro laptop boot sequence details. Which some of this may also apply to other RK3399 computers, that is up to the reader to make any appropriate changes.<br />
<br />
== Description ==<br />
<br />
== General maintenance ==<br />
== Different devices ==<br />
The RK3399 boots to multiple devices. Boot device selection is done in this order;<br />
* SPI<br />
* eMMC<br />
* SD card<br />
== Boot loader development ==</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5904Pinebook Pro2020-06-09T22:47:54Z<p>Arwen: /* Enabling text boot time messages */ Added another boot logging option</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running stock Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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. <br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi privacy switch is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo]<br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you'll first need to install the "mesa-git" package (as documented above). Then, to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default, most Linux distros have a boot screen with a picture. To see all the boot time messages, use one of the following;<br />
<br />
<b><u>Default Debian</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<b><u>Manjaro</u></b><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br><br />
You can add verbose logging by appending '''ignore_loglevel''' to the line where boot splash was.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s <br />
* OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2., Vulkan 1.0*., OpenCL™ 1.1, 1.2., DirectX® 11 FL11_1., RenderScript™.<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://send.firefox.com/download/b34c14f3e0a3d66d/#15Cx1vBaGKmJr57y85U2qQ AutoCAD DWG File]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5903Pinebook Pro2020-06-09T22:27:32Z<p>Arwen: /* Enabling text boot time messages */ Added Manjaro changes</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running stock Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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. <br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Manjaro KDE Desktop Quick Start ===<br />
<br />
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. The Pinebook Pro is officially supported by the Manjaro ARM project, and support can be found on the [https://forum.manjaro.org/c/manjaro-arm/78 Manjaro ARM forums.]<br />
<br />
On first boot, it will ask for certain information such as your timezone location, keyboard layout, username, password, and hostname. Most of these should be self-explanatory. Note that the hostname it asks for should be thought of as the "codename" of your machine, and if you don't know what it's about, you can make something up.<br />
<br />
After you're on the desktop, be sure to update it as soon as possible and reboot after updates are finished installing. If nothing appears when you click on the Networking icon in your system tray to connect to your Wi-Fi, ensure the Wi-Fi privacy switch is not disabled.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Manjaro_ARM}} [[File:Manjaro.png|125px]]] [[PinebookPro_Software_Release#Manjaro ARM|'''Manjaro ARM (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Debian_Desktop}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Debian Desktop|'''Debian Desktop (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_LXDE}} [[File:Lxde.png|125px]]] [[PinebookPro_Software_Release#Bionic LXDE|'''Bionic LXDE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Bionic_Mate}} [[File:Mate.png|125px]]] [[PinebookPro_Software_Release#Bionic Mate|'''Bionic Mate (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Fedora}} [[File:Fedora1.png|125px]]] [[PinebookPro_Software_Release#Fedora|'''Fedora (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#OpenSUSE}} [[File:Opensuse1.png|125px]]] [[PinebookPro_Software_Release#OpenSUSE|'''OpenSUSE (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} [[File:Q4os.png|125px]]] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} [[File:Armbian.png|125px]]] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} [[File:Netbsd.png|125px]]] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chromium}} [[File:Chromium.jpg|125px]]] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Android_7.1_microSD}} [[File:Android_7.png|125px]]] [[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}} [[File:Android_7.png|125px]]] [[PinebookPro_Software_Release#Android_7.1_eMMC|'''Android 7.1 (eMMC)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro}} [[File:Debian.png|125px]]] [[PinebookPro_Software_Release#Daniel_Thompson.27s_Debian_Installer_for_the_Pinebook_Pro|'''Debian Installer for Pinebook Pro''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} [[File:Gentoo.png|125px]]]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali_Linux_for_Pinebook_Pro|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo]<br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
The keyboard operates on firmware independant of the operating system. It detects if one of the F10, F11 or F12 keys is pressed in combination with the Pine key for 3 seconds. Doing so disables power to the appropriate peripheral, thereby disabling it. This has the same effect 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 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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies. The instructions below assume a Debian desktop, newer Pinebook Pro models that come with Manjaro will require a different command to install the proper dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing the Pinebook Pro's default Manjaro KDE system ==<br />
=== Watching DRM content (Netflix, etc.) ===<br />
Most paid online streaming services use Widevine DRM to make their content more difficult to pirate. Widevine is not directly supported on Manjaro KDE, however it is still possible to watch DRM content via the "chromium-docker" package which downloads a 32-bit ARM container and installs Chromium with Widevine inside of that. While not space-efficient, or efficient in general, it's the recommended solution for watching this content on your Pinebook Pro. You can install this package with:<br />
<pre>sudo pacman -Sy chromium-docker</pre><br />
=== Checking GPU capabilities ===<br />
To see what versions of OpenGL and OpenGL ES are supported by the Pinebook Pro, what driver is in use, and what version of the driver is loaded, install the "mesa-demos" package with:<br />
<pre>sudo pacman -Sy mesa-demos</pre><br />
And then run:<br />
<pre>glxinfo | grep OpenGL</pre><br />
This will give detailed information about your graphics card and driver, useful for debugging.<br />
<br />
=== Better GPU compatibility and performance ===<br />
For better graphics performance, you may install the "mesa-git" package, built and supplied in the Manjaro ARM repos. This lets you bring in the latest features, optimizations, and bugfixes for the graphics driver used by the Pinebook Pro. Installation is as simple as:<br />
<pre>pacman -Sy mesa-git</pre><br />
Then you may reboot to load the newer driver.<br />
<br />
=== OpenGL ES 3.0 support ===<br />
By default, with the current state of the Panfrost GPU driver, the Pinebook Pro supports OpenGL 2.1 and OpenGL ES 2.0. If you want to use OpenGL ES 3.0, you'll first need to install the "mesa-git" package (as documented above). Then, to set the system-wide environment variable, open the '''/etc/environment''' file with:<br />
<pre>kate /etc/environment</pre><br />
And then at the bottom of the file, on a new line, add:<br />
<pre>PAN_MESA_DEBUG="gles3"</pre><br />
Then save the file, entering your password when prompted, and reboot the system. When you check your GPU capabilities, it should report OpenGL ES 3.0 and applications that rely on it should function properly. Note that GLES3 support is currently incomplete and some advanced rendering features may still not work properly.<br />
== Customizing the Pinebook Pro's previously-default Debian system ==<br />
Here are some hints on what you can do to customize the Pinebook Pro's previous factory image (aka [https://github.com/mrfixit2001/debian_desktop mrfixit2001 debian build])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default most Linux distros have a boot screen with a picture. To see all the messages, use the following;<br />
<br />
<u>Default Debian</u><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br><br />
<br><br />
<u>Manjaro</u><br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /boot/extlinux/extlinux.conf /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
chmod a-w /boot/extlinux/extlinux.conf.`date +%Y%m%d`<br />
vi /boot/extlinux/extlinux.conf</pre><br />
Remove the '''bootsplash.bootfile''' option and it's parameter. Leave everything else alone.<br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
Note that in some cases, this may also decrease performance substantially, as observed when using these flags on the Manjaro KDE desktop. Feel free to experiment to find what is smoothest for you personally.<br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
Older systems, such as the previously-default Debian desktop, use the Rockchip-supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used:<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
<br />
Newer systems may use a different option as in the configuration below:<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
At this time, the Pinebook Pro ships with a Manjaro + KDE build with [https://www.denx.de/wiki/U-Boot/ uboot] on the eMMC. Its boot order is: SD, USB, then eMMC.<br />
<br />
(An update has been pushed for the older 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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s <br />
* OpenGL® ES 1.1, 1.2, 2.0, 3.0, 3.1, 3.2., Vulkan 1.0*., OpenCL™ 1.1, 1.2., DirectX® 11 FL11_1., RenderScript™.<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://send.firefox.com/download/b34c14f3e0a3d66d/#15Cx1vBaGKmJr57y85U2qQ AutoCAD DWG File]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwenhttps://wiki.pine64.org/index.php?title=Pinebook_Pro&diff=5853Pinebook Pro2020-06-05T01:43:42Z<p>Arwen: /* Power Supply */ Added the USB-C voltage, which is 5v only</p>
<hr />
<div>= User Guide =<br />
== Introducing PineBook Pro == <br />
[[File:PBP.jpg|400px|thumb|right|Pinebook Pro running stock Debian with MATE]]<br />
<br />
The Pinebook Pro is a Linux and *BSD ARM laptop from [https://www.pine64.org/ PINE64]<br />
<br />
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. <br />
<br />
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. <br />
<br />
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). <br />
<br />
The keyboard and trackpad both use the USB 2.0 protocol. The LCD panel uses eDP MiPi display protocol.<br />
<br />
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. <br />
<br />
== Software and OS Image Downloads ==<br />
<br />
=== Default Debian MATE Desktop Quick Start ===<br />
<br />
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. <br />
The newest release of the build can downloaded directly from [https://github.com/mrfixit2001/debian_desktop/releases MrFixIt2001's GitHub]. <br />
<br />
'''The default username and password is:'''<br />
* Username: rock <br />
* Password: rock<br />
<br />
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:<br />
[[File:UpdateScript.png|350px|thumb|right|Location of update script applet icon on stock Debian with MATE]]<br />
<pre><br />
usermod -l NewUser -d /home/NewUser -m rock<br />
</pre><br />
<br />
Once you log back into your new user, Bluetooth will complain about no transfer folder location. To fix this open terminal and type:<br />
<pre><br />
blueman-services<br />
</pre><br />
<br />
From here, select incoming folder under the 'transfer' tab.<br />
<br />
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. <br />
<br />
You can run the script from the terminal using:<br />
<pre><br />
sudo /usr/bin/mrfixit_update.sh <br />
</pre><br />
<br />
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.<br />
<br />
=== [[Pinebook Pro_Software_Release|Pinebook Pro images]] ===<br />
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. <br />
<br />
The list includes OS images and descriptions of:<br />
<br />
[{{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)''']]<br />
<br />
[{{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)''']]<br />
<br />
[{{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)''']]<br />
<br />
[{{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)''']]<br />
<br />
[{{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)''']]<br />
<br />
note: When upgrading from a prior release of Manjaro to version 20.1, you may need to increase the backlight as the number of steps for the backlight exposed by the kernel was changed from 256 to 4096<br />
<br />
[{{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)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Q4OS}} http://files.pine64.org/sw/pine64_installer/json/q4os.png] [[PinebookPro_Software_Release#Q4OS|'''Q4OS (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Armbian}} http://files.pine64.org/sw/pine64_installer/json/armbian.png] [[PinebookPro_Software_Release#Armbian|'''Armbian (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#NetBSD}} http://files.pine64.org/sw/pine64_installer/json/netbsd.png] [[PinebookPro_Software_Release#NetBSD|'''NetBSD (microSD and eMMC Boot)''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#OpenBSD}} [[File:Puffy_mascot_openbsd.png|125px]]] [[Pinebook_Pro_Software_Release#OpenBSD|'''OpenBSD release for ARM64''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Chropmium}} http://files.pine64.org/sw/pine64_installer/json/chromium.jpg] [[PinebookPro_Software_Release#Chromium|'''Chromium (microSD and eMMC Boot)''']]<br />
<br />
[{{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)''']]<br />
<br />
[{{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''']]<br />
<br />
[{{fullurl:Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro}} http://files.pine64.org/sw/pine64_installer/json/gentoo.png]<br />
[[Pinebook_Pro_Software_Release#Gentoo_Script_for_Pinebook_Pro|'''Gentoo Script for Pinebook Pro''']]<br />
<br />
[{{fullurl:PinebookPro_Software_Release#Kali}} [[File:Kali.jpeg|125px]]] [[PinebookPro_Software_Release#Kali|'''Kali Script for Pinebook Pro (microSD and eMMC Boot)''']]<br />
<br />
=== Quick Links to OS Images Build Sources===<br />
'''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>'''<br />
* [https://github.com/ayufan-rock64/linux-build/releases/ ayufan's Linux build repo]<br />
* [https://github.com/ayufan-rock64/chromiumos-build/releases ayufan's Chromium OS build repo]<br />
* [https://github.com/mrfixit2001/debian_desktop/releases mrfixit2001's Linux debian desktop build repo]<br />
<br />
== Keyboard ==<br />
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. <br />
<br />
The keyboard firmware binary can be flashed from userspace using the provided open source utility. <br />
<br />
Documentation for the keyboard can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]]. <br />
<br />
=== Typing special characters ===<br />
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. <br />
{| class="wikitable"<br />
!Character<br />
!Key combination/sequence<br />
|-<br />
|Ä, Ö, Ü, ä, ö, ü<br />
|[[Wikipedia:AltGr_key|[AltGr]]]+'[' followed by [A], [O], [U], [a], [o] or [u]<br />
|-<br />
|µ<br />
|[AltGr]+[m]<br />
|-<br />
|Ø, ø<br />
|[AltGr]+[O], [AltGr]+[o]<br />
|-<br />
|@<br />
|[AltGr]+[q] (as on the German layout)<br />
|-<br />
|ß<br />
|[AltGr]+[s]<br />
|-<br />
|§<br />
|[AltGr]+[S]<br />
|-<br />
|°<br />
|[AltGr]+[)]<br />
|}<br />
<br />
=== Privacy Switches ===<br />
There are three privacy switches mapped to the F10, F11 and F12 keys on the Pinebook Pro keyboard. They de/activate the following:<br />
<br />
{| class="wikitable"<br />
|+ Privacy switch function and description<br />
! Combination<br />
! Effect<br />
! Description<br />
! Notes<br />
|-<br />
! scope=row | PINE64 logo key+F10<br />
| Microphone Privacy switch || CAPs lock LED blinks. 2 blinks = enabled, 3 blinks = disabled<br />
|-<br />
! scope=row | PINE64 logo key+F11<br />
| WiFi Privacy switch || NUM lock LED blinks. 2 blinks = WiFi enabled / killswitch disabled, 3 blinks = WiFi disabled / killswitch enabled.<br />
| '''Re-enabling requires reboot''' (or a [//forum.pine64.org/showthread.php?tid=8313&pid=52645#pid52645 command line hack to bind/unbind]).<br />
|-<br />
! scope=row | PINE64 logo key+F12<br />
| Camera privacy switch || CAPs lock and NUM lock LEDs blink together. 2 blinks = enabled, 3 blinks = disabled<br />
|}<br />
<br />
'''(Press the PINE64 logo key plus F10/F11/F12) for 3 seconds)'''<br />
<br />
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 inside the keyboard's firmware flash memory.<br />
<br />
== Trackpad ==<br />
The trackpad is a reasonable size, has a matte finish that that your finger can slide along easily, and two actuating buttons. It is the only component of the Pinebook Pro held in place with strong adhesive tape. It supports multi-touch functionality. <br />
Documentation for the trackpad can be found in [[#Datasheets for Components and Peripherals|Datasheets for Components and Peripherals]].<br />
The trackpad firmware binary can be flashed from userspace using the provided open source utility (https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater). A fork with more recent changes is also available (https://github.com/jackhumbert/pinebook-pro-keyboard-updater) and may want to be considered instead while feature parity is different.<br />
<br />
<br />
'''Everyone with a Pinebook Pro produced in 2019 should update their keyboard and trackpad firmware.''' <br />
<br />
Before you start:<br />
<br />
Please refer to original documentation for details.<br />
<br />
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.<br />
<br />
The scripts ought to work on all OSs available for the Pinebook Pro. Some OSs may, however, require installation of relevant dependencies.<br />
<br />
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. <br />
FW update steps for both models are listed below. <br />
<br />
What you will need:<br />
<br />
*Your Pinebook Pro fully charged or running off of mains power<br />
*Connection to WiFi<br />
*An external USB keyboard & mouse. Or access to the Pinebebook Pro via SSH<br />
<br />
'''ISO Model''' <br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 iso<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 iso<br />
sudo reboot<br />
</pre><br />
<br />
----<br />
<br />
'''ANSI Model''' <br />
<br />
*<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!<br />
<br />
From the terminal command line: <br />
<br />
<pre><br />
git clone https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater<br />
cd pinebook-pro-keyboard-updater<br />
sudo apt-get install build-essential libusb-1.0-0-dev xxd<br />
make<br />
</pre><br />
<br />
Step 1<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-1 ansi<br />
sudo reboot<br />
</pre><br />
<br />
Step 2 (after reboot)<br />
<pre><br />
cd pinebook-pro-keyboard-updater<br />
sudo ./updater step-2 ansi<br />
sudo reboot<br />
</pre><br />
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.<br />
<br />
=== X-Windows & trackpad settings ===<br />
Some forum members have found that an adjustment to X-Windows will allow finer motion in the trackpad. If you use the '''Synaptic''' mouse/trackpad driver use this command to make the change live;<br />
<pre>synclient MinSpeed=0.25</pre><br />
You may experiment with different settings, but 0.25 was tested as helping noticably.<br><br />
<br><br />
To make the change persist across reboots, change the file <code>/etc/X11/xorg.conf</code> similar to below;<br />
<pre> Section "InputClass"<br />
Identifier "touchpad catchall"<br />
Driver "synaptics"<br />
MatchIsTouchpad "on"<br />
MatchDevicePath "/dev/input/event*"<br />
Option "MinSpeed" "0.25"<br />
EndSection</pre><br />
The line <code>Option "MinSpeed" "0.25"</code> is the change.<br><br />
<br><br />
Another forum user built on the above settings a little, and have found these to be very good:<br />
<pre>synclient MinSpeed=0.25<br />
synclient FingerLow=30<br />
synclient PalmDetect=1<br />
synclient VertScrollDelta=64<br />
synclient HorizScrollDelta=64</pre><br />
<br />
<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.<br />
You may find this config to be comfortable for daily use.<br />
<br><br />
<br />
The <code>right mouse click</code> is emulated by tapping with two fingers on the trackpad. If you feel that this is not very responsive you can try this value:<br />
<pre> synclient MaxTapTime=250 </pre>.<br />
<br><br />
<br />
== Power Supply ==<br />
* Input Power: 5V DC @ 3A<br />
* Mechanical: 3.5mm OD / 1.35mm ID, Barrel jack<br />
* USB-C 5V, 15W PD quickcharge<br />
* Only use one power input at a time, barrel jack OR USB-C<br />
<br />
== LEDs ==<br />
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: <br />
<br />
: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.<br />
<br />
: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). <br />
<br />
:3. The Num lock, green LED.<br />
<br />
:4. The Caps lock, green LED.<br />
<br />
(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.)<br />
<br />
== Webcam ==<br />
* Streaming video resolutions supported, (un-compressed):<br />
** 320 x 240 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Still frame resolutions supported:<br />
** 160 x 120<br />
** 176 x 144<br />
** 320 x 240<br />
** 352 x 288 <br />
** 640 x 480<br />
** 800 x 600<br />
** 1280 x 720<br />
** 1600 x 1200<br />
* Some people test with the application Cheese<br />
WIP<br />
<br />
== Microphones ==<br />
While it has been said that some Pinebook Pro units contain only one microphone despite having two labeled microphone holes on the outer casing, other units do indeed contain two microphones. It is presently unclear which batches have either configuration; units from the initial community batch of 1000 units (following the initial 100) are believed to contain two, populating both labeled holes.<br />
<br />
The wires leading to both microphones connect to the mainboard with a small white plastic connector, located directly adjacent to the ribbon cable attachment point for the keyboard interface.<br />
<br />
<br />
<br />
'''Microphones not working?'''<br />
<br />
If pavucontrol input doesn't show microphone activity try the [[Pinebook_Pro#Privacy_Switches]]; once that is set to on do the below; if that still hasn't fixed it you may want to check that the microphone connector is plugged in (see the [[Pinebook_Pro#Technical_Reference]]).<br />
<br />
<pre><br />
run alsamixer from the command line > hit F6 and select the es8316 > hit F4 to get to the capture screen > select the bar labeled ADC ><br />
> increase the gain to 0dB > change the audio profile in pavucontrol to another with input<br />
<br />
Additionally:<br />
you may want to modify ADC PGA to get the levels to where you want them<br />
</pre><br />
<br />
== Bluetooth and WiFi ==<br />
[[File:PinebookPro_WirelessIC_Location.jpg|400px|thumb|right|The Pinebook Pro's AP6256 wireless module]]<br />
===Hardware Overview===<br />
The Pinebook Pro contains an AMPAK AP6256 wireless module to provide Wi-Fi (compliant to IEEE 802.11ac) and Bluetooth (compliant to Bluetooth SIG revision 5.0). The module contains a Broadcom transceiver IC, believed to be the BCM43456, as well as the support electronics needed to allow the Wi-Fi and Bluetooth modes to share a single antenna. <br />
<br />
The wireless module interfaces with the Pinebook Pro’s system-on-chip using a combination of three interfaces: Bluetooth functionality is operated by serial UART and PCM, while the Wi-Fi component uses SDIO. It is unknown if the module’s Bluetooth capabilites are usable under operating systems that do not support SDIO.<br />
<br />
The module’s RF antenna pin is exposed on the mainboard via a standard Hirose U.FL connector, where a coaxial feedline links it to a flexible adhesive antenna situated near the upper right corner of the Pinebook Pro’s battery. As the RF connector is fragile and easily damaged, it should be handled carefully during connection and disconnection, and should not be reconnected frequently.<br />
<br />
===Issues===<br />
Problems have been reported with the Wi-Fi transceiver’s reliability during extended periods of high throughput, especially on the 2.4 GHz band. While the cause of this has yet to be determined, switching to the 5 GHz band may improve stability.<br />
<br />
Since the Bluetooth transceiver shares both its spectrum and antenna with 2.4 GHz Wi-Fi, simultaneous use of these modes may cause interference, especially when listening to audio over Bluetooth. If Bluetooth audio cuts out frequently, switching to the 5 GHz band – or deactivating Wi-Fi – may help.<br />
<br />
===Wi-Fi Capabilities===<br />
Wi-Fi on the Pinebook Pro is capable of reaching a maximum data transfer rate of approximately 433 megabits per second, using one spatial stream. The transceiver does not support multiple spatial streams or 160-MHz channel bandwidths.<br />
<br />
The Wi-Fi transceiver supports the lower thirteen standard channels on the 2.4 GHz band, using a bandwidth of 20 MHz. At least twenty-four channels are supported on the 5 GHz band, spanning frequencies from 5180 to 5320 MHz, 5500 to 5720 MHz, and 5745 to 5825 MHz, with bandwidths of 20, 40, or 80 MHz.<br />
<br />
Maximum reception sensitivity for both bands is approximately -92 dBm. The receiver can tolerate input intensities of no more than -20 dBm on the 2.4 GHz band, and no more than -30 dBm on the 5 GHz band. Maximum transmission power is approximately +15 dBm for either band, falling further to approximately +10 dBm at higher data transfer rates on the 5 GHz band.<br />
<br />
With current available drivers and firmware, the Wi-Fi interface supports infrastructure, ad-hoc, and access-point modes with satisfactory reliability. Monitor mode is not presently supported. Wi-Fi Direct features may be available, but it is unclear how to make use of them under Linux.<br />
<br />
Be aware that Linux userspace utilities, such as <code>iw</code>, may report inaccurate information about the capabilities of wireless devices. Parameter values derived from vendor datasheets, or direct testing, should be preferred to the outputs of hardware-querying tools.<br />
<br />
===Bluetooth Capabilities===<br />
Bluetooth data transfer speeds have an indicated maximum of 3 megabits per second, but it is unclear what practical data rates can be expected. Audio streaming over Bluetooth is functioning normally, as is networking. Bluetooth Low-Energy functions, such as interacting with Bluetooth beacons, have not yet been tested conclusively.<br />
<br />
The Bluetooth transceiver supports all 79 channel allocations, spanning frequencies from 2402 MHz to 2480 MHz. Reception sensitivity is approximately -85 dBm, with a maximum tolerable reception intensity of -20 dBm. Bluetooth transmission power is limited to +10 dBm.<br />
<br />
===Disabling Bluetooth===<br />
<pre><br />
#disable bluetooth once<br />
sudo rfkill block bluetooth && <br />
<br />
#confirm<br />
rfkill<br />
</pre><br />
<br />
<pre><br />
#disable bluetooth on boot**<br />
sudo systemctl enable rfkill-block@bluetooth<br />
</pre><br />
<br />
<nowiki>**This does not do what one might want on certain distros, Manjaro XFCE for example. Try the below.</nowiki><br />
<br />
<pre><br />
right click on the bluetooth panel icon > select 'plugins' > PowerManager > configuration > deselect the auto power on option<br />
</pre><br />
<br />
== LCD Panel ==<br />
* Model: BOE NV140FHM-N49<br />
* 14.0" (35.56cm) diagonal size<br />
* 1920x1080 resolution<br />
* 60hz refresh rate<br />
* IPS<br />
* 1000:1 contrast<br />
* 250nt brightness<br />
* 63% sRGB coverage<br />
* 6 bit colour<br />
* 30 pin eDP connection<br />
<br />
Some people have tested hardware video decode using the following;<br />
<pre>ffmpeg -benchmark -c:v h264_rkmpp -i file.mp4 -f null -</pre><br />
<br />
== External ports list ==<br />
Here are a list of the external ports. See [[Pinebook_Pro#Expansion_Ports|Technical Reference - Expansion Ports]] for port specifications.<br />
* Left side<br />
** Barrel jack for power, (with LED)<br />
** USB 3, Type A<br />
** USB 3, Type C<br />
* Right side<br />
** USB 2, Type A<br />
** Standard headset jack<br />
** MicroSD card slot<br />
<br />
== Using the UART ==<br />
[[File:PBPUART.jpeg|400px|thumb|right|Headphone jack UART wiring reference.<br />
<br> Swapping the tx and rx around from this also works and is more traditional.<br />
<br> See [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf this] official Pine64 .pdf.]]<br />
<br />
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.<br />
<br />
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. <br />
<br />
Insert the USB plug of the cable into an open USB port on the machine which will monitor. Run the following in a terminal:<br />
<br />
<code><br />
$ lsusb<br />
</code><br />
<br />
you should find a line similar to this:<br />
<br />
<code><br />
Bus 001 Device 058: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter<br />
</code><br />
<br />
You may have to clean the USB contacts of the Serial cable to get a good connection if you do not find that line.<br />
<br />
The audio jack of the Serial cable should be fully inserted into the Pinebook Pro audio port.<br />
<br />
Serial output should now be accessible using screen, picocom or minicom (and others).<br />
Examples:<br />
<br />
<code><br />
screen /dev/ttyUSB0 1500000<br />
<br />
picocom /dev/ttyUSB0 -b 1500000<br />
<br />
minicom -D /dev/ttyUSB0 -b 1500000</code><br />
<br />
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><br />
<br />
== Using the optional NVMe adapter ==<br />
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.<br />
<br />
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.<br />
<br />
=== Installing the adapter ===<br />
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.<br />
(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.)<br />
<br />
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.<br />
<br />
Actual installation instructions are a work in progress.<br />
<br />
=== Post NVMe install power limiting ===<br />
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.<br />
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);<br />
<pre>$ sudo nvme id-ctrl /dev/nvme0<br />
NVME Identify Controller:<br />
...<br />
ps 0 : mp:9.00W operational enlat:0 exlat:0 rrt:0 rrl:0<br />
rwt:0 rwl:0 idle_power:- active_power:-<br />
ps 1 : mp:4.60W operational enlat:0 exlat:0 rrt:1 rrl:1<br />
rwt:1 rwl:1 idle_power:- active_power:-<br />
ps 2 : mp:3.80W operational enlat:0 exlat:0 rrt:2 rrl:2<br />
rwt:2 rwl:2 idle_power:- active_power:-<br />
ps 3 : mp:0.0450W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3<br />
rwt:3 rwl:3 idle_power:- active_power:-<br />
ps 4 : mp:0.0040W non-operational enlat:6000 exlat:8000 rrt:4 rrl:4<br />
rwt:4 rwl:4 idle_power:- active_power:-<br />
<br />
$ sudo nvme get-feature /dev/nvme0 -f 2<br />
get-feature:0x2 (Power Management), Current value:00000000<br />
$ sudo nvme set-feature /dev/nvme0 -f 2 -v 2 -s<br />
set-feature:02 (Power Management), value:0x000002</pre><br />
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><br />
If you want to test performance without saving the new power setting semi-permanantly, then leave off the "-s" option.<br/><br />
<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;<br />
<pre>$ sudo nvme get-feature -f 0x0c -H /dev/nvme0</pre><br />
Information for this feature, (on a Pinebook Pro), is a work in progress.<br />
<br />
=== Using as data drive ===<br />
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.<br />
<br />
=== Using as OS root drive ===<br />
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.<br />
<br />
The current boot order, per last testing, for this modified U-Boot is:<br />
*MicroSD<br />
*eMMC<br />
*NVMe<br />
<br />
For more information, please refer to [https://forum.pine64.org/showthread.php?tid=8439&pid=53764#pid53764 the forum post.]<br />
<br />
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.)<br />
<br />
Please see [[Pinebook_Pro#Bootable Storage|Bootable Storage]].<br />
<br />
== Caring for the PineBook Pro ==<br />
=== Bypass Cables ===<br />
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]. <br />
<br />
'''Note that despite the bypass cable being a two conductor cable, it is only used as one. Both wires being soldered together on either side is normal!'''<br />
<br />
WARNING: Do not connect the bypass cables with the battery connected. Using the bypass cables with the battery connected can permanently damage the computer.<br />
<br />
=== [[Pinebook_Service_Step_by_Step_Guides|Pinebook Service Step-by-Step Guides]] ===<br />
<span style="color:#FF0000">Placeholder for Pinebook Pro specific guides</span><br />
<br />
Under [[Pinebook_Service_Step_by_Step_Guides|'Service Guides for Pinebook']] you can find instructions guides concerning disassembly of:<br />
<br />
'''Note: The installation process on Pinebook Pro similar to 14" Pinebook'''<br />
<br />
'''Note: The installation process is the reverse order of removal guide'''<br />
<br />
* 14″ Pinebook Lithium Battery Pack Removal Guide<br />
* 14″ Pinebook LCD Panel Screen Removal Guide<br />
* 14″ Pinebook eMMC Module Removal Guide<br />
<br />
== Using the SPI flash device ==<br />
The Pinebook Pro comes with a 128Mbit, (16MByte), flash device suitable for initial boot target, to store the bootloader. The SoC used on the Pinebook Pro boots from this SPI flash device first, before eMMC or SD card. At present, April 19, 2020, the Pinebook Pros ship without anything programmed in the SPI flash device. So the SoC moves on to the next potential boot device, the eMMC. ARM/ARM64 computers do not have a standardized BIOS, yet.<br />
<br />
Here is some information on using the SPI flash device:<br />
<br />
* You need the kernel built with SPI flash device support, which will supply a device similar to:<br><br><code>/dev/mtd0</code><br><br><br />
* The Linux package below, will need to be available:<br><br><code>mtd-utils</code><br><br><br />
* You can then use this program from the package to write the SPI device:<br><br><code>flashcp &lt;filename&gt; /dev/mtd0</code><br><br><br />
<br />
Even if you need to recover from a defective bootloader written to the SPI flash, you can simply short pin 6 of the SPI flash to GND and boot. This will render the SoC bootrom unable to read from the SPI flash and have it fall back to reading the bootloader from other boot media like the eMMC or Micro SD card.<br />
<br />
The procedures described above are a lot less risky than attaching an external SPI flasher and do not require any additional hardware.<br><br />
<br><br />
At present, April 19th, 2020, there is no good bootloader image to flash into the SPI flash device. This is expected to change, as there are people working on issue.<br />
<br />
== FAQ ==<br />
What cool software works out of the box? [[Pinebook Pro OTB Experience]]<br />
<br />
= Software tuning guide =<br />
Details on how to get the most out of a Pinebook Pro & its RK3399 SoC.<br />
<br />
== Customizing Pinebook Pro's factory OS ==<br />
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])<br />
<br />
=== Initial user changes, password, name, etc ===<br />
When you first get your Pinebook Pro, you should consider setting strong passwords and making the default account your own.<br />
<br />
* 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)<br />
* Once the machine reboots press Alt-Ctrl-F1 to bring up a text terminal<br />
* Login as root (login: root, password: root)<br />
* Set a strong password for the root user using the following command and it's prompts:<br />
<pre># passwd (and follow prompts)</pre><br />
* Rename the rock user to your prefered username (replace myself with whatever you like):<br />
<pre># usermod -l myself -d /home/myself -m rock</pre><br />
* Rename the rock group to match your preferred username:<br />
<pre># groupmod -n myself rock</pre><br />
* Put your name in the account, (replace "John A Doe" with your name):<br />
<pre># chfn -f "John A Doe" myself</pre><br />
* Set a strong password for the normal user:<br />
<pre># passwd myself</pre><br />
* Log out of the text terminal:<br />
<pre># logout</pre><br />
* Press Alt-Ctrl-F7 to go back to the login screen and then login as the normal user<br />
* Open text terminal to fix login error: "Configured directory for incoming files does not exist";<br />
<pre>$ blueman-services</pre><br />
Select "Transfer" tab and set "Incoming Folder" to myself<br />
OR<br />
If adduser is in distro, this is MUCH easier<br />
sudo adduser $USER ,, fill out requested data<br />
Then,, sudo adduser $USER $GROUP,,, 1 group at a time<br />
To see which groups to add,,, id $USER, id rock<br />
<br />
=== Changing the default hostname ===<br />
Debian 9 has a command to allow you to change the hostname. You can see the current settings using;<br />
<pre>> sudo hostnamectl<br />
Static hostname: Debian-Desktop<br />
Icon name: computer<br />
Machine ID: dccbddccbdccbdccbdccbdccbdccbccb<br />
Boot ID: ea99ea99ea99ea99ea99ea99ea99ea99<br />
Operating System: Debian GNU/Linux 9 (stretch)<br />
Kernel: Linux 4.4.210<br />
Architecture: arm64</pre><br />
To change, use this, (with "My_Hostname" used as the example);<br />
<pre>> sudo hostnamectl set-hostname My_Hostname</pre><br />
Whence done, you can re-verify using the first example.<br />
<br />
Then you should backup and edit your <code>/etc/hosts</code> entry's name;<br />
<pre>> sudo cp -p /etc/hosts /etc/hosts.`date +%Y%m%d`<br />
> sudo vi /etc/hosts<br />
127.0.0.1 localhost<br />
127.0.0.1 My_Hostname<br />
::1 localhost ip6-localhost ip6-loopback<br />
fe00::0 ip6-localnet<br />
ff00::0 ip6-mcastprefix<br />
ff02::1 ip6-allnodes<br />
ff02::2 ip6-allrouters<br />
127.0.1.1 linaro-alip</pre><br />
<br />
=== Disable Chromium browser's prompt for passphrase & password storage ===<br />
<br />
Perform the following steps:<br />
<br />
* On the tool bar, hover over the Chromium icon<br />
* Using the right mouse button, select '''Properties'''<br />
* In the '''Command:''' line section, add <code>--password-store=basic</code> before the <code>%U</code><br />
* Use the '''x Close''' button to save the change<br />
This will of course, use basic password storage, meaning any saved passwords are not encrypted. Perfectly fine if you never use password storage.<br />
<br />
=== Changing the boot splash picture ===<br />
<br />
The default boot splash picture can be replaced using the following instructions:<br />
<br />
* Install '''ImageMagick''' which will do the conversion<br />
<pre>$ sudo apt-get install imagemagick</pre><br />
* Create a 1920 x 1080 picture. For the best results, use a PNG image (It supports lossless compression).<br />
* From the directory in which your new image is stored run the following commands<br />
* Convert your image to the bootsplash raw format using imagemagick convert.<br />
<pre>$ convert yoursplashimage.png -separate +channel -swap 0,2 -combine -colorspace sRGB RGBO:splash.fb</pre><br />
* Create a backup copy of your current splash screen<br />
<pre>$ sudo cp /usr/share/backgrounds/splash.fb /usr/share/backgrounds/splash_original.fb</pre><br />
* Copy your new splash screen into place<br />
<pre>$ sudo cp splash.fb /usr/share/backgrounds/splash.fb</pre><br />
* Set the correct permissions on the splash.fb file<br />
<pre>$ sudo chmod 644 /usr/share/backgrounds/splash.fb</pre><br />
* If you do not want to see kernel console text messages, make sure you don't have '''Plymouth''' installed<br />
<br />
=== Enabling text boot time messages ===<br />
<br />
By default most Linux distros have a boot screen with a picture. To see all the messages, use the following;<br />
<br />
* Backup and edit the U-Boot configuration file:<br />
<pre>cp -p /etc/default/u-boot /etc/default/u-boot.`date +%Y%m%d`<br />
chmod a-w /etc/default/u-boot.`date +%Y%m%d`<br />
vi /etc/default/u-boot</pre><br />
Remove the '''quiet''' and '''splash''' parameters. Leave everything else alone.<br />
* Update the U-Boot configuration:<br />
<pre>u-boot-update</pre><br />
* Test and verify you get what you think you should be seeing.<br />
<br />
== Improving readability ==<br />
<br />
Some people find that a 14" LCD screen with 1080p, (1920 x 1080), has text and icons a bit too small. There are things you can do to make the screen easier to use & read.<br><br />
* Increase the font size<br />
* Use a font with more pronounce features<br />
* Increase the various window manager sizes, (like increase the height of the tool bar)<br />
* Change the color scheme to be easier on the eyes, (even though it may not be bigger, proper contrast can help usability)<br />
* Change the window manager's decorations, (like using larger icons)<br />
* Use a workspace manager, (so one application per workspace)<br />
* When at home or office, use an external monitor<br />
* Changing the X-Window's DPI, (Dot's Per Inch), can help too<br />
<br><br />
However, do not change the resolution of the LCD screen, otherwise you may end up with a blank / black screen. If that happens, see this trouble shooting section for the fix:<br><br />
[[Pinebook_Pro#After_changing_builtin_LCD_resolution.2C_blank_screen|Blank screen after changing builtin LCD resolution]]<br />
<br />
== Chromium tweaks ==<br />
<br />
=== Flags ===<br />
<br />
From the [https://github.com/mrfixit2001/updates_repo/blob/v1.8/pinebook/filesystem/default official Debian image]:<br />
<br />
<pre><br />
--disable-low-res-tiling \<br />
--num-raster-threads=6 \<br />
--profiler-timing=0 \<br />
--disable-composited-antialiasing \<br />
--test-type \<br />
--show-component-extension-options \<br />
--ignore-gpu-blacklist \<br />
--use-gl=egl \<br />
--ppapi-flash-path=/usr/lib/chromium-browser/pepper/libpepflashplayer.so \<br />
--ppapi-flash-version=32.0.0.255 \<br />
--enable-pinch \<br />
--flag-switches-begin \<br />
--enable-gpu-rasterization \<br />
--enable-oop-rasterization \<br />
--flag-switches-end<br />
</pre><br />
<br />
== GVIM has performance issue ==<br />
It appears that using GTK3 can cause very slow scolling, while VIM in a terminal window works fine.<br/><br />
Simply revert back to using GTK2, (how to do so, is somewhat Linux distro specific).<br />
<br />
== Kernel options ==<br />
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.<br />
<br />
To see if a specific feature is enabled in the current kernel, you can use something like this;<br />
<br />
<pre><br />
$ zgrep -i rockchip_pcie /proc/config.gz<br />
# CONFIG_ROCKCHIP_PCIE_DMA_OBJ is not set<br />
CONFIG_PHY_ROCKCHIP_PCIE=m<br />
</pre><br />
If it's listed as <code>=m</code>, then it's a module. You can see if the module is loaded with;<br />
<pre><br />
$ lsmod | grep -i rockchip_pcie<br />
phy_rockchip_pcie 16384 0<br />
</pre><br />
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.<br />
<br />
=== Hardware video decoding ===<br />
Here is a method to check for hardware video decoding by the VPU. There are special Linux kernel modules that perform this function.<br><br />
The default Debian uses Rockchip supplied kernel module <code>rk-vcodec</code>. To check, something like this can be used;<br />
<pre><br />
$ lsmod | grep rk-vcodec<br />
or<br />
$ zgrep RK_VCODEC /proc/config.gz<br />
CONFIG_RK_VCODEC=y<br />
</pre><br />
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 />
<br><br />
Later kernels may use a different option in the configuration as below;<br />
<pre><br />
$ zgrep HANTRO /proc/config.gz<br />
CONFIG_VIDEO_HANTRO=m<br />
CONFIG_VIDEO_HANTRO_ROCKCHIP=y<br />
</pre><br />
&nbsp;<br><br />
<br />
= Troubleshooting guide =<br />
Tips, tricks and other information for troubleshooting your Pinebook Pro<br />
=== New from the factory - Pinebook Pro won't boot / power on ===<br />
* 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><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><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.<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after toggling the eMMC enable/disable switch ===<br />
* 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).<br />
* 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.<br />
<br />
=== Pinebook Pro will not power on after removing and replacing EMI shielding ===<br />
* 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.<br />
<br />
=== Pinebook Pro won't boot when using UART console cable ===<br />
* 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.<br />
* 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.<br />
<br />
=== WiFi issues ===<br />
* First, check the privacy switches to make sure your WiFi is enabled. They are persistant. See [[Pinebook_Pro_Main_Page#Privacy_Switches|Privacy Switches]]<br />
* 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.<br />
* 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.)<br />
* For connections that drop under load on the default Debian, remove <code>iwconfig wlan0 power off</code> in the file <code>/etc/rc.local</code>.<br />
* 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]<br />
* 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);<br />
&nbsp; &nbsp; &nbsp; &nbsp; <code>sudo tee /sys/bus/platform/drivers/dwmmc_rockchip/{un,}bind <<< 'fe310000.dwmmc'</code><br />
<br />
=== Bluetooth issues ===<br />
* 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.<br />
* 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><br />
<pre>sudo apt-get install pulseaudio-module-bluetooth</pre><br />
* 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).<br />
<br />
=== Sound issues ===<br />
* 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.) <br />
* 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.<br />
* 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, see if they work.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-post-install/blob/master/asound.state manjaro-arm/pinebookpro-post-install /var/lib/alsa/asound.state] for some ALSA tweaks.<br />
* See [https://gitlab.manjaro.org/manjaro-arm/packages/community/pinebookpro-audio manjaro-arm/pinebookpro-audio] for how to handle 3.5mm jack plug/unplug events with ACPID.<br />
* Serveral users have reported that one internal speaker had reversed polarity. Thus, sound from the speakers is like an echo effect.<br />
** Their is a software fix using alsamixer and then enable either "R invert" or "L invert", however, now the headphones have incorrect audio.<br />
** The permanent fix is to re-wire one speaker, though this requires soldering small wires.<br />
<br />
=== USB docks & USB C alternate mode video ===<br />
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. <br />
<br />
Here are some selection criteria for successfully using the USB C alternate mode for video:<br />
* The device must use USB C alternate mode DisplayPort. Not USB C alternate mode HDMI, or other.<br />
* The device can have a HDMI, DVI, or VGA connector, if it uses an active translater.<br />
* 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.<br />
* USB docks that also use USB C alternate mode DisplayPort will always have USB 2 available, (480Mbps, half-duplex).<br />
<br />
=== Keys not registering / missing keys when typing ===<br />
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.<br />
<br />
Using Fn+F7 to disable the touchpad will keep it from also disabling the keyboard.<br />
<br />
A [[Pinebook_Pro#Trackpad|firmware update]] has been released to address this.<br />
<br />
=== Key Mapping ===<br />
* 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<br />
<br />
=== Pinebook Pro gets stuck after first reboot in Trackpad Firmware Update ===<br />
This refers to the firmware update shown here:<br />
https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
* 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. <br />
* System restore https://forum.pine64.org/showthread.php?tid=8229<br />
* Firmware update https://github.com/ayufan-rock64/pinebook-pro-keyboard-updater#update-all-firmwares<br />
<br />
=== ANSI Fn + F keys wrong for F9, F10, F11 and F12 ===<br />
There appears to be a minor firmware issue for ANSI keyboard models of the Pinebook Pro. Some discussion and fixes have been proposed;<br />
<br />
* Discussion thread [https://forum.pine64.org/showthread.php?tid=8744&pid=57678#pid57678 Fn + F keys screwy for F9, F10, F11 and F12]<br />
* 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]<br />
&nbsp;<br><br />
<br />
=== After changing builtin LCD resolution, blank screen ===<br />
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><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). <br />
<pre>export DISPLAY=:0.0<br />
xrandr -q<br />
xrandr -s [resolution]</pre><br />
Once your resolution is restored, try using the Tweak app to set scaling, instead.<br><br />
<br><br />
If the above fix did not work, you can try this:<br />
* Using a text console, (Control-Alt-F1), login with your normal user ID<br />
* Edit the file <code>nano ~/.config/monitors.xml</code><br />
* Change the "width" value to "1920"<br />
* Change the "height" value to "1080"<br />
* If there is more than one monitor configuration listed, edit that one too.<br>Be careful to make no other changes. If needed, exit without saving and re-edit.<br />
* Save the file and exit.<br />
* Login using the GUI and test<br />
* If you are still loggied in via the GUI, you will have to reboot using <code>sudo shutdown -r now</code><br>After the reboot, you should be able to login to the GUI login and have the resolution back to normal.<br />
When you have restored usability to your Pinebook Pro's graphical screen, see this section on improving readability and usability:<br><br />
[[Pinebook_Pro#Improving_readability|Improving readability]]<br />
<br />
=== Cracks in the plastic ===<br />
There have been multiple reports of cracks in the plastic keyboard & trackpad part of the case. These are generally near here;<br />
* Hinges<br />
* USB ports<br />
* Top side, around the corners<br />
This seems to apply to the first batches in 2019. Later versions of the keyboard & trackpad have used better plastic. With replacements now in the Pine64 Store, it's possible to simply order a replacement.<br><br />
<br><br />
There have been a few reports of cracks in the plastic around the LCD display, but these appear to be less common. There are replacement LCDs with bezel available in the Pine64 Store.<br />
<br />
= [[Pinebook_Pro_Hardware_Accessory_Compatibility|PineBookPro Hardware Compatibility]] =<br />
<br />
Please contribute to the hardware compatibility page, which lists hardware which has been tested with the PBP, whether successful or not!<br />
<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#NVMe_SSD_drives|NVMe SSD drives]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_hardware|USB hardware]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#USB_C_alternate_mode_DP|USB C alternate mode DP]]<br />
* [[Pinebook_Pro_Hardware_Accessory_Compatibility#Other_hardware|Other hardware]]<br />
&nbsp;<br/><br />
&nbsp;<br />
<br />
= Technical Reference =<br />
== Accessing the Internals - Disassembly and Reassembly == <br />
[[File:Standoffs.png|400px|thumb|right|Pinebook Screw stand-offs correct placement and location]]<br />
<br />
'''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.<br />
<br />
'''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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
NOTE: a basic 3d model to print replacement back-screw standoffs is available on Thingiverse [https://www.thingiverse.com/thing:4226648] pending release of something more definitive<br />
<br />
== Pinebook Pro Internal Layout ==<br />
=== Main chips ===<br />
* RK3399 system-on-chip (1)<br />
* LPDDR4 SDRAM (21)<br />
* SPI NOR flash memory (29)<br />
* eMMC flash memory (26)<br />
* WiFi/BT module (27)<br />
<br />
=== Mainboard Switches and Buttons ===<br />
There are two switches on the main board: disabling the eMMC (24), and enabling UART (9) via headphone jack. <br />
<br />
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). <br />
<br />
[[File:PBPL_S.jpg]]<br />
<br />
=== Key Internal Parts ===<br />
{| class="wikitable"<br />
|+ Numbered parts classification and description<br />
! Number<br />
! Type<br />
! Descriptor<br />
|-<br />
! scope=row | 1<br />
| Component || RK3399 System-On-Chip<br />
|-<br />
! scope=row | 2<br />
| Socket || PCIe 4X socket for optional NVMe adapter<br />
|-<br />
! scope=row | 3<br />
| Socket || Speakers socket<br />
|-<br />
! scope=row | 4<br />
| Socket || Trackpad socket<br />
|-<br />
! scope=row | 5<br />
| Component || Left speaker <br />
|-<br />
! scope=row | 6<br />
| Connector || Male power bridge connector <br />
|-<br />
! scope=row | 7<br />
| Socket || Keyboard Socket<br />
|-<br />
! scope=row | 8<br />
| Component || Optional NVMe SSD adapter<br />
|-<br />
! scope=row | 9<br />
| Switch || UART/Audio switch - outputs UART via headphone jack<br />
|-<br />
! scope=row | 10<br />
| Socket || Female power bridge socket<br />
|-<br />
! scope=row | 11<br />
| Socket || Battery socket<br />
|-<br />
! scope=row | 12<br />
| Component || Trackpad<br />
|-<br />
! scope=row | 13<br />
| Component || Battery<br />
|-<br />
! scope=row | 14<br />
| Component || Right speaker<br />
|-<br />
! scope=row | 15<br />
| Socket || MicroSD card slot<br />
|-<br />
! scope=row | 16<br />
| Socket || Headphone / UART jack<br />
|-<br />
! scope=row | 17<br />
| Socket || USB 2.0 Type A<br />
|-<br />
! scope=row | 18<br />
| Socket || Daughterboard-to-mainboard ribbon cable socket<br />
|-<br />
! scope=row | 19<br />
| Cable || Daughterboard-to-mainboard ribbon cable<br />
|-<br />
! scope=row | 20<br />
| Component || microphone<br />
|-<br />
! scope=row | 21<br />
| Component || LPDDR4 RAM<br />
|-<br />
! scope=row | 22<br />
| Socket || Mainboard-to-daughterboard ribbon cable socket<br />
|-<br />
! scope=row | 23<br />
| Socket || Microphone socket<br />
|-<br />
! scope=row | 24<br />
| Switch || Switch to hardware disable eMMC<br />
|-<br />
! scope=row | 25<br />
| Antenna || BT/WiFI antenna<br />
|-<br />
! scope=row | 26<br />
| Component || eMMC flash memory module <br />
|-<br />
! scope=row | 27<br />
| Component ||BT/WiFi module chip<br />
|-<br />
! scope=row | 28<br />
| Buttons || Reset and recovery buttons<br />
|-<br />
! scope=row | 29<br />
| Component || SPI flash storage<br />
|-<br />
! scope=row | 30<br />
| Socket || eDP LCD socket<br />
|-<br />
! scope=row | 31<br />
| Socket || Power in barrel socket<br />
|-<br />
! scope=row | 32<br />
| Socket || USB 3.0 Type A<br />
|-<br />
! scope=row | 33<br />
| Socket || USB 3.0 Type C <br />
|}<br />
<br />
=== Smallboard detailed picture ===<br />
<br />
[[File:Pinebook_pro_smallboard.jpg]]<br />
<br />
== Bootable Storage ==<br />
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. <br />
<br />
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.<br />
<br />
(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.)<br />
<br />
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<br />
in a /boot partition on the eMMC.<br />
<br />
=== eMMC information ===<br />
The eMMC appears to be hot-pluggable. This can be useful if trying to recover data or a broken install. Best practice is probably to turn the eMMC switch to off position before changing modules.<br />
<br />
The eMMC storage will show up as multiple block devices:<br />
*mmcblk1boot0 - eMMC standard boot0 partition, may be 4MB<br />
*mmcblk1boot1 - eMMC standard boot1 partition, may be 4MB<br />
*mmcblk1rpmb - eMMC standard secure data partition, may be 16MB<br />
*mmcblk1 - This block contains the user areas<br />
<br />
Only the last is usable as regular storage device in the Pinebook Pro.<br />
The device number of "1" shown above may vary, depending on kernel.<br />
<br />
If the eMMC module is enabled after boot from an SD card, you can detect this change with the following commands as user "root";<br />
<pre><br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/unbind<br />
echo fe330000.sdhci >/sys/bus/platform/drivers/sdhci-arasan/bind<br />
</pre><br />
<br />
=== Boot sequence details ===<br />
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.<br />
<br />
== Pinebook Pro Dimensions ==<br />
* Dimensions: 329mm x 220mm x 12mm (WxDxH)<br />
* Weight: 1.26Kg<br />
* Screws<br />
** Philips head type screws<br />
** M2 flat head machine screws (measurements in mm)<br />
** 4 x Small screws (used along the front edge): Head - 3.44, Thread Diameter - 1.97, Thread Length - 2.1, Overall length - 3.05<br />
** 6 x Large screws: Head - 3.44, Thread Diameter - 1.97, Thread Length - 4.41, Overall Length - 5.85<br />
* Rubber Feet<br />
** 18mm diameter<br />
** 3mm height<br />
** Dome shaped<br />
<br />
== SoC and Memory Specification ==<br />
[[File:Rockchip_RK3399.png|right]]<br />
* Based on Rockchip RK3399<br />
<br />
=== CPU Architecture ===<br />
* big.LITTLE architecture: Dual Cortex-A72 + Quad Cortex-A53, 64-bit CPU<br />
** Full implementation of the ARM architecture v8-A instruction set (both AArch64 and AArch32)<br />
** ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation<br />
** ARMv8 Cryptography Extensions<br />
** VFPv4 floating point unit supporting single and double-precision operations<br />
** Hardware virtualization support<br />
** TrustZone technology support<br />
** Full CoreSight debug solution<br />
** One isolated voltage domain to support DVFS<br />
* Cortex-A72 (big cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a72 Dual-core Cortex-A72 up to 2.0GHz CPU]<br />
** Superscalar, variable-length, out-of-order pipeline<br />
** L1 cache 48KB Icache and 32KB Dcache for each A72 <br />
** L2 cache 1024KB for big cluster <br />
* Cortex-A53 (little cluster):<br />
** [https://developer.arm.com/products/processors/cortex-a/cortex-a53 Quad-core Cortex-A53 up to 1.5GHz CPU]<br />
** In-order pipeline with symmetric dual-issue of most instructions <br />
** L1 cache 32KB Icache and 32KB Dcache for each A53<br />
** L2 cache 512KB for little cluster<br />
* Cortex-M0 (control processors):<br />
** [https://developer.arm.com/ip-products/processors/cortex-m/cortex-m0 Cortex-M0 CPU]<br />
** Two Cortex-M0 cooperate with the central processors<br />
** Architecture: Armv6-M<br />
** Thumb/Thumb2 instruction set<br />
** 32 bit only<br />
<br />
=== GPU Architecture ===<br />
* [https://developer.arm.com/products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus ARM Mali-T860MP4 Quad-core GPU]<br />
* 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.<br />
* Frequency 650MHz <br />
* Throughput 1300Mtri/s, 10.4Gpix/s <br />
* 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™.<br />
<br />
=== System Memory ===<br />
* RAM Memory:<br />
** LPDDR4<br />
** Dual memory channels on the CPU, each 32 bits wide<br />
** Quad memory channels on the RAM chip, each 16 bits wide, 2 bonded together for each CPU channel<br />
** 4GB as a single 366 pin mobile RAM chip<br />
* Storage Memory: <br />
** 64GB eMMC module, can be upgraded to a 128GB eMMC module. (The initial PINE64 community build version shipped with a 128GB eMMC.)<br />
** eMMC version 5.1, HS400, 8 bit on RK3399 side<br />
<br />
=== Video out ===<br />
* USB-C Alt mode DP<br />
* Up to 3840x2160 p60, dependant on adapter, (2 lanes verses 4 lanes)<br />
<br />
=== Expansion Ports ===<br />
* MicroSD card:<br />
** Bootable<br />
** Supports SD, SDHC and SDXC cards, up to 512GB tested. SDXC standard says 2TB is the maximum.<br />
** Version SD3.0, (MMC 4.5), up to 50MB/s<br />
** SD card Application Performance Class 1 (A1), (or better), recommended by some users, for better IOPS<br />
* USB ports:<br />
** 1 x USB 2.0 Type-A Host Port, bootable<br />
** 1 x USB 3.0 Type-A Host Port, 5Gbps, is not bootable<br />
** 1 x USB 3.0 Type-C OTG Port, 5Gbps, (includes laptop charging function), is not bootable<br />
** 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.<br />
* Headphone jack switchable to UART console mux circuit<br />
<br />
== Additional hardware ==<br />
Hardware that is not part of the SoC.<br />
<br />
=== Battery ===<br />
* Lithium Polymer Battery (10,000 mAH)<br />
<br />
=== Display ===<br />
* 14.0" 1920x1080 IPS LCD panel<br />
<br />
=== Audio ===<br />
* 3.5mm stereo earphone/microphone plug<br />
* Built-in stereo speakers:<br />
** Oval in design<br />
** 3 mm high x 20 mm x 30 mm<br />
<br />
=== Network ===<br />
* WiFi:<br />
** 802.11 b/g/n/ac<br />
** Dual band: 2.4Ghz & 5Ghz<br />
** Single antenna<br />
* Bluetooth 5.0<br />
<br />
=== Optional NVMe adapter ===<br />
* PCIe 2.x, 5GT/s per lane<br />
* 4 PCIe lanes, can not be bifurcated, (however, can be used with 1 or 2 lane NVMe cards)<br />
* '''M''' keyed, though '''M'''+'''B''' keyed devices will work too<br />
* Maximum length for M.2 card is 80mm (M.2 2280). The following sizes will also work: 2230, 2242, 2260<br />
* Power: 2.5W continuous, 8.25W peak momentary<br />
* Does not support SATA M.2 cards<br />
* Does not support USB M.2 cards<br />
<br />
== Pinebook Pro Schematics and Certifications ==<br />
* Pinebook Pro Main Board Schematic And Silkscreen:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_mainboard_schematic.pdf Pinebook Pro Main Board ver 2.1 Schematic]<br />
** [https://wiki.pine64.org/images/3/30/Pinebookpro-v2.1-top-ref.pdf Pinebook Pro ver 2.1 Top Layer Silkscreen]<br />
** [https://wiki.pine64.org/images/b/b7/Pinebookpro-v2.1-bottom-ref.pdf Pinebook Pro ver 2.1 Bottom Layer Silkscreen]<br />
* Pinebook Pro Daughter Board Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_daughterboard_schematic.pdf Pinebook Pro Daughter Board ver 2.1 Schematic]<br />
* Optional Pinebook Pro NVMe Adapter Schematic:<br />
** [http://files.pine64.org/doc/PinebookPro/pinebookpro_v2.1_NVMe-adapter_schematic.pdf Pinebook Pro NVMe Adapter Board ver 2.1 Schematic]<br />
* Serial Console Earphone Jack Pinout:<br />
** [http://files.pine64.org/doc/pinebook/guide/Pinebook_Earphone_Serial_Console_Developer_Guide.pdf Pinkbook Serial Console Earphone Jack Pinout]<br />
* Pinebook Pro Case:<br />
** [https://send.firefox.com/download/b34c14f3e0a3d66d/#15Cx1vBaGKmJr57y85U2qQ AutoCAD DWG File]<br />
* Pinebook Pro Certifications:<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20FCC%20Certificate-S19071103501001.pdf Pinebook Pro FCC Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20CE%20RED%20Certificate-S19051404304.pdf Pinebook Pro CE Certificate]<br />
** [http://files.pine64.org/doc/cert/Pinebook%20Pro%20ROHS%20Compliance%20Certificate.pdf Pinebook Pro RoHS Certificate]<br />
<br />
== Datasheets for Components and Peripherals ==<br />
* Rockchip RK3399 SoC information:<br />
** [http://www.rock-chips.com/a/en/products/RK33_Series/2016/0419/758.html Rockchip RK3399 SoC Brief]<br />
** [http://opensource.rock-chips.com/images/d/d7/Rockchip_RK3399_Datasheet_V2.1-20200323.pdf Rockchip RK3399 Datasheet V2.1]<br />
** [http://opensource.rock-chips.com/images/e/ee/Rockchip_RK3399TRM_V1.4_Part1-20170408.pdf Rockchip RK3399 Technical Reference Manual part 1]<br />
** [http://files.pine64.org/doc/datasheet/rockpro64/RK808%20datasheet%20V0.8.pdf Rockchip RK808 Datasheet V0.8]<br />
* LPDDR4 (366 Balls) SDRAM:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/micron%20SM512M64Z01MD4BNK-053FT%20LPDDR4%20(366Ball).pdf Micron 366 balls Mobile LPDDR4 Datasheet]<br />
* eMMC information:<br />
** [http://files.pine64.org/doc/rock64/PINE64_eMMC_Module_20170719.pdf PINE64 eMMC module schematic]<br />
** [http://files.pine64.org/doc/rock64/usb%20emmc%20module%20adapter%20v2.pdf PINE64 USB adapter for eMMC module V2 schematic]<br />
** [http://files.pine64.org/doc/rock64/USB%20adapter%20for%20eMMC%20module%20PCB.tar PINE64 USB adapter for eMMC module PCB in JPEG]<br />
** [http://files.pine64.org/doc/datasheet/pine64/SDINADF4-16-128GB-H%20data%20sheet%20v1.13.pdf SanDisk eMMC Datasheet]<br />
* SPI NOR Flash information:<br />
** [http://files.pine64.org/doc/datasheet/pine64/w25q128jv%20spi%20revc%2011162016.pdf WinBond 128Mb SPI Flash Datasheet]<br />
** [https://wiki.pine64.org/images/b/b9/Ds-00220-gd25q127c-rev1-df2f4.pdf GigaDevice 128Mb SPI Flash Datasheet (UPDATED)]<br />
* Wireless related info:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/AP6256%20datasheet_V1.7_12282018.pdf AMPAK AP6256 11AC Wi-Fi + Bluetooth5 Datasheet]<br />
* Audio Codec (ES8316)<br />
** [http://everest-semi.com/pdf/ES8316%20PB.pdf Everest ES8316 Audio Codec]<br />
* LCD Panel:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/NV140FHM-N49_Rev.P0_20160804_201710235838.pdf 14" 1920x1080 IPS LCD Panel datasheet]<br />
* Internal USB 2 hub:<br />
** [https://wiki.pine64.org/images/3/39/GL850G_USB_Hub_1.07.pdf GL850G USB Hub 1.07.pdf]<br />
* Touchpad information:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/YX%20HK-9562%20HID%20I2C%20Specification.pdf Touchpad Specification for Pinebook Pro model]<br />
* Keyboard information:<br />
** [https://wiki.pine64.org/images/b/b0/SH68F83V2.0.pdf Sinowealth SH68F83 Datasheet]<br />
** US ANSI: XK-HS002 MB27716023<br />
* Full HD Camera sensor:<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/HK-2145-263.pdf Full HD Camera module specification in Chinese]<br />
** [http://files.pine64.org/doc/datasheet/PinebookPro/GC2145%20CSP%20DataSheet%20release%20V1.0_20131201.pdf GalaxyCore GC2145 Full HD Camera Sensor Data Sheet]<br />
* Lithium Battery information:<br />
** [http://files.pine64.org/doc/datasheet/pinebook/40110175P%203.8V%2010000mAh规格书-14.pdf 10000mAH Lithium Battery Specification for 14" model]<br />
* NVMe adapter:<br />
** [https://datasheet.octopart.com/FH26W-35S-0.3SHW%2860%29-Hirose-datasheet-26676825.pdf Compatible, not OEM! Use FH26-35S-0.3SHW flat flex connector]<br />
<br />
== Versions ==<br />
Pinebook Pro v1 and v2 were prototype models that did not make it to the public. The "first batch" (First 100 forum preorders) onward are v2.1. [https://forum.pine64.org/showthread.php?tid=8111] <br />
<br />
=Skinning and Case Customization=<br />
* Template files for creating custom skins. Each includes template layers for art placement, and CUT lines.<br />
**[https://drive.google.com/open?id=1UKFlC53DO0GJm3Hz1E_669n_HhI45e4n Case Lid Template]<br />
**[https://drive.google.com/open?id=1Q6bKGarMDhvWz3HdGvhL5qDhyHb546ve Case Bottom Template]<br />
**[https://drive.google.com/open?id=1ugI74ygNJ3EN5jXks5jKvdpEAoxIzHo4 Case Palmrest Template]<br />
<br />
= Other Resources =<br />
* [https://forum.pine64.org/forumdisplay.php?fid=111 Pinebook Pro Forum]<br />
* [https://forum.pine64.org/forumdisplay.php?fid=98 ROCKPro64 Forum]<br />
* [[RockPro64 Guides]]<br />
* [https://riot.im/app/#/room/#pinebook:matrix.org Matrix Channel] (No login required to read)<br />
* [http://www.pine64.xyz:9090/?channels=ROCK64 ROCK64/ROCKPro64 IRC Channel]<br />
* [https://discordapp.com/channels/463237927984693259/622348681538043924 Discord Channel]<br />
* [https://github.com/rockchip-linux Rockchip Linux GitHub Repo]<br />
* [http://opensource.rock-chips.com/ Rockchip Open Source Wiki]</div>Arwen