ROCK64 is the second ARM Linux development board by Pine64 that is based on Rockchip RK3328 processor, instead of Allwinner 64 for Pine A64 board, and while both processors comes with four Cortex A53 cores, the Rockchip processor offers a faster GPU, 4K @ 60 Hz video support, as well as USB 3.0 support. I’ve got a sample with an eMMC flash module, and I’m going to test it first with Android 7.1, since those were the only firmware images currently available on the Wiki, but Linux will be available before the board ships publicly at the end of July.
There are now at least three Linux ports in progress:
- ayufan’s Debian Jessie and Ubuntu Xenial images which are now in pre-release, but should officially be released next week.
- Arch Linux ARM with no pre-built Rock64 images yet
- Fedora 25 minimal Image
- The Yocto Project support is also being worked on with the first release planed for August
I’ve got some comments on IRC, that ayufan images supports GPIO(s), Mali hardware graphics acceleration – but performance needs to be tuned -, as well as hardware video decoding but 4K videos are not playing that well right now. I’ll make sure to try one of ayufan image, before the boards ship on July 31st.
ROCK64 board can boot from micro SD card or an eMMC flash module, with the latter likely to provide better performance than most SD cards, and you won’t have to worry about fakes. The eMMC flash module is not a new idea, as Hardkernel has offered those with their ODROID boards for year. And I read that Pine64 eMMC flash module would be compatible with ODROID boards, which would be good news if you already own any of Hardkernel ones. I tested compatibility the easy way, as I connected Pine64’s eMMC flash to Hardkernel eMMC to micro SD adapter…
and plugged it in to a card reader in my computer, and I could access “system” and “Volumn” partitions on the eMMC flash module part of the pre-installed Android image.So ODROID users can rejoice, as you may not need to buy extra eMMC flash modules to play around with ROCK64 board.
ROCK64 board firmware update to the eMMC flash module works just like firmware update on Rockchip TV boxes, i.e using Android_Tool program in Windows, or upgrade_tool (now renamed rkdeveloptool) in Linux. You’ll also need a USB male to male connected between your computer and the board. If you plan to run Android from a micro SD card instead, you can use the same image, but flashing it via SD_Firmware_Tool from Windows. Eventually Pine64 installer program, based on Etcher, will probably be updated to support ROCK64 board, and handle both download and flashing to the micro SD card.
Currently there are two Android images provided via the Wiki:
- Stock Android 7.1  Engineering version released by the company
- Community Build Android TV 7.1 [ver 0.1.8] by ayufan
I’ll use “Stock Android 7.1” for this review, since I’m not a big fan of Android TV, and both download are slow, with the Pine64 server easily winning the download race against github. 🙂
Since I’m a Ubuntu user, I went with the Linux method. Let’s install the update_tool, and uncompress the firmware image first. After download run:
sudo cp Linux_UpgradeTool_v1.24/upgrade_tool /usr/local/bin
After connecting a jumper – or something else to short both pins – as shown in the picture above with a red circle, I connected the power supply, and a USB cable between the top USB 2.0 port and my computer in order to enter MaskROM mode, and finally removed the jumper before running:
upgrade_tool uf rock64_0712_rock64launcher.img
This should take a couple of minutes with the following output:
Support Type:RK322H FW Ver:7.1.00 FW Time:2017-07-12 21:49:16
Loader ver:2.38 Loader Time:2017-06-07 09:47:38
Upgrade firmware ok.
Firmware update is done.
So we can connect the board with everything we need.
The first time. I’m asked to choose between “ROCK64 Launcher” and “ROCK64 Launcher”, and you’ve got to love the choice offer here.
I just selected the first one (com.cloudmedia.rock64launcher) and it did not work quite as expected…
I tried to open the app again, but it did not work, so I just restarted the board, and could finally access the launcher [Update: The second launcher works better apparently]. Note that the framebuffer resolution is only 1280×720 instead of the more common 1920×1080 on this type of hardware.
One small problem though… While the USB keyboard would work, my air mouse’s RF dongle connected to the top USB dongle would not be recognized. I had to move it to the lower part to make it work. Nothing would work on that upper USB port, so I guess it’s stuck in device mode, and could not find an option in Android to change that. So I connect a USB Hub with the USB keyboard and RF dongle, and it would not work either. After unplugging and replugging the hub, I was finally able to use at the same time.
The settings will show on the right side of the screen, I just composed the screenshot above to show both resolution options up to 4096x2160p60(YCrCr420), and maybe 4096x2160p60(YCrCb444), which may have seen filtered out since LG 42UB820T television used for review is not supporting that mode.
The storage section shows 3.08GB used out of 14.45GB from the 16GB eMMC flash module, and the system could mount both NTFS and EXT4 partitions from the USB 3.0 hard drive, but not exFAT nor BTRFS.That image is based on Android 7.1.2 plus Linux 3.10.104, and a fairly recent April 5,2017 security patch.
Above is the list of pre-installed app in that image. I went to Google Play Store to install a few apps, and many were grayed out and impossible to install. I still managed to install Antutu and DRM Info. I ran the former, keeping in mind that without heatsink, the score may not be that good. 34,811 points in Antutu 6.x without heatsink is not bad, especially considering the room temperature was close to 30 ºC. I actually got a lower score with Rockchip RK3328 TV boxes like A95X R2 with only 33,117 points, also using the same 1280×720 resolution. DRM Info returns no support for Widevine DRM at all, not really surprising.
In order to install more apps, I decided to download APKPure apk via the installed Lightning web browser, and somehow the board became rather unresponsive, as is there was lot of I/Os in the background. After killing the browser twice when getting the “app not responding” window, I finally manage to download and install APKPure.
Damn, it will launch in portrait, a frequent bug on TV boxes running Android…. 4 or 5 years ago. So I decided that maybe I should give ayufan Android image a try after all, since the “Engineering Version” image has soon many bugs right now. As I finished testing I was also informed that “the stock build listed as engineering, we still tuning on 4K playback”, and that “eventually this tuning will roll into ayufan TV build around end of this month when ROCK64 production board roll out”. So eventually people will be directed to use Android TV 7.1 OS, and you should still keep in mind that there’s still 2 weeks before the board ships so many bugs will be ironed out.
As I tested the “Engineering” image, Android TV 7.1 firmware could complete to download (it tool around 6 hours), and I uncompress it, and flashed it using the same method as above:
upgrade_tool uf android-7.1-rock-64-rk3328_box-v0.1.8-r48-update/update.img
I had no troubles to access to the launcher this time, and both USB 2.0 ports are working.
The resolution is still 1920×1080, so that’s also an improvement.
Android TV firmware does not play nice with my air mouse however, as in many sections, mouse clicks are not supported, and the Home key has no effect. Doing searches in Google Play is a nightmare, as it will randomly switch to “voice mode” when I type with a keyboard or air mouse.
I could not find Chrome, nor Firefox in Google Play, so instead I installed some other “TV Browser”, and the download would not start, so instead I download APKPure in my computer, and installed it from ES File Explorer. The same portrait orientation occurred again, so I gave up, and side-loaded CPU-Z, A1SD Bench, and iperf from ES File Explorer.
CPU-Z shows a quad core Cortex A53 processor clocked at up to 1.51 GHz with a Mali-450MP GPU…
… and that I got the 1GB RAM version of the board (there are also 2GB and 4GB version), and the “screen resolution” is 1920×1080 as we’ve seen above.
This image is also based on Android 7.1.2 with Linux 3.10.104 kernel.
I used A1SD bench for storage benchmarks in Android which reports sequential speeds only.
The “Cache read” is the internal memory so the 90.80 MB/s read speed is invalid. The 35.39MB/s write speed should be correct, and is not too bad with a flash. We’ll find more about the eMMC flash module once I run iozone3 benchmark in Linux. USB storage is working OK, with the EXT-4 partition (Red SD card) achieving 94.13 and 90.93 MB/s W/W speeds, and the NTFS partition (Yellow SD card) getting 92.82 MB/s and 62.66 MB/s not that from what I get on my computer with that mechanical hard drive. Other people have tested performance up to 300 MB/s on SSD drive connected to the USB 3.0 port of ROCK64 board. The important part is that performance maxes out Gigabit Ethernet bandwidth, which with EXT-4 file system it nearly does.
Speaking about Ethernet, I tested Gigabit performance by using iperf for 60 seconds for a full duplex transfer:
[ 4] local 192.168.0.104 port 5001 connected with 192.168.0.110 port 49549
Client connecting to 192.168.0.110, TCP port 5001
TCP window size: 246 KByte (default)
[ 6] local 192.168.0.104 port 43484 connected with 192.168.0.110 port 5001
[ ID] Interval Transfer Bandwidth
[ 6] 0.0-60.0 sec 2.40 GBytes 344 Mbits/sec
[ 4] 0.0-60.0 sec 5.69 GBytes 815 Mbits/sec
Not too bad, but it looks like it can not (currently) transfer close to max speed in both direction at the same time. If you are using it as TV box, it will not matter a bit however.
I also tested a few 4K videos from the USB 3.0 drive in Kodi 17.3 installed from Google Play since I was told it should work OK…:
- ( compliant video; 36 Mbps; 59.97 Hz) – Audio OK, but video is a slideshow despite using hardware decoding with amc-h265
- Fifa_WorldCup2014_Uruguay-Colombia_4K-x265.mp4 (4K, H.265, 60 fps) – Audio OK, but video is a slideshow with the picture refresh every ~6 seconds
- Samsung_UHD_Dubai_10-bit_HEVC_51.4Mbps.ts (10-bit HEVC / MPEG-4 AAC) – Several audio cuts, and slideshow
- 暗流涌动-4K.mp4 (10-bit H.264; 120 Mbps) – Video will freeze after a few seconds
- tara-no9-vp9.webm (4K VP9 YouTube video @ 60 fps, Vorbis audio) – Maybe 1 fps with amc-VP9 (HW)
All videos above are using hardware video decoding according to Kodi overlay info. I tried Big Buck Bunny 1080p60 sample, but the video was not watchable either. It would play, but not smoothly. CPU temperature should not be the problem, as I measured around 65 °C with a IR thermometer. I skipped HDMI audio pass-through, since I was told it would not work, and I can’t play videos properly in Kodi with the current firmware. Better video playback and HDMI audio pass-through are all being worked on right now.
So Android support does not look too good right now, and while I’m hopeful the most critical issues will be fixed by the time, people get the board next months, there are so many problems that, it’s likely many other bugs will still have to be fixed, so you may have to be patient if you have ordered a board in order to run Android.
ROCK64 can be pre-ordered for $24.95 with 1GB RAM, $34.95 with 2GB RAM, and $44.95 with 4GB RAM on Pine64 website. You may want to add a power supply, and optionally the eMMC flash module to your order. Remember that you’ll also need a USB male to male if you want to flash the firmware to the eMMC flash. It’s not needed if you run Android from a micro SD card. You can find some tips to order a proper micro SD card in the article entitled “Micro SD Cards for Development Boards – Classes, Tools, Benchmarks, Reliability, and Tips & Tricks“.