SlideShare a Scribd company logo
Qualcomm Developer Network Presents
Developing for Industrial IoT with Embedded Linux OS on
DragonBoard™ 410c by Timesys University
SESSION 1: Introduction to DragonBoard 410 SoC
and Starting Development of Your Embedded Linux
based “Industrial Internet of Things” (IIoT) Device
Co-sponsored by Qualcomm Technologies, Inc. and Arrow Electronics
www.timesys.com ©2017 Timesys Corp.
Session 1
Introduction to DragonBoard 410c and Starting
Development of Your Embedded Linux based
Industrial Internet of Things (IIoT) Device
Maceij Halaz, Vice President of Technology
Timesys Corporation
www.timesys.com ©2017 Timesys Corp.
3 Webinar Series
This is one of a 4-part webinar series Developing for Industrial IoT with Linux OS on DragonBoard™ 410c to explore the process of building an
embedded Linux based device using the Qualcomm® Snapdragon™ 410E powered DragonBoard 410c development board fromArrow
Electronics. With topics that cover build systems, deployment strategy, designing-in and managing security, device appearance and ease of user
interaction, you’ll gain insight into various aspects of technology and design decisions developers face when choosing to build embedded Linux
based products for this increasingly demanding and expanding connected world.All sessions in this Qualcomm Developer Network sponsored
series are designed to provide hands-on experience throughout the entire development process.
 Session 1: Introduction to DragonBoard 410 SoC and Starting Development of Your Embedded Linux
based “Industrial Internet of Things” (IIoT) Device
• Setup for designing IIoT products
• How to assemble and deploy initial BSP
 Session 2: Application Development for Embedded Linux
• Application development environment setup
• How to reflect product requirements in the BSP
• Communication in the IIoT system
 Session 3: Building a Cutting-Edge User Interface with Qt®
• Developing modern, rich UIs for factory terminals
 Session 4: Embedded Products Security
• Designing security-rich devices
Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
www.timesys.com ©2017 Timesys Corp.
4 Session 1 — Agenda
 Development Environment
 Deploying Yocto Project®/OpenEmbedded Linux BSP to your DragonBoard
410c
 Design considerations for IIoT products
• Requirements
 Yocto Project/Open Embedded introduction
• Yocto Project – what is it
• How to get and setup Yocto for the 96Boards™
• Re-building BSP image from scratch
 Software Development Kit
CLICK HERE TO VIEW WEBINAR RECORDING
www.timesys.com ©2017 Timesys Corp.
5
Build Environment
www.timesys.com ©2017 Timesys Corp.
6 What we need to build a product
 A host machine
• Linux is the best — any recent version is ok (Timesys® recommends Ubuntu® LTS)
• Windows is fine, but you’ll need a Windows ® 10 native Linux support or a virtual machine
with a Linux desktop OS installation (Timesys recommends Oracle® VirtualBox™)
 Cross-development environment / SDK
 Linux source code (BSP) for the product
• Bootloader
• Linux kernel
• APIs
 Various Linux host utilities needed by Yocto/OpenEmbedded Linux BSP
 IDE for application and system level development. WYSIWYG IDE for faster UI
development
 A hardware development kit
www.timesys.com ©2017 Timesys Corp.
7 Workstation setup
USB
USB/Serial
ETH
eMMC
• Utilities
• Yocto Project-Core
• Metalayer from Qualcomm Technologies, Inc.
• Timesys metalayer
• 3rd party metalayers
• Development Tools
• Support
uSD
www.timesys.com ©2017 Timesys Corp.
8
Initial Board Setup
www.timesys.com ©2017 Timesys Corp.
9 Where to find Yocto/OpenEmbedded Linux BSP binaries for
deployment
 Files representing reference software for the DragonBoard 410c can be
downloaded from the 96Boards website:
http://builds.96boards.org/releases/dragonboard410c/linaro/openembedded/latest/rpb/
 Linux images
• Debian®
• OpenEmbedded (Yocto)
 Yocto images
• Split into deployable components
– Root filesystem
– Bootloader
– Linux kernel
www.timesys.com ©2017 Timesys Corp.
10 Deploying Linux images to the DragonBoard 410c
 DragonBoard 410c supports two methods software of deployment
1. SD card (complete software image/rescue image)
2. USB connector (individual software images)
 Second method is intended for customizations and frequent updates
 Rescue images are provided at
http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/
 Board rescue process:
• Step 1: Download and unzip SD card Install Image
• Step 2: Find SD card device name
• Step 3: Install Rescue Image onto SD card
• Step 4: Boot DragonBoard 410c from an SD card
• Step 6: Flash Yocto/OpenEmbedded Linux BSP images
into EMMC™
www.timesys.com ©2017 Timesys Corp.
11 Image Deployment — SD card (1)
 Helper for the flashing process:
• Step 1: From the URL provided on the previous slide download the rescue image for
the DragonBoard 410c. The image to be downloaded:
dragonboard410c_sdcard_rescue-79.zip
• Uncompress the archive with the command:
• Step 2: Find microSD card device name on your host. Run the following command in a
terminal window:
 Note: Run this command before and after inserting the microSD card into
host PC microSD card reader
• Step 3: Install rescue image onto microSD card. Use the following command to flash
image to microSD card
$ sudo dd if=db410c_sd_rescue.img of=/dev/XXX bs=4M oflag=sync status=noxfer
$ lsblk
$ unzip dragonboard410c_sdcard_rescue-79.zip
www.timesys.com ©2017 Timesys Corp.
12 Image Deployment — SD card (2)
 Helper for the flashing process:
• Step 4: Booting DragonBoard 410c with SD card
– Make sure DragonBoard 410c is unplugged from power
– Set S6 switch on DragonBoard 410c to 0-1-0-0, “SD Boot switch” should be set to
“ON”.
– Insert the microSD card into the DragonBoard 410c
– Connect DragonBoard 410c microUSB port to PC’s USB Host with a cable
– Plug power adaptor into DragonBoard 410c, wait 5s for board to boot up.
Note: No onboard LED will light up in this process!
– We have set the DragonBoard in the “fastboot mode”
www.timesys.com ©2017 Timesys Corp.
13 Image Deployment — SD card (3)
 Helper for the flashing process:
• Step 5: Flash Yocto/OpenEmbedded Linux BSP images
• In the fastboot mode, DragonBoard can accept images sent from the
Host PC via USB OTG port.
– On the Host PC, check for connected fastboot devices with the command:
– Create partitions on the EMMC and Flash the bootloader. Use flashall script provided
– Boot and filesystem images can be found in:
http://builds.96boards.org/releases/dragonboard410c/linaro/openembedded/latest/rpb/
– Flash the runtime files with the command
– Remove the SD Card
– Set S6 switch on DragonBoard 410c back to 0-0-0-0, all switches set to “OFF”
– Power cycle the DragonBoard 410c to reboot.
$ sudo fastboot devices
$ sudo ./flashall
$ sudo fastboot flash boot boot--4.9-r0-dragonboard-410c-20170803175648-18-18.img
$ sudo fastboot flash rootfs rpb-console-image-dragonboard-410c-20170803175648-
18.rootfs.ext4
www.timesys.com ©2017 Timesys Corp.
14 LAB 1 — Yocto/OpenEmbedded Linux BSP Deployment
 Deploy Yocto Linux BSP images to the DragonBoard 410c using board recovery
method
 Boot the board to verify proper image flashing into eMMC
www.timesys.com ©2017 Timesys Corp.
15
Developing Industrial IoT Devices
www.timesys.com ©2017 Timesys Corp.
16 Industrial IoT has many requirements
www.timesys.com ©2017 Timesys Corp.
17 Why IoT is important in Industrial setting
 Industrial plants
• Operate at capacity
• Operate at efficiency
 Challenges
• Predict undesired process conditions
• Minimize equipment failures
 Industrial IoT provides
• Optimal business performance
• Improved process reliability
– Capturing and analyzing data
– Identify warnings and potential issues
– Preemptive service of equipment
www.timesys.com ©2017 Timesys Corp.
18 Example of an IIoT system
 Data collection end-point
• Sensors
• Local connectivity
• Actuators
• Displays
• Autonomous decision logic
 Data concentrator
• Sensors
• Local connectivity
• Resources for local data processing
• Cloud connection infrastructure
 Analytics
• Integrate multiple production processes
• Can be company wide
www.timesys.com ©2017 Timesys Corp.
19 Why do companies care about IIoT?
 Increase asset utilization
• Reduce unplanned downtime
• Predict failures
• Pro-active response
 Increase operating efficiency
• Reduction in energy usage
• Increased engineering effectiveness by monitoring
• Integrated decision support mechanism
 Increase in Safety
• Minimize risks by ensuring stable operations
• No production interruptions due to safety check
 Reduce maintenance cost
• Optimize maintenance based on real asset conditions
• Pre-emptive addressing of issues
www.timesys.com ©2017 Timesys Corp.
20 IIoT Point requirements
 Requirements are Industry Process
specific
 Topography of IIoT can vary
 Requirements typically include
• Connectivity:
– Bluetooth®
– Ethernet ®
– WiFi™
– BUS
• Sensors:
– Discrete
– Continuous
• Sensor examples
– Temperature
– Pressure
– Movement
– ON/OFF
HUB/Concentrator
Autonomous Decision
Humidity &
Temperature
Accelerometer
& Gyroscope
Luminosity &
Color Detection
Pressure
Sensing
Magnetic
Sensor
www.timesys.com ©2017 Timesys Corp.
21 Software for IIoT device — baseline
Bootloader
Middleware
RFS (rootfs)
shell
Qualcomm
410c
USB
Touch
Screen
HDMI
Linux kernel
IIoT Sensor/Action Node
CameraUser Interface, Buttons, Stream sel, etc
SDIOGPIO
Button
Network control
interface
Auto-launch
Qt Embedded
Driver Driver
networking
Wireless tools
openssh
Driver Driver
Shared
MemoryDriver
sysfs
Splash
Screen
setup
scripts
Ethernet
Driver Driver
Serial
Sensor Control
QT MQTT
Memory
setup
script MQTT
API
1
2
3
Bluetooth
WIFI
Severalimagesusedin
YoctoBSPdeployment
www.timesys.com ©2017 Timesys Corp.
22
Yocto Project
www.timesys.com ©2017 Timesys Corp.
23 Yocto/Open Embedded build process
www.timesys.com ©2017 Timesys Corp.
24 96Boards Yocto structure
96Boards Yocto Project Core
meta-openembedded
recipes-core recipes-bsp recipes-kernel
recipes-multimedia recipes-…
OpenEmbedded Core (openembedded-core)
Execution Engine
scripts Bitbake
meta-qcom meta-qt5 meta-timesys
meta-rpb
meta-96boards
meta-linaro
www.timesys.com ©2017 Timesys Corp.
25 Building and Customizing Linux BSP
 Yocto based desktop tools
 BSP Customizations
• Reflecting IIoT specific device requirements
Download Yocto
Setup for
410c
Rebuild
reference
BSP image
Build SDK
Customize
BSP
96Boards forum Timesys ticket based
Support
Session 1 Session 2
www.timesys.com ©2017 Timesys Corp.
26
1Initial Yocto Project Setup
www.timesys.com ©2017 Timesys Corp.
27 Host Environment
 Depending on the Host System used, make sure that you have installed all
required packages to run Yocto
 Ubuntu/Debian
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo 
build-essential chrpath libsdl1.2-dev xterm curl
 CentOS™
$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl 
patch diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath 
socat SDL-devel xterm
 For other host OS
http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html
www.timesys.com ©2017 Timesys Corp.
28 Repo tool and GIT™ setup
 Provides a unified command to download software from multiple sources
 Used by Android™ and leveraged by 96Boards
 Install the tool from Google®
$ mkdir ~/bin
$ curl http://commondatastorage.googleapis.com/git-repo-
downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
 GIT setup
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
$ git config --list
www.timesys.com ©2017 Timesys Corp.
29 Getting Yocto
 Yocto for the 96Boards can be assembled from two sources:
1. github.org
2. yoctoproject.org (Toaster option will be discussed in Session 2)
 Getting source code from GitHub™:
$ mkdir 96boards-rpb
$ cd 96boards-rpb
$ repo init -u https://github.com/96boards/oe-rpb-manifest.git -b morty
$ repo sync
 Core Yocto and additional metalayers are installed
• meta-96boards
– Holds definitions for 96Boards
• meta-qcom
– Provides definition for boards including DragonBoards
• meta-timesys
www.timesys.com ©2017 Timesys Corp.
30 meta-timesys
 Provides additional features from Timesys which can be applied to any Yocto
• Helps share information about YOUR current Yocto configuration with Timesys
engineers and support teams
– Facilitates investigative work on YOUR specific questions
• Provides proactive update service
– Find out what are the new updates available from open source that are relevant to the
product
• Provides security feed that is relevant to your board and your BSP/Yocto configuration
– You decide when an update should be applied
– You get an on-demand list of vulnerabilities that affect your product
• Available from GitHub
www.timesys.com ©2017 Timesys Corp.
31
2Configuring Yocto for DragonBoard 410c
www.timesys.com ©2017 Timesys Corp.
32 LAB 2: Yocto configuration
 Running setup-environment script starts Yocto configuration wizard
• Command to configure and setup Yocto:
• In the setup wizard you can choose:
– MACHINE ID i.e. dragonboard410c
– DISTRO i.e. rpb
• Choices come from 96Boards specific metalayers
– meta-96boards
– meta-qcom
$ source setup-environment
www.timesys.com ©2017 Timesys Corp.
33
3Running Yocto Build for the DragonBoard 410c
www.timesys.com ©2017 Timesys Corp.
34 Exercise 3: Rebuilding console images
 96Boards Yocto takes advantage of “caches”
• The goal is to accelerate build process
• Can be copied to other machines
• Contain build output
• The following variables are typically placed in your conf/local.conf – in Linaro™ Yocto, it is placed in site.conf
– DL_DIR = /home/tsu/LAB-410c/96boards-yocto/downloads
– SSTATE_DIR = /home/tsu/LAB-410c/96boards-yocto/sstate-cache
 BSP image definition – special type of recipe
 Building a BSP image
$ bitbake rpb-console-image
Image Name Description
rpb-console-image Console image
rpb-desktop-image Image that’s based on X11, leveraging hardware acceleration
rpb-wayland-image Image with lightweight windowing system
rpb-qt5-image Image with QT5 toolkit
www.timesys.com ©2017 Timesys Corp.
35 Yocto output
 Output from the build is stored in several directories
 tmp/deploy
 Images for deployment
 tmp/work
 Source code, the patches, last build
We can now re-test images built using deployment
process discussed earlier
www.timesys.com ©2017 Timesys Corp.
36
4Building Yocto SDK for Application Development with
the DragonBoard 410c
www.timesys.com ©2017 Timesys Corp.
37 LAB 4: Building a Yocto SDK
 The Yocto Project is not intended for application development
 A separate SDK can be generated from a Yocto Project build
• Once created, SDK is completely independent of the Yocto Project build system
• Come in a form of a shell script which facilitates SDK setup on a development host
 Yocto allows you to generate two types of SDKs:
1. Generic i.e.
2. Image based i.e.
$ bitbake meta-toolchain
$ bitbake –c populate_sdk rpb-console-image
www.timesys.com ©2017 Timesys Corp.
38
Questions?
developer.qualcomm.com 96boards.org arrow.com timesys.com
Thank you
All data and information contained in or disclosed by this document is confidential and proprietary information of Qualcomm Technologies, Inc. and/or its affiliated
companies and all rights therein are expressly reserved. By accepting this material the recipient agrees that this material and the information contained therein is to
be held in confidence and in trust and will not be used, copied, reproduced in whole or in part, nor its contents revealed in any manner to others without the express
written permission of Qualcomm Technologies, Inc. Nothing in these materials is an offer to sell any of the components or devices referenced herein.
©2017 Qualcomm Technologies, Inc. and/or its affiliated companies. All Rights Reserved.
Qualcomm, Snapdragon and DragonBoard are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other products and
brand names may be trademarks or registered trademarks of their respective owners.
References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within
the Qualcomm corporate structure, as applicable.

Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent
portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of Qualcomm’s
engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business, QCT.
Follow us on:
For more information, visit us at:
www.qualcomm.com & www.qualcomm.com/blog

More Related Content

What's hot (20)

PDF
The end of embedded Linux (as we know it)
Chris Simmonds
 
PDF
Read-only rootfs: theory and practice
Chris Simmonds
 
PDF
Linux field-update-2015
Chris Simmonds
 
PDF
Embedded Android: Android beyond the smartphone
Chris Simmonds
 
PDF
How we test tvideo at skype
QA Club Kiev
 
PDF
Android beyond the smartphone
Chris Simmonds
 
PDF
Software update for embedded systems - elce2014
Stefano Babic
 
PDF
Android rpi-csimmonds-fosdem-2019
Chris Simmonds
 
PDF
Userspace drivers-2016
Chris Simmonds
 
PDF
Embedded Linux Quick Start Guide v1.5
Chris Simmonds
 
PDF
Reducing boot time in embedded Linux
Chris Simmonds
 
PDF
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Chris Simmonds
 
PDF
Linux power management: are you doing it right?
Chris Simmonds
 
PDF
Skype testing overview
QA Club Kiev
 
PDF
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
 
PDF
Software update for IoT: the current state of play
Chris Simmonds
 
PDF
A timeline for embedded Linux
Chris Simmonds
 
PDF
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Anne Nicolas
 
PDF
Reducing the boot time of Linux devices
Chris Simmonds
 
PDF
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Anne Nicolas
 
The end of embedded Linux (as we know it)
Chris Simmonds
 
Read-only rootfs: theory and practice
Chris Simmonds
 
Linux field-update-2015
Chris Simmonds
 
Embedded Android: Android beyond the smartphone
Chris Simmonds
 
How we test tvideo at skype
QA Club Kiev
 
Android beyond the smartphone
Chris Simmonds
 
Software update for embedded systems - elce2014
Stefano Babic
 
Android rpi-csimmonds-fosdem-2019
Chris Simmonds
 
Userspace drivers-2016
Chris Simmonds
 
Embedded Linux Quick Start Guide v1.5
Chris Simmonds
 
Reducing boot time in embedded Linux
Chris Simmonds
 
Debian or Yocto Project? Which is the best for your Embedded Linux project?
Chris Simmonds
 
Linux power management: are you doing it right?
Chris Simmonds
 
Skype testing overview
QA Club Kiev
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Chris Simmonds
 
Software update for IoT: the current state of play
Chris Simmonds
 
A timeline for embedded Linux
Chris Simmonds
 
Kernel Recipes 2017 - Developing an embedded video application on dual Linux ...
Anne Nicolas
 
Reducing the boot time of Linux devices
Chris Simmonds
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Anne Nicolas
 

Similar to Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1 (20)

PDF
ABS 2014 - The Growth of Android in Embedded Systems
Benjamin Zores
 
PDF
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
PDF
Android Lollipop
Željko Plesac
 
DOC
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
PDF
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Odinot Stanislas
 
PDF
Zephyr-Overview-20230124.pdf
ibramax
 
PDF
Lick my Lollipop
Tamara Momčilović
 
PDF
ProSBC on Azure - A Tutorial
TelcoBridges Inc.
 
PPTX
ProSBC on Azure - A Tutorial
Alan Percy
 
PDF
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
MediaTek Labs
 
PDF
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdf
ICS
 
PDF
Installing Cognos 10.2.1: Tips and Tricks from the Trenches
Senturus
 
PDF
5GCroCo_DockerSecurityBasics_Training.pdf
MaghsoudAbbasPour1
 
PPTX
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
Agile Testing Alliance
 
PPTX
Android - Application Framework
Yong Heui Cho
 
PDF
Docker Enterprise Deployment Planning
Stephane Woillez
 
PDF
Strategy, planning and governance for enterprise deployments of containers - ...
The Incredible Automation Day
 
PDF
SystemReady IR and MediaTek Genio-1200-EVK - Tech part - COSCUP 20240804
Macpaul Lin
 
PPT
Developing new zynq based instruments
Graham NAYLOR
 
PDF
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
FIDO Alliance
 
ABS 2014 - The Growth of Android in Embedded Systems
Benjamin Zores
 
IoT: Contrasting Yocto/Buildroot to binary OSes
Mender.io
 
Android Lollipop
Željko Plesac
 
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Odinot Stanislas
 
Zephyr-Overview-20230124.pdf
ibramax
 
Lick my Lollipop
Tamara Momčilović
 
ProSBC on Azure - A Tutorial
TelcoBridges Inc.
 
ProSBC on Azure - A Tutorial
Alan Percy
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
MediaTek Labs
 
Software Bill of Materials - Accelerating Your Secure Embedded Development.pdf
ICS
 
Installing Cognos 10.2.1: Tips and Tricks from the Trenches
Senturus
 
5GCroCo_DockerSecurityBasics_Training.pdf
MaghsoudAbbasPour1
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
Agile Testing Alliance
 
Android - Application Framework
Yong Heui Cho
 
Docker Enterprise Deployment Planning
Stephane Woillez
 
Strategy, planning and governance for enterprise deployments of containers - ...
The Incredible Automation Day
 
SystemReady IR and MediaTek Genio-1200-EVK - Tech part - COSCUP 20240804
Macpaul Lin
 
Developing new zynq based instruments
Graham NAYLOR
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
FIDO Alliance
 
Ad

More from Qualcomm Developer Network (20)

PPTX
How to take advantage of XR over 5G: Understanding XR Viewers
Qualcomm Developer Network
 
PPTX
What consumers want in their next XR device
Qualcomm Developer Network
 
PPTX
More Immersive XR through Split-Rendering
Qualcomm Developer Network
 
PPTX
Making an on-device personal assistant a reality
Qualcomm Developer Network
 
PDF
Connected Lighting: The Next Frontier in the Internet of Everything
Qualcomm Developer Network
 
PDF
Bring Out the Best in Embedded Computing
Qualcomm Developer Network
 
PDF
Android Tools for Qualcomm Snapdragon Processors
Qualcomm Developer Network
 
PDF
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Developer Network
 
PDF
How to Minimize Your App’s Power Consumption
Qualcomm Developer Network
 
PDF
LTE Broadcast/Multicast for Live Events & More
Qualcomm Developer Network
 
PDF
The Fundamentals of Internet of Everything Connectivity
Qualcomm Developer Network
 
PDF
The Future Mobile Security
Qualcomm Developer Network
 
PDF
Get Educated on Education Apps
Qualcomm Developer Network
 
PDF
Bringing Mobile Vision to Wearables
Qualcomm Developer Network
 
PDF
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Qualcomm Developer Network
 
PDF
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Qualcomm Developer Network
 
PDF
Wireless Audio: A Killer App for the Internet of Everything
Qualcomm Developer Network
 
PDF
Bridging the Physical & Digital Worlds with Gimbal
Qualcomm Developer Network
 
PDF
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Developer Network
 
PDF
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
Qualcomm Developer Network
 
How to take advantage of XR over 5G: Understanding XR Viewers
Qualcomm Developer Network
 
What consumers want in their next XR device
Qualcomm Developer Network
 
More Immersive XR through Split-Rendering
Qualcomm Developer Network
 
Making an on-device personal assistant a reality
Qualcomm Developer Network
 
Connected Lighting: The Next Frontier in the Internet of Everything
Qualcomm Developer Network
 
Bring Out the Best in Embedded Computing
Qualcomm Developer Network
 
Android Tools for Qualcomm Snapdragon Processors
Qualcomm Developer Network
 
Qualcomm Snapdragon Processors: A Super Gaming Platform
Qualcomm Developer Network
 
How to Minimize Your App’s Power Consumption
Qualcomm Developer Network
 
LTE Broadcast/Multicast for Live Events & More
Qualcomm Developer Network
 
The Fundamentals of Internet of Everything Connectivity
Qualcomm Developer Network
 
The Future Mobile Security
Qualcomm Developer Network
 
Get Educated on Education Apps
Qualcomm Developer Network
 
Bringing Mobile Vision to Wearables
Qualcomm Developer Network
 
Introduction to Qualcomm Vuforia Mobile Vision Platform: Toy Recognition
Qualcomm Developer Network
 
Using Qualcomm Vuforia to Build Breakthrough Mobile Experiences
Qualcomm Developer Network
 
Wireless Audio: A Killer App for the Internet of Everything
Qualcomm Developer Network
 
Bridging the Physical & Digital Worlds with Gimbal
Qualcomm Developer Network
 
Qualcomm Vuforia Mobile Vision Platform: Smart Terrain for Depth-Sensing Cameras
Qualcomm Developer Network
 
Hands-On with the Qualcomm Vuforia Mobile Vision Platform (Beginning tutorial)
Qualcomm Developer Network
 
Ad

Recently uploaded (20)

PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
Using Google Data Studio (Looker Studio) to Create Effective and Easy Data Re...
Orage Technologies
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Lecture A - AI Workflows for Banking.pdf
Dr. LAM Yat-fai (林日辉)
 
PPTX
PCU Keynote at IEEE World Congress on Services 250710.pptx
Ramesh Jain
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
SalesForce Managed Services Benefits (1).pdf
TechForce Services
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
PDF
Basics of Electronics for IOT(actuators ,microcontroller etc..)
arnavmanesh
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Using Google Data Studio (Looker Studio) to Create Effective and Easy Data Re...
Orage Technologies
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Lecture A - AI Workflows for Banking.pdf
Dr. LAM Yat-fai (林日辉)
 
PCU Keynote at IEEE World Congress on Services 250710.pptx
Ramesh Jain
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
SalesForce Managed Services Benefits (1).pdf
TechForce Services
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
Basics of Electronics for IOT(actuators ,microcontroller etc..)
arnavmanesh
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 

Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 1

  • 1. Qualcomm Developer Network Presents Developing for Industrial IoT with Embedded Linux OS on DragonBoard™ 410c by Timesys University SESSION 1: Introduction to DragonBoard 410 SoC and Starting Development of Your Embedded Linux based “Industrial Internet of Things” (IIoT) Device Co-sponsored by Qualcomm Technologies, Inc. and Arrow Electronics
  • 2. www.timesys.com ©2017 Timesys Corp. Session 1 Introduction to DragonBoard 410c and Starting Development of Your Embedded Linux based Industrial Internet of Things (IIoT) Device Maceij Halaz, Vice President of Technology Timesys Corporation
  • 3. www.timesys.com ©2017 Timesys Corp. 3 Webinar Series This is one of a 4-part webinar series Developing for Industrial IoT with Linux OS on DragonBoard™ 410c to explore the process of building an embedded Linux based device using the Qualcomm® Snapdragon™ 410E powered DragonBoard 410c development board fromArrow Electronics. With topics that cover build systems, deployment strategy, designing-in and managing security, device appearance and ease of user interaction, you’ll gain insight into various aspects of technology and design decisions developers face when choosing to build embedded Linux based products for this increasingly demanding and expanding connected world.All sessions in this Qualcomm Developer Network sponsored series are designed to provide hands-on experience throughout the entire development process.  Session 1: Introduction to DragonBoard 410 SoC and Starting Development of Your Embedded Linux based “Industrial Internet of Things” (IIoT) Device • Setup for designing IIoT products • How to assemble and deploy initial BSP  Session 2: Application Development for Embedded Linux • Application development environment setup • How to reflect product requirements in the BSP • Communication in the IIoT system  Session 3: Building a Cutting-Edge User Interface with Qt® • Developing modern, rich UIs for factory terminals  Session 4: Embedded Products Security • Designing security-rich devices Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.
  • 4. www.timesys.com ©2017 Timesys Corp. 4 Session 1 — Agenda  Development Environment  Deploying Yocto Project®/OpenEmbedded Linux BSP to your DragonBoard 410c  Design considerations for IIoT products • Requirements  Yocto Project/Open Embedded introduction • Yocto Project – what is it • How to get and setup Yocto for the 96Boards™ • Re-building BSP image from scratch  Software Development Kit CLICK HERE TO VIEW WEBINAR RECORDING
  • 5. www.timesys.com ©2017 Timesys Corp. 5 Build Environment
  • 6. www.timesys.com ©2017 Timesys Corp. 6 What we need to build a product  A host machine • Linux is the best — any recent version is ok (Timesys® recommends Ubuntu® LTS) • Windows is fine, but you’ll need a Windows ® 10 native Linux support or a virtual machine with a Linux desktop OS installation (Timesys recommends Oracle® VirtualBox™)  Cross-development environment / SDK  Linux source code (BSP) for the product • Bootloader • Linux kernel • APIs  Various Linux host utilities needed by Yocto/OpenEmbedded Linux BSP  IDE for application and system level development. WYSIWYG IDE for faster UI development  A hardware development kit
  • 7. www.timesys.com ©2017 Timesys Corp. 7 Workstation setup USB USB/Serial ETH eMMC • Utilities • Yocto Project-Core • Metalayer from Qualcomm Technologies, Inc. • Timesys metalayer • 3rd party metalayers • Development Tools • Support uSD
  • 8. www.timesys.com ©2017 Timesys Corp. 8 Initial Board Setup
  • 9. www.timesys.com ©2017 Timesys Corp. 9 Where to find Yocto/OpenEmbedded Linux BSP binaries for deployment  Files representing reference software for the DragonBoard 410c can be downloaded from the 96Boards website: http://builds.96boards.org/releases/dragonboard410c/linaro/openembedded/latest/rpb/  Linux images • Debian® • OpenEmbedded (Yocto)  Yocto images • Split into deployable components – Root filesystem – Bootloader – Linux kernel
  • 10. www.timesys.com ©2017 Timesys Corp. 10 Deploying Linux images to the DragonBoard 410c  DragonBoard 410c supports two methods software of deployment 1. SD card (complete software image/rescue image) 2. USB connector (individual software images)  Second method is intended for customizations and frequent updates  Rescue images are provided at http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/  Board rescue process: • Step 1: Download and unzip SD card Install Image • Step 2: Find SD card device name • Step 3: Install Rescue Image onto SD card • Step 4: Boot DragonBoard 410c from an SD card • Step 6: Flash Yocto/OpenEmbedded Linux BSP images into EMMC™
  • 11. www.timesys.com ©2017 Timesys Corp. 11 Image Deployment — SD card (1)  Helper for the flashing process: • Step 1: From the URL provided on the previous slide download the rescue image for the DragonBoard 410c. The image to be downloaded: dragonboard410c_sdcard_rescue-79.zip • Uncompress the archive with the command: • Step 2: Find microSD card device name on your host. Run the following command in a terminal window:  Note: Run this command before and after inserting the microSD card into host PC microSD card reader • Step 3: Install rescue image onto microSD card. Use the following command to flash image to microSD card $ sudo dd if=db410c_sd_rescue.img of=/dev/XXX bs=4M oflag=sync status=noxfer $ lsblk $ unzip dragonboard410c_sdcard_rescue-79.zip
  • 12. www.timesys.com ©2017 Timesys Corp. 12 Image Deployment — SD card (2)  Helper for the flashing process: • Step 4: Booting DragonBoard 410c with SD card – Make sure DragonBoard 410c is unplugged from power – Set S6 switch on DragonBoard 410c to 0-1-0-0, “SD Boot switch” should be set to “ON”. – Insert the microSD card into the DragonBoard 410c – Connect DragonBoard 410c microUSB port to PC’s USB Host with a cable – Plug power adaptor into DragonBoard 410c, wait 5s for board to boot up. Note: No onboard LED will light up in this process! – We have set the DragonBoard in the “fastboot mode”
  • 13. www.timesys.com ©2017 Timesys Corp. 13 Image Deployment — SD card (3)  Helper for the flashing process: • Step 5: Flash Yocto/OpenEmbedded Linux BSP images • In the fastboot mode, DragonBoard can accept images sent from the Host PC via USB OTG port. – On the Host PC, check for connected fastboot devices with the command: – Create partitions on the EMMC and Flash the bootloader. Use flashall script provided – Boot and filesystem images can be found in: http://builds.96boards.org/releases/dragonboard410c/linaro/openembedded/latest/rpb/ – Flash the runtime files with the command – Remove the SD Card – Set S6 switch on DragonBoard 410c back to 0-0-0-0, all switches set to “OFF” – Power cycle the DragonBoard 410c to reboot. $ sudo fastboot devices $ sudo ./flashall $ sudo fastboot flash boot boot--4.9-r0-dragonboard-410c-20170803175648-18-18.img $ sudo fastboot flash rootfs rpb-console-image-dragonboard-410c-20170803175648- 18.rootfs.ext4
  • 14. www.timesys.com ©2017 Timesys Corp. 14 LAB 1 — Yocto/OpenEmbedded Linux BSP Deployment  Deploy Yocto Linux BSP images to the DragonBoard 410c using board recovery method  Boot the board to verify proper image flashing into eMMC
  • 15. www.timesys.com ©2017 Timesys Corp. 15 Developing Industrial IoT Devices
  • 16. www.timesys.com ©2017 Timesys Corp. 16 Industrial IoT has many requirements
  • 17. www.timesys.com ©2017 Timesys Corp. 17 Why IoT is important in Industrial setting  Industrial plants • Operate at capacity • Operate at efficiency  Challenges • Predict undesired process conditions • Minimize equipment failures  Industrial IoT provides • Optimal business performance • Improved process reliability – Capturing and analyzing data – Identify warnings and potential issues – Preemptive service of equipment
  • 18. www.timesys.com ©2017 Timesys Corp. 18 Example of an IIoT system  Data collection end-point • Sensors • Local connectivity • Actuators • Displays • Autonomous decision logic  Data concentrator • Sensors • Local connectivity • Resources for local data processing • Cloud connection infrastructure  Analytics • Integrate multiple production processes • Can be company wide
  • 19. www.timesys.com ©2017 Timesys Corp. 19 Why do companies care about IIoT?  Increase asset utilization • Reduce unplanned downtime • Predict failures • Pro-active response  Increase operating efficiency • Reduction in energy usage • Increased engineering effectiveness by monitoring • Integrated decision support mechanism  Increase in Safety • Minimize risks by ensuring stable operations • No production interruptions due to safety check  Reduce maintenance cost • Optimize maintenance based on real asset conditions • Pre-emptive addressing of issues
  • 20. www.timesys.com ©2017 Timesys Corp. 20 IIoT Point requirements  Requirements are Industry Process specific  Topography of IIoT can vary  Requirements typically include • Connectivity: – Bluetooth® – Ethernet ® – WiFi™ – BUS • Sensors: – Discrete – Continuous • Sensor examples – Temperature – Pressure – Movement – ON/OFF HUB/Concentrator Autonomous Decision Humidity & Temperature Accelerometer & Gyroscope Luminosity & Color Detection Pressure Sensing Magnetic Sensor
  • 21. www.timesys.com ©2017 Timesys Corp. 21 Software for IIoT device — baseline Bootloader Middleware RFS (rootfs) shell Qualcomm 410c USB Touch Screen HDMI Linux kernel IIoT Sensor/Action Node CameraUser Interface, Buttons, Stream sel, etc SDIOGPIO Button Network control interface Auto-launch Qt Embedded Driver Driver networking Wireless tools openssh Driver Driver Shared MemoryDriver sysfs Splash Screen setup scripts Ethernet Driver Driver Serial Sensor Control QT MQTT Memory setup script MQTT API 1 2 3 Bluetooth WIFI Severalimagesusedin YoctoBSPdeployment
  • 22. www.timesys.com ©2017 Timesys Corp. 22 Yocto Project
  • 23. www.timesys.com ©2017 Timesys Corp. 23 Yocto/Open Embedded build process
  • 24. www.timesys.com ©2017 Timesys Corp. 24 96Boards Yocto structure 96Boards Yocto Project Core meta-openembedded recipes-core recipes-bsp recipes-kernel recipes-multimedia recipes-… OpenEmbedded Core (openembedded-core) Execution Engine scripts Bitbake meta-qcom meta-qt5 meta-timesys meta-rpb meta-96boards meta-linaro
  • 25. www.timesys.com ©2017 Timesys Corp. 25 Building and Customizing Linux BSP  Yocto based desktop tools  BSP Customizations • Reflecting IIoT specific device requirements Download Yocto Setup for 410c Rebuild reference BSP image Build SDK Customize BSP 96Boards forum Timesys ticket based Support Session 1 Session 2
  • 26. www.timesys.com ©2017 Timesys Corp. 26 1Initial Yocto Project Setup
  • 27. www.timesys.com ©2017 Timesys Corp. 27 Host Environment  Depending on the Host System used, make sure that you have installed all required packages to run Yocto  Ubuntu/Debian $ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm curl  CentOS™ $ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath socat SDL-devel xterm  For other host OS http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html
  • 28. www.timesys.com ©2017 Timesys Corp. 28 Repo tool and GIT™ setup  Provides a unified command to download software from multiple sources  Used by Android™ and leveraged by 96Boards  Install the tool from Google® $ mkdir ~/bin $ curl http://commondatastorage.googleapis.com/git-repo- downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo  GIT setup $ git config --global user.name "Your Name" $ git config --global user.email "Your Email" $ git config --list
  • 29. www.timesys.com ©2017 Timesys Corp. 29 Getting Yocto  Yocto for the 96Boards can be assembled from two sources: 1. github.org 2. yoctoproject.org (Toaster option will be discussed in Session 2)  Getting source code from GitHub™: $ mkdir 96boards-rpb $ cd 96boards-rpb $ repo init -u https://github.com/96boards/oe-rpb-manifest.git -b morty $ repo sync  Core Yocto and additional metalayers are installed • meta-96boards – Holds definitions for 96Boards • meta-qcom – Provides definition for boards including DragonBoards • meta-timesys
  • 30. www.timesys.com ©2017 Timesys Corp. 30 meta-timesys  Provides additional features from Timesys which can be applied to any Yocto • Helps share information about YOUR current Yocto configuration with Timesys engineers and support teams – Facilitates investigative work on YOUR specific questions • Provides proactive update service – Find out what are the new updates available from open source that are relevant to the product • Provides security feed that is relevant to your board and your BSP/Yocto configuration – You decide when an update should be applied – You get an on-demand list of vulnerabilities that affect your product • Available from GitHub
  • 31. www.timesys.com ©2017 Timesys Corp. 31 2Configuring Yocto for DragonBoard 410c
  • 32. www.timesys.com ©2017 Timesys Corp. 32 LAB 2: Yocto configuration  Running setup-environment script starts Yocto configuration wizard • Command to configure and setup Yocto: • In the setup wizard you can choose: – MACHINE ID i.e. dragonboard410c – DISTRO i.e. rpb • Choices come from 96Boards specific metalayers – meta-96boards – meta-qcom $ source setup-environment
  • 33. www.timesys.com ©2017 Timesys Corp. 33 3Running Yocto Build for the DragonBoard 410c
  • 34. www.timesys.com ©2017 Timesys Corp. 34 Exercise 3: Rebuilding console images  96Boards Yocto takes advantage of “caches” • The goal is to accelerate build process • Can be copied to other machines • Contain build output • The following variables are typically placed in your conf/local.conf – in Linaro™ Yocto, it is placed in site.conf – DL_DIR = /home/tsu/LAB-410c/96boards-yocto/downloads – SSTATE_DIR = /home/tsu/LAB-410c/96boards-yocto/sstate-cache  BSP image definition – special type of recipe  Building a BSP image $ bitbake rpb-console-image Image Name Description rpb-console-image Console image rpb-desktop-image Image that’s based on X11, leveraging hardware acceleration rpb-wayland-image Image with lightweight windowing system rpb-qt5-image Image with QT5 toolkit
  • 35. www.timesys.com ©2017 Timesys Corp. 35 Yocto output  Output from the build is stored in several directories  tmp/deploy  Images for deployment  tmp/work  Source code, the patches, last build We can now re-test images built using deployment process discussed earlier
  • 36. www.timesys.com ©2017 Timesys Corp. 36 4Building Yocto SDK for Application Development with the DragonBoard 410c
  • 37. www.timesys.com ©2017 Timesys Corp. 37 LAB 4: Building a Yocto SDK  The Yocto Project is not intended for application development  A separate SDK can be generated from a Yocto Project build • Once created, SDK is completely independent of the Yocto Project build system • Come in a form of a shell script which facilitates SDK setup on a development host  Yocto allows you to generate two types of SDKs: 1. Generic i.e. 2. Image based i.e. $ bitbake meta-toolchain $ bitbake –c populate_sdk rpb-console-image
  • 38. www.timesys.com ©2017 Timesys Corp. 38 Questions? developer.qualcomm.com 96boards.org arrow.com timesys.com
  • 39. Thank you All data and information contained in or disclosed by this document is confidential and proprietary information of Qualcomm Technologies, Inc. and/or its affiliated companies and all rights therein are expressly reserved. By accepting this material the recipient agrees that this material and the information contained therein is to be held in confidence and in trust and will not be used, copied, reproduced in whole or in part, nor its contents revealed in any manner to others without the express written permission of Qualcomm Technologies, Inc. Nothing in these materials is an offer to sell any of the components or devices referenced herein. ©2017 Qualcomm Technologies, Inc. and/or its affiliated companies. All Rights Reserved. Qualcomm, Snapdragon and DragonBoard are trademarks of Qualcomm Incorporated, registered in the United States and other countries. Other products and brand names may be trademarks or registered trademarks of their respective owners. References in this presentation to “Qualcomm” may mean Qualcomm Incorporated, Qualcomm Technologies, Inc., and/or other subsidiaries or business units within the Qualcomm corporate structure, as applicable.

Qualcomm Incorporated includes Qualcomm’s licensing business, QTL, and the vast majority of its patent portfolio. Qualcomm Technologies, Inc., a wholly-owned subsidiary of Qualcomm Incorporated, operates, along with its subsidiaries, substantially all of Qualcomm’s engineering, research and development functions, and substantially all of its product and services businesses, including its semiconductor business, QCT. Follow us on: For more information, visit us at: www.qualcomm.com & www.qualcomm.com/blog