I received Khadas Edge Developer Package with Khadas Edge RK3399 module, Khadas Captain carrier board, and several accessories a few weeks ago, and after checking the hardware in the first part of the review, I’ve now taken the time to review software support, specially Ubuntu 18.04 on the board.
Khadas Edge / Captain Firmware
There are currently four main choices of firmware for Khadas Edge / Khadas Captain:
Android ROM @ https://dl.khadas.com/Firmware/Edge/Android/ with Android Nougat being a proper release, Android Oreo (available now) a temporary version that will not be supported, and Android P that will be released and supported by Rockchip later on in 2019
I decided to focus on Ubuntu 18.04 for this review, and Karl who has his own sample will review the stable Android Nougat firmware that has been released a few days ago.
Khadas Captain First Boot to Android, and Firmware Update to Ubuntu 18.04
Let’s connect the board to an HDMI TV, Ethernet, and the USB Type-C power supply, to see if it boots just fine.
After applying power, Android OS will boot within a few seconds.
Click to Enlarge
But we want to upgrade the firmware, and it’s possible to do so with SDcard or USB type-C cable method. I went with the USB method in Ubuntu 18.04:
Oops, so this would only work with Ubuntu 16.04, so I tried with docker:
Shell
1
2
sudo snap install docker
sudo docker run-ti ubuntu:16.04
But the installation would not complete, and then tried to modify the script to force it to work in Ubuntu 18.04, but it turned out not to be such a good idea with carefully reading the code, as bad things happened with my file system on my laptop switching to read-only, and after rebooting to “solve the issue”, my computer would not boot anymore. It took me 6 hours to solve… Oh well.
I finally switched to an Ubuntu 16.04 laptop with I picked to fix my main laptop.
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
./INSTALL
Installing Amlogic flash-tool…
===============================================
Host PC:Ubuntu16.04
===============================================
Installing USB rules…
Installing flash-tool…
Done!
Installing Rockchip flash-tool…
===============================================
Host PC:Ubuntu16.04
===============================================
Installing USB rules…
Installing flash-tool…
Installing configuration…
Done!
Installing Khadas burn-tool…
Done
But luckily, if you run the latest LTS version of Ubuntu, you don’t have to through the pain I experienced, as the company reacted, and eventually added support for Ubuntu 18.04:
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
./INSTALL
Installing Amlogic flash-tool...
===============================================
Host PC:Ubuntu18.04
===============================================
Installing USB rules...
Installing flash-tool...
Done!
Installing Rockchip flash-tool...
===============================================
Host PC:Ubuntu18.04
===============================================
Installing USB rules...
Installing flash-tool...
Installing configuration...
Done!
Installing ToneBoard burn-tool...
===============================================
Host PC:Ubuntu18.04
===============================================
Installing USB rules...
Installing toneboard-burn-tool...
Done!
Installing Khadas burn-tool...
Done!
The new step is to download the firmware, extract it:
But before flashing the firmware, you’ll need to enter Upgrade Mode with one of five methods. If you don’t, the flash tool will return an error:
Shell
1
ERROR:You should put your board enter upgrade mode!
I used to TST (Terry’s Smart Tweezers) method to enter firmware upgrade mode, and connected relevant cables as shown below.
It does not matter which USB type-C port is used for power and data connection. To enter firmware upgrade mode, I pressed the functions key three times within 2 seconds, and the Blue LED started to blink to indicate upgrade mode is activate. We can now run the command to flash the firmware:
Rockchip Android image(orlinux image compatible with AndroidTool one image burning)found!
Trytoburn Rockchip image...
Loading firmware...
Support Type:RK330C FW Ver:6.0.41FW Time:2018-11-1510:05:44
Loader ver:1.15Loader Time:2018-11-1510:01:03
Upgrade firmware ok.
Done!
The board will automatically reboot, and boot to Ubuntu 18.04 with LXDE.
Khadas Captain & Edge System Information
Use khadas /khadas username and password to login. I also connected more peripherals include a USB hard drive, and a USB RF dongle for my keyboard and mouse.
Click to Enlarge
I also connected through SSH from my laptop since it’s easier to copy/paste terminal output that way:
Linux Khadas4.4.154#11 SMP Wed Nov 14 11:01:05 CST 2018 aarch64 aarch64 aarch64 GNU/Linux
khadas@Khadas:~$df-h
Filesystem Size Used Avail Use%Mounted on
udev946M0946M0%/dev
tmpfs190M656K190M1%/run
/dev/mmcblk1p715G2.7G12G20%/
tmpfs950M12M938M2%/dev/shm
tmpfs5.0M4.0K5.0M1%/run/lock
tmpfs950M0950M0%/sys/fs/cgroup
tmpfs190M16K190M1%/run/user/1000
/dev/sda2241G181G48G80%/media/khadas/USB3_EXT4
/dev/sda1245G182G63G75%/media/khadas/USB3_NTFS
khadas@Khadas:~$free-mh
total used free shared buff/cache available
Mem:1.9G711M256M23M932M1.1G
Swap:949M1.3M948M
khadas@Khadas:~$zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram4 lzo237.4M352K155K420K1[SWAP]
/dev/zram3 lzo237.4M344K146.2K440K1[SWAP]
/dev/zram2 lzo237.4M344K141.6K464K1[SWAP]
/dev/zram1 lzo237.4M348K140.4K432K1[SWAP]
The board run Ubuntu 18.04 with Linux 4.4.154, and since I have Khadas Edge Basic board fitted into Khadas Captain carrier board there’s 1.9GB RAM, and a 15 GB rootfs partition. Khadas team also decided to enable ZRAM by default which is not a bad idea.
Shell
1
2
3
4
5
6
7
8
9
lsblk
NAME MAJ:MIN RMSIZE RO TYPEMOUNTPOINT
sda8:00931.5G0disk
├─sda18:10244.1G0part/media/khadas/USB3_NTFS
├─sda28:20244.1G0part/media/khadas/USB3_EXT4
├─sda38:30244.1G0part
└─sda48:40199.1G0part
mmcblk1179:0014.6G0disk
...
All the four partitions in my hard drive are detected, but only EXT4 and NTFS partitions could be mounted, since BTRFS and exFAT are not enabled in the kernel. That should be something easy enough to do on your own.
Shell
1
2
3
4
5
6
lsmod
Module Size Used by
zram327684
lz4_compress163841zram
bcmdhd12492800
lzo_compress163841zram
Load kernel modules are mostly for ZRAM support, except for bcmdhd WiFi driver.
es2gears works OK, but the framerate is a little on the low side.
I could run glmark2-es2 after installing it:
Shell
1
apt install glmark2-es2
Click to Enlarge
The score was 42 with some of the benchmark maxing out at 50 fps because video output was 720p50. But then I wanted to repeat glmark2-es2 benchmark in offscreen mode, and I decided to install gimp as well. After a while, the system logged out automatically, and 3D GPU drivers did not work any more:
Shell
1
2
3
4
khadas@Khadas:~$glmark2-es2
Error:eglInitialize()failed with error:0x3001
Error:eglInitialize()failed with error:0x3001
Error:main:Could notinitialize canvas
I first through gimp may have messed with the GPU drivers somehow, and reinstalled the firmware with rk-flash-tool, but the resulting remained the same, and Khadas was unable to provide a solution in time for this review. So I somehow permanently lost accelerated 3D graphics on the board for the rest of the review.
Khadas Edge Video Playback
When trying to play videos from the NTFS partition of the USB drive, or copy files from the USB to the eMMC flash the connection would often fail, interrupting video playback or file copy. That’s what it would look like in the kernel log:
[3224.964000]usb5-1:newhigh-speed USB device number6using ehci-platform
At some point, I finally managed to play a 1080p60 video with mpv, but it relies on software decoding at this point, and the video was very choppy.
Click to Enlarge
It’s unclear how to play 1080p or 4K videos smoothly in Ubuntu 18.04, so instead you may have to use LibreELEC image instead if that’s something you need. So far, I’ve been unable to play videos in any of the RK3399 boards I tested with Ubuntu Desktop firmware.
Web browsing in Khadas Captain
The Ubuntu 18.04 images comes with Chromium pre-installed.
Click for Original Size
However, Thai fonts are missing, so characters will show as blocks with this language when accessing Google and Facebook from my location, so I installed Thai fonts:
Shell
1
sudo apt install fonts-thai-tlwg
I wanted to install Thai language support and the corresponding keyboard, but it failed due to permissions issues:
You are not allowed to perform this action You don’t have the required privileges to perform this action.
That’s a minor issue that should be easy to fix.
Overall “standard” web browsing worked well, just like on other RK3399 boards and I edited a lot of this review on the board itself. However, I could not play Candy Crush Saga in Facebook as flash player is missing:
No Flash Player found. 11.0.0 version required.
YouTube videos can play at 720p with very few dropped frames, but some tearing is clearly visible. 3D graphics acceleration is broken on my board, but I went to visit WelGL Quake demo anyway, and unsurpringsly was greeted with an error message:
Sorry, but your browser does not support WebGL or does not have it enabled.
eMMC flash and USB Storage Performance
Let’s run the usual iozone benchmark in the eMMC flash:
The values are really low at about 33MB/s for read and write, and then I realized oops… The USB port on one of the edges of the board is USB 2.0, so I moved the drive to the USB 3.0 port, and results were inline with expectations for a mechanical drive:
Around 93MB/s sequential read speed, and 91 MB/s sequential write speed.
As a side note, since the tests take time on the hard drive I tried to do some debugging/monitoring, first by checking syslog but it’s filled with message related to IR remote control:
But this one seems to be a bug with iotop while using the latest version of Python. One way might have been to downgrade Python version, but instead I used:
Time to test WiFi 5 (802.11ac) performance. Please note that I have the Khadas Edge Basic board with AP6356S module, while Edge Pro and Max boards come with AP6398S that support RSDB (Real Simulataneous Dual Band) , and should offer even better performance.
I’ve frequently found asymmetries between upload and download, but usually that’s at the benefit of the download part. That’s somehow the opposite with Khadas Edge, and I had to double check it to confirm. 222 Mbps upload is very good with the router I use, but 104 Mbps download could be better, as some other platforms could achieve a little over 250 Mbps.
WiFi Data Throughput in Mbps – Click to Enlarge
USB-C DisplayPort Alternate Mode on Khadas Captain
When I connected MINIX NEO-C plus USB-C adapter to RockPro64 RK3399 board in order to make use of USB-C DisplayPort Alternate mode over HDMI it did not work quite as expected (although it may be fixed now), but I did not have such an issue with Khadas Edge.
Click to Enlarge
I just move the HDMI cable that I had connected to the HDMI port of Khadas Edge to the HDMI port in the MINIX USB-C adapter, and within a few seconds, the image was up and running. I only have access to one TV right now, so I was not able to test dual monitor setups and things like extended desktop.
Conclusion
The hardware design looks solid with a fast eMMC flash, excellent Gigabit Ethernet performance, and acceptable WiFi AC performance, dual video output, and more.
But while Ubuntu 18.04 LXDE image is mostly usable, there were several issues such as accelerated 3D graphics support breaking after a while, even after reinstalling the firmware, and the lack of hardware video decoding is a recurring issues on RK3399 platforms at least on desktop Linux images, as LibreELEC is another story. I also encountered several less important software only issues like failure to install language packs, as well as some potential (power?) issues when connecting the USB hard drive that would disconnect from time to time when connected to the USB 2.0 port.
But bear in mind Khadas Edge and Captain boards are not shipping yet, so what I did here was really beta testing, and I’m pretty sure Shenzhen Wesion will look into the issues and fix many of them before the rewards ship to backers later in January.
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.
This website uses cookies to improve your experience. We'll assume you're ok with this, but if you don't like these, you can remove them Accept
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the ...
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.