OpenWrt on Cubbit Cell

The Cubbit Cell is a nas / personal cloud device from a few years ago where you share part of your local storage with other users to create a distributed / redundant cloud. It was a cool idea but unfortunately did not take off and the personal / distributed cloud service has been discontinued. The hardware consists of a GlobalScale Espressobin V7 emmc board which has been stripped down to save on production costs. It has 1 gigabit ethernet port, a single USB 3.0 port, sata, mini pcie and no SD card reader. I won one in an auction on Ebay recently and here is a summary of the OpenWrt install process.

Someone else already did a teardown and images of the internals can be seen here: https://www.andreadraghetti.it/inside-the-cubbit-cell/

Disassembly

Take the 2 rubbber feet on larger side of the hexagon off and take the 2 screws out. Use a prying tool to undo the clips on the top of the housing until it is free. Then undo all the other visible screws until the board is free and can be lifted out of the housing.

Initial exploration

The board has a micro usb port which is used for serial / UART. Plug in a micro USB cable and use minicom or picocom for uart with the standard 115200 baud rate. The device runs uboot from spi chip and then boots into linux from emmc. The resulting login is password protected so it is not easy to investigate the system further. Reboot the system and interrupt uboot by quickly pressing a key. Run printenv and save the output to a text file. You will need the mac address from the uboot environment to restore later in the process. The version of uboot is a few years old and the environment is not setup for OpenWrt so the first thing to do is replace uboot with the mainline version which is available to download from the OpenWrt website.

Replacing uboot

Download the flash-image.bin file from the OpenWrt website and place it in your tftp server. In uboot setup the network for tftp: setenv serverip 192.168.1.254 and setenv ipaddr 192.168.1.1 Then run bubt which will download the flash-image.bin file from the tftp server and write it to the spi chip. Once it finishes type reset to reboot the board which will now start the new uboot. Quickly press a key to interrupt it and reset all the environment variables to defaults: env default -a -f. The original mac address can be restored as follows: setenv ethaddr F0:**:**:**:**:37 (use the mac from the original printenv!) followed by saveenv to write it to the chip. Power off the board for now.

Prepare a USB stick for the install

The emmc still contains the original Cubbit cell OS which need to be replaced with OpenWrt. The updated uboot includes multiple boot options and I decided that booting from USB was probably the easiest way to install OpenWrt. Download openwrt-25.12.4-mvebu-cortexa53-globalscale_espressobin-v7-emmc-ext4-sdcard.img.gz and unzip it. Plug your USB stick into your computer and figure out what drive it is. Then write the image to the USB stick using dd: sudo dd if=openwrt-25.12.4-mvebu-cortexa53-globalscale_espressobin-v7-emmc-ext4-sdcard.img of=/dev/sdX bs=1M where X need to be replaced with the correct letter! Once it is finished take the USB stick from your computer and plug it into the USB port of the board.

Boot OpenWrt from USB

Power on the board and quickly press a key to interrupt uboot. Type usb start and make sure the storage device is found, if not you may have to try a different USB stick. Type fstype usb 0:1 which should output ext4 and confirm that uboot recognises the partition on the USB stick. Now type setenv boot_targets usb0 to force the board to boot from the USB stick followed by boot. This will result in OpenWrt booting from the USB stick.

Install OpenWrt to emmc

The board now runs OpenWrt from USB stick and it is possible to access the luci webinterface / ssh at 192.168.1.1. Change the network settings such that you have internet access and can download and install packages (disable dhcp and set the address of the dns server). Update the apk package list and install gdisk. Use gdisk to create a new empty GUID partition table (GPT) on emmc (option 'o') and write this to disk (option 'w'). Scp / download 'openwrt-25.12.4-mvebu-cortexa53-globalscale_espressobin-v7-emmc-ext4-sdcard.img.gz' to /tmp and extract it and then write the file to emmc: dd if=/tmp/openwrt-25.12.4-mvebu-cortexa53-globalscale_espressobin-v7-emmc-ext4-sdcard.img of=/dev/mmcblk0 bs=1M. Once it finishes power off the board and remove the USB stick. Powering the board back on will boot OpenWrt from emmc.

Cleanup

The board only has a single gigabit lan port (lan1) so the 'lan0' and 'wan' ports can be deleted from the network config.

There's 2 flash-image.bin files. Which one do I choose?

There are 2 files for espressobin v7 with 1 and 2GB of ram. The Cubbit cell has 1GB ram so I used this one:

https://downloads.openwrt.org/releases/25.12.4/targets/mvebu/cortexa53/trusted-firmware-a-espressobin-v7-1gb/flash-image.bin

Lol. It should have been obvious to me that those number referenced the amount of ram. Anyways, thanks.

I’m thinking of getting one and making a portable music player/server/nas with Debian and my own kernel that supports docker/Usb dac/etc.

It is still a reasonable device if you can find one for a good price. It is silent and doesn't use much electricity which is perfect for simple tasks. If you need performance you are better off buying a more up to date SBC / raspberry pi etc.

It should be more than enough. I just need to upgrade from my armv7 device which sucks ass for certain tasks :slight_smile:

It is possible to run docker or LXC on OpenWrt but if you want to use it as a small server you are probably better of installing Armbian.

I prefer to keep NAS/Other duties separate from Openwrt. I have a OpenWrt travel router which does what I want :slight_smile: