Traverse Ten64

by Traverse Technologies

An eight-core ARM64 networking platform with mainline Linux support

View all updates Oct 05, 2020

AMA, SSD Options, and Bare Metal CI/CD

by Mathew M

Ten64 is well-equipped for continuous integration and continuous delivery. Here’s a detailed look at the full hardware and software setup we use for CI/CD on Ten64. But first, some details on an Ask Me Anything (AMA) this Wednesday and recently added NVMe SSD options that can ship with your Ten64 order.

Ask Us Anything on October 7

We will be holding an AMA session on the Crowd Supply Discord server on Wednesday, October 7, 2 PM US Pacific Time. For those in other timezones, this is:

  • 4 PM US Central
  • 21:00 UTC October 7
  • 11:00 PM Central European Summer Time
  • 8:00 AM October 8 Australian Eastern Daylight Time
  • 10:00 AM October 8 New Zealand Daylight Time

Or, you can determine the time in other timezones.

The session will be on the Crowd Supply Discord server, channel #ten64-ama. Join or invite other to join with this link: https://discord.gg/ZKjZcwP

After the AMA timeslot, the discussion will be archived on the Crowd Supply Discord.

Ten64 project architect Mathew McBride will be on hand to answer all your questions!

NVMe SSDs Now Available

We’ve just made available NVMe SSDs that are known to work with Ten64. Like other accessories, these drives will only ship with Ten64 orders - they won’t ship separately due to their discounted price. If you’ve already place an order and want to add a drive to your order, please contact Crowd Supply to request an order change.

To be clear, one of these drives will fit within the standard Ten64 enclosure. If you are looking for drives suitable for a NAS in a different enclosure, stay tuned - we’re working on sourcing those as well and will announce them once they’re available.

Continuous Integration & Delivery

If you have done any operating system and/or distribution development, you know that the compile→install→reboot cycle can be quite a chore. Virtual machines can help avoid having to use physical hardware, but sometimes you need to test features that are closely tied to the hardware. Another common scenario is that you are working from home and need to control a system in your office lab.

Ten64’s control header helps address both these scenarios and more by bringing out the reset and power button lines, UARTs, I²C, and other control nets. You can wire these up to your favorite single-board computer (SBC) for remote control and access.

Schematic of Ten64's control header

Apart from continuous integration and continuous delivery (CI/CD) you can also use the control header for BMC/IPMI-like applications. Regrettably, we didn’t have enough room on the Ten64 to fit an onboard BMC, but this is the next best thing!

Raspberry Pi Control HAT

We have designed, prototyped, and tested a small Raspberry Pi-compatible HAT board allowing up to two Ten64 systems to be controlled from one Raspberry Pi or other compatible SBC. Though we don’t have currently have plans to manufacture and sell these HATs, we’ve made available the complete Altium project files for the Ten64 Control HAT for anyone who’s interested. If you’d like to see these go into production, let us know!

Ten64 Control HAT on SBC

The control HAT also isolates the I²C buses and GPIOs (using MOSFETs and I²C muxes) between the two systems so things like reboots resetting GPIO states and unconfigured pinmuxes will not disturb the "target" board.

Up until version 4, Raspberry Pi only had a single UART available. To get around this, you can use Ten64’s USB-C console. We use the Seeed Studio NPi i.MX6ULL Dev Board SBC, which provides multiple independent UARTs.

CI/CD Software Tools

On the software side, the tools you need are:

  • mTerm: a terminal multiplexer which allows multiple clients to connect to the same UART. This utility originates from Facebook's openBMC distribution.
  • You will need to configure a telnet server to route connections to mTerm, or perhaps configure an SSH user.
  • A "stub" Redfish server which will accept reboot and other requests over HTTP. I haven't implemented any other Redfish functionality (yet).

You can get OpenWrt versions of these packages from my openwrt-bmc-feed repo, though the same utilities will also work on other Linux distributions.

Beware that anyone who can access your "host" board (SBC) will have full control of the "target" board (Ten64) as well. Ensure you have secured your network and systems appropriately – these are not intended to be accessed from the open internet.

For Ten64s dedicated to CI/CD testing, I recommend configuring U-Boot to halt at the boot prompt so the testing script can decide the correct course of action. For example, first reboot into the recovery firmware to download and write your image, then execute a normal boot sequence on reboot.

Testing Distribution Images with GitLab CI

Ten64 Control HAT in action

Our distribution-images repository builds and tests our customized Debian images against real hardware. Our GitLab CI configuration and testing utility scripts are both available to use as starting points for your own setup.

In our CI/CD pipeline, since a virtual machine can be provisioned and booted faster than real hardware, we first use μVirt to test the images as a VM simply to ensure the image is bootable and basic features like disk image resizes and cloud-init work as intended.

These scripts require the GitLab runner to have access to the control SBC. The easiest way to do this is to have a GitLab runner instance on the same network segment as your control SBC.

GitLab CI screenshot

About the Author

Mathew M

mcbridematt  ·   Melbourne, Australia


$35,454 raised

of $60,000 goal

59% Funded

Pledge Now

$579

Ten64 Complete Kit

This version of Ten64 is deeply discounted for this Crowd Supply campaign. A fully assembled and tested mainboard comes installed in a custom metal enclosure with a fan and optional RAM with ECC. Also included are a 60 W power supply with regional power cord, a USB-C console cable, a recovery microSD card, a SIM eject tool, and a hex key, as you'd expect with any good piece of hardware.


$70

NAS DIY Kit

Turn your Ten64 into a network-attached-storage (NAS) device! This kit includes everything you need to install a Ten64 mainboard into a mini-ITX-compatable enclosure: ATX power adapter, heatsink fan, I/O faceplate, and four-port SATA controller based on the Marvell 9215 chipset. Ten64 mainboard and enclosure not included.


$56

NVMe SSD

This SanDisk solid-state drive (SSD) fits inside the standard Ten64 enclosure and interfaces to the mainboard via NVMe. The 128 GB drive (P/N SDAPMUW-128G-1022) is compatible with both the M.2 Key M and M.2 Key B slots on Ten64's mainboard, whereas the 256 GB drive (P/N SDBPNPZ-256G) and 512 GB drive (P/N SDBPNPZ-512G) are only compatible with the M.2 Key M slot. These drives are only available when purchased with a Ten64. User installation required.

Credits

Traverse Technologies

Traverse is a design house focusing on broadband and machine-to-machine applications. Our key areas of expertise are in wireline (xDSL), wireless (LTE), and embedded Linux with an aim to leverage open source technologies such as Linux and OpenWrt as much as possible.


Guy Ellis

SI and DFM Engineer

Mathew McBride

Product Architect

Brett Hahnel

PCB Layout and CAD

Sean Yang

SW Developer

Dennis Monks

SW Dev Leader

Vaughn Coetzee

Firmware Developer


SRXGlobal

Recommended

Contract Manufacturer

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: