jubilinux for edison: debian
Updated July 14, 2017.
Current stable version: 0.2.0
Current unstable version: stretch-0.3.0-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
jessie stretch. (The stable version of jubilinux, 0.2.0, is still on jessie.) Changes include:
- Based on debian
jessiestretch instead of wheezy. (Accomplised via
apt-get dist-upgradeof 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.)
/home/.usr, and replace
/usrwith a symolic link, freeing up significant amounts of storage on
Version 0.3.0 of jubilinux, based on debian stretch, is still considered experimental. Don’t use it for anything critical, such as financial or medical purposes.
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
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.
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 firstname.lastname@example.org . 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:
edison . Both users’ passwords are
edison . Be sure to change both passwords .
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
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
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.