Top Banner
1
35

Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

Dec 01, 2014

Download

Technology

Interested in non-Android Linux on Qualcomm® Snapdragon™ processors? The Linaro Member Build of Ubuntu 14.04 Linux is now available for the embedded Snapdragon 600 processor. This session explains how Linux and embedded community developers can download and install this release on Inforce Computing’s IFC6410 Single Board Computer incorporating the Snapdragon 600 processor to kick start your next Linux project. Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.

Watch this presentation on YouTube: https://www.youtube.com/watch?v=FZymtIkx6b4&index=15&list=PLxeazpXYyqtNm2EnCbfSzy7aKOkHjiaSi
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

1

Page 2: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

Ubuntu Linux on the Qualcomm® Snapdragon™ 600 Processor

Mark Charlebois, Director of Open Source SW Strategy, Qualcomm Innovation Center, Inc. Nicolas Dechesne, Landing Team, Tech Lead, Linaro Krunal Patil, Technical Lead, eInfochips

Qualcomm Snapdragon is a product of Qualcomm Technologies, Inc.

Page 3: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

3

Building a Community

Developer Enablement

• Mydragonboard.org • IFC6410 from Inforce • Linaro Ubuntu Based Developer Releases Solutions • eInfoChips

Page 4: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

4

Linaro

Nicolas Dechesne, Linaro Landing Team Tech Lead

Page 5: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

5

Linaro Overview

Linaro is working to accelerate and improve the open source ecosystem for the ARM architecture, helping to deliver industry leading innovation

Linaro is a collaborative software engineering company funded by members

Instead of duplicating effort for common open source software, companies collaborate to share development costs and software is built once

The work is carried out in the open, tested and then upstreamed into the relevant open source projects: kernel.org, AOSP …

Page 6: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

6

Linaro Members Overview

Founded in 2010 with 6 members, now 28

CORE

CLUB

GROUP

COMMUNITY

Page 7: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

7

Linaro Organization

Technical Steering Committee (TSC) O

ffic

e of

the

CTO

(OC

TO)

Enterprise Group (LEG) 16 companies

Digital Home Group (LHG) 8 companies

Mobile Group (LMG) 10 companies

Networking Group (LNG) 12 companies

Core Development

Kernel

Power Management

Security

Virtualization

Product Technology

LAVA Software Linaro Stable Kernel (LSK) Toolchain

Platform Engineering

Builds & Baselines

Systems

LAVA Lab

QA Services

Member Services

NDA Projects

Linaro Developer Technical Support (LDTS)

Field Engineering

>200 OSS engineers distributed globally

Page 8: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

8

Linux for Broader Embedded Computing

Page 9: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

9

Problem Statement

• Android kernel and user space stack not necessarily applicable in some broader embedded markets

• Lack of standard components support: Gstreamer, X11, Wayland, (embedded) Qt

• One-off Linux kernel drop not helping long development and maintenance cycle

Page 10: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

10

Improvements and Solutions

• Linux Platform releases for Snapdragon • Multimedia and Graphics hardware acceleration for non-

Android Linux • Linux upstream kernel.org development

Page 11: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

11

Linux for Snapdragon

Page 12: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

12

Ubuntu Based Linaro Member Build

Based on standard Ubuntu for ARM (14.04), using Gnome Shell desktop

Access to Ubuntu repositories (apt-get) and updates.

Modified packages: Linux kernel, Mesa, X11 driver, Gstreamer

H/w acceleration enabled when installing proprietary “firmware”

Always based on “current” Ubuntu version

Monthly releases, names <YY>.<MM>, latest release: 14.08 − http://www.linaro.org/downloads/

− http://releases.linaro.org/14.08/ubuntu/ifc6410/

− http://bugs.linaro.org/, against “Qualcomm LT” product

− IRC: #linaro on irc.freenode.net

Page 13: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

13

Release Content

The following pre-built images are released: − boot image that includes prebuilt kernel and initrd

− developer image that includes Ubuntu core packages as well as typical development packages

− gnome image that includes a minimal Gnome Shell environment GUI

All images have a pre-configured user called « linaro »

The images can be flashed on eMMC or installed any other external media such as USB, SD card, SATA.

Support for h/w video codecs and camera is “work in progress”

Linux kernel derived from Code Aurora msm-3.4 kernel. Upgrade to 3.14 is “work in progress”.

Page 14: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

14

Managing Proprietary Firmware Blobs

Proprietary firmware blobs are required − GPU

− DSP

− WLAN

− Video hardware coprocessor (codec)

Need to be acquired legally from board vendor

Simple instructions to pack the firmware files into a separate image and flash into eMMC mkdir image && mount -o loop firmware-ifc6410-20140722-23.img image <extract firmware files in ./image> umount image

Page 15: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

15

Install and Run Linaro Ubuntu Images

Download the release files

Flash the boot and rootfs partition

Optionally flash the firmware partition

Ensure serial connection or USB keyboard/mouse + HDMI display

Optionally (recommended!): use external storage e.g. SSD drive in SATA enclosure

fastboot flash boot boot-ifc6410-20140722-23.img fastboot flash cache firmware-ifc6410-20140722-23.img fastboot flash -S 768M userdata linaro-trusty-gnome-ifc6410-20140722-23.img fastboot continue

Page 16: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

16

A Desktop OS, Using Gnome Shell Environment

Page 17: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

17

You Can Get Some Work Done

Page 18: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

18

Yes, That Too!

Page 19: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

19

… And Relax!

Page 20: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

20

“bare” X-server For Embedded Use Cases And Maximum Performance

Page 21: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

21

IFC6410 Desktop setup

Page 22: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

22

Graphics Stack

Linaro Ubuntu builds are currently based on Open Source “freedreno” graphics driver from freedesktop.org “mesa” project

Using Mesa 10.2.x stable releases

OpenGL 2.1

OpenGLES1.0, 2.0

Additional support to Qualcomm Technologies proprietary driver in future releases

Page 23: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

23

Gstreamer

gst-launch-1.0 filesrc location=<file>.mov ! qtdemux ! avdec_h264 ! glimagesink

Software (CPU) video decoders

GPU rendering (rescale and color conversion)

Gstreamer

plugin with h/w video decoder support

qcom-vidc-dec

Page 24: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

24

Developer Workflow

Ubuntu is a binary based distribution − Installable images are released

− Target devices can be used as development host

Nobody “rebuilds” Ubuntu, images are assembled from binary packages

Each user space package or component builds independently, “natively”

Most development packages (.h files) are available in the Ubuntu archives

Linaro uses Ubuntu Launchpad PPAs − ppa:linaro-maintainers/overlay

− ppa:linaro-maintainers/qcom-overlay

Page 25: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

25

If You Prefer “DIY”

Embedded often requires to build your own GNU/Linux product/distro

The Yocto Project is a handy tool to create customized images − Initial BSP layer available for IFC6410 that brings

accelerated Xserver support − Initial patches accepted upstream in OpenEmbedded

− https://wiki.linaro.org/Boards/IFC6410/OpenEmbedded

− https://git.linaro.org/people/nicolas.dechesne/meta-qualcomm.git

Page 26: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

26

Linux Kernel Upstreaming

Overall goal to contribute full platform enablement in kernel.org

“linux-msm” is the growing open source community dedicated to Qualcomm Technologies’ SoC kernel upstreaming ##linux-msm on irc.freenode.net, [email protected]

Linaro maintains a “tracking” branch − Rebased on each “-rc” kernel.org tag release

− Integrates all outstanding (public) development patches for APQ8064, APQ8074 and APQ8084

− Continuous Integration loop using Linaro LAVA framework and board farm

The “tracking” branch is a solid baseline to get started with upstream kernel development for Qualcomm Technologies’ SoC.

On IFC6410: Wlan, Ethernet, SD, eMMC, USB, SATA, HDMI Display.

Page 27: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

27

Video Conferencing on the Snapdragon 600 Processor

Krunal Patil, Technical Lead eInfochips

Page 28: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

28

eInfochips Solutions For Broad Embedded Market

Product Engineering Services

Re-engineering Sustenance Enhancement Production QA and

Certification Development Concept and Design

Application SW

BSP + System SW

Mechanicals

Hardware

Page 29: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

29

www.einfochips.com

Peer-to peer and Multi-party Conference

Linux 3.4.0

eInfochips RTP Stack

QT5 based GUI

Sofia SIP and Freeswitch

Open Embedded

V4L2 based Video

Low latency SIP conferencing with Audio, Video and IM support

Solution Features

Page 30: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

30 Qualcomm Technologies, Inc. All rights reserved.

Setup

Page 31: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

31

System Diagram VOIP Conferencing UI

(QT5 on EGLFS)

Video capture module

V4L2 video capture driver for USB

camera

Video Encode module

Gstreamer based video encoding

ALSA sub system

Audio Capture module

G.711 encoding

Audio Encode module

A-V capture-encode-stream <- - -> A-V receive-decode-display

Sofia SIP for VOIP session mgmt

RTP Sender Module

eInfochips RTP stack for sending A-V data

RTP Receiver Module

eInfochips RTP stack for sending A-V data

Video Decode module

Gstreamer based video decoding

Video Display module

V4L2 video display driver

G.711 decoding

Audio Decode module

ALSA sub system

Audio Playback module

Media encoding Pipeline

Media Transmission Pipeline

Media Consumption Pipeline

Page 32: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

32

Step by Step Process

• Build oe-core, bitbake and meta-qualcomm • V4L2 video capture support

OE – BSP layer

• Build core-image-minimal File system • Boot the IFC6410 board Filesystem

• Build core-image-x11 with OpenGL X11

Support

• Build meta-qt5 layer & make it part of file system

• Modify Qt layer to use xcb instead of default eglfs

QT5

• Customized layer to integrate software components Qt5, Sofia SIP, VOIP stack and Gstreamer

• .bbappend file for qtbase custom • voip-demo.bb for custom rootfs • Develop VC Application

Meta-eInfochips

• Modify QT SDK to bypass Qt-Gstreamer plugin and directly use Gstreamer native library APIs

• Use glimagesink to gain advantage of GPU acceleration

Performance Optimization

Page 33: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

33

Video Conference Application

Page 35: Ubuntu Linux on the Qualcomm Snapdragon 600 Processor

36

For more information on Qualcomm, visit us at: www.qualcomm.com & www.qualcomm.com/blog

©2013-2014 Qualcomm Technologies, Inc. and/or its affiliated companies. All Rights Reserved. Qualcomm and Snapdragon are trademarks of Qualcomm Incorporated, registered in the United States and other countries,. Uplinq is a trademark of Qualcomm Incorporated. Alll Qualcomm Incorporated trademarks are used with permission.Other products and brand names may be trademarks or registered trademarks of their respective owners.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.

Thank you FOLLOW US ON: