/SnappyUbuntuCore

LeMaker Guitar/Roseapple Pi SnappyUbuntuCore

Primary LanguageMakefile

SnappyUbuntuCore

Develop LeMaker Guitar to Snappy 16 Snappy Ubuntu Core

Structure

builder: build Snappy via makefiles, and that includes Gadget snap and Kernel snap.
pre-built: pre-build image download link for test purpose.

Requirements

Make sure your build environment is based on Ubuntu 16.04 or later. Then, you need to install snappy tools, for creating image.

To build all parts, a couple of dependencies are required. On Ubuntu you can install all build dependencies with the following commands.

sudo apt-get update
sudo apt-get install -y build-essential u-boot-tools lzop debootstrap gcc-4.8-arm-linux-gnueabihf device-tree-compiler
sudo apt-get install -y ubuntu-snappy snapcraft
sudo apt-get install -y snapd
sudo snap install --devmode --edge ubuntu-image

Limitation

lemaker kernel can't be cross compiled by gcc 5+ arm-linux-gnueabihf, so you have to make soft link to gcc 4.8 related toolchain.

Generate ssh key-pair if you did not have one

ssh-keygen -t rsa

Quick Build

Build an image by fetching essential snaps from Ubuntu store

./build-snappy.sh

Build from scratch

A Makefile is provided to build Snappy, Gadget snap, U-Boot, Kernel snap from source. The sources will be cloned into local folders if not there already.

To build it all, just run the commands below:

cd builder/
./configure #Configure board type
make snappy

This will produce a Snappy image, a gadget snap lemaker-guitar_x.y_all.snap and a kernel snap lemaker-guitar-kernel_x.y.z.snap for device part, which can be used to build your own Snappy image.

Custom Image

If you want to build the speical version with including the snap you'd like to install from ubuntu store, you can modify the snappy.mk to reach it. For example:

sudo /snap/bin/ubuntu-image \
	--channel $CHANNEL \
	--image-size 4G \
	--extra-snaps snapweb \
	--extra-snaps bluez \
	--extra-snaps modem-manager \
	--extra-snaps network-manager \
	--extra-snaps lemaker-guitar_x.y_all.snap \
	--extra-snaps lemaker-guitar-kernel_x.y.z.snap \
	-o uc16-lemaker-guitar.img \
	lemaker-guitar.model

Build U-boot

make u-boot

Build Gadget snap

make gadget

Build Kernel snap

make kernelsnap

Rebuild a snappy

To rebuild the snappy or other parts, just type make clean or make clean-{prefix}. The prefix will be u-boot, gadget, kernelsnap, etc.

Flash to SD card

Before dd, we suggest the SD card storage should be umounted to safely clean up.

xzcat ${image} | pv | sudo dd of=/dev/${device} bs=32M ; sync

TroubleShooting

Before snapcraft begins to compile the snap, it may pop up an error as below:

No valid credentials found. Have you run "snapcraft login"?

First, make sure you have Ubuntu One SSO and ability to get 2nd factor from Authenticator, then execute the following command:

snapcraft login