jubilinux for edison: debian stretch

Updated December 10, 2017.

Current stable version: 0.3.0, Debian Stretch

Current unstable version: stretch-0.3.1-SNAPSHOT

ubilinux ™ is an embedded Linux distribution from Emutex and is based on Debian Wheezy. It is targeted at embedded devices that have limited memory and storage capabilities.

ubilinux is great for changing the Intel Edison from a high-performance wearable/embedded platform into a headless server with uniquely low power consumption and tiny phsyical footprint. The only trouble is that ubilinux as officially distributed is based on a rather old version of Debian (wheezy) and a very old verison of the edison linux kernel.

jubilinux is an update to the stock ubilinux edison distribution to make it more useful as a server, most significantly by upgrading from wheezy to stretch. Changes include:

  • Based on debian stretch instead of wheezy. (Accomplised via apt-get dist-upgrade of the root file system.)
  • Update kernel and modules to latest from Intel’s edison linux kernel . (Latest commit as of this writing is Sep 8, 2016.)
  • Move /usr to /home/.usr , and replace /usr with a bind mount, freeing up significant amounts of storage on /.
  • Removed nodejs and obsolete mraa packages

Version 0.3.0 of jubilinux, based on debian stretch, is now stable.  Don’t use it for anything critical, such as financial or medical purposes, anyway. I’m not responsible.

Getting jubilinux

Download jubilinux and extract it somewhere. Install it like any other edison dfu install, such as via sudo ./flashall.sh.

You can monitor the installation progress over the edison’s USB serial console with screen /dev/ttyUSB0 115200, assuming that ttyUSB0 is the serial device for your edison’s console. Run this in a different terminal window from flashall.sh.

Please leave your edison running for a few minutes after flashall.sh finishes! The jubilinux first-boot sequence involves three reboots, and should not be interrupted by a yanked power cord.

First Boot

After installation is complete, you can log into your edison over the serial console or the OTG ethernet. You can launch a serial console with screen /dev/ttyUSB0 115200; log in as root. Alternatively, you can log in via SSH over the OTG ethernet adapter with ssh root@ It’s probably better to use the serial console though, because one of the first things I always do is turn the OTG port into a USB host, rendering OTG ethernet inoperable.

jubilinux boots with two default users: rootand edison. Both users’ passwords are edison. Be sure to change both passwords.

Edit /etc/rc.local

Logged in as root, edit /etc/rc.local and comment or uncomment lines as appropriate for your configuration. /etc/rc.local is used for the configuration of:

  • USB OTG port device vs host mode
  • Enabling bluetooth
  • Enabling bluetooth rfcomm login console
  • Enabling auto-acceptance of bluetooth pairing requests
  • Activating wifi without systemd

Start Using jubilinux

jubilinux behaves very much like any other debian system, with one major difference: jubilinux does not use an initial ramdisk ( initrd), so alternative versions of certain packages should be used. For example, for LUKS encryption support, use apt-get install cryptsetup-bin instead of apt-get install cryptsetup; the former installs the required executables and is all you need for edison, while the latter drags along with it the entire initrdinfrastructure.

Custom Kernel

If you want to compile your own kernel, the kernel used for jubilinux can easily be reconfigured and rebuilt. Cloning the github repo will get you a handy helper setup that includes both the stock edison kernel and the broadcom wifi/bt driver, along with scripts to collect the kernel and modules in a manner easily transferrable to a running edison.