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
This is not a Jolla pitch
This is not a Jolla pitch ... but
This is not a Jolla pitch ... but
Good case study This is not a Jolla pitch ... but Galaxy S3 & Nexus 4 / 5 & more Sailfjsh for Android
HADK T oC: • Prerequisites • Preparing Your Device This is not a • Setting up the SDKs • Building the Android HAL Jolla pitch • Setting up Scratchbox2 T arget • Packaging Droid HAL ... • Creating the Sailfjsh OS root fs but • Getting In • Flashing the rootfs image • Manual Installation • List of Repositories • T weaks and Patches • Building a new Device • List of Supported Devices
Talk about Technology
Talk about Technology JEOS Just Enough OS
wayland systemd btrfs connman ofono/pulseaudio git dbus rpm Talk about blueZ Technology Gecko libzypp gstreamer eglibc glib kcalcore GeoClue kernel
wayland systemd btrfs connman ofono/pulseaudio git dbus rpm Talk about blueZ Technology Gecko libzypp gstreamer eglibc glib kcalcore GeoClue kernel
5.2 Why? Talk about • QML Technology • Performant • Open Qt 5.2-ish • Not Java • Huge developer base
Talk about Technology QtWayland replaces Qt 5.2-ish SurfaceFlinger More to come using hwcomposer.
Talk about Technology QtWayland replaces Qt 5.2-ish SurfaceFlinger More to come using hwcomposer.
Talk about Technology code
Routing around the breakage of closed binary blobs
Shim between GNU libc and bionic libc Talk about Technology Enables use of glibc stack on top of Android BSP libhybris
Android linker code dlopen dlsym dlclose Talk about become Technology android_dlopen android_dlsym libhybris android_dlclose
Patches to bionic - relatively few: • Thread local storage Talk about • pthreads Technology • errno • hard vs softfp libhybris fmoat-abi • /dev/log
android_dlopen(“libEGL.so”); myeglCreateWindowSurfaceFP = android_dlsym(“eglCreateWindowSurface”); *myeglCreateWindowSurface(....) Gets you Talk about • libEGL.so Technology or • libGLESv2.so libhybris as wrappers which present to glibc space
Rinse and repeat for: • Gralloc • OpenGL ES 1.1/2.0 • NFC • Hardware HAL Talk about • OpenCL Technology • SurfaceFlinger • OpenMAX • Camera libhybris • Hwcomposer • and so on ...
HA DK • Mer SDK • Scratchbox2 • Device target • Minimal Ubuntu Building it (for Android build)
HA DK • Explaining the layout Building it • Bridge Android / Linux Mer HA : (libhybris) Android HA : Qt / Wayland drivers, Kernel; bionic; Pulseaudio, ... HABUILD SDK (ARM) SB2 Device Target (ARM) Mer SDK Host OS (linux – but all kinds of variants)
Mer SDK • Minimal install • Some tools • SB2 ready Building it
HABUILD SDK • Grab a tarball • Install 'repo' Building it
HABUILD DK • Device specifjc XML manifest • Sync the git repos • Mix of CM & Mer Building it • Run 'make' • Fix problems :)
Mer DK • Package up the HABUILD built: • binaries • headers Building it • kernel • boot & recovery .img • Create a local rpm repository (headers) • Make an SB2 'T arget'
Mer SDK • Build hybris • Build drivers: • Qt hwcomposer • Audio Building it • Haptic • Sensors
Mer SDK • Build SailfjshOS rootfs • Build <insert your Building it system here> rootfs
Flashing • Use adb or equiv Running it
Booting What happens? • Bootloader • Kernel Running it • Initrd and /init • Systemd • Android 'init'
Running • ssh • nodejs • ruby/python Running it • webserver • ...
• 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 SailfjshOS HD • Ascend P6, G525-u00, Xperia Porters Z1 • HP T ouchpad • N900, N9(50) • N4, N5, Galaxy Nexus, are most mature and images are available
Status: http://bit.ly/port-devices-status Where are we?
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/
• Xdadev sailfjsh section and also individual device forums have SailfjshOs threads • IRC channel #sailfjshos-porters Talk to us • All source at https://github.com/mer- hybris • SailfjshOs meetups , London, Berlin, Finland • Regular IRC meeting where developers drive the agenda
Mer @ merproject.org Open • Core & some MW Source • Systems Open • Community Working Code is not enough
Unlike Not that hard freenode: #mer 90 people made this: #sailfjshos github/ mer-hybris merproject. org
Code: “FOSDEM2015” €50 discount (€199) Jolla's 31 Jan – 8 Feb FOSDEM (One per person) Discount EU / Switzerland / Code Norway T ablet : See us on Indiegogo
Recommend
More recommend