Running LEAP: Portable 64-Bit ARM Computing Sat, Sep 19. 2015
I really want a 64-bit ARM laptop, but no one is shipping them yet -- not even Vero Apparatus.
So, I've put together the next-best-thing: a portable, wireless system assembled from off-the-shelf components. The resulting system weights ~1.8 kg (4 lb), has a 5-6 hour battery life, and fits in my laptop bag. It has microSD for storage, an 8-core Cortex-A53 processor, wifi, ethernet, and bluetooth, an external HDMI output for presentations, and 1GB of RAM. The components are held between two sheets of acrylic by 3M Dual Lock fasteners so the configuration can be easily switched up.
This system runs a version of LEAP, our experimental enterprise Linux distribution for AArch64 systems loosely based on the CentOS 7 x86_64 sources, on a 96Boards HiKey. The HiKey isn't officially supported by LEAP (yet), but we expect to support it later this year. I look forward to swapping the HiKey for a 96boards Enterprise Edition board later this year.
If you're at Linaro Connect next week, I'd be glad to give you a peek sometime during the week or on Demo Friday, and I'll blog about how the system was assembled a few weeks down the road.
The OSTEP Applied Research Team Thu, Jul 2. 2015
I haven't introduced my research team for quite a while, and it has changed and grown considerably. Here is the current Open Source Technology for Emerging Platforms team working with me at Seneca's Centre for Development of Open Technology. From left to right:
- Michael (Hong) Huang (front)
- Edwin Lum (rear)
- Glaser Lo
- Artem Luzyanin (front)
- Justin Flowers (rear)
- Reinildo Souza da Silva
- Andrew Oatley-Willis
Edwin and Justin work with me on the DevOps project, which is applying the techniques we've learned and developed to the software development
processes of a local applied research partner.
Michael, Glaser, Artem, Reinildo, and Andrew work with me on the LEAP Project. Recently (since this photo was taken), Reinildo returned to Brazil, and has been replaced by Christopher Markieta (who has previously worked with this project).
I'm dying to tell you the details of the LEAP project, so stay tuned for an announcement in the next week!
Initial Current and Temperatures on the HiKey from 96Boards Sat, Feb 14. 2015
This board is powered by an 8-core, 64-bit Cortex-A53 ARMv8-A Kirin 620 SOC from HiSilicon with 1GB of LPDDR3 RAM, a Mali 450MP4 GPU, dual USB, eMMC and micro-SD storage, 802.11g/n, and high- and low-speed expansion connectors with I2C, SPI, DSI, GPIO, and USB interfaces.
So far, this has been an incredible board to work with, despite some teething pains with the pre-release/early access software and documentation (and a few minor quibbles with the design decisions behind the 96Boards Consumer Edition spec and this first board). It's not in the same performance class as the ARMv8 server systems that we have in the EHL at Seneca, but it's a very impressive board for doing ARMv8 porting and optimization work -- which is its intended purpose, along with providing a great board for hacker and maker communities.
I experimented with the board last week and took some readings at home today, and thought I'd share some of my findings on board current draw and temperatures, because it may be useful to those planning alternate power supplies and considering temperatures and airflows for cases:
- Current consumption: The board draws ~120 mA at idle (Linux login prompt) with nothing connected, and about 150-155 mA with a basic USB fast ethernet adapter connected. With ethernet attached and 8 cores doing busy-work (compressing /dev/urandom to /dev/null), current consumption rises to just over 300 mA (297-320). All of these readings are at 12+/-0.25 vdc, so that's under 4W including the USB ethernet. Note that the GPU was basically idle during these tests.
- Temperature: In a room with an ambient temperature of ~21C, with all 8 cores doing busy work (8 processes gzipping /dev/urandom to /dev/null, and top reporting 0.0% idle), the temperature on the SOC heatsink rose fairly quickly to ~48C, and eventually reached 52C, measured using an infrared temperature reader (accuracy of +/- <2C).
A couple of other random observations about the board:
- The board mounting holes accommodate M2.5 screws. Basic hardware stores, including Home Depot (at least in Canada), do not carry M2.5 screws, so I've been thwarted in my efforts to mount this onto an acrylic plate so far (cases will evetually follow, I'm sure, but I always prefer to have boards on/in something and not sitting directly on my desk). I'm sticking some silicon feet on the bottom as an interim measure.
- There is a "USERDATA" partition on the eMMC which is not used by the initial software image. Be sure to format and mount that partition to gain an additional 1.5 GB of space if you're running from eMMC.
I'm looking forward to the release of WiFi drivers and UEFI bootloader support soon, as promised by the 96Boards project.
More notes to follow...
You'd be crazy to miss FSOSS 2014 Thu, Oct 2. 2014
The Free Software and Open Source Symposium (FSOSS) 2014 is around the corner, and it's shaping up to be the best in years. We have well over 30 talks spread over 2 days, covering just about every corner of open source from new and upcoming technologies through business models. We have a keynote from my colleague David Humphrey examining the implications of Heartbleed, as well as keynotes from Chris Aniszczyk (Twitter) and Bob Young (Lulu/Red Hat/TiCats). There are speakers from Canada, the US, Hungary, the UK, Cuba, and India, representing open source communities, academia, entrepreneurs, startups, and companies such as Mozilla, Cisco, AMD, Red Hat, and Rackspace.
Until October 10, registration for this event is just $40 (or, for students and faculty of any school, $20), which includes access to all of the keynotes, talks, and workshops, two lunches, a wine/beer/soft drink reception, a t-shirt, and swag.
Full details can be found at fsoss.ca -- see you October 23/24!
New Pidora Package: quick2wire-python-api Sat, Nov 23. 2013
I've packaged the quick2wire python3 library for the Raspberry Pi. This provides easy access to the i2c peripheral bus from Python3; I've packaged this up because I need it, and also to test and demo the package review process for Pidora.
# test_tcn75a :: Test of reading a TCN75A digital
# temperature sensor using I2C
# - TCN75A is powered at 3v3
# - I2C lines connected to Raspi GPIO
# - Pins 5/6/7 are grounded (address = 72)
# - quick2wire Python library
# CTyler 2012-10-03 - GPLv2+
# Using the quick2wire module for I2C access
import quick2wire.i2c as i2c
# Using the time module for sleeping
# Address (unit number) of the TCN75A temperature
# sensor on the I2C bus
address = 72
# Register number within the TCN75A that contains
# the current temperature
temp_register = 0
# Register number within the TCN75A that contains
# the configuration register
conf_register = 1
with i2c.I2CMaster() as bus:
# Configure the resolution (optional step)
# The configuration register is used to set the temperature
# resolution. The higher the resolution, the more
# accurate the temperature reading, but the lower the
# sampling rate. Possible values are 0, 32, 64, and 96.
# Value 96 = 0.01625C steps (highest resolution)
# Value 0 = 0.5C steps (lowest resolution) (default)
i2c.writing_bytes(address, conf_register, 96))
# Loop 100 times
for i in range(1,100):
# Select the address (unit on the bus) and desired
# register, and read 2 bytes
read_temp = bus.transaction(
# The first byte contains the temperature in degrees
# Celsius (actually, this is a signed number, so
# values over 127 are negative, but I'm ignoring
# that here). The second byte contains 256ths of a
# degress, but the default resolution of the sensor
# is 0.5 degrees, so it will always be 0 (.0) or 128 (0.5)
# unless the resolution is changed.
# This line converts the two bytes into a single
# temperature and prints it.
print("Temperature: %3.3f°C" % (read_temp+read_temp/256) )
# Delay half a second before getting next reading
The package is up for review in Pidora (not Fedora, but only because it's not useful on other platforms -- at least at this time). The package review, including links to the specfile and SRPM, is ticket #495.
Looking for a Debugging Mentor Wed, Feb 20. 2013
I'd love to figure out why my Toshiba Z830's screen-brightness controls work fine after suspend but don't work after hibernate with Fedora 17 (I have two-phase suspend/hibernate set up). I'm comfortable doing debugging but don't even know where to start on this one -- I don't know which subsystems to poke at.
Anyone willing to mentor me through this?