X(cross) Development System X(cross) Development System make AGL - - PowerPoint PPT Presentation

x cross development system x cross development system
SMART_READER_LITE
LIVE PREVIEW

X(cross) Development System X(cross) Development System make AGL - - PowerPoint PPT Presentation

X(cross) Development System X(cross) Development System make AGL application development easier make AGL application development easier December 2017 Sbastien Douheret sebastien.douheret@iot.bzh IoT.bzh Located in France - Brittany (


slide-1
SLIDE 1

December 2017

X(cross) Development System

make AGL application development easier

Sébastien Douheret sebastien.douheret@iot.bzh

X(cross) Development System

make AGL application development easier

slide-2
SLIDE 2

December 2017 X(cross) Development System 2

IoT.bzh

  • Located in France - Brittany

( Vannes / Lorient / Rennes )

  • People background:

– 40% coming from Tizen IVI (Intel+Samsung) – 40% coming from Wind River – 20% coming from industry

  • Working on AGL since 2015
  • First technical contributor
  • n AGL
slide-3
SLIDE 3

December 2017 X(cross) Development System 3

Key Focuses

  • Cybersecurity
  • Secure Application Framework (life cycle, MAC, Cynara, Systemd, Cgroups,

Namespaces ...)

  • Vehicle to Cloud, Identity management
  • Securing key platform services (audio, signaling, graphics …)
  • Development Tools
  • Docker Platform development (AGL SDK)
  • Apps development from IDE: XDS (Cross Development System)
  • Platform Monitoring tools
  • Integration
  • Yocto recipes, Releases automation & Testing (CI)
  • Renesas boards support
  • Community Support
  • Documentation (kickstart, developer samples, guides …)
  • White Papers & Conferences (Genivi, AGL, Fosdem, ELC …)
slide-4
SLIDE 4

December 2017 X(cross) Development System 4

X(cross) Development System (XDS)

  • Dedicated to Applications Developers

enable apps developer without Yocto skills →

  • Cross-platform build using AGL SDK toolchain
  • Secure packaging (.wgt files including signatures)
  • Deploy on development boards (or Qemu image)
  • Remote debugging from IDE
  • Easy target access (console, SSH, …)
  • Developer environment is a standard IDE
  • Dashboard Web App to manage configurations and

trigger actions

  • Provide an XDS API

ie CI workflows or specific environments →

slide-5
SLIDE 5

December 2017 X(cross) Development System 5

Key Features

  • Multi-platform : no dependencies on developer host

(Linux / Windows / MacOS)

  • Easy to setup

Near-zero install, no admin privileges required

  • Application sources remain local

Compatibility with existing IT policies (e.g. corporate backup, git, ...)

  • Cross toolchain & tools embedded in a container :
  • Local : run locally (local subsystem, virtual machine, docker

container ...)

  • On-premises : run on a local build server
  • Cloud : SaaS
  • Leverage specific OS capabilities where applicable

(e.g. Linux for Windows Subsystem, docker)

slide-6
SLIDE 6

December 2017 X(cross) Development System 6

Targeted Use Cases

Single Host mode

  • Host: Windows
  • IDE: Eclipse
  • Container: Linux

Subsystem

  • Sources: shared

through native access

Local Network mode

  • Host: Linux
  • IDE: Visual Code
  • Container: Docker
  • Sources: shared

through docker volume

Cloud mode

  • Host: Linux
  • IDE: Eclipse
  • Container: Docker

running in the Cloud

  • Sources: shared

through sync tool

Dev Host

IDE Docker XDS Server

Target

Local network

Cloud Target Dev Host Windows

Linux Subsystem XDS Server IDE USB or local network

Dev Host Linux

IDE

Build Host

Docker XDS server

Target

Local network

slide-7
SLIDE 7

December 2017 X(cross) Development System 7

Architecture

AGL repo

Development Host

Linux / Windows / MacOS

Development Host

Linux / Windows / MacOS

XDS Server Container

Local or remote

XDS Server Container

Local or remote App sources

IDE UI

(Eclipse, Visual Studio Code, …)

XDS-server File Sync

Local network

  • r

Cloud network

REST + WS

These blocks may be bypassed when fjles can be shared over a local network (eg. NFS mount or docker volume)

Target Target

deployment Files

App sources (duplicated) Cross Toolchain B Cross Toolchain A

XDS-agent File Sync

Direct link (eg. USB <=> Ethernet) XDS plugin Files

Command line

xds-cli

slide-8
SLIDE 8

December 2017 X(cross) Development System 8

XDS Implementation

  • Written in GO

(portable Linux/Windows/MacOS)

  • Dashboard (webapp Angular4, TypeScript 2) to make

development setup easier

  • REST API + WebSocket (socket.io)
  • File synchronization based on Syncthing [1] to support

Cloud model

  • XDS server integrated into AGL SDK docker image

(see flavour xds [2])

[1]: https://syncthing.net/ [2]: https://git.automotivelinux.org/AGL/docker-worker-generator/

slide-9
SLIDE 9

December 2017 X(cross) Development System 9

XDS building blocks

  • xds-server

– Core of the system, running in container:

  • REST API interface over HTTP to config and trigger commands
  • Websocket to get asynchronously data (commands output) or events (commands

exit)

  • Control file synchronizer (Syncthing) on server/ in container
  • Manage (install, list, remove) AGL SDKs
  • xds-agent (client)

– Client side part, running on developer host.

  • Provide Dashboard as a webapp
  • Control file synchronizer (Syncthing) on developer's machine
  • Target terminal (work in progress)
  • xds-cli

– Command line tool for XDS.

  • xds-gdb

– Command line tool to allow application debugging (based on gdb).

slide-10
SLIDE 10

December 2017 X(cross) Development System 10

Develop AGL app with XDS

1) Install xds-server on a build server machine 2) Install xds-agent and start-it on your machine 3) Browse XDS dashboard: http://localhost:8800 4) Add a new project 5) Cross build/compile your project using either : 1) Dashboard build page 2) IDE using xds-cli 6) Deploy app 7) Source debug from IDE (xds-gdb)

slide-11
SLIDE 11

December 2017 X(cross) Development System 11

Available as today

  • Release Candidate 1 (v1.0.0-rc1)

– Pre-build docker image including XDS server – Packaged Multi-platforms (Linux / Windows/ MacOS)

host tools : xds-agent, xds-cli, xds-gdb

– Supported file sharing: Cloud mode or path

mapping

– Command line tool (xds-cli) or Webapp (Dashboard) – IDE integration (manual setup) – Debugging mode (based on gdb and AGL app-

templates)

slide-12
SLIDE 12

December 2017 X(cross) Development System 12

Available as today

  • User’s guide and more documentation online:

http://docs.automotivelinux.org/docs/devguides/en/dev/#xcross-development-system-user's-guide

  • Binary packages available for Linux distros on
  • penSuSE Build Service:

https://build.opensuse.org/project/show/isv:LinuxAutomotive:app-Development

  • Sources available on Github

– xds-server : https://github.com/iotbzh/xds-server – xds-agent : https://github.com/iotbzh/xds-agent – xds-cli: https://github.com/iotbzh/xds-cli – xds-gdb: https://github.com/iotbzh/xds-gdb

slide-13
SLIDE 13

December 2017 X(cross) Development System 13

1st Release v1.0.0 (CES – January 18)

  • Dashboard improvements
  • Support multiple file sharing (simple path-

mapping, NFS, syncthing)

  • AGL SDK management (add, remove)
  • Target setup and target terminal integration in

dashboard

  • Better integration in IDE (templates)
  • Improve/document debugging support
  • Document REST API

Roadmap

slide-14
SLIDE 14

December 2017 X(cross) Development System 14

Contacts

  • Sébastien Douheret

<sebastien.douheret@iot.bzh>

  • Stéphane Desneux

<stephane.desneux@iot.bzh>

slide-15
SLIDE 15

December 2017 X(cross) Development System 15

Q&A

Gulf of Morbihan, south of Brittany, France