Neo FreeRunner: Linux do kapsy

Jozef Mlích 24. 2. 2009

Neo Freerunner je spíš než běžný mobilní telefon v současné době vývojovou platformou. V tomto článku se podíváme na to, jaké možnosti Freerunner dává vývojářům. Je zde uveden také krátký přehled použitelných linuxových distribucí a shrnutí jejich nejdůležitějších odlišností od desktopového prostředí.

V linuxovém světě vládne různorodost a jinak tomu není ani u linuxového telefonu. Dokonce by se možná dalo říci, že je to jeho nejzajímavější vlastnost. Existuje několik distribucí, které mají přímo předpřipravené obrazy root filesystemu: Om 2007.2, Om 2008.*, FSO, SHR,FDOM, Qt Extented, Debian, Gentoo, Android a Hackable:1. Řadu dalších distribucí se podařilo úspěšně na freerunnera naportovat a je možné si je vlastními silami přeložit ze zdrojových kódů. Mezi tyto distribuce patří: NeoPwn, RunningBear, Poky and Sato, PyNeo lead [1].

Bootloader

Předtím než se nastartuje systém, se stará o veškerou funkcionalitu telefonu bootloader. Neo Freerunner se běžně dodává s bootloaderem u-bootem v NAND a NOR paměti. U-boot [2] je na telefonu ve dvou kopiích, protože v případě jeho špatného přeflashování lze telefon oživit jenom pomocí debug boardu.

Při normálním startu telefonu není bootloader nijak vidět a přímo nastartuje operační systém naflashovaný v telefonu. V případě, že chceme naflashovat jinou distribuci nebo nastartovat operační systém z karty, tak pomocí kombinace AUX a POWER tlačítek můžeme zobrazit menu u-bootu (viz. Obrázek 1).

FreeRunner 1

Obrázek 1.: u-boot bootloader.

V pozici alternativního bootloaderu je nyní Qi [3]. V porovnání s u-bootem neobsahuje Qi menu a přenechává složitější věci, jako je inicializace grafické karty, na linuxovém jádře. Automaticky se snaží nastartovat nejdřív systém na µSD kartě a potom až systém v NAND paměti. Signalizace toho, co se právě děje, je vyřešená pomocí LEDek. Qi nabízí až o 40 sekund rychlejší start systému a do jisté míry řeší problémy s úplným vybitím baterie.

Dobrým důvodem k nasazení Qi může být fakt, že u-boot ve výchozím nastavení nepodporuje velká jádra (> 2 MB). Tato možnost se v u-bootu musí explicitně povolit.

Jádro

Nedílnou součástí linuxový distribucí je jádro [4]. OpenMoko distribuce používají Vanilla jádro mírně modifikované pro hardware Nea nebo Freerunera. Modifikace se týkají hlavně periferních zařízení (čtečka karet, gsm modul, akcelerometry). Implementace těchto modulů je přebraná z iPaqu nebo z TomTom GO. Celé jádro se všemi úpravami si každý může zkusit stáhnout z příslušného git repozitáře a přeložit [5].

Momentálně se mluví o dvou hlavních větvích jádra. O stable a vývojové verzi andy-tracking, kterou má na svědomí Andy Green (tedy alespoň její jméno).

Framework

Jednou z nejzajímavějších myšlenek, na které staví hlavně distribuce FSO, je framework, což je daemon, který běží v userspace a má za úkol zprostředkovat aplikacím jednotné „vysokoúrovňové“ rozhraní k hardware. Jak by to mělo vypadat, je znázorněno na obrázku 2.

FSO framework

Obrázek 2.: FSO framework

Konkrétně to znamená, že pro přístup k seznamu kontaktů, příjem sms zprávy či telefonního hovoru program nebude komunikovat přímo s modemem, ale jenom pošle zprávu pomocí dbusu frameworku. Vysokoúrovňovost potom spočívá v tom, že se framework sám rozhodne, jestli je hledaná osoba uložená na sim kartě nebo v interní databázi na sd kartě. Navíc není nutné znát příslušný AT příkaz vztahující se ke konkrétnímu modelu gsm čipu.

Grafické prostředí

I když je backend systému hodně důležitý, člověk přijde do kontaktu nejdřív s uživatelským rozhraním. Protože se jedná o Linux, tak v zásadě není problém na Freerunerovi spustit například KDE 4 [6]. Problém je v tom, že KDE 4 není přizpůsobené pro použití na telefonu, zvláště co se týče paměti a procesoru. Navíc je obrazovka telefonu poměrně malá (480×640). Používaní dotykové obrazovky a absence hardwarové klávesnice vyžaduje velmi odlišný přístup. Problém je konkrétně s pravým tlačítkem myši, které není v současné době nijak emulované. Pro pohodlné ovládání prsty jsou potřeba větší tlačítka, atd.

Co se týče technologie, lze používané přístupy rozdělit do dvou skupin. Na rozhraní používající vykreslování přímo do framebufferu nebo používající X Server. Použití framebufferu se pozitivně odráží na rychlosti celého zařízení naopak použití X Serveru umožňuje spuštění prakticky libovolné linuxové aplikace, aniž by bylo nutné ji celou překopat.

FreeRunner systém  FreeRunner systém  FreeRunner systém  FreeRunner systém

Obrázek 3.: Screenshoty různých distribucí. (zleva Om 2007.2, FSO, Qt Extended, Google Android)

Do první skupiny lze zařadit Qt Extended a Androida. Qt Extended je poměrně zralá distribuce pro handheldy
a mobilní telefony postavená na toolkitu Qt. Android je na druhou stranu poměrně nová věc, která se
snaží stavět na svém vlastním javovém frameworku.

Do druhé skupiny patří distribuce Openmoko Distribuce, přičemž Om 2007 využívalo vlastní rozhraní založené na GTK (toolkit qt nebyl součásti Om2007). Naproti tomu Om 2008.x, FSO a SHR využívají Enlightenment window manager.

Aplikace

Z předchozí informací o GUI a Frameworku celkem vyplývá, že aplikace mezi jednotlivými distribucemi nemusí být vždy přenositelné a to buď z důvodu použitého toolkitu nebo přílišné provázaností s hardware. Detailní popis jednotlivých aplikací je mimo možnosti tohoto článku, přehled schopností jednotlivých distribucí je shrnutý v [7].

Smutným faktem bohužel je, že aplikace pro telefonování a psaní sms v žádné ze zmíněných distribucí nejsou v ideálním stavu. Prakticky jedinou hotovou distribucí použitelnou pro běžného smrtelníka je Qt Extended 3.4, která ovšem nemá webový prohlížeč ani mapový software. Novější Qt Extended tyto programy už má, ale pro změnu trpí jinými nedostatky.

Reference

[1] http://wiki.o­penmoko.org/wi­ki/Distributi­ons
[2] http://wiki.o­penmoko.org/wi­ki/Bootloader
[3] http://wiki.o­penmoko.org/wi­ki/Qi
[4] http://wiki.o­penmoko.org/wi­ki/Kernel
[5] http://lists.o­penmoko.org/nab­ble.html#nabble-td2116807
[6] http://www.you­tube.com/watch?v=ky-gbF1rgb4
[7] http://wiki.o­penmoko.org/wi­ki/Distributi­ons#Features_by_dis­tribution.2Fre­lease_target

Našli jste v článku chybu?
Vitalia.cz: Vědci: Hnojení chemií je zbytečné

Vědci: Hnojení chemií je zbytečné

DigiZone.cz: ČTÚ květen: rušení TV vysílání narůstá

ČTÚ květen: rušení TV vysílání narůstá

DigiZone.cz: Robinsonův ostrov moderuje Novotný

Robinsonův ostrov moderuje Novotný

120na80.cz: Cestovní nevolnost. Co pomůže?

Cestovní nevolnost. Co pomůže?

DigiZone.cz: VR i AR na vzestupu. Do roku 2018...

VR i AR na vzestupu. Do roku 2018...

DigiZone.cz: Bizár sněmovního jednání

Bizár sněmovního jednání

120na80.cz: Léky a dietní opatření při kopřivce

Léky a dietní opatření při kopřivce

Vitalia.cz: 7 receptur z pohanky. Svědčí zdraví

7 receptur z pohanky. Svědčí zdraví

120na80.cz: Proč komáři létají hlavně večer?

Proč komáři létají hlavně večer?

Lupa.cz: Vzali věc, která fungovala, a přidali internet

Vzali věc, která fungovala, a přidali internet

Podnikatel.cz: Babiš představil daňovou revoluci Moje daně

Babiš představil daňovou revoluci Moje daně

Měšec.cz: Rusové platí mobilem. Funguje to i v Česku

Rusové platí mobilem. Funguje to i v Česku

Lupa.cz: Nej aplikace? Vodafone, Mozkovna, Záchranka

Nej aplikace? Vodafone, Mozkovna, Záchranka

DigiZone.cz: Mobilní aplikace pro DVTV je tady

Mobilní aplikace pro DVTV je tady

DigiZone.cz: Kritické poznámky k DVB-T2

Kritické poznámky k DVB-T2

DigiZone.cz: Dabingové ceny znají letošní nominace

Dabingové ceny znají letošní nominace

DigiZone.cz: Pardubicko: Výrazně posílen Mux 3

Pardubicko: Výrazně posílen Mux 3

Lupa.cz: Vydavatelé jsou v háji, ale neumí si to připustit

Vydavatelé jsou v háji, ale neumí si to připustit

Měšec.cz: Tipy, než vyrazíte autem na dovolenou

Tipy, než vyrazíte autem na dovolenou

Vitalia.cz: Máte chutě? Nejezděte do světa, ale do Dobřichovic

Máte chutě? Nejezděte do světa, ale do Dobřichovic