Recycle Your Android Devices Run real Linux on them David - - PowerPoint PPT Presentation

recycle your android devices
SMART_READER_LITE
LIVE PREVIEW

Recycle Your Android Devices Run real Linux on them David - - PowerPoint PPT Presentation

Recycle Your Android Devices Run real Linux on them David Greaves lbt on #mer #sailfjshos ... Co-founder of the Mer Project Who am I? work at Jolla systems and infrastructure (OBS, QA, gitlab, bz ... VMs) HA Documentation Mer tools


slide-1
SLIDE 1

Recycle Your Android Devices

Run real Linux

  • n them
slide-2
SLIDE 2

Who am I?

David Greaves lbt on #mer #sailfjshos ... Co-founder of the Mer Project work at Jolla systems and infrastructure (OBS, QA, gitlab, bz ... VMs) HA Documentation Mer tools

slide-3
SLIDE 3

This is not a Jolla pitch

slide-4
SLIDE 4

This is not a Jolla pitch ... but

slide-5
SLIDE 5

This is not a Jolla pitch ... but

slide-6
SLIDE 6

This is not a Jolla pitch ... but

Good case study Galaxy S3 & Nexus 4 / 5 & more Sailfjsh for Android

slide-7
SLIDE 7

This is not a Jolla pitch ... but

HADK T

  • C:
  • Prerequisites
  • Preparing Your Device
  • Setting up the SDKs
  • Building the Android HAL
  • Setting up Scratchbox2 T

arget

  • Packaging Droid HAL
  • Creating the Sailfjsh OS root fs
  • Getting In
  • Flashing the rootfs image
  • Manual Installation
  • List of Repositories
  • T

weaks and Patches

  • Building a new Device
  • List of Supported Devices
slide-8
SLIDE 8

Talk about Technology

slide-9
SLIDE 9

Talk about Technology

JEOS Just Enough OS

slide-10
SLIDE 10

Talk about Technology

wayland systemd btrfs connman

  • fono/pulseaudio

git dbus rpm blueZ Gecko libzypp gstreamer eglibc glib kcalcore GeoClue kernel

slide-11
SLIDE 11

Talk about Technology

wayland systemd btrfs connman

  • fono/pulseaudio

git dbus rpm blueZ Gecko libzypp gstreamer eglibc glib kcalcore GeoClue kernel

slide-12
SLIDE 12

Talk about Technology

Why?

  • QML
  • Performant
  • Open
  • Not Java
  • Huge developer base

5.2

Qt 5.2-ish

slide-13
SLIDE 13

Talk about Technology

QtWayland replaces SurfaceFlinger More to come using hwcomposer.

Qt 5.2-ish

slide-14
SLIDE 14

Talk about Technology

QtWayland replaces SurfaceFlinger More to come using hwcomposer.

Qt 5.2-ish

slide-15
SLIDE 15

Talk about Technology

code

slide-16
SLIDE 16

Routing around the breakage

  • f closed

binary blobs

slide-17
SLIDE 17

Talk about Technology

Shim between GNU libc and bionic libc Enables use of glibc stack on top of Android BSP

libhybris

slide-18
SLIDE 18

Talk about Technology

Android linker code dlopen dlsym dlclose become android_dlopen android_dlsym android_dlclose

libhybris

slide-19
SLIDE 19

Talk about Technology

Patches to bionic - relatively few:

  • Thread local

storage

  • pthreads
  • errno
  • hard vs softfp

fmoat-abi

  • /dev/log

libhybris

slide-20
SLIDE 20

Talk about Technology

android_dlopen(“libEGL.so”); myeglCreateWindowSurfaceFP = android_dlsym(“eglCreateWindowSurface”); *myeglCreateWindowSurface(....)

Gets you

  • libEGL.so
  • r
  • libGLESv2.so

as wrappers which present to glibc space

libhybris

slide-21
SLIDE 21

Talk about Technology

Rinse and repeat for:

  • Gralloc
  • OpenGL ES 1.1/2.0
  • NFC
  • Hardware HAL
  • OpenCL
  • SurfaceFlinger
  • OpenMAX
  • Camera
  • Hwcomposer
  • and so on ...

libhybris

slide-22
SLIDE 22

Building it

HA DK

  • Mer SDK
  • Scratchbox2
  • Device target
  • Minimal Ubuntu

(for Android build)

slide-23
SLIDE 23

Building it

HA DK

  • Explaining the layout
  • Bridge Android / Linux

Host OS (linux – but all kinds of variants) Mer SDK HABUILD SDK (ARM) Android HA : Kernel; bionic; SB2 Device Target (ARM) Mer HA : (libhybris) Qt / Wayland drivers, Pulseaudio, ...

slide-24
SLIDE 24

Building it

Mer SDK

  • Minimal install
  • Some tools
  • SB2 ready
slide-25
SLIDE 25

Building it

HABUILD SDK

  • Grab a tarball
  • Install 'repo'
slide-26
SLIDE 26

Building it

HABUILD DK

  • Device specifjc

XML manifest

  • Sync the git repos
  • Mix of CM & Mer
  • Run 'make'
  • Fix problems :)
slide-27
SLIDE 27

Building it

Mer DK

  • Package up the

HABUILD built:

  • binaries
  • headers
  • kernel
  • boot & recovery .img
  • Create a local rpm

repository (headers)

  • Make an SB2

'T arget'

slide-28
SLIDE 28

Building it

Mer SDK

  • Build hybris
  • Build drivers:
  • Qt hwcomposer
  • Audio
  • Haptic
  • Sensors
slide-29
SLIDE 29

Building it

Mer SDK

  • Build SailfjshOS

rootfs

  • Build <insert your

system here> rootfs

slide-30
SLIDE 30

Running it

Flashing

  • Use adb or equiv
slide-31
SLIDE 31

Running it

Booting What happens?

  • Bootloader
  • Kernel
  • Initrd and /init
  • Systemd
  • Android 'init'
slide-32
SLIDE 32

Running it

Running

  • ssh
  • nodejs
  • ruby/python
  • webserver
  • ...
slide-33
SLIDE 33

SailfjshOS Porters

  • Currently around 25

active developers

  • Working on 22 devices
  • Galaxy Nexus/Note/T

ab2/S3/S4

  • Nexus One/4/5/7's
  • OnePlus, Photon Q, HTC Desire

HD

  • Ascend P6, G525-u00, Xperia

Z1

  • HP T
  • uchpad
  • N900, N9(50)
  • N4, N5, Galaxy Nexus,

are most mature and images are available

slide-34
SLIDE 34

Where are we?

Status:

http://bit.ly/port-devices-status

slide-35
SLIDE 35

Working Together

  • Multirom

Worked with tassadar to add multirom support for sailfjshOs images

  • Upstreaming bugfjxes

code back to CM

During N5 port we contributed bugfjx back to the upstream CM http://review.cyanogenmod.org/#/ c/67489/

slide-36
SLIDE 36

Talk to us

  • Xdadev sailfjsh section

and also individual device forums have SailfjshOs threads

  • IRC channel

#sailfjshos-porters

  • All source at

https://github.com/mer- hybris

  • SailfjshOs meetups ,

London, Berlin, Finland

  • Regular IRC meeting

where developers drive the agenda

slide-37
SLIDE 37

Open Source Open Working

Mer @ merproject.org

  • Core & some MW
  • Systems
  • Community

Code is not enough

slide-38
SLIDE 38

Unlike freenode: #mer #sailfjshos github/ mer-hybris merproject.

  • rg

Not that hard

90 people made this:

slide-39
SLIDE 39

Jolla's FOSDEM Discount Code

Code: “FOSDEM2015” €50 discount (€199) 31 Jan – 8 Feb (One per person) EU / Switzerland / Norway T ablet : See us on Indiegogo