The Pinebook Pro is a Linux and *BSD ARM laptop from PINE64. It is built to be a compelling alternative to mid-ranged Chromebooks that people convert into Linux laptops. It features an IPS 1080p 14″ LCD panel, a premium magnesium alloy shell, high capacity eMMC storage, a 10,000 mAh capacity battery, and the modularity that only an open-source project can deliver.
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).
Join Pine64 discord NOW!
PineBook Pro is not an x86 device—it's a big-little heterogeneous ARM cluster architecture, with two Cortex A72 cores and four Cortex A53 cores. In 2020, this sharply limits the operating system selection—you're not going to buy a Pinebook Pro and slap Windows on it after you get it
Supported Operating System
If you're not into Manjaro, that's fine—the Pine64 project offers a wide selection of additional, downloadable user-installable Pinebook Pro images including Debian, Fedora, NetBSD, Chromium OS, and more.
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. Under '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.
Default Manjaro KDE Desktop Quick Start
When you first get your Pinebook Pro and boot it up for the first time, it'll come with Manjaro using the KDE desktop. 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").
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.
Comes with Manjaro Linux Pre-Installed
The Pinebook Pro comes with Manjaro Linux pre-installed. Manjaro is, effectively, Arch Linux but with a set of reasonably sane defaults—"real" Arch might be considered more of a framework upon which to hang a distro, rather than a complete distribution itself.
Installing Docker on Manjaro-ARM OS running on Pine64
Docker doesn't come with Pine64 Pro Laptop by default but you can install it flawlessly following the below steps:
ssh email@example.com firstname.lastname@example.org's password: Welcome to Manjaro-ARM ~~Website: https://manjaro.org ~~Forum: https://forum.manjaro.org/c/manjaro-arm ~~IRC: #manjaro-arm on irc.freenode.net ~~Matrix: #manjaro-arm-public:matrix.org Last login: Mon Oct 5 09:17:42 2020
sudo pacman -Syu
pacman -S docker
You might have to reboot your system for Docker to get initialize properly
systemctl start docker.service systemctl enable docker.service
[ajeetraina@pine64 ~]$ sudo docker version [sudo] password for ajeetraina: Client: Version: 19.03.12-ce API version: 1.40 Go version: go1.14.5 Git commit: 48a66213fe Built: Sat Jul 18 02:40:17 2020 OS/Arch: linux/arm64 Experimental: false Server: Engine: Version: 19.03.12-ce API version: 1.40 (minimum version 1.12) Go version: go1.14.5 Git commit: 48a66213fe Built: Sat Jul 18 02:39:40 2020 OS/Arch: linux/arm64 Experimental: false containerd: Version: v1.4.1.m GitCommit: c623d1b36f09f8ef6536a057bd658b3aa8632828.m runc: Version: 1.0.0-rc92 GitCommit: ff819c7e9184c13b7c2607fe6c30ae19403a7aff docker-init: Version: 0.18.0 GitCommit: fec3683
sudo pacman -S docker-compose
[ajeetraina@pine64 ~]$ sudo docker-compose version docker-compose version 1.27.3, build unknown docker-py version: 4.3.1 CPython version: 3.8.5 OpenSSL version: OpenSSL 1.1.1g 21 Apr 2020
[ajeetraina@pine64 ~]$ curl -sfL https://get.k3s.io | sh -
[ajeetraina@pine64 ~]$ sudo curl -LO https://raw.githubusercontent.com/portainer/portainer-k8s/master/portainer-nodeport.yaml
[ajeetraina@pine64 ~]$ sudo kubectl apply -f portainer-nodeport.yaml namespace/portainer created serviceaccount/portainer-sa-clusteradmin created clusterrolebinding.rbac.authorization.k8s.io/portainer-crb-clusteradmin created service/portainer created deployment.apps/portainer created
[ajeetraina@pine64 ~]$ sudo kubectl get svc -n portainer NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE portainer NodePort 10.43.9.186 <none> 9000:30777/TCP,8000:30776/TCP 114s
pico@pico1:~$ sudo k3s kubectl describe po -n portainer Name: portainer-5fbd6bb5d8-dxgp4 Namespace: portainer Priority: 0 Node: pico2/192.168.1.161 Start Time: Tue, 10 Nov 2020 22:37:55 -0700 Labels: app=app-portainer pod-template-hash=5fbd6bb5d8 Annotations: <none> Status: Running IP: 10.42.1.3 IPs: IP: 10.42.1.3 Controlled By: ReplicaSet/portainer-5fbd6bb5d8 Containers: portainer: Container ID: containerd://70d7a96eaaa5aaf338194ceaaf858d3e2ce2ed74390e17cbceaef9cefdccc092 Image: portainerci/portainer:develop Image ID: docker.io/portainerci/portainer@sha256:31ce431595a4e8223e07e992a5d9d2412c05191355723d56d542c08ff64c971f Port: 9000/TCP Host Port: 0/TCP State: Running Started: Tue, 10 Nov 2020 22:38:07 -0700 Ready: True Restart Count: 0 Environment: <none> Mounts: /var/run/secrets/kubernetes.io/serviceaccount from portainer-sa-clusteradmin-token-g9qmz (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: portainer-sa-clusteradmin-token-g9qmz: Type: Secret (a volume populated by a Secret) SecretName: portainer-sa-clusteradmin-token-g9qmz Optional: false QoS Class: BestEffort Node-Selectors: <none> Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m40s default-scheduler Successfully assigned portainer/portainer-5fbd6bb5d8-dxgp4 to pico2 Normal Pulling 4m39s kubelet Pulling image "portainerci/portainer:develop" Normal Pulled 4m28s kubelet Successfully pulled image "portainerci/portainer:develop" in 10.98939761s Normal Created 4m28s kubelet Created container portainer Normal Started 4m28s kubelet Started container portainer