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.
Rock64 Linux Ports Status
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.
eMMC Flash Module Compatibility with ODROID Boards
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…
Installing Android 7.1 on 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.
Android 7.1 “Engineering Version” Launcher, Settings and Benchmarks
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 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.
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.
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.
Android TV 7.1 “ayufan” Firmware
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…:
- HD.Club-4K-Chimei-inn-60mbps.mp4 (H.264, 30 fps) – Audio OK, but video is a slidehow despite hardware video decoding with amc-h264 codec
- sintel-2010-4k.mkv (H.264, 24 fps, 4096×1744) – Shows previous video still with many green lines. I had very difficult controls from the air mouse, so I powered cycled the board.
- BT.2020.20140602.ts (Rec.2020 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“.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
20 Replies to “ROCK64 Board Review – Part 1: eMMC Flash Module, Android 7.1 Firmware, Benchmarks, and Kodi”
Just a quick note for those interested to use ROCK64 with Linux: The above performance numbers are irrelevant since Android uses an outdated 3.10 kernel while Linux development happens currently with 4.4.70 and 4.12 soon in parallel. The Android builds also miss all the performance tweaks while ayufan’s ROCK64 Linux builds fortunately use all our Armbian optimizations now but for whatever reasons the most important script rock64_fix_irqs.sh currently gets not executed automatically (so I added this to /etc/rc.local when testing the last weeks)
With more capable SSDs and USB Attached SCSI we now get 380MB/s and network performance with Linux is 940 Mbits/sec in both directions. ROCK64 is the fastest SBC for NAS use cases currently around. Some details especially in the posts below: https://forum.openmediavault.org/index.php/Thread/17855-Building-OMV-automatically-for-a-bunch-of-different-ARM-dev-boards/?postID=148428#post148428
Also note that Android engineering builds are way slower than the user builds. You should not be benchmarking on an engineering build.
Does ayufan’s Android use the mainline kernel?
Nope, it’s also 3.10.104 at the moment. But I’m pretty confident next step is combining Android with 4.4 Rockchip BSP kernel and finally mainline kernel. RK is contributing upstream and partially mainline code is more up to date than their BSP stuff (eg. PMIC related patches). To me the whole situation looks promising…
On a related note: TL Lim explained yesterday in IRC a little bit the challenges wrt video/display stuff (planes, GPU/VPU acceleration and some more stuff I’ve not the slightest idea about) and told RK engineers are active here too to resolve many many issues. So it’s definitely too early to benchmark anyway.
Reasons to buy 4gb ram model over 2gb?
The performance – as reported by benchmarks- of the “engineering” and “ayufan” firmware on this board is about the same as the one on RK3328 TV boxes selling now. Linux 4.x will bring performance improvements, but to most Android users it will be unnoticeable since they won’t use this extra performance due to their use case.
So from Android point of view, performance is pretty good, even for USB 3.0 and Gigabit Ethernet, The real problems with the firmware right now are the various many bugs, and failure to play videos & audio properly.
It will depend on your use case. For Android TV boxes, I usually don’t see any differences between 2GB and 3GB models during my reviews. If you run an operating systems that can multitask like Ubuntu or Debian, then you may need to get the extra memory.
With Android most probably not, with Linux it depends on what you want to do. It’s a 64 bit platform and storage performance is excellent when you use USB3/UAS so virtualization/containerization is possible. And then the more memory you have the better. For normal server use cases 1GB RAM should be sufficient since most of the RAM will be used for buffers/caches anyway and immediately used once applications/kernel really need it:
ROCK64 sitting there idling and only assisting in creating a better Openmediavault image for Raspberry Pi 2 and 3.
got 4gb one on order, well I hope its better than the NanoPi K2 support….feel a bit burnt by that one.
Kubernetes nodes running on CoreOS booted using PXE with bootloader stored on SPI.
btw. I’m ayufan, not Ayufan 🙂 @cnxsoft can you fix that?
> 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…:
Kodi currently uses it seems not the standard way of handling videos (I think that it talks directly to OMX). If you run them with VLC or ES Explorer they are actually being played nice.
So this seems for me to not be Android problem per-se, but Kodi incompatibility.
Yes, my image runs GUI in 1920×1080 (Engineering version uses 1280×720). This is as much as Mali 450 can handle. I did run it in UHD, but it was seriously laggy. It doesn’t really hurt that match experience because actual videos (when running properly) are being rendered in resolution set on HDMI port (so 4k, for example). Yes, we have separate resolution on HDMI, but upscaled FB for GUI. I choose Full HD, as HD looks simply ugly.
My ATV supports Widevine L3, but it will still not run Netflix TV, as it requires L1. I also removed Google Cast as it is not working too, it too requires Widevine L1.
You could not find Chrome, as ATV version is using TV mode of operation, so Leanback Launcher. There are separate apps in Google Play Store for ATV.
Generally, ROCK64 as Mediabox is very similar to Mibox 3 in specs and performance, but due to “community” and “open source” it will never support Widevine L1, so it should make a good Kodi machine.
I will probably soon release a working “desktop” version (regular launcher).
I like my ATV build it works stable and I did not had major problems in a few days of constant use 🙂
TL Lim told me to use Kodi from Google Play. But there was a confusion, as he meant on the engineering version, and I used your version. I could see VLC installed, but last time I tried on TV boxes it did not work well at all.
The GUI at 1920×1080 is fine, I’m happy with that. Most other products are using that resolution, and I’m not expecting such low end hardware to run a UHD user interface.
I had seen Chrome in U5PVR Deluxe, also running Android TV, in the list of apps in leanback launcher, so I thought it would be available in Google Play. But maybe they side-loaded it. So that means Google did not bother do a web browser for their Android TV OS…
I would still avoid Rockchip and Allwinner if video playback with Kodi is one of your use cases. Rockchip and Allwinner are still not fully following industri standards on Android or Linux. Niether company is open source friendly either. These two companies still have to play catchup in those areas if they want to continue to be successfull. Price is not everything and in the case with these you get what you pay for, compatibility be damned.
When was the last time you checked out mainline Linux kernel and did this
You’re just looking at the same company from different angles.
Thomas is right Rockchip has done a good job with the Chromium team in the Linux kernel, and Harley is right that Kodi developers decided to drop supporting Rockchip due to license and API issues. Currently Rockchip devices are a complete disaster if you attempt to run “mainline” Kodi, and they require forks such as TVMC or RKMC which combine some source code with closed sourced libraries.
However, I understand that this will change with mainline Kodi 18, as Rockchip has improved here too.
I’m also been informed that stock Kodi will work well on the ayufan’s Android 7.1 image, as they’ve made process for 4K decoding, and audio pass-through. I’ve not been told whether this will be upstreamed to Kodi. I guess if they use Kodi 17.3, then it’s not possible since it’s not just a bug fix.
4K HDR will work too, but since they use 1600MHz RAM it’s a challenge, especially if there’s overlaid info displayed, or any background task running at the same time.
“Rockchip and Allwinner are still not fully following industri standards on Android or Linux”
Rockchip SOC have a good compatibility on Linux.
Rockchip are willing to support and cooperate with opensource community.
They have support libreelec guys to run KODI Linux in rockchip platform.
Wasn’t anything to do with licence and API issues apart from the MALI GPU which is ARM.
Politics is the main reason as Rockchip are in a different league when it comes to OpenSource when compared to Allwinner.
Koying decision to leave the team is not related to the decision to drop Rockchip.
@Harley I ran Kodi on mine and it is running just fine with Covenant and Dexter TV. Maybe there was an update in the last few months?