Posted on

Installing Ubuntu Server 14.04 on the ARM Allwinner A80 Optimusboard or pcDuino8 Arches

Previously in this series, we investigated building and running a minimal linux server on the Allwinner A80 Optimusboard.  While that was a great exercise in learning about the A80 and its SDK, the output of that work was not all that useful.  Additionally, we were still missing major hardware components such as ethernet, wi-fi, and NAND.  More recently, the pcDuino team released both a Fedora and a Lubuntu beta image for the pcDuino8 board (recently renamed Arches).  Their Lubuntu build is made up of two pieces: a kernel image and a rootfs image.  The kernel image is 3.4.39, and it simply boots the board and then points over to the rootfs.  However, they utilized an older Lubuntu 12.10 image, which also inherently provides the LXDE desktop, neither of which is optimal when looking to deploy a server.

To build an ideal microserver, we really needed a bare minimum Ubuntu LTS system.  Thus, we kept the 3.4.39 kernel they provided, but we swapped in a freshly built Ubuntu 14.04 LTS file system created by mk-sbuild.  There is no window manager, no video acceleration, and no packages above and beyond what is needed to bring up the system.  It is up to the user to install whatever software they want, whether that is a LAMP stack, nodejs, ruby, FTP, DNS, Gnome, VNC, etc, etc.

Here is how to make use of this image:

First and foremost, you’ll need to download 3 files that we are going to use.  One file will be used by LiveSuit, and the other 2 files we are going to place on a microSD card.  Here are our downloads:

After they are finished downloading, we need to uncompress the ubuntu-trusty-arm-mininodes-20141227.img.gz image file.

gzip -d ubuntu-trusty-arm-mininodes-20141227.img.gz

Next, copy update.sh and ubuntu-trusty-arm-mininodes-20141227.img to a microSD card and then set it aside, we’re going to need it later in the process.

Now, we are ready to start.  First, load LiveSuit and select the kernel file so that it is ready to format / flash when the board is powered up.

install-ubuntu-on-allwinner-a80-optimusboard-1

Next, we need to connect the serial cable to the Optimusboard, open up a screen session (or use Putty if on Windows), and apply power.  Quickly press any key to interrupt its boot process and drop to the u-boot shell.  Type ‘efex’ (without the quotes) and press Enter.

install-ubuntu-on-allwinner-a80-optimusboard-2

LiveSuit will now find the board, and flash the kernel to the NAND (/dev/nanda to be exact).  It only takes a moment, because we are simply flashing the kernel at this point.

install-ubuntu-on-allwinner-a80-optimusboard-3

Once finished, the Optimusboard will reboot itself, and attempt to boot, but it fail with an error of “No valid rootfs found”.  Now it is time for the micro SD card.

install-ubuntu-on-allwinner-a80-optimusboard-4

Place the micro SD card in the slot, and the board will recognize that it contains an update.sh file.  It will immediately begin copying the contents of ubuntu-trusty-arm-mininodes-20141227.img to the NAND (/dev/nandd).

install-ubuntu-on-allwinner-a80-optimusboard-5

After approximately 5 minutes it will finish copying the data, and we can safely remove the SD card.

install-ubuntu-on-allwinner-a80-optimusboard-6

Once it’s removed, press the Reset button on the Optimusboard, and we should now boot up cleanly, and after a moment arrive at an Ubuntu login prompt.  The default username / password combo is ubuntu / ubuntu.

The build script only gets us to a minimal working state, so, let’s finish bringing the system all the way up and prepare it for use.  First, lets expand the filesystem to use all of the available space on the NAND (roughly 8gb):

resize2fs /dev/nandd

Then to verify the results:

df -h

Obviously we’ll want to change the passwords, for security purposes:

passwd

su root

passwd

Finally, lets bring up the ethernet port and grab a DHCP ip address, so we can access the internet.

ifconfig eth0 up

dhclient eth0

If all goes according to plan, you should now have a minimal Ubuntu 14.04 LTS ARMv7 install running on your Allwinner A80 Optimusboard! From here, you can customize the system to best suit your needs!

Posted on

Hosted Raspberry Pi Servers Now Available on miniNodes.com

miniNodes is proud to announce it is the first provider in North America to offer hosted Raspberry Pi servers.  Although they are small in size, Raspberry Pi Model B+ servers are able to perform many of the same functions and roles larger servers typically fulfill.  Raspberry Pi servers can host websites, email, databases, and DNS, can be used for learning programming languages like Python, Ruby, NodeJS, Bash scripting, and Linux administration, and can even be used as Minecraft servers.

Our hosted Raspberry Pi servers come in either 16gb or 32gb sizes, combined of course with the Pi’s ARM Cortex processor and 512mb of RAM.  Each node has a static IP Address, and SSH access.

For more details or to order, see https://www.mininodes.com/product/raspberry-pi-mininode/

 

Posted on

HOW-TO: Install MySQL on the Ubuntu Arm Server

Installing MySQL Server on the Ubuntu 18.04 LTS Arm Server is very simple! Follow these quick steps to get MySQL up and running, ready for your databases!

1. Connect to your server via SSH.
2. Login with your username and password.
3. Run the following command:

sudo apt-get install mysql-server

4. Follow the prompts to install MySQL (enter Y for ‘Yes’ where necessary).
5. You will be prompted to set a password for MySQL.
6. After it has completed, you can verify that MySQL is installed by running these commands:

To verify that MySQL is running:

service --status-all

To check the version of MySQL installed:

apt-cache show mysql-server | grep version

Congratulations, you are now running MySQL Server and are ready to start creating or importing your databases on your Arm server!

Posted on

Arm Server Solutions: Using Microservers for Your IT Workload

 

The challenges faced by IT departments are unique. IT is typically viewed as a cost center, has low visibility and few tangible products, and yet plays a critical role in today’s business environment. As IT departments routinely have to operate on minimal budgets and with scarce resources, maximizing the return on investment and making the most of every computing dollar (and CPU cycle) is critical.

 

Customization

One way that IT departments can cut costs on their cloud and hosted server spending is by switching to microservers. Microservers are an emerging technology, based on the premise that today’s IT workloads are different from those of the past. More transactional computing is taking place, and an emphasis is placed on horizontal scalability and data replication instead of single node performance. Additionally, segmentation of workloads by specific use cases can make better use of resources in a customized microserver environment, as opposed to generic one-size-fits-all general purpose servers.

Arm servers and micro server platforms can be optimized for delivering IT services such as:

Networking – Routing and transport, packet shaping / forwarding, firewalls.
Databases – MySQL, PostgreSQL, and NoSQL databases such as mongoDB, Redis, and Cassandra
Web ServersApache, nginx
Caching – CDN servers and caching dynamic content in flat format at the edge to alleviate workload on backend servers.
Load Balancers – Dedicated nodes to prioritize and intelligently allocate requests to servers.
Reporting – Logging, analysis, business intelligence, and reporting services.
Big Data – Transactional and batch processing of data for machine learning or Hadoop.
Communications and APIs – Standard services like email and IM, emerging communication technologies like RabbitMQ, and API feeds back to other services and devices.

In the past, all of these services would have to be delivered by a single type of commodity server, which generally could not be effectively optimized for each different workload. This resulted in overspending and wasted resources. Arm servers and their software stack can easily be tailored to each independent workload, ensuring the most efficient delivery of these common IT services.

 

Efficiency

Let’s look closer at the efficiency and advantages offered by ARM microservers:

Flexibility – As already mentioned, ARM servers are flexible in their hardware platform design, varying from single-core units with 256mb of RAM and 100mb ethernet all the way to 48-core designs with 40gbE uplinks.

Size – As the name implies, micro servers are small. Some are the size of a credit card, others range up the size of a phonebook. Either way, they are much smaller than the traditional 1U, 2U, and 4U rackmount chassis.

Power Consumption – Here again, the numbers can vary, but they range from 2 to 3 watts up to about 40 watts in the more powerful configurations. However, this is on the order of 20x more efficient than a traditional server which incorporates a 500 to 1000 watt power supply.

Cost – Prices can vary of course, but micro servers can cost anywhere from $50, to a few hundred dollars, up to $3,000 depending again on the configuration and capability. A standard server can cost anywhere from $500 to $10,000, so an ARM server could be 10x to 20x more cost effective as well.

Scalability – This is another area where ARM servers excel. Traditionally, as more compute power was needed, a faster processor and more memory was the answer. As the upper end of the processing power spectrum is reached, costs grow exponentially. Small, marginal gains in processor speed incur a steep increase in cost. To demonstrate this concept, here is a current price list for Intel Core i7 processors, illustrating this phenomenon.

Core i7-4790S – $303
3.2GHz / 4 cores

Core i7-4930K – $583
3.4GHz / 6 cores

Core i7-4960X – $999
3.6GHz / 6 cores

Source: http://www.cpu-world.com/Price_Compare/Desktop_CPU_prices_(latest).html

In the example above, a marginal improvement from 3.4ghz to 3.6ghz nearly doubles the cost of the processor, but does not effectively double the performance or compute capacity. The same effect is observed in the price of memory, where cost vs. capacity follows a similar exponential curve. A superior method of addressing capacity issues is thus to scale horizontally and add additional nodes to handle increased workload, and balance the computational requests across the newly formed cluster of servers. This is the premise that Hadoop and mongoDB are founded upon, as well as many other emerging technologies like Cassandra, Varnish caching, and Docker.

 

Developing a New Ecosystem

While there are clearly significant advantages, microserver and ARM servers have a bit more maturing to do in the marketplace and ecosystem before they can capture sizable market share. The ecosystem can be defined as follows, per the supply chain:

Chip vendors, such as AMD, Allwinner, Freescale, Qualcomm, Samsung, MediaTek, Rockchip, etc. who produce CPU’s based on ARM cores and IP. Currently, the bulk of chips produced are 32-bit processors, whereas business and micro servers will need 64-bit support. ARM has A53 and A57 64-bit cores sampling and in early adopter products, but volume production of these cores and processors needs to ramp up.

Hardware integrators like HardKernel, Wandboard, Olimex, pcDuino, CubieTech, Radxa, Advantech, and others need to integrate those 64-bit cores into custom PCB designs.

Software and Operating Systems needs to mature and fully support 64-bit ARMv8 processors. Ubuntu and Fedora are already there, but RedHat, CentOS, and CoreOS have work to do still.

Datacenters that host next generation microserver and hosted ARM servers need to come online and provide capacity for mass deployment of nodes to build both public and private clouds.

These ecosystem components will take time to build out and scale. These initiatives need to be well planned, repeatable, and cost effective to ensure that ARM servers can gain a foothold in the marketplace, and then build momentum from there based on competitive advantages and disruptive forces. These components won’t appear overnight, but it won’t be long until the microserver takes significant market share aware from traditional, generic servers.

Posted on

What is a Micro Server?

Microservers like the ARM Servers offered by miniNodes.com are a new product in the hosting industry, directly resulting from the dramatic performance gains in low-power cellphone processor technology made over the past few years.  Essentially, micro servers are a mash-up of a smartphone’s CPU and flash memory, combined with a computer’s ethernet, video, and USB ports.  The micro servers used  by miniNodes.com are roughly the size of a smartphone, or a wallet.  In comparison, the smallest standard server, a 1U rack-mount unit, is roughly the size of a few laptops laid out next to each other.

Microservers can be based on Intel Atom or AMD low-power x86 CPUs, but typically are based on ARM processors due to their origins in cell phones (and thus, battery power).  ARM CPU’s were designed to operate at low wattage, conserve battery power, and focus on efficiency.  These traits allow micro servers to also operate at extremely low wattage, typically in the 5 to 10 watt range.  A traditional 1U server operates at about 400 to 500 watts on average.

Along with the reduced size and reduced power requirements, come reduced costs.  ARM servers are only a fraction of the price of a normal server, allowing IT departments to cut their cloud and hosted server spending while still performing their same tasks.  ARM servers can run Fedora, Ubuntu, or arkOS Linux operating systems, with support for CentOS Linux coming soon.

Posted on

Running Linux on the Allwinner A80 Optimusboard ARM Server (Part 2)

Previously, we discussed how to build Linux for the new Allwinner A80 Optimusboard ARM Microserver using the SDK.  Now, let’s go through the process of installing it to the board and getting Linux actually up and running.

We’ll pick up where we left off previously, with the build process having just completed.

Next, we are going to create an image that can be flashed via LiveSuit.  LiveSuit is going to need a rootfs.ext4 file as input for the process, and it will be looking in the A80/lichee/out/sun9iw1p1/dragonboard/common directory.  This file should have been created automatically during the build process.  After verifying it exists, we can run our ‘pack’ command.

./build.sh pack

If successful, you will get an output file of sun9iw1p1_dragonboard_optimus.img in the A80/lichee/tools/pack directory.  This is the file we will use in LiveSuit to push Linux to the Optimusboard.  Load LiveSuit from its directory via:

$./LiveSuit.sh

We need to choose the file to flash, so we navigate to the proper location and select our sun9iw1p1_dragonboard_optimus.img file.

The A80 Optimusboard does not have a dedicated FEL button on it like some other devices, so, to get the board ready for the flash we have to attach a Serial cable and manually intervene with it’s boot process.  We hook up the cable to the UART port, use the ‘screen’ command to capture the input and output, and plug it in to a USB port.  While the board initializes, we press any key on the keyboard to interrupt the autoboot and are presented with a command prompt.  The ‘efex’ command will launch FEL mode for us.

efex

The board will switch to FEL mode, and LiveSuit will automatically recognize that it is now ready to flash the image to the NAND.  It will take a couple of minutes to complete, and once done, we should now have Linux installed.  Leaving the console cable attached, we reboot the board, and we can now see that it boots up and has a Linux filesystem installed and running.  Keep in mind, its pretty minimal at this point, as we have not built a robust, feature rich environment like Ubuntu, Fedora, or other Linux distributions.  But this is a good base to build upon as we continue further development and leverage ARM processors for use as microservers.

linux-optimusboard

 

linux-optimusboard-1

 

linux-optimusboard-2

 

Posted on

How to Build Linux for the Allwinner A80 Optimusboard

With the recent leak of an SDK for the Allwinner A80 ARM processor, it is now possible to build Linux for the Optimusboard.  However, the SDK does not appear to be a final build, and has quite a few bugs that have to be squashed before the build will successfully complete.  Here are the steps required to get the Linux build to finish:

First, we have to download and extract the SDK from the Linux-Sunxi website:  http://dl.linux-sunxi.org/SDK/A80/A80_SDK_20140728_lichee.tar.gz

tar -xvf A80_SDK_20140728.tar.gz
cd lichee
./build.sh config

I have selected the following options:

@ubuntu:~/A80/lichee$ ./build.sh config
Welcome to mkscript setup progress
All available chips:
0. sun9iw1p1
Choice: 0
All available platforms:
0. android
1. dragonboard
2. linux
Choice: 2
All available kernel:
0. linux-3.4
Choice: 0
All available boards:
0. optimus
1. p1
2. perf
3. perf5
4. perf-lpddr3
Choice: 0

gedit lichee/buildroot/toolchain/toolchain-external/ext-tool.mk

In the last section, where the external toolchains are defined, update Line 127 to read:
TOOLCHAIN_EXTERNAL_SITE=http://www.mininodes.com/

./build.sh
gedit /lichee/out/sun9iw1p1/linux/common/buildroot/build/host-m4-1.4.15/lib/stdio.h

Edit Line 456, and change ‘gets’ to ‘fgets’

./build.sh

Download http://www.mininodes.com/fuse-exfat-0.9.5.tar.gz

tar -xvf fuse-exfat-0.9.5.tar.gz

Copy the contents to /lichee/out/sun9iw1p1/linux/common/buildroot/build/fuse-exfat-0.9.5

./build.sh
gedit /lichee/out/sun9iw1p1/linux/common/buildroot/.config

Edit Line 72, to point to miniNodes.com.
BR2_BACKUP_SITE=”http://www.mininodes.com/

./build.sh

Download http://www.mininodes.com/rzsz-3.48.tar.gz, and then copy it to /lichee/buildroot/dl/

./build.sh

The build should now complete successfully. Next time, we will discuss getting the newly built Linux written to an SD Card and boot up the Optimusboard straight to Linux!

Credit for many of the packages that we needed to self-host go to Qubir, who had the exact versions we needed for an A20 board he had hosted on https://github.com/qubir/phoenixA20_buildroot_sourcecode/tree/master/dl

Posted on

Ubuntu Server 14.04 LTS Now Available on miniNodes.com

miniNodes.com is proud to announce that it is the first hosting solutions provider to offer a leased Ubuntu 14.04 LTS ARM Server. By making available Ubuntu Core 14.04 LTS Linux running on Allwinner Technologies’ ARM processors, miniNodes.com is continuing to innovate and expand the market for ARM in the server industry.

Ubuntu 14.04 is the latest version of Ubuntu, and its 5 years of Long Term Support make it a popular choice for IT administrators looking for security and stability. Ubuntu is an innovative operating system that focuses on cloud and OpenStack deployment, has expansive documentation, a large and engaged community of supporters, and a consistent update schedule.

ARM processors offer notable advantages over traditional platforms, such as superior energy efficiency and lower cost of purchase and operations. Additionally, ARM processors power the vast majority of tablets and smartphones around the world. Expanding to the datacenter creates synergies and shared components that ease software development for the cloud.

With this product release, miniNodes has added to it’s lead in the hosted ARM Server industry. The hosted Ubuntu ARM Server is unique in the marketplace, and demonstrates miniNodes.com’s commitment and leadership to the microserver, ARM Server, and low-power cloud computing ecosystem.

More information on Ubuntu can be located on their website, http://www.ubuntu.com

More information on ARM Holdings can be located on their website, http://www.arm.com

More information on Allwinner Technology Co. can be located on their website, http://www.allwinnertech.com

Posted on

Allwinner A80 Optimus Board Arrives for Testing!

The Allwinner A80 Optimus Board has arrived, and we are currently evaluating its ability to perform as an ARM microserver!

It just got here, and the first thing we noticed right away, is that it is FAST!

I’ll keep the blog updated as we make progress getting Linux running on it, and then getting a good software stack in place.

Here is what we have so far:

Allwinner A80 Optimus Board
Allwinner A80 Optimus Board Android
Allwinner A80 Optimus Board Android

 

 

 

 

 

 

 

 

Stay up to date on our Google+ page, as well!

Posted on

HOW-TO: Install Node.js on the miniNode ARM Server (Fedora)

Installing Node.js on a Fedora 20 miniNode ARM dedicated server is extremely simple!

To get Node.js installed, you have two choices.  Either install it via the ‘yum’ package manager, or, by checking out the code directly from git.  Either method will work great.

Option 1, via ‘yum’:

1.  SSH to your miniNode, and become root.

su -

2.  Install Node.js via the ‘yum’ command.

yum install nodejs npm

Option 2, via git:

1.  SSH to your miniNode, and become root.

su -

2.  Install git.

yum install git

3.  Check out Node.js from the repository, and then build it.

git clone https://github.com/joyent/node.git
cd node
git checkout v0.10.28 #Try checking nodejs.org for what the stable version is
./configure && make && sudo make install

Finally, use Node.js to build cool applications!