Hlavní navigace

Linux na handheldech iPAQ (4)

30. 1. 2003
Doba čtení: 11 minut

Sdílet

Vítám vás u dalšího pokračování seriálu o Linuxu na handheldech iPAQ. Původně měl tento díl následovat krátce po dílu třetím a měl být věnován pouze software, ale člověk míní... a nakonec je všechno jinak. Tímto se tedy čtenářům omlouvám a teď hurá na to, dohnat, co jsem zameškal. Dnes si řekneme něco málo o novém hardware, o zajímavých změnách v OS a samozřejmě se dostaneme i k tomu slibovanému software.

Nový hardware

Od uveřejnění posledního dílu se z ‚Compaqu iPAQ‘ definitivně stal ‚HP iPAQ‘ a objevilo se několik nových typových řad. Především je to řada H3900, vycházející v mnohém z předchozí H3800. Hlavní rozdíly se pokusím shrnout do několika krátkých odstavců.

Nový Intel PXA250 (XScale) procesor, kompatibilní s ARM, tepe nyní na frekvenci 400MHz. Zdali je to však skutečně velkým přínosem, není ještě zcela jednoznačné. Některé instrukce jsou sice vykonávány daleko rychleji než na předcházející architektuře, jiné však trpí přesně opačným syndromem. Souvislost to má i s o něco nižším taktem sběrnice. Celkově tedy není u stávajících aplikací pozorován výrazný nárůst výkonu. Uvidíme, jak to bude vypadat, až se aplikace začnou kompilovat s optimalizací pro tento nový procesor. Za zmínku stojí také to, že s novým procesorem přibylo i několik dalších hardwarových chyb, takže si „nízkoúrovňoví“ programátoři mají pořád na co dávat pozor. Např. u procesorů s revizí nižší než C0 (což jsou v případě iPAQu pravděpodobně všechny, protože od revize C0 jsou již procesory značeny PXA260) jsou potíže s CPU cache a podporou PCMCIA. Intel se holt moc nepochlapil…

Další novinkou je použití nového displeje. Klasický ‚reflective‘ vystřídal ‚transflective‘ displej (vysvětlení) a energeticky náročnou výbojku nahradilo ne tak žravé (doufám) LED podsvětlení. Nový je také zvukový čip. Vyšší modely (s Bluetoothem) jsou vybaveny 48MB Flash ROM (oproti standardním 32MB).

Distribuce Familiar Linux sice v aktuální stabilní verzi uvádí pro modelovou řadu H3900 slůvko ‚unsupported‘, ale není to tak docela pravda. Vývojáři se touto řadou zabývají a již jsou na Internetu k dispozici funkční modifikace distribuce. Chybí dodělat jen pár „drobností“, jako je například podpora nového zvukového čipu, podpora MMC/SD slotu či zviditelnění dalších 16MB Flash ROM u vyšších modelů.

Co se týká dalších modelů, novinkou jsou levná řada iPAQ H1900 a naopak velkoryse vybavená řada iPAQ H5400. Protože obě dvě jsou zatím bez jakékoliv linuxové podpory, nemá význam, abych se v tomto okamžiku jejich hardware blíže věnoval.

Na závěr povídání o hardware ještě dvě zajímavé informace. V prvním dílu zmíněný SD/MMC slot modelů H3800 je nyní funkční. Bohužel však pouze v MMC (Multi Media Card) režimu a hned tak se to nejspíše nezmění. Licenční podmínky použití SD (Secure Digital) karet totiž neumožňují vytvoření Open Source ovladače (Sharp Zaurus to řeší tak, že příslušný driver je k dispozici pouze jako binární modul). Omezení karet MMC vůči SD jsou dvě. MMC karty mají omezenou kapacitu (max. 256MB) a komunikují pomaleji. SD slot je však stejně v řadě H3800 implementován poněkud nešťastným způsobem, takže i jeho případné zprovoznění by nemělo na rychlost podstatný vliv. Navíc po HW stránce není implementováno SDIO, což znamená, že by šlo používat pouze paměťová média. V modelech H3900 již je SD slot po HW stránce implementován podstatně lépe, je rychlý a podporuje i SDIO.

Druhou informací je upozornění na jednu dříve nezmíněnou drobnost, odlišující řady H3800 a vyšší od předchozích. Zatímco u iPAQů H3600 a H3700 se o řízení nabíjení staral samostatný čip, u novějších řad již jeho práci převzal CPU (a tedy vlastně OS). Prakticky to znamená, že pokud neběží OS (iPAQ není nabootovaný, došly mu baterky), nenabíjí se!

Změny v OS

Vývoj neustrnul ani na poli OS a distribuce Familiar Linux. Objevilo se několik nových verzí (poslední stabilní je teď Familiar Linux 0.6.1), přičemž verze 0.6 přinesla několik výrazných (pozitivních) změn.

Především, distribuce sama již není tak závislá na Pythonu. Ne že byste si jej nemohli nainstalovat a používat, ale aplikace, které ho vyžadovaly (např. menu) byly nahrazeny jinými (lepšími) a absence Pythonu se pozitivně projevila uvolněním nezanedbatelné části Flash ROM.

Další změnou, také mající velmi pozitivní vliv na volné místo ve Flash ROM, je použití BusyBoxu. Pro neznalé, BusyBox je kombinace mnoha běžných UNIXových utilit do jediné, relativně malé, binárky. Při kompilaci (tu vás samozřejmě nikdo nenutí dělat) si můžete určit, pro jaké funkce chcete zakompilovat podporu. Pro příslušný příkaz pak již jen stačí udělat symbolický odkaz na binárku BusyBoxu. Pro představu, k dispozici jsou příkazy od ‚ls‘ a ‚cat‘ až po ‚tar‘ či ‚gzip‘. V případě, že vám pro daný příkaz nevyhovuje jeho BusyBoxová verze (většinou má méně voleb), můžete symlink odstranit a místo něj nainstalovat běžnou binárku příslušného příkazu. Ač se mi osobně BusyBox zprvu moc nezamlouval, je to ideální řešení pro různé embedded systémy či minidistribuce.

Poslední věcí, kterou bych v oblasti OS rád zmínil, je, že v blízké budoucnosti se počítá s přechodem na GTK+ verze 2 a nově se také začalo uvažovat o přechodu na UTF-8. Co se týče češtiny, nedošlo od minulého dílu k žádnému posunu, tzn. není. A nyní již konečně k dlouho slibovanému software.

Software

Jak jsem již uvedl v předcházejícím dílu, je možné na iPAQu provozovat téměř libovolnou linuxovou aplikaci, pokud máte dostatek systémových prostředků. Ukažme si některé z těch, které přicházejí spolu s distribucí a reálně se používají.

PIM aplikace

Do skupiny PIM (Personal Information Management) aplikací spadají aplikace pro správu kontaktů, času, poznámek apod. V této oblasti nebyla donedávna situace příliš růžová, ale…

…začněme od začátku. Nejpoužitelnější jsou v tomto okamžiku pravděpodobně aplikace z mnohými zatracovaného prostředí Opie (derivát Qtopia prostředí ze Sharp Zaurus, mimochodem, k ukládání dat používá XML). Ty jsou také jediné schopny se nějakým rozumným způsobem synchronizovat s desktopem. Pokud však dáváte – stejně jako já – přednost X Window systemu, musíte sáhnout po něčem jiném. To „něco jiného“ bylo donedávna celkem problémem. V úvahu připadaly buď překompilované aplikace z projektu Agenda VR-3 (první linuxový handheld, dnes už bohužel téměř mrtvý), nebo různé další jednotlivé programy, povětšinou napsané v Pythonu (za zmínku snad stojí jen projekt Storm), zkrátka: Každý pes, jiná ves. Neutěšená situace však asi trápila jednoho programátora v Německu více než ty ostatní, a tak odstartoval projekt GPE.

Projekt GPE

GPE (GNU Pocket Environment)

je soubor balíčků aplikací, knihoven atd., za pomocí kterého uděláte z iPAQu plnohodnotné PDA. Vývoj započal někdy začátkem roku 2002 a po počátečním „náboru“ vývojářů pokračuje vpřed mílovými kroky. Mezi nejdůležitější vlastnosti patří:

  • Výhradní použití programovacího jazyka ‚C‘.
  • Použití knihovny GTK+. Prozatím ve verzi 1.2, většina aplikací je však v současné době již portována do verze 2.0.
  • Ukládání dat do SQL databáze. Je použit vlastní uSQLd Database Engine postavený na SQLite.
  • Víceuživatelské prostředí. Prostřednictvím Display Manageru se nyní mohou k iPAQu přilogovat různí uživatelé a každý vidí svá vlastní data.

Logovací obrazovka GPE
Logovací obrazovka GPE

Kompletní prostředí GPE je sice objemově poněkud rozsáhlejší, takže se hodí místo ve Flash ROM ušetřené absencí Pythonu a přítomností BusyBoxu, ale samozřejmě nemusíte instalovat všechny jeho součásti.

Nyní pár slov k oněm jednotlivým součástem. Jako první vás po nalogování přivítá Application Manager (samozřejmě jen, pokud ho máte nainstalovaný), určený ke spouštění aplikací, případně k přepnutí se do aplikace již spuštěné. Pro uživatele PalmOS poznamenávám, že podobnost s PalmOS launcherem není zcela náhodná. Pokud jde o mě, Application Manager nepoužívám a dávám přednost klasickému menu, které je ukryto ve spodním panelu pod ikonou tučňáka.

GPE Application Manager
GPE Application Manager
(virtuální klávesnice neaktivní)

Mezi další GPE součásti (aplikace) patří jednak klasické PIM aplikace jako Address Book, Calendar, Todo list a Mail Client (který podporuje protokoly SMTP, IMAP4 a POP3), jednak aplikace méně tradiční (zde záleží na úhlu pohledu, co je ještě „tradiční“ a co ne). Jsou to například Voice memo recorder (namluvené poznámky komprimuje pomocí GSM codecu – libgsm – a tím spoří místo), Sketch Book (pro „volné“ kreslení na displej) nebo Media Player (podporovány jsou zatím formáty MP3 a Ogg Vorbis prostřednictvím celočíselných algoritmů Mad a Tremor, viz níže). Výčet zdaleka není úplný a aplikací stále přibývá.

Zájemce o další informace a screenshoty jednotlivých aplikací odkazuji na již výše zmíněné stránky projektu GPE.

GPE Kalendář
GPE Kalendář
(virtuální klávesnice aktivní a „vysunutá“)

Ač nerad, nesmím zapomenout zmínit zatím největší slabinu GPE. Tou je absence synchronizace (to však neznamená, že nemůžete obsah iPAQu zálohovat!). Snahy o řešení existují už od založení projektu (uvažovalo se například o použití SyncML, to však padlo tradičně kvůli licenčním podmínkám), ale výsledek zatím veškerý žádný…

Webové browsery

pravděpodobně zajímají každého. I když je možností více, používá se v zásadě jen jediná, Dillo. Dillo je velice šikovný nízkotonážní browser, trpí však zatím několika (pro někoho podstatnými) nedokonalostmi. Neumí frames, neumí SSL a neumí JavaScript. A zatímco jednu z předchozích verzí se mi podařilo „ukecat“ k zobrazování češtiny, u aktuální verze to neplatí a mně nezbývá než dodat: A neumí česky…

Pro příznivce textových browserů je k dispozici links (ve své starší, nepřekombinované verzi) i Elinks.

Webový browser Dillo
Webový browser Dillo
(virtuální klávesnice aktivní a „zasunutá“)

Aby se Opie v mých článcích neustále necítilo odstrčené, nutno uvést, že v něm je k dispozici browser Embedded Konqueror (u něj je k dispozici podpora SSL a JavaScriptu).

Komunikace

Pod tímto pojmem si asi představíte e-mail, nějakou formu instant messagingu, případně IRC.

Pokud odhlédneme od grafických e-mail klientů v rámci GPE a Opie, tak se dá použít například mutt. Samozřejmě můžete (například prostřednictvím SSH spojení) použít nějakého poštovního klienta i vzdáleně. Já takto například momentálně používám Pine. Funguje skvěle, pouze je poněkud nepříjemné, že při psaní člověk nevidí, kde je kurzor… :-/

Pine spuštěný přes SSH
Pine spuštěný přes SSH

Z klientů instant messagingu (např. ICQ) je přímo v distribuci pouze GAIM. Je však dost velký a navíc je mi osobně značně nesympatický, takže jej nepoužívám. Po vhodném náhradníku jsem zatím nepátral, protože instant messaging pro mě není až tak důležitý.

Daleko důležitější je pro mě IRC. Výše zmíněný GAIM ho má sice umět taky, ale přeci jen to není klasický IRC klient. Protože grafický klient pro GPE je zatím v raném stadiu vývoje a další grafičtí klienti jsou vesměs pěkní „bumbrlíčci“, nezbývá, než použít některého z textových. Já zakotvil u klasického BitchX.

Multimédia

Naprostá většina moderních codeců používá výpočty v pohyblivé řádové čárce. Jak jsem ale již zmínil v prvním dílu, mikroprocesor iPAQu nemá FPU jednotku a její emulace je velice náročná na výkon. To je u iPAQu problém. Naštěstí pro MP3 exituje celočíselná implementace dekodéru, algoritmus jménem mad. Tento byl jako první použit v přehrávači madplay a nyní jej používají i další iPAQovské přehrávače, například nmf z GPE. Relativní novinkou je i celočíselná implementace dekodéru Ogg Vorbis (známá jako Tremor). Tolik k přehrávání audia.

Schopnost přehrávání videí evidentně nebyla hlavním cílem při návrhu HW iPAQu (videohardware je zoufale pomalý, nemluvě znovu o absenci FPU). Zkompilovat a zprovoznit lze vícero přehrávačů (včetně např. mplayeru). Reálně se však používá pravděpodobně jen famplayer (vlastní přehrávač Familiar distribuce) a VLC (VideoLAN::Cli­ent).

Pokud nostalgicky zabrousíme do nedávné historie, je možné přehrávat hudební moduly (mikmod) a Atari (SAP player) i C64 (SID player) hudby.

Protože má iPAQ ve standardní výbavě interní mikrofon, existuje také několik Voice Memo aplikací (jednu jsem již zmínil výše v povídání o GPE). Také jsou k dispozici VoIP aplikace.

IrDA a Bluetooth

Použití infraportu se nijak neliší od jeho použití na desktopu. Lze pomocí něj komunikovat s dalšími IrDA zařízeními, například mobilním telefonem (a jeho prostřednictvím se připojit k Internetu), lze používat protokoly IrLAN, IrNET apod. a pomocí OpenOBEX lze mezi různými zařízeními (např. i s PalmOS) přenášet různé objekty. Díky projektu lirc je také možné jej použít jako dálkový ovladač.

Zatímco infraporty měly již první vyráběné řady iPAQů, Bluetooth se objevil až s řadou H3800 a dodnes je součástí pouze vyšších modelů každé řady. Pro jeho použití (opět obdobné jako na desktopu) je k dispozici jak klasický stack BlueZ, tak i „konkurenční“ (a mnou preferovaný) Affix (pěkný článek na root.cz včetně screenshotů z iPAQa).

Emulace PalmOS

Zde je situace poněkud nepřehledná. Od okamžiku, kdy začal být k dispozici Linux pro iPAQa (rok 1999), se vždy jednou za čas našel někdo, kdo se POSE (Palm OS Emulator) pokoušel zkompilovat a zprovoznit (průběh pokusů), ale bezvýsledně. Problémy údajně souvisely i s jistým alignment problémem ARM architektury. Současně mě však ale jeden ze čtenářů upozornil na existenci funkčního PalmOS emulátoru pro Sharp Zaurus. Tento běží i na iPAQu v prostředí Opie, ale je prý zoufale pomalý a ne zrovna malý.

Proč se tak zoufale vyhýbám Opie (vsuvka)

Nedávno opět rozpoutaná diskuse v konferenci mě přivedla na to, že bych měl osvětlit, proč já vlastně tolik preferuji X Window system a gtk+ před Opie a Qt. Pokusím se to přetlumočit pomocí jednoho příspěvku z konference.

V zásadě lze majitele (záměrně neříkám uživatele) linuxových iPAQů rozdělit do dvou skupin. Jedni jsou spíše uživatelsky zaměření, chtějí mít iPAQa především jako PDA a nic moc jiného je nezajímá. Ti většinou dávají přednost Opie (ačkoli i toto se s nástupem GPE mění). Druhá skupina jsou „hračičkové“, které prostě těší mít – jak doslova padlo v konferenci – ‚cool device‘, se kterým se dá dělat spousta zajímavých věcí. Tato skupina zase většinou dává přednost X Window systemu (zde je nutno podotknout, že iPAQ je v současnosti pravděpodobně jediný linuxový handheld s takto masivní podporou X Window systemu). Toto dělení samozřejmě není zdaleka jednoznačné a já se omlouvám všem, kteří do něj nezapadají.

Cloud 24 - tip 1

Jak jste již asi pochopili, já spadám do té druhé kategorie. A pokud k tomu připočítám, že v žádném z mých počítačů nenajdete KDE a že knihovny Qt mám nainstalovány jen proto, že bych snad někdy chtěl spustit nějakou aplikaci, která je potřebuje, je můj postoj jasný (prosím, zdržte se flames v příspěvcích, jde přece o právo výběru).

Závěr (dočasný)

Ač jsem původně uvažoval, že čtvrtým dílem tento seriál ukončím, zjistil jsem, že je stále (a zatím to vypadá, že ještě dlouho bude) o čem psát. Tímto tedy „pasuji“ tento seriál článků na „občasník“ a těším se na vás zase někdy u dalších pokračování (či u dalších článků na jiné téma).

Byl pro vás článek přínosný?