Mobilní FOSDEM 2013 – Jolla Sailfish

By Jozef Mlích - Last updated: Čtvrtek, Únor 14, 2013 - Save & Share - Leave a Comment

Druhým žhavým tématem na FOSDEMu byl operační systém Sailfish OS od finské firmy Jolla. Od oznámení celého projektu se na internetu objevilo o tomto systému jenom velmi málo informací. Celá řada prezentací na FOSDEMu alespoň částečně poodkryla, co se děje pod pokličkou v kuchyni této firmy. Přednášky měli např. David Greaves (@lbt) a Marko Mattila (@zchydem).


Prvním zásadním oznámením bylo, že Sailfish SDK lze očekávat do konce února 2013. Další informací je, že Jolla sice bude na Mobile World Congressu v Barceloně, ale žádné překvapení typu představení zařízení se zřejmě nedočkáme.

Mluvilo se hodně o roztříštěnosti grafických komponent, které jsou navzájem nekompatibilní, přičemž ani platformy MeeGo Harmattan a Symbian od Nokie spolu nejsou úplně kompatibilní. Jolla přináší svoji další sadu komponent postavených na Qt Quick 1 a Qt 4.8.x.

import com.nokia.meego 1.1
import com.nokia.symbian 1.0
import org.kde.plasma.core 0.1
import bb.cascades 1.0
import Ubuntu.Components 0.1
import QtDesktop 0.1
import Sailfish.Silica 1.0

Sailfish OS je postaven na projektu Mer. Dále používá části grafického prostředí Nemo Mobile. Jejich cílem je navázat na MeeGo Harmattan, který je dostupný na telefonech Nokia N9. Na druhou stranu vývojáři z Jolly označili za dobrou zprávu to, že není použit MeeGo Touch Framework.

IMG_8231

Komponenty SailfishOS

Byl představen taky diagram popisující základní komponenty systému. Vzápětí bylo oznámeno, které komponenty budou otevřené a které ne. Jolla chce přispívat do otevřených projektů, jako je Qt, Maliit nebo Grilo, které jsou součástí Mer a Nemo Mobile. Relativně pochopitelné je, že nezveřejní všechny úpravy na úrovni linuxového jádra. Je to často dáno podmínkami výrobce hardware. Na druhou stranu, design uživatelského rozhraní je plně v jejich režii. Tady momentálně Jolla plánuje zveřejnění pouze QML komponent Sailfish Silica. Domovská obrazovka, nastavení a vlastní aplikace zůstanou uzavřené.
Toto je velmi špatná zpráva pro všechny, kteří doufali, že si Sailfish OS přeloží pro svůj Nexus 7 nebo aktualizují systém na vývojářském zařízení Nokia N950.

Start SailfishOS SDK

Co bude obsahovat Sailfish SDK? Kromě komponent uživatelského rozhraní Silica to bude upravený Qt Creator a obraz systému pro VirtualBox. Nevirtualizovaná verze SDK s použitím Scratchboxu, tak jak to poskytovala Nokia pro MeeGo Harmattan, alespoň v době vydání SDK nebude dostupná. David Greaves se vyjádřil v tom smyslu, že by chtěl tuto vlastnost dodělat, ale bohužel má až do vydání velmi nabitý program.

IMG_8367

Sailfish SDK

V rámci přednášek byly alespoň částečně prezentovány Silica komponenty. Měly by obsahovat základní komponenty, jako např. tlačítko aj. Dále komponenty Page a PageStack, známé ze systému MeeGo Harmattan, pro vytvoření stránek a navigace mezi nimi. Z komponent specifických pro Sailfish byla prezentována komponenta PullDownMenu. Tato komponenta slouží pro menu, které se vytáhne gestem od horního okraje obrazovky.

IMG_8250

Ukázka QML komponenty PullDownMenu

Mer project

Sailfish od Jolly je jedním ze systémů, který je postaven na základě Mer project. Druhým neznámějším z nich je Nemo Mobile. Marko Saukko ve své přednášce na FOSDEMu shrnul, jakým způsobem naportovat Nemo Mobile na jiný hardware a na jaké obtíže lze narazit.

Zmínil, že základní obraz systému Nemo Mobile má přibližně 500 balíčků, z nichž 5-20 závisí na konkrétním hardware. Projekt Mer využívá nástroje, jako Scratchbox 2, který umožňuje tzv. chroot, kdy se nějaký adresář tváří jako kořenový adresář. Dále umožňuje emulaci pomocí QEMU a poměrně jednoduše umí přepínat mezi více takto virtualizovanými systémy. Dále využívají nástroj MIC, což je zkratka Mer Image Creator (původně MeeGo Image Creator), pro vytváření obrazů, které je možno nahrát do zařízení. Dalšími významnými nástroji je osc a mer-kickstarter. Zmíněný nástroj osc je součástí balíčkovacího systému Open Build Service. Mer-kickstarter je skript, který poskládá celý systém podle konfiguračního souboru pro dané zařízení.

V tuto chvíli podporuje Mer několik zařízení, od Nokie jsou to modely N900, N950 a N9. Dále jsou to např. Nexus 7, Pandaboard, Raspberry Pi nebo Lenovo IdeaPad na x86 architektuře. Seznam podporovaných architektur lze najít na stránkách projektu.
Prvním problémem portování je zavaděč (bootloader). Pro ARM jich existuje celá řada. Obvykle je zapotřebí upravit cestu k souborovému systému rootfs, apod.

Co se týče použitého linuxového jádra, tak je nutné vycházet alespoň z jádra 2.6.32. Pro kontrolu, zda jádro obsahuje požadované vlastnosti, existuje skript mer-kernel-check. Dále je k dispozici nástroj mer_verify_kernel_config, který ověřuje, jestli jsou v jádru nastaveny všechny volby vyžadované systémem Mer.

Pro Nemo Mobile je vyžadována podpora OpenGL ES 2.0. Je proto nutné poskytnout určité soubory, jako jsou libEGL.so.1, libGLES_CM.so.1 a libGLESv2.so.2. Pokud nejsou k dispozici, tak je možné použít llvmpipe od Mesa, které by měly zajistit softwarové vykreslování grafiky.

Dále je potřeba nastavit X.Org Server, přičemž je vhodné začít s ovladačem fbdev (framebuffer device) a mtev (multitouch events) pro nastavení dotykové obrazovky. Druhou alternativou je projekt Zephyr, to je sada nástrojů pro GUI, které běží nad Waylandem.

Na mobilních zařízeních existuje cela řada hardware, která se na stolních počítačích moc nepoužívá nebo se používá značně odlišným způsobem. Pěkným příkladem jsou senzory (akcelerometry, gyroskopy, magnetometry, světelné senzory). Projekt Mer využívá sensorfw jako middleware. Pro dané zařízení je pak nutné vytvořit konfigurační soubor popisující dostupné senzory.

Dalším příkladem je GSM modem. Pro jeho ovládání Mer využívá knihovny ofono. Pro daný modem potom musí existovat plugin pro ofono.

Pro telefonní hovor je nutné spojit modem a zvukovku. Pro toto existují různé scénáře: s bluetooth sluchátkem, s „drátovou“ hands free sadou, s vestavěným repráčkem nebo „hlasitý odposlech“. K tomuto účelu se v Meru používají profily pro PulseAudio. Aby to celé fungovalo, tak je potřeba „správný“ ovladač ALSA.

Pak je tady např. démon MCE, který se stará o zapínaní a vypínaní displeje po zmáčknutí vypínacího tlačítka, při přijetí hovoru, při otočení telefonu obrazovkou dolu (vzdálenostní senzor). Démon DSME se pak stará o vypnutí telefonu, když je příliš vysoká teplota baterie nebo příliš malá úroveň nabití, případně o jeho probuzení, pokud nastane alarm. Správa prostředků systému (Resource Management) spočívá taky v tom, že ve chvíli kdy příjde telefonní hovor, tak operační systém musí zajistit dostatečný výkon pro jeho příjmutí.

Démon usb-moded se stará o to, v jakém režimu je zařízení. Jsou to ty známé režimy „Velkokapacitní zařízení“, „Synchronizace“ nebo „Režim SDK“. Aby mohl telefon fungovat jako velkokapacitní zařízení, tak je nutné disk rozdělit specifickým způsobem, protože není možné (implementace bude zřejmě problematická) používat stejný oddíl současně z počítače a současně z telefonu.

Požadavky na operační systém pro mobilní telefony nebo infotaiment systémy pro auta jsou specifické. Mer projekt se snaží tyto požadavky naplnit a poskytnout řešení k jednotlivým dílčím problémům. Cílem projektu Mer je vytvoření základní distribuce. Projekty jako Plasma Active, Nemo Mobile nebo Sailfish do Meru přidávají svoje uživatelské rozhraní a vytvářejí distribuce pro koncové uživatele.

Sdílejte:

Share this:

Posted in Konference, MeeGo, Openmobility, Reportáže • Tags: , , , , , , Top Of Page

Write a comment


Yandex Mail.ru Google LiveJournal myOpenId Flickr claimId Blogger Wordpress OpenID Yahoo Technorati Vidoop Verisign AOL