Archive

Posts Tagged ‘docker’

Fedora 26 Supports Single “Unified” OS Images for Multiple ARM Platforms

August 14th, 2017 29 comments

The decision to use device tree in Linux occurred several years ago, after Linus Torvalds complained that Linux on ARM was a mess, with the ultimate goal of providing a unified ARM kernel for all hardware. Most machine specific board files in arch/arm/mach-xxx/ are now gone from the Linux kernel, being replaced by device tree files, and in many case you simply need to replace the DTB (Device Tree Binary) file from an operating system to run on different hardware platforms. However, this is not always that easy as U-boot still often differ between boards / devices, so it’s quite frequent to distribute different firmware / OS images per board. Fedora has taken another approach, as the developers are instead distributing a single Fedora 26 OS ARMv7 image, together with an installation script.

Images for 64-bit ARM (Aarch64) are a little different since they are designed for SBSA compliant servers, so a single image will work on any server leveraging UEFI / ACPI implementation on the hardware. So what follows is specific to ARMv7 hard-float images as explained in the Wiki.

You’ll need to install Fedora Arm installer after downloading one of the Fedora 26 images. This requires an Fedora machine, and since I’m running Ubuntu 16.04, and don’t want to setup a Fedora virtual machine in Virtualbox, I used docker instead right inside Ubuntu as it’s much faster to do:

The last line requires some explanation. /media/hdd is the mount point of the storage device on the host where I download the Fedora image and that will be accessible through /mnt in docker, /dev/sdd is my micro SD card device, while /dev/sdd3 will be the rootfs partition.Note that it took me a while to get that right, and I’m not sure it works for all targets (other other /dev/sddx are also needed), so using an actual Fedora 26 installation would be easier. The rest of the instructions below are not specific to docker.

I could then install the Fedora ARM Installer and the required xz & file packages…

…and check the usage:

Let’s see how many boards are supported in /usr/share/doc/fedora-arm-installer/SUPPORTED-BOARDS file:

AllWinner Devices:
A10-OLinuXino-Lime A10s-OLinuXino-M A13-OLinuXino A13-OLinuXinoM
A20-OLinuXino-Lime A20-OLinuXino-Lime2 A20-OLinuXino_MICRO
A20-Olimex-SOM-EVB Ampe_A76 Auxtek-T003 Auxtek-T004 Bananapi Bananapro CHIP
CSQ_CS908 Chuwi_V7_CW0825 Colombus Cubieboard Cubieboard2 Cubietruck
Cubietruck_plus Hummingbird_A31 Hyundai_A7HD Itead_Ibox_A20 Lamobo_R1
Linksprite_pcDuino Linksprite_pcDuino3 Linksprite_pcDuino3_Nano MK808C
MSI_Primo73 MSI_Primo81 Marsboard_A10 Mele_A1000 Mele_A1000G_quad Mele_I7
Mele_M3 Mele_M5 Mele_M9 Mini-X Orangepi Orangepi_mini Sinlinx_SinA31s
UTOO_P66 Wexler_TAB7200 Wits_Pro_A20_DKT Yones_Toptech_BS1078_V2 ba10_tv_box
colorfly_e708_q1 difrnce_dit4350 dserve_dsrv9703c i12-tvbox iNet_86VS
icnova-a20-swac inet86dz jesurun_q5 mk802 mk802_a10s mk802ii orangepi_2
orangepi_lite orangepi_pc orangepi_plus polaroid_mid2809pxe04
pov_protab2_ips9 q8_a13_tablet q8_a23_tablet_800x480 q8_a33_tablet_1024x600
q8_a33_tablet_800x480 r7-tv-dongle sunxi_Gemei_G9

MX6 Devices:
cm_fx6 mx6cuboxi novena riotboard wandboard

OMAP Devices:
am335x_boneblack am57xx_evm kc1 omap3_beagle omap4_panda omap5_uevm

MVEBU Devices:
clearfog

ST Devices:
stih410-b2260

Other Devices:
jetson-tk1 rpi2 rpi3 trimslice

So we’ve got a list of device to choose from. For example, if you wanted to install Fedora 26 server in a micro SD card for Raspberry Pi 3, you’d run something like:

You’ll then be ask to confirm:

The full process will take several minutes, and at the end you’ll get “_/” rootfs partition, “_/boot ” partition, and a “30 MB volume” with u-boot, config,etc…


I did not try the micro SD card in Raspberry Pi 3 board myself, because Geek Till It Hertz has already done it successfully on both RPi 3 and Banana Pi boards as shown in the video below.

He also showed the boards run Linux 4.11.8 version, but that can be upgraded with dnf update to Linux 4.11.11, just as on his Fedora 26 installation on a x86-64  computer.

Hardkernel to Launch Stackable $49 ODROID-HC1 Home Cloud & $200 ODROID-MC1 Cluster Solutions

August 10th, 2017 54 comments

Hardkernel ODROID-XU4 board is a powerful – yet inexpensive – ARM board based on Exynos 5422 octa-core processor that comes with 2GB RAM, Gigabit Ethernet, and a USB 3.0 interface which makes it suitable for networked storage applications. But the company found out that many of their users had troubles because of bad USB cables, and/or poorly designed & badly supported USB to SATA bridge chipsets. So they started to work on a new board called ODROID-HC1 (HC = Home Cloud) based on ODROID-XU4 design to provide a solution that’s both easier to ease and cheaper, and also includes a metal case and space for 2.5″ drives.

Click to Enlarge

They basically remove all unneeded features from ODROID-XU4 such as HDMI, eMMC connector, USB 3.0 hub, power button, slide switch, etc… The specifications for ODROID-HC1 kit with ODROID-XU4S board should look like:

  • SoC – Samsung Exynos 5422 quad core ARM Cortex-A15 @ 2.0GHz quad core ARM Cortex-A7 @ 1.4GHz with Mali-T628 MP6 GPU supporting OpenGL ES 3.0 / 2.0 / 1.1 and OpenCL 1.1 Full profile
  • System Memory – 2GB LPDDR3 RAM PoP
  • Storage – Micro SD slot up to 64GB + SATA interface via JMicron JMS578 USB 3.0 to SATA bridge chipset
  • Network Connectivity – 10/100/1000Mbps Ethernet (via USB 3.0)
  • USB – 1x USB 2.0 port
  • Debugging – Serial console header
  • Power Supply
    • 5V via power barrel
    • 12V unpopulated header for future 3.5″ designs [Update: ODROID-HC2 is in the works, to be released in November 2017]
    • “Backup” header for battery for RTC
  • Dimensions & weight – TBD

Exynos 5422 SoC comes with two USB 3.0 interfaces and one USB 2.0 interface, and since USB 3.0 interfaces are used for Ethernet and SATA, that’s why they only exposed a USB 2.0 port externally. The metal frame supports 2.5″ SATA HDD or HDD up to 15 mm thick, and it also used as a heatsink for the processor. The company tested various storage devices including  Seagate Barracuda 2 TB/5 TB HDDs, Samsung 500 GB HDD and 256 GB SSD, Western Digital 500 GB and 1 TB HDD, HGST 1TB HDD with UAS and S.M.A.R.T. function.

The fun part is that you can easily stack several ODROID-HC1 kits on top of each other, and you could use Ceph filesystem (Ceph FS), if you want the stacked boards to show as one logical volume [Update: This may not work well due to lack of RAM and 32-bit processor, see comments’ section]. The price is not too bad either, as ODROID-HC1 is slated to launch on August 21st for $49 + shipping with the board and metal frame.

But the company did not stop there, as they found out it was rather time-consuming to setup a 200 ODROID-XU4 cluster in order to test Linux kernel 4.9 stability, and also designed a ODROID-MC1 (MC = My Cluster) cluster with 4 boards, a metal frame and a large USB powered heatsink.

Click to Enlarge

The solution is based on the same ODROID-XU4S boards, minus the SATA parts. It’s also stackable, so building that 200 board cluster should be much easier and faster to do. The solution is expected to start selling for $200 around the middle of September, and on the software side some forum members are working on Docker-Swarm. Hardkernel is also interested in sending samples to people who have cluster computing experience.

Thanks to Nobe for the tip.

$599 Softiron Overdrive 1000 Server is Powered by AMD Opteron A1100 64-bit ARM Processor

June 26th, 2016 15 comments

ARMv8 servers have been around for a year or so, but normally only available to companies, mostly due to their very high price. LeMaker Cello board based on AMD Opteron A1120 quad core SoC have changed that since it’s priced at $299, but I’m not sure it’s shipping right now, and it’s not a complete solution fitted with memory and storage, and lacks an enclosure. The good news is that Softiron has just launched Overdrive 1000 server powered by AMD Opteron A1100 series processor, with 8GB DDR4 RAM, a 1TB drive, and a case.

Softiron_Overdrive_1000Softiron Overdrive 1000 server specifications:

  • SoC – AMD Opteron A1100 series quad core ARM Cortex A57 processor
  • System Memory – 2x RDIMM slots fitted with 8GB DDR4 DRAM and expandable to 64GB
  • Storage – 2x SATA 3.0 connector with one fitted with  a 1TB HDD
  • Connectivity – 1x GBase-T Ethernet
  • USB – 2x USB 3.0 ports
  • Power Supply – ATX power supply; 100~240V @ 50-60Hz
  • Dimensions – 315 x 222 x 76 mm or 463 x 385 x 145 mm (Product page vs product brief info)
  • Weight – 3.65 kg or 5.2 kg

A standard UEFI boot environment is used, and while you could install your distribution of choice, the server is pre-loaded with openSUSE Leap including a standard Linux GNU tool chain, platform device drivers, the Apache web server, MySQL, PHP, Xen, KVM Hypervisor, Docker, and OpenJDK 64-bit ARM.

I could not find much in the way of demo, but you can listen to ARM and Softiron representatives explaining why it’s a good choice…

If you’d like to go ahead, and get one, you can purchase Softiron Overdrive 1000 directly on the company’s website for $599 + shipping. In my case (Asia based), it would cost $87.06 via UPS, which looks not too bad considering the weight…

Via Andrew Wafaa

Scaleway C1 Dedicated ARM Server Price Drops to 3 Euros Per Month

September 2nd, 2015 6 comments

Scaleaway launched their hosting services with dedicated ARM servers based on Marvell Armada 370/XP quad core ARM Cortex A9 processor this spring for 10 Euros per month, or 0.02 Euro per hour, and at the time, some people found it was not that attractive, as similarly priced plans provided by Linode or DigitalOcean with Intel server were also available, and it might have only been really compelling for people who specifically required an ARM server to play with. The company has now slashed its price, and it has become very attractive at 2.99 Euros (~$3.37 US) per month or 0.006 Euro per hour, excluding VAT.

Iliad C1 Server Module

Iliad C1 Server Module

The server technical specifications and features are still the same:

  • Server based on Marvell Armada 370/XP quad core ARMv7 processor
  • Memory – 2 GB Memory
  • Storage – 50 GB SSD Disk (extra space available for 1 Euro per 50GB)
  • 1x Reserved public IPv4
  • 200Mbit/s – Unmetered bandwith

You can deploy Ubuntu, openSUSE, Gentoo, Fedora, Debian, Arch Linux (ARM), or Alpine Linux to the server in less than one minute, as well as applications (InstantApps) such as Docker, Drupal, WordPress, ownCloud, Torrents, Gitlab, etc.. that can be installed through the server web interface. If an app is not listed, you could always connect via SSH, and install the required packages as needed. Scripts used to build the operating systems that run on C1 server can be found on Scaleway github account.

You can find more information and/or sign up for an account on Scaleway website.

Scaleway Provides Dedicated ARM Servers for 10 Euros per Month, 0.02 Euro per Hour

April 2nd, 2015 5 comments

Earlier this year, Online Labs launched a beta hosting program using custom-designed C1 dedicated servers powered by Marvell Armada 370/XP quad core processor. The company has now launched a commercial service called Scaleway providing hosting service on these baremetal servers for 9.99 Euros per month, or 0.02 Euro per hour, as well as a “Infinite Storage” service with 1GB data for 0.02 Euros per month.

OnlineLabs-C1-FrontBoard

Rack with 18 C1 Servers

Here are the details of the 10 Euros plan:

  • Server based on Marvell Armada 370/XP quad core ARMv7 processor
  • Memory – 2GB Memory
  • Storage – 50GB SSD Disk
  • 1x Reserved public IPv4
  • 200Mbit/s – Unmetered bandwith
  • Operating Systems – Ubuntu, Debian, Fedora, ArchLinux ARM. Docker supported.

That’s not a VPS, but a dedicated server. For reference, I currently pay around $20 per month (Linode) for a server with an Intel Xeon E5-2680 dual core processor with 2 GB RAM and 50 GB SSD storage, and 3 TB free monthly bandwidth to host this blog. The Intel processor should be much more powerful than the Marvel one, but depending on your application, it might be enough. Overall Scaleway offer appears to be a decent deals, especially if you just need a server for development, where you’ll be charged per hour, so If you use the server 50 hour in a month, you’d only pay 1 Euros.

There are also options for higher bandwidth (1Gbit/s), 99.95% / 99.99% guaranteed uptime, extra storage (up to 1TB), bandwidth protection, and more. A simple REST API is available with the code soon-to-be on github.

You can find out more and/or sign-up for the service on Scaleway website.

Linaro 15.03 Release with Linux 4.0 and Android 5.1

March 27th, 2015 No comments

Linaro has just announced their 15.03 release with Linux 4.0-rc4 (baseline), Linux 3.10.72 and 3.14.36 (LSK), and Android 5.1.

The organization has worked on hardware platforms from members namely Qualcomm, ARM, HiSilicon, Samsung, and STMicro, including the recently announced 96Boards boards, and other ARMv8 platforms.

Highlights of the release:

  • Linux Linaro 4.0-rc4-2015.03
    • updated linaro-android topic
    • added a few build/boot fixes for Arndale (llct-misc-fixes topic)
    • GATOR topic: version 5.20.1
    • updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
    • updated topic from Qualcomm LT (ifc6410 board support)
    • simple EEPROM framework (via Qualcomm LT’s topic)
    • updated topic from HiSilicon LT (Hi36xx, HiP04, and X5HD2 families support)
    • rebased “ILP32 patch set v3” onto 4.0-rc2
  • Linaro builds of AOSP 15.03
    • updated all the baselines to AOSP 5.1
    • added commit based trigger feature to CI builds
  • Linaro OpenEmbedded 2015.03
    • integrated Linaro GCC 4.9-2015.03
    • dismantled meta-aarch64 layer
    • created meta-ilp32 layer
    • cleaned out meta-bigendian layer
    • synced overlayed recipes with upstream
    • added full wget and rt-test on LAMP image as requested by QA team
    • update busybox xargs config as requested by QA team
    • integrated ODP 1.0
    • upstreaming:
      • sysprof: fix arm big-endian build
      • bitbake.conf: use http:// for GNU_MIRROR instead of ftp://
      • kexec-tools: fix build failure on aarch64_be architecture
      • busybox: update to 1.23.1 release
      • mozjs 17.0.0: fix aarch64 and 64k page builds, generic cleanups
  • Linaro Ubuntu 15.03
    • added packages: ti-calibrator
    • updated packages: LSK 3.10.72/3.14.36 and linux-linaro 4.0-rc4 kernels
    • Added ILP32 support for ARM64 to Linaro engineering builds
    • Dismantled meta-aarch64 in favour of OE-core aarch64 support
    • CI bring up: luvOS (Linux UEFI Validation Operating System)
  • KVM – support testing arm32 with arm64
  • Added b2120stxh410 to linux-mainline and linux-arm-soc-for-next build jobs
  • 96boards: enable Xorg by default in eMMC/SD debian build
  • Added 2 new build slaves
  • Migrated lt-qcom-ubuntu-images to docker based infrastructure
  • Upgraded ARMv8 build slaves to 3.19 kernel
  • Cleaned up LCR (Linaro Confectionery Release) information and instructions

Visit https://wiki.linaro.org/Cycles/1503/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.

Raspbian Image with Docker 1.5.0 Released for Raspberry Pi Boards

March 4th, 2015 9 comments

DockerI’ve read quite a few articles mentioning Docker recently, but never really looked into it. So what is Docker? The developers describe it as:

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

In practice, it looks like a lightweight virtualization solution that facilitates apps distribution to different operating systems and hardware platforms. For example, if your development machine is running Ubuntu 14.04 and you’ve developed an app requiring Python 3.0, Docker should make it a breeze to it on a Red Hat server running Python 2.6 using a pre-built Linux container.

A good way to get started is probably to go through the 10-minute tutorial on Docker website, and another is to checkout the Docker articles on ODROID Magazine January and February 2015 editions explaining how to install and get started with docker (Jan), and how to install pre-built images such as Ubuntu, Arch Linux ARM, Debian, etc.. and configure DLNA, CUPS (printer), and so on.

Raspberry_Pi_DockerThat’s it for a short introduction about docker. Hypriot, a small team of ARM developers, has released a modified Raspbian image with Docker 1.5 which adds  support for IPv6, read-only containers and advanced statistics. The image includes the following key features:

  • Compatible with all Raspberry Pi B, Pi B+, Pi 2
  • Based upon Raspberry Wheezy
  • Latest Linux kernel 3.18.8configured for optimal Docker use
  • Support for BTRF and Overlay filesystems
  • Includes Docker 1.5.0 (with activated high speed OverlayFS)
  • 347MB download sise
  • Works with 1GB or greater SD card with automatic partition resize on first boot
  • Some ARM Docker Base Images for the RPi (Node.js, io.js, Python, Java) are available on DockerHub and all source code is available on GitHub (OpenSource with MIT license)

You can download the Docker-Pi Image (hypriot-rpi-20150301-140537.img.zip), and flash it to a SD card just like any other OS for the R-Pi boards with Win32DiskImager, dd, or other tools. The default username/password are  pi/raspberry and root/hypriot.

If you don’t have a Raspberry Pi, the instructions provided in ODROID magazine could certainly be adapted to other boards, but in case you own a BeagleBone Black, there’s also a short Docker tutorial on Element14.

Snappy Ubuntu Core is an IoT Linux Distribution for ARM and x86

January 21st, 2015 14 comments

Canonical has announced a version of Ubuntu specifically designed for IoT devices running Linux, with a low hardware requirements, and a new package manager called snappy, replacing apt-get for this version of Ubuntu, which provides simpler, faster, and more reliable updates, stronger security, and allows roll-backs in case something goes wrong. Easy firmware updates are something missing in most connected device, which means they are more vulnerable to potential hackers, but with snappy security updates should be able to make it regularly, so that if something like heartbleed occurs again, you know your router, home automation gateway, connected washing machine, or robot will be soon patched automatically.

Snappy Ubuntu Core Logo

Snappy Ubuntu Core Logo

Let’s go through the hardware requirements first:

  • Processor – 600 MHz processor (ARMv7 or greater, or x86)
  • System Memory – 128 MB RAM or greater (The system itself uses 40 MB RAM)
  • Storage – 4GB flash / storage for factory reset and system rollback

So the hardware requirements are not quite as low as something as OpenWRT, but still lower than what you’d expect from Ubuntu, so you could use an old laptop or PC as a development platform, and Canonical also recommends BeagleBone Black or ODROID-C1 ARM based development boards. The Raspberry Pi board won’t work with Snappy, because Broadcom BCM2835 processor is using an older architecture (ARMv6) not supported by Ubuntu.

Snappy Architecture

Snappy Architecture

Twenty one companies and organization have partnered with Canonical on Snappy Ubuntu Core:

  • Home automation – Ninjablocks (Ninjasphere), Openhab (smarthub framework), Trasibot
  • Robotic – OSRF – ROS robots, , Erle Robotics with Erle-Copter
  • Development Boards – Hardkernel ODROID-C1, Beagleboarg community’s Beaglebone Black, Lemaker (Banana Pro), Udoo, LinkSprite (PCDuino), and Parallella
  • Silicon Vendors – Allwinner
  • IoT frameworks – Kaa, DeviceHive, IoTSys, Resin.io, OpenSensors.io
  • Misc- Riot-OS, Nwave, Fairwaves,  Docker with Weave

As mentioned in the introduction, apt-get is no where to be found in Snappy, as the distribution is using snappy instead, but the command line options remain familiar in some aspects:

with various new/different options like info, search, versions and more:

You can see in the list above two version of ubuntu-core, with one ACTIVE and the previous available for roll-back with the command:

You can find more example in Ubuntu Developer’s snappy page, and find out snappy can also be used to build software packages from source.

There’s also a work-in-progress web interface called WebDM (Web Device Manager) used to configure the device and install packages. It can be installed with sudo snappy install webdm, but Canonical warns it should not be enabled in production devices for now, as access control is not implemented yet.

WebDM

WebDM

If you want to try it, you don’t even need extra hardware, as a Snappy Ubuntu Core instances can be launched from Azure, GCE or Amazon EC2  cloud services, or run in a Virtual Machine with KVM, OVA (VMWare, VirtualBox,…) or Vagrant. All you have to do is follow the instructions provided here. Complete instructions and a preview image are also available for the BeagleBone Black. There does not seem to be pre-built images yet for the other ARM boards mentioned in this article.

Via LinuxGizmos