CuBox-i & HummingBoard


Solid-Run's CuBox-i is the second generation family of mini computers, based on the scalable Freescale i.MX6 family of system-on-chip (SoC) ranging from a single to quad Cortex-A9 processor cores, 2D/3D hardware graphics processing unit, video decoding and encoding acceleration hardware, HDMI 1080p 3D broad range of peripherals.

  1. Freescale i.MX6 Solo/Dual/Quad
  2. 512MB/1GB/2GB DDR3
  3. MicroSD connection
  4. 10/100/1000Mbps Ethernet Connector
  5. Standard micro USB connector 5V as a DC power
  6. Powered 2xUSB 2.0 host ports (option with eSata port)
  7. HDMI connector
  8. Analog audio out (PWM based), Coax SPDIF out for digital audio, Infra red receiver, LEDs
  9. 26 pin header compatible with the Raspberry pi header, 8 pin header for FlexCAN, system reset and 5V / GND pins, 8 pin header for FlexCAN, system reset and 5V / GND pins

Please refer to CuBox-i Wiki for product feature comparison.

MuBox on CuBox-i

Some features in MuBox is tuned for CuBox-i:

  1. Using 3.14.0 vanilla kernel; or
  2. Using 3.14.10-rt7 realtime kernel (new!); or
  3. Using 3.0.35+ full feature kernel from SolidRun


Please note that we only tests MuBox on CuBox-i1 and CuBox-i4Pro.


1. You need a Linux machine (could be x86, ARM based or any architecture)
2. a uSD card and a compatible card reader

uSD card creation by script

Download the installation script to your Linux machine, insert uSD card to card reader attached to your Linux machine, login as root, and run

# ./ /dev/sdX

where /dev/sdX is your SD card device. If you are unsure, type "cat /proc/partitions" to list all available disk devices and partitions. The script will format your card, download and install rootfs, install kernel and bootloader, etc.

For 3.14.x realtime kernel, please download script, and run the below command. Be sure to read this realtime kernel tuning page!

# ./ /dev/sdX

For 3.0.35+ full feature kernel, download script, and run:

# ./ /dev/sdX

After the installation completes, eject the card, re-insert the card to CuBox-i and power-up the board. Be sure to read our getting started guide in cookbook section if you use MuBox for the first time!

uSD card creation manually

If you feel uncomfortable to the above script, you can create the SD card manually. At first, you need to create the partition on a SD card. Replace sdX in the following instructions with the device name for the SD cards. The following step will install MuBox with 3.14.x kernel.

  1. Login as root
  2. Start fdisk to partition the SD card:
    fdisk -u /dev/sdX
  3. At fdisk prompt:
    1. Type o. This will clear out any partitions on the drive.
    2. Type n to create new partition, then p for primary, 1 for the first partition on the drive, press 2048 for first sector, then press ENTER to accept default last sector.
    3. Write the partition table and exit by typing w.
  4. Create ext4 filesystem, set no mount checking, assign volume label and disable journal.
    mkfs.ext4 /dev/sdX1
    tune2fs -i 0 -c 0 /dev/sdX1 -L voyage-mubox -O ^has_journal
  5. Download and extract root file system on-the-fly:
    mkdir /tmp/cf
    mount /dev/sdX1 /tmp/cf
    curl | tar --numeric-owner -Jxf - -C /tmp/cf
  6. Download and install kernel and modules:
    curl | tar --numeric-owner -Jxf - -C /tmp/cf
  7. Then, download and install bootloader:
    curl | tar --numeric-owner -Jxf - -C /tmp/cf/boot
    dd if=/tmp/cf/boot/SPL of=/dev/sdX bs=512 seek=2
    dd if=/tmp/cf/boot/u-boot.img of=/dev/sdX bs=1K seek=42
  8. Finally, run the following to change serial ports and various settings:
    sed -i -e "s/ttyS0/ttymxc0/" /tmp/cf/etc/inittab
    sed -i -e "/^options.*snd-usb-audio/s/^/#/" /tmp/cf/etc/modprobe.d/alsa-base.conf
    ln -sf boot/zImage /tmp/cf/zImage
    ln -sf boot/uEnv.txt /tmp/cf/uEnv.txt
    umount /tmp/cf
  9. Done. Eject the card from the reader and insert it to uSD slot in CuBox-i. Power on to boot from uSD!