CuBox held next to a €1 Euro coin
|OS||Linux (Ubuntu, Debian GNU/Linux, Fedora, and Arch Linux)|
|Power||3 W @ 5V/2A DC|
|CPU||Marvell Armada 510 (ARMv7)|
|Storage||Micro SD card slot|
|RAM||1 GB DDR3-800MHz|
HDMI 1.3 with CEC|
S/PDIF (optical output)
2 x USB 2.0 host ports
1 x eSATA (3Gb/sec)
IrDA (InfraRed) receiver
MicroUSB (console only)
MicroSD slot (comes with 2 GB MicroSD SDXC, upgradable to 64 GB)
|Dimensions||55 x 55 x 42 mm|
This page currently only covers the 1st gen. CuBox and not the newer CuBox-i series. Please have a look here Cubox-i.
The CuBox is a very small, fan-less nettop-class computer manufactured by the Israeli company SolidRun Ltd. It is cube-shaped at only approximately 2 × 2 × 2 inches and weighs 91 grams (0.2 lb, or 3.2 oz). CuBox is the first commercially available desktop computer based on the Marvell Technology Group's Armada 500-series SoC (System-on-Chip), and said to currently be the worlds smallest complete desktop computer.
It was announced in December 2011 and began shipping in January 2012, initially being marketed as a cheap open source developer platform for embedded systems, so just like the Raspberry Pi it is not designed for end-user but rather for developers looking to improve their experience with embedded systems.
CuBox is a low-power ARM architecture CPU based computer, using the Marvell Armada 510 (88AP510) SoC with an ARM v6/v7-compliant superscalar processor core, Vivante GC600 OpenGL 3.0 and OpenGL ES 2.0 capable 2D/3D graphics processing unit, Marvell vMeta HD Video Decoder hardware engine capable of 1080p video decoding, and TrustZone (Security Extensions) Cryptographic Engines and Security Accelerator (CESA) co-processor.
Despite being just about 2-inch-square device size, the platform can stream and decode 1080p content, use desktop class interfaces such as KDE or GNOME under Linux, all in less than 3 Watt and less than 1 Watt in standby.
Solid-Run currently officially only supports Linux kernel 2.6.x and later versions, and it initially came with an Ubuntu Linux 10.04 image pre-installed.
2 XBMC for Linux on CuBox
XBMC have an initial unofficial port for Linux on the CuBox with hardware accelerated video decoding using GStreamer, this experimental port was made by Solid-Run developer abeeh (Rabeeh Khoury) in his fork that can be found on GitHub.com but the code patches for the original CuuBux have not yet been submitted by Solid-Run to upstream XBMC for mainline inclusion.
2.1 Installing pre-compiled XBMC on CuBox
2.2 Compiling XBMC for CuBox
2.3 Xilka Linux Distribution on CuBox
3 CuBox Hardware Specifications
For a more detailed hardware specification please see the CuBox hardware specification on the Solid-Run wiki.
4 Stuff left to do by capable developers on the XBMC for CuBox
TODO list for any capable C++ developers willing to help develop XBMC for the CuBox and submit any finished patches upstream to XBMC:
- Get the CuBox integrated CEC (Consumer Electronics Control) over HDMI to work with the libcec and thus also work with XBMC, see http://www.solid-run.com/phpbb/viewtopic.php?f=12&t=514 and http://www.solid-run.com/mw/index.php/CEC_%28Consumer_Electronics_Control%29_over_HDMI
- Build XBMC on ARM HardFB (Hard Floating Point), a.k.a. armhfp for the CuBox's SoC VFPv3 - Vector Floating Point (VFP) v3 engine, on top of a Linux distribution with hard float support, for more information see http://www.madeo.co.uk/?p=851
- Add better reset implementation instead of flushing by seeking, look at the GStreamer and EGL patches created by Rob Clark in this XBMC fork on GitHub => https://github.com/robclark/xbmc/tree/gstreamer-eglimg
- Add delay for pipeline gstreamer creation and wait for paused state. The reason is that there is always hickups when video starts to play since XBMC starts sending frames for decoding, but gstreamer pipe still not ready.
- Fix proper pipe closing. There seems to be missing 30 frames at the end of every playback. The reason is that gstreamer is done on decoding but video renderer is still showing those decoded frames.
- Change ffmpegcolorspace in gstreamer to output either YUV420, UYVU and other supported dove-overlay video layer color formats (I420 is YUV420 but with swapped color space etc...)
- DVDVideoCodecGStreamer has lots of cleanup to do. Internally it has lots of printfs that needs to be removed.
- MathUtils doesn't build correctly with the native ARM code already in XBMC (probably scratchbox toolchain issue). Notice that sometimes when launching XBMC we get some assert on MathUtils, unclear if it's related or not.
- Ugly hack to make XBMC build. Somehow although we don't build LinuxRendererGLES.cpp that header file still being used. For now it's a hack, should be removed in the future.
- Second hack is that Status typedef is missing when building WinEventsSDL which leads to build error on XKBlib.h
- Hack to disable eglCreateContext that Dove GL driver doesn't like. Needs to be sorted out
- Added --with-iwmmxt to fmmpeg configure, but disabled meanwhile since the used processor for build (cortex-a9) doesn't support that. Needs to be fixed in the future (will add performance by using Dove vector operations when codec not supported by video engine and CPU decoding is required).
- Implement the GPU backoff algorithm when playing a video. Since the video is rendering directly via a video overlay, no need for tens of fps for GPU in that time since it might only be used for subtitles. Instead of running tens of fps, lower the fps of the gpu and thus keep more DDR bandwidth for the video engine so higher bitrate content can be played.
- Add auto video out resolution select mode. On the GUI go for 720p since the graphics is best (images are 720p optimized and fps is faster - more smooth). When playing back switch to either 1080p or to the native resolution of the content with it's corresponding refresh rate.
- Assert failures at the beginning when running XBMC. Similar to the item mentioned in XBMC forums here => http://forum.xbmc.org/showthread.php?t=81122
- asound.conf is not good enough. there are some noises in 44.1KHz and others.
- Disable Xorg screen blanking when playing a movie.
- Implement Marvell vMeta hardware engine JPEG (and other image formats) decoding, as done by the XBMC for iOS port, this should increase the GUI speed/smoothness and image caching/thumbnailing immensely. Contact XBMC team developers TheUni, Davilla, and Memphiz about how this is done in XBMC for iOS port.
- Check to if Rob Clark has any other relevant GStreamer, EGL, ARM, etc. patches in this XBMC fork on GitHub => https://github.com/robclark/xbmc/tree/gstreamer-eglimg
- Possible try to make XBMC run with DoveFB X.Org and FBDev DirectFB 2D / 3D graphics engine drivers|DirectFB using DoveFB support, to run XBMC without X, (as currently XBMC requires X since it runs over EGL with X backend). This depends on latest DirectFB/Mesa, so have to run newer Ubuntu, for more information see https://github.com/xbmc/xbmc/pull/454
- When playing in 1080p, LCD refreshes the graphics overlay by 1920x1080x60hzx32bpp = ~500MB/sec. While playing the graphics overlay is either 100% transparent, or there are subtitles in the bottom of the screen. Implement a hardware mechanism that checks graphics overlay every one second; and by partitioning it and crc32 (by hardware engine) each part adjust the starting and ending point of the graphics overlay. This should drastically lower the LCD graphics overlay refresh.
- Look into gimli's native VMeta decoder implementation in his reworked marvell-dove tree to use as an alternative to GStreamer => https://github.com/huceke/xbmc/commits/marvell-dove
- Utilize CESA co-processor cryptographic engine (TrustZone on CuBox) for hardware acceleration encryption / decryption crypto and ciphers calculations tasks such as SSL, SCP, SSH, AES, DES, 3DES, SHA-1, MD5, hashes, dm-crypt, luks, etc. (such as OpenSSL and OpenSSH via CryptoDev to offload cryptographic tasks from CPU and therefore every dependency module that XBMC utilizes which support CryptoDev) => http://www.solid-run.com/phpbb/viewtopic.php?f=9&t=634
5 See also
- CEC (Consumer Electronics Control) over HDMI for CuBox developing
- Tvheadend on CuBox - Tvheadend TV Server for CuBox compatible with XBMC
- ↑ http://www.geek.com/articles/chips/cubox-is-a-sexy-ice-cube-sized-arm-computer-20111221/ CuBox is a sexy, ice cube-sized ARM computer
- ↑ http://www.crazyengineers.com/cubox-ice-cube-sized-arm-computer-1465/ CuBox – Ice Cube Sized ARM Computer
- ↑ http://coburndomain.org/index.php/2011/12/move-raspberry-pi-cubox-enters-fray-1gb-ddr3-ram-dualcore-cpu-hdmi-gbit-lan-cubed-box/ Move over Raspberry Pi: CuBox enters the fray with 1GB DDR3 RAM, dualcore CPU, HDMI, GBit LAN… all inside a cubed box
- ↑ http://www.omgubuntu.co.uk/2011/12/meet-cubox-a-tiny-arm-powered-media-centre-capable-of-running-ubuntu/ Meet CuBox – A Tiny ARM Powered Media Centre Capable of Running Ubuntu
- ↑ http://www.linuxfordevices.com/c/a/News/Marvell-Armada-100-500-600-and-1000/ Marvell expands range of ARM SoCs
- ↑ http://www.youtube.com/watch?v=twEoMYEJls4 XBMC on SolidRun Platform named CuBox