Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink



Similar documents
Building an audio player using the Texas Instruments OMAP-L137

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

Embedded Linux development training 4 days session

Embedded Linux Platform Developer

Overview. Open source toolchains. Buildroot features. Development process

The embedded Linux quick start guide lab notes

STLinux Software development environment

Application Development Kit for Android Installation Guide

Version 1.0. File System. Network Settings

An Embedded Wireless Mini-Server with Database Support

SheevaPlug Development Kit README Rev. 1.2

MontaVista Linux 6. Streamlining the Embedded Linux Development Process

Buildroot Workshop. Libre Software Meeting Thomas Petazzoni Free Electrons

The Embedded Linux Quick Start Guide In the Beginning... Embedded Linux Conference Europe 2010

AVR32737: AVR32 AP7 Linux Getting Started. 32-bit Microcontrollers. Application Note. Features. 1 Introduction

Pwn Plug Community Edition 1.1 Installation Guide

APx4 Wireless System-on-Module 5/8/2013 1

Getting started with ARM-Linux

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

Customer Experience. Silicon. Support & Professional Eng. Services. Freescale Provided SW & Solutions

Andreas Burghart 6 October 2014 v1.0

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

Select Correct USB Driver

Option nv, Gaston Geenslaan 14, B-3001 Leuven Tel Fax Page 1 of 14

Virtualization and Other Tricks.

Complete Integrated Development Platform Copyright Atmel Corporation

Altera SoC Embedded Design Suite User Guide

APPLICATION NOTE. How to build pylon applications for ARM

POPP Hub Gateway. Manual

Network connectivity controllers

10 STEPS TO YOUR FIRST QNX PROGRAM. QUICKSTART GUIDE Second Edition

Chipsee Embedded Industrial Computer Android User Manual V1.0.1

TEGRA X1 DEVELOPER TOOLS SEBASTIEN DOMINE, SR. DIRECTOR SW ENGINEERING

Section 5: Installing the Print Driver

Going Linux on Massive Multicore

Open Network Install Environment (ONIE) LinuxCon North America 2015

AlienVault Unified Security Management (USM) 4.x-5.x. Deploying HIDS Agents to Linux Hosts

ERIKA Enterprise pre-built Virtual Machine

Yun Shield User Manual VERSION: 1.0. Yun Shield User Manual 1 / 22.

Using Chroot to Bring Linux Applications to Android

HotelTV1. Client Software Update REV A0.6 D October. Web : Mail : support@vestek.com.tr Tel :

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Embedded Display Module EDM6070

Accessing I2C devices with Digi Embedded Linux 5.2 example on Digi Connect ME 9210

OpenEmbedded for medical devices

i.mx USB loader A white paper by Tristan Lelong

file://d:\webs\touch-base.com\htdocs\documentation\androidplatformnotes52.htm

SIM900 Eclipse environment install Application Note_V1.00

Android Development: a System Perspective. Javier Orensanz

Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab

Chapter 1 Hardware and Software Introductions of pcduino

IOVU-571N ARM-based Panel PC

Java Embedded Applications

Korenix Embedded Systems

Waspmote IDE. User Guide

01. Introduction of Android

Introduction to Android

The shortest path to cellular communications: Cellular Development Platform

Lab 0 (Setting up your Development Environment) Week 1

Mentor Embedded IVI Solutions

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Embedded Linux BSP BootCAMP

Deploying the DisplayLink Software using the MSI files

Intel Do-It-Yourself Challenge Lab 2: Intel Galileo s Linux side Nicolas Vailliet

Avaya Media Server Monitoring and Management. David Lover Chief Strategy and Technology Officer, Cross

VoIP Laboratory B How to re flash an IP04

Q N X S O F T W A R E D E V E L O P M E N T P L A T F O R M v Steps to Developing a QNX Program Quickstart Guide

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

How To Use 1Bay 1Bay From Awn.Net On A Pc Or Mac Or Ipad (For Pc Or Ipa) With A Network Box (For Mac) With An Ipad Or Ipod (For Ipad) With The

Nios II Software Developer s Handbook

Getting Started with Kinetis SDK (KSDK)

Distribution and development environment for ST40 platforms. Features. User programs and applications. File Systems.

Windows 10 IoT The Big Reboot By Sean D. Liming and John R. Malin Annabooks

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

Programación de Sistemas Empotrados y Móviles (PSEM)

Quick Start Guide. Quick Start Guide. taskit GmbH. for Portux920T EU / SW Portux Mini-PC Portux Panel-PC Panel-Card MoLUX Stamp

HotelTV. Client Software Update REV A0.10 D October. Web : Mail : support@vestek.com.tr Tel :

Mobile Operating Systems Lesson 03 PalmOS Part 1

Getting Started with Embedded System Development using MicroBlaze processor & Spartan-3A FPGAs. MicroBlaze

ebus Player Quick Start Guide

Compuprint 4247 Serial Matrix Printers

Embedded Development Tools

DisplayLink Corporate Install Guide

802.11n Wireless Broadband Router WNRT-625

Intel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth

Cross-Platform Software Considerations for Internet of Things

Board also Supports MicroBridge

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Integrating Mobile into Your Cross- Platform Strategy with Qt

Example of Standard API

EZblue BusinessServer The All - In - One Server For Your Home And Business

FioranoMQ 9. High Availability Guide

M2GO & M1 Operating System Installation

ivms-4500 (Android Tablet) Mobile Client Software User Manual (V3.0)

3.5 EXTERNAL NETWORK HDD. User s Manual

Buildroot for Vortex86EX (2016/04/20)

HP AppPulse Active. Software Version: 2.2. Real Device Monitoring For AppPulse Active

Questions from The New SensorTag - IoT Made Easy Webinar

MediaTek LinkIt Smart 7688 FAQ

Professional Xen Visualization

Transcription:

Track One Building a connected home automation device with the Digi ConnectCore Wi-i.MX51 using LinuxLink Session 1 Assembling and booting a small footprint Linux platform To join the teleconference ------------------------------------------------------- Call-in toll number (US/Canada): +1-408-600-3600 Access code: 668 989 529

2 Tools You Can Use Q&A Click on Q&A panel (?) or chat icon in the bottom right corner Type in your question in the space provided Click on Submit

3 Tools You Can Use Polling The poll will appear on your screen Select your answer for each question Click on Submit

4 Session Information You can download the slides for today s session at http:///embedded-linux/training/timesysuniversity/digi_wi-imx51 You can view a recording of today s session at http:///embedded-linux/training/timesysuniversity/digi_wi-imx51 Today s speakers: Maciej Halasz Director, Product Management Timesys Bob Blumenscheid Product Marketing Manager Digi International

5 Building a Connected Home Automation Device Session 1 Today How to assemble and deploy an initial BSP and setup development environment with the matching SDK Session 2 March 9 @ 1pm EST How to build a control application using Qt Embedded for Linux to design a UI experience Session 3 March 17 @ 1pm EST How to integrate a GPIO and Bluetooth functionality with the control application Session 4 March 24 @ 1pm EST How to optimize, test and integrate the solution for quick deployment

6 Today s Agenda Introduction to the ConnectCore Wi-i.MX51 Session Hardware/Software Requirements Embedded Linux Primer Where do I start my Linux design Product Requirements Assemble a custom BSP using the Factory Web Edition Reflect product requirements Produce complete Linux design Learn how to find information Application/System Development environment setup with an SDK Deploy the images on the ConnectCore Wi-i.MX51 board

7 Introduction to the Digi ConnectCore Wi-i.MX51

8 Session Hardware/Software Requirements

9 What We Need to Build Our Product A Host Machine Linux Windows is ok, but you ll need a VirtualBox with a Linux installation Cross-development environment Linux source code for the product Bootloader Linux kernel APIs Various Linux utilities IDE with WYSIWYG for faster assembly

10 Embedded Linux Primer

11 Embedded Linux Reference Model Application Software System Hardware Application (e.g. Base Station Control) Application 1 Application 2 Middleware and Application Services Networking Security UI Reliability Target LCD Networking HW accel. App Features Third-Party Application Hundreds of APIs from Open Source and Proprietary Linux kernel Driver Driver Driver Driver more Board SOC Reliability Bootloader Driver Driver Driver Driver more Virtualization SD USB more Host Development Tools Cross-Development Environment (SDK) IDE Application Debugging Build System (e.g. Factory) RFS, Kernel, App Collaborative Development Profiling Tracing System Management KGDB/ printk Debugging JTAG SMP support, RT enhancements Target Images Binaries Deployment Target Management

12 Embedded Linux Challenges Assembling a Linux platform can be very complex The code is free, but Achieving a consistent and repeatable build can be challenging Difficult to keep pace Over 40,000 independent sources on the Web Maintained by thousands of developers Difficult to pick the right combinations Hidden dependencies, abandoned projects Numerous revision conflicts Difficult to find tools that work Many open source tools are available Difficult to assemble the associated patches and libraries Limited-to-no support

13 Boot Process in Short Typical Linux System Structure Boot Process Sequence Power On User Application(s) Flash init Root Filesystem Packages Scripts Linux Kernel Device A Device C Bootloader Device A Device B Hardware U-boot Hardware Init U-boot Copies kernel to memory/uncompress Kernel Boot Hardware/Subsystems initialization RFS Fetch/Mount/Boot into User Application TIME

14 Product Requirements Where Do I Start My Linux Development?

15 What Are We Building? Connected home automation device Features: GUI with buttons to control the following: Living room lights Kitchen lights Garage door GPIO connected LEDs represent lights Remote Bluetooth sensor for Garage door status WiFi connection for pushing current status to a home server Boot fast from NAND flash

16 Project Requirements (Digi CC Wi-i.MX51) Graphics Touchscreen Applications Screen calibration Home automation application Ethernet Secure Connection Transfer (FTP/SCP) Console (Telnet/SSH) Serial port communication USB Storage (USB stick) Extensions Audio (optional) Alsa Mixer Sound playback Bluetooth Sensor connections GPIO controlled LEDs SD/MMC Card - Filesystem NAND Flash Boot from Additional storage WiFi Data upload to a server

17 Home Automation Device (Blueprint) Connected Home Automation Control Application User Interface, Buttons, Lights, etc Light Control Alarm sound Bluetooth Sensor Wireless Data Logging Middleware LCD calibration Qt Embedded setup scripts alsa-utils cwiid dbus openssh networking shell alsa bluez Wireless tools Linux kernel Driver Driver Driver Driver Driver Driver Driver U-Boot bootloader Driver Driver Wi-i.MX51 LCD Touch Screen GPIO Audio USB Bluetooth WiFi Ethernet Serial NAND SDIO

18 Assemble a Custom BSP Using the LinxuLink Web Edition

19 LinuxLink Architecture

20 Requirements Helper Feature What do I need Where to select Linux kernel Latest, 2.6.35 kernel Linux kernel Cross-Toolchain GCC, Binutils, GDB Toolchains C Library uclibc Toolchains Touch screen tslib Packages QT qt-embedded-linux Packages Bluetooth bluez (will select dbus) Packages Wii Remote (sensor) cwiid Packages Wifi wireless_tools wpa_supplicant ccwmx51js-redpine-wifi Packages Sound alsa-utils Packages System initialization busybox Packages

21 Application/System Development Environment Setup with an SDK

22 Embedded Linux Reference Model Application Software System Hardware Application (e.g. Base Station Control) Application 1 Application 2 Middleware and Application Services Networking Security UI Reliability Target LCD Networking HW accel. App Features Third-Party Application Hundreds of APIs from Open Source and Proprietary Linux kernel Driver Driver Driver Driver more Board SOC Virtualization Reliability SD USB more Host Development Tools Cross-Development Environment (SDK) IDE Application Debugging Build System (e.g. Factory) RFS, Kernel, App Collaborative Development Profiling Tracing System Management KGDB/ printk Debugging JTAG SMP support, RT enhancements Target Images Binaries Deployment Target Management

23 Embedded Linux Reference Model Target Host Application Software System Hardware Application (e.g. Base Station Control) Application 1 Application 2 Middleware and Application Services Networking Security UI Reliability LCD Networking HW accel. App Features Development Tools Linux kernel Driver Driver Driver Driver more Board SOC Reliability Cross-Development Third-Party Environment (SDK) IDEApplication Application Debugging Build System (e.g. Factory) RFS, Kernel, App Hundreds of Collaborative Development APIs from Profiling Open Source Tracing and Proprietary System Management KGDB/ printk Debugging JTAG SMP support, RT enhancements SD Target Images USB more Binaries Deployment Target Management Virtualization

24 Development Environment Setup Can find instructions on how to run Linux on your ConnectCore Wi-i.MX51 system Runtime images Can be used to run Linux on the target Software Development Kit (SDK) Install on your host PC Desktop Factory tools Install on your host PC SDK will setup your complete Linux cross-development environment including: - Compiler - APIs header files and libraries

25 Deployment

26 Deployment We ll use U-Boot bootloader to load the Linux kernel NFS mounted filesystem Setup entries for the NFS daemon Edit /etc/exports Add the following entry home/timesys-university/session2/factory/rfs Restart the NFS daemon /etc/init.d/nfs-kernel-server restart Enable your tftp server U-Boot environment variables > setenv bootfile uimage-mx51 *(rw,no_root_squash) > setenv bootargs console=ttymxc1,38400 ip=10.0.0.10 root=/dev/nfs rw nfsroot=10.0.0.1:/home/timesysuniversity/session2/factory/rfs video=displayfb:vga > setenv bootcmd bootp\;bootm > setenv loadaddr 90800000 > saveenv

27 What We Have Accomplished Learned about ConnectCore Wi-i.MX51 LinuxLink needed for all exercises Reflected product requirements in Linux BSP and SDK Built a custom BSP with LinuxLink Web Edition Experiment on day one with a pre-built starting point Setup a development environment System level development and optimizations Development of a value-add software (applications) Deployed the system on the target via NFS for future development Transferred images Configured bootloader

28 Next Session March 9th @ 1pm EST How to build a control application using Qt Embedded for Linux to design a UI experience Install TimeStorm with Qt development tools Design a simple Home Automation application w/ GUI Development and testing using host environment Add needed code to control GPIO attached devices this will involve patching the Linux kernel Use sysfs to control the state of GPIO connected LEDs More fun to come

29 Homework 1. Outline your own requirements 2. Assemble a BSP that matches your needs 3. Setup your development environment 4. Run your custom Linux images on your hardware Let us know if you run into any challenges. We have setup a dedicated communication channel to share questions, comments and replies. Please subscribe at https://lists.timesys.com/listinfo/timesys-university While your questions will be answered by Timesys expert engineers, we encourage you to answer questions asked by others. Sharing experiences is always the best way to learn.

30 Glossary LinuxLink (Web Edition) Web-based version of LinuxLink LinuxLink (Desktop Edition) Local version with full customization and third-party tools integration Workorder Stores definition of your software filenames, versions Bootloader Runs first, initializes necessary hardware, loads Linux Linux kernel Operating system that manages hardware access and other features for higher level software Device Driver Code that s part of a Linux kernel, defines how software accesses specific hardware File System All files (libraries/utilities/scripts/etc.) combined on a single storage, e.g. NAND flash Middleware Complete frameworks including APIs, utilities that provide specific functionality, e.g. QT API (library) Used by applications, provide functionality, abstract hardware access Toolchain (cross) The most important part of the development environment. Used to compile source code into binaries.

31 About Timesys Carnegie Mellon University spin-off in 1996 First real-time embedded Linux distribution First to register carrier grade Linux (CGL) First to market with an open source, commercialgrade embedded Linux development framework (LinuxLink) First to develop and deliver an award-winning, automated, intelligent, embedded Linux build system (LinuxLink 3.0) Real-time Linux Leadership First embedded Eclipse-based Tools Customized Linux Versions First to register carriergrade Linux distribution Integrate Real-time with OS Community First to market open source, commercialgrade Linux product LinuxLink 1.0 LinuxLink 2.0 First to deliver an automated, intelligent build system LinuxLink 3.0 2001 Manual Customized Builds 2002 2003 2004 2005 2007 2009 Automated Build/Test Hosted Build System Semis adapt Build system 100% Open Source Intelligent Build system

32 More Info You can download the slides for today s session at http:///embedded-linux/training/timesysuniversity/digi_wi-imx51 You can view a recording of today s session at http:///embedded-linux/training/timesysuniversity/digi_wi-imx51 Stay Online for Q&A!