Giter Site home page Giter Site logo

bergeraaron / arcushubos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arcus-smart-home/arcushubos

0.0 1.0 0.0 84.11 MB

Yocto Linux based Iris HubOS firmware

License: Other

Makefile 0.01% Shell 0.03% Python 0.29% C++ 54.65% Assembly 0.15% HTML 0.01% BitBake 0.02% Perl 0.07% C 44.57% JavaScript 0.01% CSS 0.01% CMake 0.16% Ruby 0.01% Go 0.01% Rust 0.03% Objective-C 0.01% Verilog 0.01% Batchfile 0.01%

arcushubos's Introduction

IRIS HubOS Build Instructions for OSS Redistribution

The development environment for the IRIS HubOS is currently based on the Yocto 2.7.4 "Warrior" release. The proprietary hardware is similar to that of the BeagleBone Black for our second generation Hub, and a custom NXP imx6DualLite design for the 3rd generation Hub.

The changes to the OSS packages used are marked with "IRIS Change" additions to the files touched. A list of changes can be found in the ChangeLog_oss.txt file.

Instructions for build environment set up

Please use a Yocto Supported Operating system. For Yocto 2.7.4, this is CentOS 7, Debian 9, Fedora 28, Fedora 29, OpenSuse 42.3, Ubuntu 16.04, and Ubuntu 18.04.

As with any Yocto project, you should be using a fairly capable system (e.g. modern core "i" series processor, 25GB or more of disk space, and ideally an SSD) to achieve reasoanble build times.

Follow the Yocto environment set up instructions in "The Packages" section at:

http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html

For a Ubuntu distribution, the following tools are needed:

$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm python chrpath

Arcus HubOS has added JDK support to the base Yocto build, so you will also need to install the following (assuming Ubuntu/Debian environment):

$ sudo apt-get install openjdk-8-jdk galternatives srecord

Run 'galternatives' and make sure 'keytool' and 'jar" are configured to the java8-openjdk package which was just installed.

The build outputs are put in /tftpboot to simplify finding the firmware images. Please add this directory - actual tftp server support is not needed, though.

$ sudo mkdir /tftpboot
$ sudo chmod -R 777 /tftpboot
$ sudo chown -R nobody /tftpboot

Before running the build, either create a top-level /build directory, or modify the configuration in build/conf/local.conf to comment out this line or change to another location:

SSTATE_DIR ?= "/build/sstate-cache"

Git submodules initialization

A number of core modules (poky, meta-openembedded, meta-freescale and meta-freescale-3rdparty) are used as Git submodules and therefore need to be initialized after the clone of the project:

$ cd arcushubos
$ git submodule update --init

Makefile Targets

The following targets are valid:

  • hubv3 - builds release image for v3 hub

  • hubv3-dev - builds development image with added tools, etc. for v3 hub

  • hubv3-clean - cleans up v3 build outputs. Would need to remove /build/sstate-cache to truely force a complete rebuild

  • hubv3-distclean - Removes all v3 files from "clean" as well as downloaded files to mimic starting from scratch

  • hubv2 - builds release image for v2 hub

  • hubv2-dev - builds development image with added tools, etc. for v2 hub

  • hubv2-clean - cleans up v2 build outputs. Would need to remove /build/sstate-cache to truely force a complete rebuild

  • hubv2-distclean - Removes all v2 files from "clean" as well as downloaded files to mimic starting from scratch

These builds will take a hour or so (depending on your machine) to complete as it has to build all the cross-compiler toolchains as well as all packages in the build.

When complete, the outputs will be in build-ti/tmp/deploy/images for v2 hub builds, and build-fsl/tmp/deploy/images for v3 hub builds.

Build Output Files

  • i2hubos_update.bin - v2 image without the build header (which includes checksum, signature, etc)

  • i2hubos_update_bootloader.bin - Above, but with v2 boot loader files as well

  • hubOS_X.Y.Z.xxx.bin - v2 Release image with Java support with release boot loader

  • hubBL_X.Y.Z.xxx.bin - v2 Release image with Java support, plus development boot loader files

  • i2hubosv3_update.bin - v3 image without the build header (which includes checksum, signature, etc)

  • i2hubosv3_update_bootloader.bin - Above, but with v3 boot loader files as well

  • hubOSv3_X.Y.Z.xxx.bin - v3 Release image with Java support with release boot loader

  • hubBLv3_X.Y.Z.xxx.bin - v3 Release image with Java support, plus development boot loader files

Release Testing

$ scp /tftpboot/hubOS_X.Y.Z.xxx.bin root@your_v2_hub:/tmp
$ ssh root@your_hub_ip
$ install -f file:///tmp/hubOS_X.Y.Z.xxx.bin

Common Tasks

Updating Firmware Version

Bump the version number in meta-iris/recipes-core/iris-lib/files/irisversion.h

Updating the Agent

Bump the version number in meta-iris/recipes-core/iris-agent/iris-agent.bb#L40 and change the hashes of the target tar.gz file:

Development

For development, it is not necessary to use the complete images as the validation takes additional time. Also, since the boot loader files will seldom change, using the i2hubos_update.bin (or i2hubosv3_update.bin for v3 hub) is all that is necessary in most cases. To install this file, do the following:

$ scp /tftpboot/i2hubos_update.bin root@your_hub_ip:/tmp
$ ssh root@your_hub_ip
$ fwinstall /tmp/i2hubos_update.bin

Once this install completes reboot the hub so the new firmware is used.

Password

The current SSH root password for images built from these sources is 3XSgE27w5VJ3qvxK33dn.

The default root password for Iris hubOS 3.x releases, regardless of hardare revision or platform is zm{[*f6gB5X($]R9.

The earlier 2.x releases used a default password of kz58!~Eb.RZ?+bqb.

arcushubos's People

Contributors

andrewx192 avatar bergeraaron avatar msilvermanks avatar pcouto64 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.