Linux build system for Oboo Smart Clock

jravetch f4f660d032 Merge pull request #4 from jravetch/fix-dockerfile 9 months ago
config 446604514d open sourcing oboo lede source repo 1 year ago
custom-files 446604514d open sourcing oboo lede source repo 1 year ago
files 446604514d open sourcing oboo lede source repo 1 year ago
include 446604514d open sourcing oboo lede source repo 1 year ago
package 446604514d open sourcing oboo lede source repo 1 year ago
release 446604514d open sourcing oboo lede source repo 1 year ago
scripts 446604514d open sourcing oboo lede source repo 1 year ago
target 446604514d open sourcing oboo lede source repo 1 year ago
toolchain 446604514d open sourcing oboo lede source repo 1 year ago
tools 446604514d open sourcing oboo lede source repo 1 year ago
.config 3c8aef1fc3 adding forgotten .config file 1 year ago
BSDmakefile 446604514d open sourcing oboo lede source repo 1 year ago
CHANGELOG.md 992ad6c81a Building packages with all updates to Oboo-Packages up to commit 5f4d944 1 year ago
Config.in 446604514d open sourcing oboo lede source repo 1 year ago
DISCLAIMER.md 446604514d open sourcing oboo lede source repo 1 year ago
Dockerfile 3bd1a8f27f Use 18.04 instead of bionic 9 months ago
LEDE-README.md 446604514d open sourcing oboo lede source repo 1 year ago
LICENSE 446604514d open sourcing oboo lede source repo 1 year ago
Makefile 446604514d open sourcing oboo lede source repo 1 year ago
README.md 9306675b6e Pin ubuntu image to bionic, update README 9 months ago
build.sh 446604514d open sourcing oboo lede source repo 1 year ago
build_info.json 446604514d open sourcing oboo lede source repo 1 year ago
feeds.conf 446604514d open sourcing oboo lede source repo 1 year ago
feeds.conf.default 446604514d open sourcing oboo lede source repo 1 year ago
first.txt 446604514d open sourcing oboo lede source repo 1 year ago
prepare.sh 446604514d open sourcing oboo lede source repo 1 year ago
rules.mk 446604514d open sourcing oboo lede source repo 1 year ago

README.md

Oboo Smart Clock Firmware Build System

This buildsystem for the LEDE Linux distribution has been modified by Onion Corporation to build firmware for the Oboo Smart Clock

Onion Corporation is not responsible for any damage to your device caused by using custom firmware, custom packages, or any other customization activities.

Additional Reading

  • See CHANGELOG.md for a listing of the changes for each firmware version and build
  • See DISCLAIMER.md for Onion’s disclaimer regarding this build system

Using this Build System

This buildsystem can be used to create packages and firmware for the Oboo Smart Clock. There are two preferred ways to use the buildsystem:

  1. Creating and using the Docker image Recommended method
  2. Running the build system on a Linux system

Using the Docker Image

The Docker image takes care of all environmental configuration and is the recommended method.Using this method creates a Docker image that can be used to compile the Oboo Smart Clock build system See this link for more details: https://docs.docker.com/get-started/part2/

System requirements for running this build system:

  • Storage Space: 20 GB minimum
  • Memory: 4GB RAM minimum
  • CPU: 2 cores minimum

The better the specs of the computer (more CPU cores, more memory) the faster everything will compile. On an 8-core, 16 GB RAM machine the initial compile will take about half an hour.

Procedure:

  1. Clone the repository by running: git clone git@github.com:ObooSmartClock/Oboo-Source.git
  2. Change into the Oboo-Source directory: cd Oboo-Source
  3. Build and tag the docker image by running: docker build -t oboo-source/oboo-source -f Dockerfile .

This will produce a docker image with the following artifacts:

  • Firmware binaries:
    • Location: bin/targets/ramips/mt7688/
    • For Example: bin/targets/ramips/mt7688/lede-ramips-mt7688-oboo-smart-clock-squashfs-sysupgrade.bin
  • Oboo package files
    • Location: bin/packages/mipsel_24kc/oboo/
    • For Example: bin/packages/mipsel_24kc/oboo/oboo-clock-base_0.0.8-4_mipsel_24kc.ipk

Using the Output Files

To access the the built artifacts, run and mount the docker image to your local filesystem:

docker run oboo-source/oboo-source \
      -v ~source:bin/targets \
      -v ~packages:bin/packages \
      -it /bin/bash

Firmware binaries contain an image of the Oboo Smart Clock Linux Operating System. Incorrectly flashing firmware or flashing broken firmware can lead to a bricked device! Proceed with extreme caution! Onion Corporation is not responsible for any damage to your device caused by using custom firmware or packages not built and released by Onion Corporation.

Oboo package files can be installed on Oboo Smart Clock. Transfer the desired *.ipk file to the target Oboo Smart Clock’s filesystem, and use opkg install <IPK NAME HERE> to install/update the package.

Building Locally

This procedure must be done on an Ubuntu system, as it requires specific software packages in order for the build to succeed. System requirements for running this build system are similar to the Docker method:

Required additional software packages:

sudo apt-get update
sudo apt-get install -y \
    build-essential \
    vim \
    git \
    wget \
    curl \
    time \
    subversion \
    build-essential \
    libncurses5-dev \
    zlib1g-dev \
    gawk \
    flex \
    quilt \
    git-core \
    unzip \
    libssl-dev \
    python-dev \
    python-pip \
    libxml-parser-perl \
    default-jdk

Using the Build System

When run, the build system outputs firmware binaries and package files for the Oboo Smart Clock.

To setup and compile the build system, run the following command:

sh build.sh

Automatic Deployments

Each time a commit or Pull Request is pushed to the master branch, the CD system will be automatically triggered to compile the build system.

The output ipk files from bin/packages/mipsel_24kc/oboo/ will be made automatically available at: http://repo.getoboo.com/oboo-clock/packages/latest/