Pine64

64bit A64 allwinner GbE legacy mainline
ServerDesktopQuick startNotesKnown issuesNightly releasesKernels
Mainline
There are no mainline builds for this board.
  • desktop images are in preview / beta state
  • using images with legacy kernel is highly recommended, mainline kernel is for developers only
  • it's recommended to power the board through GPIO header
  • to get Wi-Fi working use 'sudo nmtui'
  • vanilla kernel does not support DVFS, onboard analog audio output, onboard IR receiver, CSI, DSI and TP interfaces
  • SoPine A64 requires different u-boot and Device Tree and for now is supported only as a build script target and nightly CLI images
Legacy 3.10.104

Mainline
There are no mainline builds for this board.
  • desktop images are in preview / beta state
  • using images with legacy kernel is highly recommended, mainline kernel is for developers only
  • it's recommended to power the board through GPIO header
  • to get Wi-Fi working use 'sudo nmtui'
  • vanilla kernel does not support DVFS, onboard analog audio output, onboard IR receiver, CSI, DSI and TP interfaces
  • SoPine A64 requires different u-boot and Device Tree and for now is supported only as a build script target and nightly CLI images

Preparation

Make sure you have a good & reliable SD card and a proper power supply. Archives can be uncompressed with 7-Zip on Windows, Keka on OS X and 7z on Linux (apt-get install p7zip-full). RAW images can be written with Etcher (all OS).

How to boot?

Insert SD card into a slot and power the board. First boot takes around 3 minutes then it might reboot and you will need to wait another one minute to login. This delay is because system creates 128Mb emergency SWAP and expand SD card to it's full capacity. Worst case scenario boot (with DHCP) takes up to 35 seconds.

How to login?

Login as root on HDMI / serial console or via SSH and use password 1234. You will be prompted to change this password at first login. Next you will be asked to create a normal user account that is sudo enabled (beware of default QWERTY keyboard settings at this stage).

How to connect to your router via WIFI?

Required condition: a board with onboard or supported 3rd party wireless adapter on USB

nmtui-connect YOUR_ROUTER_SSID

  • Important: A few Pine64+ devices suffer from a Gbit Ethernet issue related to the GbE PHY leading to a severe amount of packet losses which might render Ethernet unuseable. It's confirmed as hardware issue and if you're affected or not can be simply checked by testing network throughput with iperf3. Against another GbE capable device you should exceed 900 Mbits/sec with Armbian (only 800 Mbits/sec in RX direction when not using Xenial due to iperf3 being single-threaded in both directions then and bottlenecked by CPU). If you see low throughput and high retransmit counts then a work-around is to switch Pine64+ to Fast Ethernet only by adding ethtool -s eth0 speed 100 duplex full to /etc/rc.local. At the time of this writing a true fix is only replacing the defective board by Pine Microsystems Inc.
  • The only led on the board is a power led, it starts to light as soon as power is available and does not indicate anything else. So the only 'DOA or not?' indicator on this board is to burn an image, connect Ethernet, power on the board and wait 20 seconds whether the leds on the Ethernet jack show activity or not.
  • Comprehensive device information is available in linux-sunxi wiki.
  • Idle consumption with legacy image is ~1500 mW on Pine64 (or Pine64+ forced to use Fast Ethernet) and 1870 mW on Pine64+ (if you don't need GbE network transfer speeds switching to Fast Ethernet with ethtool -s eth0 speed 100 duplex full saves ~350 mW).
  • Since the default DC-IN connector unfortunately is made with a Micro USB jack it's important to keep in mind that most USB cables have a resistance way too high which leads to undervoltage situations. In case you run into stability problems please power your Pine64(+) through the Euler pins (see linux-sunxi wiki for details).
  • If you clone one Armbian installation for more than one Pine64 please keep in mind that currently the Ethernet MAC address will be chosen randomly on first boot and then saved in /boot/uEnv.txt. To avoid MAC address collissions you've to adjust the address there or delete the whole ethaddr line (next boot will assign a new MAC address automagically). OS images from Aug 2016 or before suffer from this bug so /boot/uEnv.txt has to be adjusted manually in any case if more than one Pine64 joins the same Ethernet network.
  • While 2D acceleration and HW accelerated video decoding is possible with legacy kernel since March 2016 due to the problematic situation with HDMI drivers Armbian considered Pine64/Pine64+ headless devices just until recently (though if you know what you're doing you cwere able to use our build system to generate a perfect desktop build with 2D and video acceleration since a long time). In the meantime a beta desktop image is available. Feedback welcome!
  • Even if HDMI situation is still somewhat limited Armbian starting with release 5.21 supports setting the default resolution in /boot/armbianEnv.txt (defaults to 720p60 and could be changed to 4K@30Hz for example with an entry disp_mode=2160p30 -- for the list of supported resolutions please have a look into /boot/boot.cmd)
  • If you use a DVI display don't forget to define disp_dvi_compat=1 in /boot/armbianEnv.txt (supported starting with 5.21).
  • If you want to run heavy loads on Pine64 please keep in mind that you might need a heatsink to prevent throttling. Armbian uses community throttling settings that protect A64 SoC from overheating but without improved heat dissipation any heavy workload running longer than 60 seconds will result in CPU cores being clocked down to stay below 90°C SoC temperature.
  • Situation with vanilla/mainline kernel can be considered experimental. At the moment only basic functionality is implemented and no thermal protection (throttling) is working (no cpufreq scaling also and no access to PMIC too). Therefore also pretty conservative settings are used which negatively impact performance.
  • In case you use mainline kernel already you can adjust cpufreq to 864 MHz for example by adding a line with mw.l 0x1c20000 0x80001110 to /boot/boot.cmd (don't exceed 864 MHz now since VDD_CPUX is currently limited to 1.1V). By defining mw.l 0x1c2005c 1 on a separate line you can speed up USB and Ethernet -- Reference).
  • It's possible to convert the upper USB port (normally an OTG port) into a full USB host port using an own PHY by setting some magic bits.
  • To use/configure Wi-Fi (currently only supported with legacy images) the most simple way is to use NetworkManager. Simply follow these steps (as root):
    • echo "blacklist 8723bs_vq0" >/etc/modprobe.d/8723bs_vq0.conf (optional, not really necessary)
    • sed -i 's/p2p0/p2p0,wlan1/' /etc/NetworkManager/NetworkManager.conf (optional, not really necessary)
    • nmtui (choose then Activate a connection)
  • You could also use the other Wi-Fi interface for an access point at the same time. In this case you want to use wlan1 and follow these instructions. Please note that Armbian already ships with an example default config /etc/network/interfaces.hostapd using wlan0 and that we also ship with an own hostapd version (check with dpkg -l | grep hostapd).
  • Starting with Armbian 5.21 fixed camera drivers for both SK54EC and OV5640 are included.
  • Currently BT is not supported out of the box by Armbian. Please read through this thread in pine64 forum to enable it.
  • Starting with Armbian 5.24 in /boot/armbianEnv.txt camera support can be activated: camera_type=none|s5k4ec|ov5640 (defaults to none, reboot needed for changes to take effect)
  • Also starting with 5.24 Pine64's own LCD with touchscreen support can simply be activated in /boot/armbianEnv.txt by setting pine64_lcd=on and adding gt9xxf_ts to /etc/modules followed by a reboot. Please note that current gt9xxf_ts driver seems to be buggy and crashes on shutdown.
  • Starting with 5.25 in /boot/armbianEnv.txt two more parameters can be set: gmac-tx-delay (defaults to 3) and gmac-rx-delay (defaults to 0). Adjusting this parameters should not be necessary but in case you are curious or experience bad Gigabit Ethernet performance please read through the appropriate github issue.

Legacy kernel images (all boards) (default branch)

  • Arm64 browsers (Firefox, Chromium, Iceweasel) may crash frequently. Armhf versions of these browsers should be used instead (Iceweasel and Firefox preinstalled in desktop images should be of the right architecture out of the box)
  • HDMI output supports only limited number of predefined resolutions
  • Hardware accelerated video decoding supports only limited number of video formats

Board: Pine64/Pine64+

  • Gigabit Ethernet performance: on some boards was confirmed as hardware issue, though the legacy kernel received a workaround that may help on some boards.
  • Gigabit Ethernet performance: setting TX/RX delays manually in /boot/armbianEnv may improve performance on some boards. Refer to this github issue for the details.
Nightly 4.10.0
Nightly desktop 3.10.104
Warning: nightly downloads are automated untested builds and no end user support is provided for them!
Updating from nightly repository?

sed -i "s/apt/beta/" /etc/apt/sources.list.d/armbian.list
apt-get update
apt-get upgrade
When bug is found?

Warning: you are entering developers area and things can be completely broken. Don’t use this in production.
default, vendor provided / legacy (3.4.x – 4.4.x)
To make sure you won’t run into conflicts within newly installed packages, remove them all before upgrade:

 aptitude remove ~nlinux-dtb ~nlinux-u-boot ~nlinux-image ~nlinux-headers 
aptitude remove ~nlinux-firmware ~narmbian-firmware ~nlinux-$(lsb_release -cs)-root

Proceed with install:

apt-get install linux-image-pine64 linux-headers-pine64 
apt-get install linux-u-boot-pine64-default linux-$(lsb_release -cs)-root-pine64 
apt-get install armbian-firmware sunxi-tools swconfig a10disp
reboot
dev – developement (4.x)
To make sure you won’t run into conflicts within newly installed packages, remove them all before upgrade:

 aptitude remove ~nlinux-dtb ~nlinux-u-boot ~nlinux-image ~nlinux-headers 
aptitude remove ~nlinux-firmware ~narmbian-firmware ~nlinux-$(lsb_release -cs)-root

Proceed with install:

apt-get install linux-image-dev-pine64 linux-dtb-dev-pine64 linux-headers-dev-pine64 
apt-get install linux-u-boot-pine64-dev linux-$(lsb_release -cs)-root-dev-pine64 
apt-get install armbian-firmware sunxi-tools swconfig a10disp
reboot