Posts Tagged ‘ubuntu’

ECDREAM A9 Apollo Lake HDMI “TV Stick” Review with Windows 10 and Ubuntu 17.04

The ECDREAM A9 is arguably the first Intel Apollo Lake ‘PC stick’ available for purchase. However, in reality it is surprisingly large, and when compared to earlier Intel Atom ‘sticks’ and mini PC ‘boxes’ it lies somewhere in between. Measuring 2.3 inches (58 mm) wide and 0.6 inches (16 mm) thick it feels almost double in size of the original Intel Compute Stick (1.5 in/38 mm by 0.5 in/12 mm) and like nearly half of a mini PC (Beelink’s AP34 is 4.7 in/119 mm by 0.8 / 20 mm). Given that you only get two USB ports, an micro SD card slot and the obligatory HDMI and power port, the large size would be better justified if an Ethernet port had also been included given other smaller ‘sticks’ have shown this is possible.

Click to Enlarge

However the reason for its size is due to the oversized fan and heatsink…

Click to Enlarge

and that will be the deal-breaker for most. Because it is not a quiet fan, but noticeably noisy. However, that is under Windows as the fan doesn’t run under normal Linux.
Taking a look at the package in more detail…

Click to Enlarge

Inside the box together with the device is a short HDMI extender cable, a power supply (with no international variants or adapters), a manual (which is more of a Windows get-started guide) and a further slip of paper with a picture showing what the ports are. The device comes with a large detachable cap that covers the HDMI port. Then inside the device underneath the fan and heatsink is the Intel Apollo Lake SoC, memory chips from Micron, eMMC from Foresee and an Intel wifi chip all matching the advertised specs

Click to Enlarge

Click to Enlarge

The device comes pre-loaded with activated Windows 10 Home 64-bit and has nearly 18GB of available free space to fill up with Windows updates.

Click to Enlarge

Unusually the updates were initially switched off

Click to Enlarge

Click to Enlarge

The Windows performance is impacted in part due to the slower Foresee eMMC

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Overall the device performs better than Cherry Trail devices and as expected

Click to Enlarge

4K video (at 30fps) can be watched through Chrome and Kodi and the fan keeps the temperatures down

Temperatures with Chrome 4K (Left) and Kodi (Right) – Click to Enlarge

and the external temperature is acceptable at around 30°C.
However, as mentioned the fan is audible in comparison with other ‘stick’ PCs with fans. Using a battery powered clock as a baseline in a highly unscientific comparison you can judge for yourself, comparing Intel Core M STK2M3W64CC Compute Stick…


Initially I was rather happy that the fan didn’t start under Linux, however without it temperatures rocket and the device crashes when playing high definition videos.
Looking at the hardware from a Linux viewpoint the CPU is an Intel Celeron N3350 Apollo Lake
useable storage of 28.9GB plus the micro SD card option

Click to Enlarge

2GB DDR3 1600 MHz memory

Click to Enlarge

Intel 3165 wireless

Click to Enlarge

HDMI audio

Click to Enlarge

and everything (except the fan) works using Ubuntu 17.04 with the ISO’s default kernel. This includes Sandisk micro SD cards
which still fail on Cherry Trail devices.
Unfortunately however there is no option in the BIOS allowing Linux to boot directly:
so the Ubuntu ISO had to be respun using ‘’ to add the rEFInd boot manager

Click to Enlarge

Having installed Ubuntu to eMMC, and running my usual benchmarks there can again be seen the performance improvement over Cherry Trail devices (STCK1A32WFC is the Intel Compute Stick Falls City, STK1AW32SC is the Intel Compute Stick Sterling City, and STKM3W64CC is the Intel Compute Stick Cedar City)​​

Click to Enlarge

Click to Enlarge

Click to Enlarge

Exploring the fan issue further shows the failure appears to be a BIOS ACPI table related issue

Click to Enlarge

even though there are many options in the BIOS for thermal configuration
By recompiling the kernel with a ‘hacky’ patch it is possible to get the fan working
but because the BIOS isn’t populated with appropriate DMI strings it is unlikely that this device will receive mainline support.
However with the fan running the temperature is controlled even after stressing the CPU

Click to Enlarge

making 4K video (30fps) watchable

Click to Enlarge

Although I encountered an issue in that Chrome would successfully stream 4K videos in Windows, yet under Ubuntu it kept intermittently pausing waiting for network data. If I first downloaded the video then playing it was fine using Kodi.
As 32GB of storage is now really too small to run both Windows and Linux given the size, and frequency of Windows updates I installed Ubuntu with my custom kernel to a micro SD card and resized Windows to use the entire eMMC. Again some juggling with rEFInd was required to boot as the micro SD card is not recognized directly during the boot process.

Click to Enlarge

Interestingly there was a slight overall performance increase which is probably due to the slow eMMC. The maximum temperature for the eMMC-based benchmarks reached 80°C after running the ‘openssl’ tests compared with a maximum of 57°C also after the ‘openssl’ test on the fan-assisted micro SD card so thermal throttling would not appear to be a contributing factor.

Click to Enlarge

The device comes with a very unrestricted BIOS so there are lots of ways to brick it
To conclude the product is bulky given its advertised ‘stick’ form factor, and is limited because it only has 2GB RAM. The fan with its noise under Windows and lack of support under Linux limits the product’s appeal. In terms of support, the Windows drivers are available from the manufacturer’s community web page although their specification page incorrectly states the CPU model. It is currently priced at USD 129.99 at Geekbuying who kindly provided the sample for review. [Update: Using GKBECDA9 coupon brings the price down to $113.99]

GIGABYTE MA10-ST0 Server Motherboard is Powered by Intel Atom C3958 “Denverton” 16-Core SoC

August 15th, 2017 27 comments

Last year, we wrote about Intel Atom C3000 series processor for micro-servers with the post also including some details about MA10-ST0 motherboard. GIGABYTE has finally launched the mini-ITX board with an unannounced Atom C3958 16-core Denverton processor.

Click to Enlarge

GIGABYTE MA10-ST0 server board specifications:

  • Processor –  Intel Atom C3958 16-core processor @ up to  2.0GHz with 16MB L2 cache (31W TDP)
  • System Memory – 4x DDR4 slots for dual channels memory @ 1866/2133/2400 MHz with up to 128GB ECC R-DIMM, up to 64GB for ECC/non-ECC UDIMM
  • Storage
    • 32GB eMMC flash
    • 4x Mini-SAS up to 16 x SATA 6Gb/s ports
    • 2x Mini-SAS ports are shared with PCIe x8 slot
  • Connectivity
    • 2x 10Gb/s SFP+ LAN ports
    • 2x 1Gb/s LAN ports (Intel I210-AT)
    • 1x 10/100/1000 management LAN
  • Video – VGA port up to 1920×[email protected] 32bpp; Aspeed AST2400 chipset with 2D Video Graphic Adapter with PCIe bus interface
  • USB – 2x USB 2.0 ports
  • Expansion Slots – 1x PCIe x8 (Gen3 x8 bus) slot; shared with Mini-SAS ports, Mini_CN2, Mini_CM3
  • Misc
    • 1x CPU fan header, 4x system fan headers
    • 1x TPM header with LPC interface
    • 1x Front panel header
    • 1x HDD back plane board header
    • 1x JTAG BMC header
    • 1x Clear CMOS jumper
    • 1x IPMB connector
    • 1x PMBus connector
    • 1x COM (RS-232)
    • Power and ID buttons with LEDs; status LED
  • Board Management – Aspeed AST2400 management controller; Avocent MergePoint IPMI 2.0 web interface
  • Power Supply – 1x 24-pin ATX main power connector; 1x 8-pin ATX 12V power connector
  • Dimensions –  170 x 170 mm (Mini-ITX form factor)
  • Temperature Range – 10 to 40°C
  • Relative Humidity – 8-80% (non-condensing)

The dual core Atom C3338 is the only processor listed on Intel’s formerly Denverton page, with now info about the 16-core Atom C3958 processor so far.

Click to Enlarge

The board is said to support Windows Server 2016, Red Hat Enterprise Linux Server 7.1, SuSE Linux Enterprise Server 12, Ubuntu 14.04.2 LTS, Fedora 22, and CentOS 7.1. The board is sold with an I/O shield and a quick start guide. There’s no word about pricing or availability on the product page, but Anandtech reports that the “board is essentially ready to go, and interested parties should get in contact with their local reps”. For reference, SuperMicro  A2SDI-H-TP4F-O board based on the same processor is sold for $820+ on Atacom.

CrazyPi Board Runs Ubuntu and ROS on Rockchip RK3128 SoC for Robotics & IoT Projects (Crowdfunding)

August 10th, 2017 4 comments

CrazyPi is a maker board powered by Rockchip RK3128 quad core Cortex A7 processor that can take various magnetically connected modules such as LIDAR, gimbal, 4G LTE, etc.., and runs both Ubuntu and ROS (Robot Operating System) for DIY robotics & IoT projects.

Click to Enlarge

CrazyPi main board specifications:

  • SoC – Rockchip RK3128 quad core Cortex A7 processor @ 1.2 GHz with ARM Mali GPU
  • MCU – ARM Cortex-M3 @ 72 MHz
  • System Memory – 1GB DDR3L @ 1066 MHz
  • Storage – 16GB eMMC flash pre-loaded with Ubuntu and ROS
  • Connectivity – 802.11 a/b/g/n WiFi @ 150 Mbps, Bluetooth 4.0
  • USB – 1x USB 2.0 host port
  • Expansion Headers – Two headers with a total of 36-pin exposing 1x HDMI, 1x speaker, 1x microphone, 3x PWM, 1x I2C, 1x UART, 1x SPDIF, 1x SPI, 1x USB
  • Power Supply – 5V via micro USB port ?
  • Dimensions – Smaller than credit card

The full details are not available yet, but the company claims CrazyPi is “completely open source and DIY”, so I’d assume more details will eventually show up on CrazyPi github repo (now empty). A cloud service also allows you to stream the webcam output from anywhere in the world.

Webcam View and Map Generated from CrazyPi Robot Kit

What’s  quite interesting is that the board is designed to be connected to add-on boards, modules and accessories allowing you to build robots:

  • Robotic shield board to control motors / servos
  • Media shield board for HDMI output and use the board as a mini computer
  • 4G LTE module (maybe part of the robotic shield board?)
  • Crazyou 4K LIDAR sensor with SLAM (Simultaneous Localization And Mapping) function to automatically create map of your environment
  • 720p camera module
  • 2-degrees gimbal
  • 4-wheel robot chassis
  • 2x 18650 batteries and case

Again, we don’t have the exact details for each, but the promo video explains what can be done with the kits.

Crazyou – that’s the name of the company – has launched the project on Kickstarter to fund mass production with a 200,000 HKD goal (around $25,800). The board is supposed to cost $29, but is not offered standalone in the crowdfunding campaign, so instead you could start with a $59 CrazyPi Media Kit with the mainboard, camera and media board. If you want the complete robot shown above, you’d have to pledge $466 for the CrazyPi Advanced Kit reward with the camera module, the mainboard, the gimbal, the robotic shield board, battery case and charger, the chassis, and LIDAR. Various bundles are available to match different projects’ requirements. Shipping to most countries adds around $19, and delivery is scheduled for October 2017. There’s not much to see on Crazyou website, but eventually more details may emerge there.

Thanks to Freire for the tip.

ROCK64 Board Review – Part 2: Quick Start Guide with Ubuntu 16.04.3 MATE, Multimedia Features, Some Benchmarks

August 7th, 2017 15 comments

Pine64 ROCK64 is the first maker board based on Rockchip RK3328 processor, and is potentially interesting for various applications including network storage thanks to USB 3.0 and Gigabit Ethernet, multimedia applications with 4K HDR video support, as well as other applications requiring I/Os. I’ve already tested Rock64 board with Android 7.1 operating system, so today I’ll report by finding and experience with Ubuntu 16.04.3 with MATE desktop.

Selecting and Flashing a Linux Image

You’ll find several operating systems in the Wiki, but you’ll also find more cutting edge images in ayufan’s github. But first let me explain some vocabulary used for Pine64 firmware files:

  1. Engineering version – Becomes with release build based on the stock build develop by Pine64 and the SoC vendor. It’s supposed to be more stable, but get less updates
  2. Community versions (currently managed via ayufan) are more frequently updates, and comes with more recent features. You’ll find two categories
    1. Release builds – The current stable version released by the community
    2. Pre-release builds – Version under test to eventually become the release build

Currently, documentation is still work in progress for the board, so I spent some time on IRC #Rock64 chatting with the helpful community there, and I noticed most of them used the community builds. I’ve also been told there has not been that much work on the Desktop version right now, with most people focusing on NAS support with images such as Debian + OpenMediaVault. But since I wanted to test a desktop image I was recommended the Ubuntu Mate image, and download the pre-release 64-bit version: xenial-mate-rock64-0.4.17-85-arm64.img.xz.

If you’ve read the WIki, you’ll notice all those are “micro SD” images, so since I had a eMMC flash module, I was a little confused at the beginning, but since I have Hardkernel’s micro SD to  eMMC flash module adapter, installation was just the same as on a micro SD card with Etcher.

Top to Bottom: ROCK64’s 16GB eMMC flash Module, Hardkernel adapter, and micro SD card reader

But Pine64 does not sell such adapter, so how are you supposed to do with you bought an eMMC flash module? I’ve been explained you first need to flash a micro SD card with the image, and then interrupt the boot in u-boot (USB to TTL debug board required), remove the eMMC jumper, and continue the boot by typing “boot”. This has be to be done, or you won’t see the eMMC flash module, while booting from a micro SD card.

Now you can download, and flash the firmware to the eMMC flash module with curl:

Not the most user-friendly method, but it should work. If you don’t have a USB to TTL board, first you should really buy one, but for this specific case, you could remove the eMMC jumper about two seconds after applying power. In that case, your mileage may vary though… Pine64 is working on an easier method of installation to the eMMC flash module.

Rock64’s Ubuntu 16.04.3 MATE Boot, System Info, and Initial Setup

Since I want to get the boot log, I connected the USB to TTL board. There’s no dedicated UART connected on the board, so I download the GPIO pinout charts for Pi 2 Bus and Pi 5+ Bus from the Wiki, amd we’ll use it to test GPIOs later on.

Pi 2 Bus – Click to Enlarge


Pi 5+ Bus – Click to Enlarge

UART Tx and Rx can be found on respectively pin 8 and 10 of Pi 2 Bus header, so I connect the debug board accordingly, together with USB keyboard and mouse, a USB harddrive, Ethernet and HDMI cables.

Click to Enlarge

Finally I put the micro SD card into the board, applied powered, and after a few seconds, I got to the Ubuntu MATE desktop. however, I only got ribberish in the serial console, which was set to 115,200 8N1, the most common settings “in the universive”. There’s currently no info about serial console setting in the Wiki, but a web search lead me to the right settings: 1,500,000 8N1, which apparently is the default in Rockchip SDK.

This high bitrate may cause troubles with some serial adapter, but after changing minicom settings accordingly, I had no trouble with the serial console. That’s the complete boot log after a reboot:

We can now login with rock64/rock64 credentials in the desktop or the serial console:

I checkout some infor about CPU, storage, memory usage, and Linux & Ubuntu versions:

I have the 1GB version of the board, and the firmware is based on the latest Ubuntu 16.04.3 LTS release with a fairly recent Linux 4.4.70 kernel. However, we can see that with just 4.8GB capacity the rootfs partition has not been automatically resized during the first boot. So let’s run the relevant script, and check again:

All good, as we now have a 14GB rootfs partition. It’s worth noting the other scripts in /usr/local/sbin too:

Modules and GPIOs on Rock64

The next step was to check pre-loaded modules and GPIOs:

Only uas and usb_storage modules are loaded, which shows people are truly focusing on the NAS part right now, or some other drivers are directly built-into the kernel. GPIOs need to be exported manually, and a quick search lead me to that forum post (again no info in the Wiki right now).

You need to convert the gpio pin name as shown in the pinout diagram (e.g. GPIO3_A5) into a raw number using a formula combining bank number (3), pad name (A) and pad number (5). marcushh777, who is also a helpful member on IRC, wrote a Python script to do just that, and you may want to create that script in /usr/local/sbin/

The file is also on Github so you could use wget or curl instead:

We can now run the script with the GPIO we want to use…

… switch to root, then use sysfs to export the gpio number and set the direction, and switch the GPIO to high and low levels:

I connected a 5V LED to GPIO3_A5 pin via a transistor and could turn it on and off with the last two commands above.

Eventually, a PDF document will be uploaded to the Wiki, but it does not appear to be ready yet. I was unable to find info to use I2C or SPI at this stage.

GPU (OpenGL ES) and VPU (Video Decoding) Testing

GPU and VPU support are often problems in Linux on ARM, and while I had low expectation, I still tried those by installing the usual OpenGL ES demo to test Mali GPU support:

I ran es2info first, and Mali-450MP GPU support is indeed enabled:

That command ended in a segfault however. Not too reassuring.

So I ran es2gears demo, but could not take a screenshot, as all screenshots were black with only the mouse pointer showing up, so instead I some photos, and it works, but the transparent window is unlikely to be normal.

Performance does not appear to be optimal right now however with just around 35 fps.
glmark2-es2 demo started well too…

Click to Enlarge

… but some features are not supported (maybe normal), and it crashed at the end as shown in full log below:

The results are actually better than I expected, but there’s still some work.

I tried to play 1080p60 H.264 Big Buck Bunny video with VideoLAN (VLC) first, and all I got was the first frame with changing artifacts around the bufferfly, and I had somewhat better luck in SMPlayer with the video playing almost smoothly in windowed mode, and some saturated and accelerated audio. Switching to full screen mode would just show a black screen, until I was asked to signing again a few seconds later…

So video playback is basically unusable at this stage in the Ubuntu MATE image, and you’d better go with Android, or potentially LibreELEC currently released as alpha for ROCK64 board.  LongChair also told me in IRC that “we have ffmpeg / mpv working on rock64 … we need to do more testing and get a few bugs fixed by rockchip before I finally upstream that to ffmpeg / mpv”, so video support is definitely coming. It’s just not ready yet. Another person informed me that contrary to Amlogic, Rockchip does not use AFBC (ARM Frame Buffer Compression) natively, and the memory bandwidth is critical, 4K H.265 HDR videos may not always play that well in RK3328. I’ve been told it may take one to two more months for 4K support in Linux, and that 1080p is now supported but not released just yet in the Ubuntu image.

Storage and Networking Benchmarks

I’ll skip the Phoronix benchmarks in this review, as we’ve had so many ARM Cortex A53 platform the results won’t be much better, unless there’s a bug, which would eventually be fixed. Instead, I’ll focus on storage and network performance on Rock64, since it may vary between boards.

Those are the results for the 16GB eMMC flash module:

Up to ~115 MB/s read speed, and ~69 MB/s write speed, and good random I/O too. For reference, Ubuntu boots in 17 seconds from power on to the login screen.

I then tried to create the iozone test on the NTFS partition of my hardware, but it failed because NTFS is read-only.

That can happen because of file system error, or because the image using the NTFS kernel module that provides read-only access only. So I installed ntfs-3g instead:

and remounted the drive inside the file manager in the desktop.

You can see the type is now “fuseblk” instead of “ntfs” – meaning the userspace ntfs-3g driver is used – , and the partition mounted as read/write.  So I could run iozone on the NTFS partition:

Something is clearly wrong with the read speed: up 271 MB/S is not right, as it’s much higher than what my USB drive is capable of (~115 MB/s) on my main PC. That means caching must be involved here, so I’ve increased the file size to 500 MB in the test:

and the results are much more realistic, except for the random read with 16384 reclen. It shows up to 119 MB/s reads, and up to 92 MB/s writes, which means everything is working as expected. So I repeated the test with the EXT-4 partition: