If you’re a FOSS enthusiast and looking out for a powerful little ARM laptop, PineBook Pro is what you need.
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 ajeetraina@192.168.1.8
ajeetraina@192.168.1.8'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
Keeping Manjaro ARM Repository up-to-date
sudo pacman -Syu
Installing Docker 19.03.12
pacman -S docker
Initialising Docker
You might have to reboot your system for Docker to get initialize properly
Running Docker Service
systemctl start docker.service
systemctl enable docker.service
Verifying Docker
[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
Installing Docker Compose
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
Installing K3s
[ajeetraina@pine64 ~]$ curl -sfL https://get.k3s.io | sh -
Installing Portainer
[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
Comments are closed.