Dnes se budeme věnovat hardware iPAQu. V příštím dílu si pak řekneme něco málo k alternativním operačním systémům a blíže se podíváme na technická specifika a instalaci jednoho z nich – Familiar Linuxu. Díly třetí a čtvrtý budou věnovány softwaru (systémovému i aplikacím), a to jak z pohledu uživatele, tak i programátora. Případná další pokračování budou záviset na vašem zájmu a ohlasech.
Hardware iPAQu
V současné době existují čtyři řady handhledů iPAQ:
- H31×x – modely s monochromatickým displayem, 16MB Flash ROM a 16MB RAM
- H36×x – barevný TFT display, 16MB Flash ROM a 32 nebo 64MB RAM
- H37×x – modernizovaná řada H36×x lišící se designem a větší, 32 MB Flash ROM
- H38×x – nejnovější řada s barevným displayem, 32MB Flash ROM, 64MB RAM a volitelně zabudovaným Bluetooth modulem
Mikroprocesor
Srdcem iPAQu je 32-bitový RISC mikroprocesor Intel StrongARM SA-1110. Pamětníkům možná připadá zkratka ARM povědomá. Ano, opravdu se jedná o jednoho z následníků procesoru ARM (Acorn RISC Machine), používaného v počítačích britské společnosti Acorn (u nás byl asi nejznámější Acorn Archimedes).
Základní takt procesoru je 206MHz a je v jistém rozsahu skokově měnitelný jedním z vnitřních registrů procesoru. V Linuxu je možné obsah tohoto registru ovlivňovat prostřednictvím ‚/proc‘ fileystému s patřičným efektem na výdrž akumulátoru.
Procesor nedisponuje FPU jednotkou, používá se tedy její emulátor, což znamená nízký výkon aplikací pracujících s pohyblivou řádovou čárkou.
Flash ROM
V paměti Flash ROM je standardně umístěn operační systém Windows CE. Instalace alternativního operačního systému většinou spočívá ve výměně obsahu této paměti (píšu „většinou“, protože horkou novinkou je právě možnost dualbootu Windows CE/Linux). Zatímco Windows CE si ve Flash ROM paměti prostě jenom „sedí“ a téměř do ní nezapisují (výjimkou je oblast paměti pro zálohování některých uživatelských dat), Linux má v této paměti vytvořen regulérní read/write souborový systém.
Zde si dovolím zmínit se o pár technických detailech. Paměti Intel StrataFlash jsou rozděleny do bloků (u iPAQů řady H31×x to vychází po 128kB, u ostatních po 256kB). Na začátku je každý takovýto blok „vymazán“, což konkrétně znamená, že všechny jeho bity jsou nastaveny na log. „1“. Dále je možné v něm libovolně nastavovat bitové hodnoty z log. „1“ na log. „0“. Pokud je však potřeba jeden jediný bit znovu vymazat (nastavit na log. „1“), MUSÍ se vymazat vždy celý blok. Těchto výmazů má však každý blok zmíněných pamětí zaručených pouze 100 000. O tom, jak se toto drastické omezení životnosti efektivně řeší, si povíme v příštím dílu (i mne tato hodnota ze začátku dost děsila).
Současný hardware iPAQu umí maximálně 32MB Flash ROM paměti. Nové řady jsou standardně osazovány již plnými 32MB (z důvodu větší velikosti OS PocketPC 2002), starší řady mají pouze 16MB. Drobnou zajímavostí je, že v řadě H36×x existují série osazené plnými 32MB. Prvním důvodem je paradoxně fakt, že Compaq v jistém období trpěl nedostatkem příslušných čipů, a aby nemusel přerušit výrobu, používal čipy s dvojnásobnou kapacitou. V druhém případě si větší paměť Flash ROM vyžádala mutace Windows CE určená pro východoasijské trhy (inu, japonská Windows CE jsou prostě větší).
Pro doplnění uvádím, že zatímco u původní verze Windows CE je vám 16MB FlashROM navíc úplně k ničemu, Linux běžně obslouží celých 32MB, a to se velice hodí. Je také možné rozšíření starších modelů na plných 32MB Flash ROM, což provádí specializované firmy (zatím však pravděpodobně jen v zahraničí).
RAM
K paměti RAM asi není co dodat. Snad jen to, že hardware iPAQu standardně zvládá maximálně 64MB RAM a opět že existují společnosti, které vám pamět upgradeují a umí do iPAQa „nacpat“ dokonce i 128MB („balíková“ koncepce :-) ). Linux s tím tradičně nemá problém, Windows CE musí použít speciální ovladač (a i přesto vidí tuto „paměť navíc“ jen jako disk a ne jako regulérní RAM).
Při běžném provozu pod Linuxem je část paměti RAM využívána jako ramdisk.
Displej
Displej má v černobílé i barevné verzi rozlišení 240×320 bodů (v Linuxu se však často používá otočený o 90 stupňů), barevná hloubka se liší podle řady. Řadič LCD displeje je u řad H36×x a H37×x používán v 16ti bitovém (tj. 65536 barev) TFT módu, avšak vlastní displej Sony je pouze 12ti bitový (tj. 4096 barev). Plných 16 bitů ukazuje až řada H38×x. Monochromatický iPAQ pracuje s barevnou hloubkou 4 bity (16 odstínů šedi). Řadič nemá vlastní obrazovou paměť, ale používá DMA přístup do systémové RAM. Obsah obrazové paměti je pod Linuxem dostupný přes framebuffer device (‚/dev/fb‘).
Podsvětlení displeje je regulovatelné a z vlastní zkušenosti musím říci, že barevný TFT display je velmi dobře čitelný i s podsvětlením zcela vypnutým (šetříme akumulátory). Světelný senzor, který pod Windows CE slouží k automatickému nastavování úrovně podsvětlení v závislosti na okolním světle, není v Linuxu zatím využit (je však dostupný přes ‚/proc‘ filesystém). Nesmím zapomenout dodat, že displej je dotykový.
Ovládání
iPAQ nabízí uživateli pro ovládání především výše zmíněný dotykový displej (‚/dev/touchscreen‘) a několik tlačítek. Těm dominuje jakýsi „joypad“ (interně vlastně čtyři tlačítka pro jednotlivé směry a spoušť). Všechna tlačítka jsou sice rovněž dostupná přes ‚/dev‘ filesystém, většinou se k nim však přistupuje jako k vybraným klávesám standardní klávesnice.
Zásadní nevýhodou pro některé aplikace (typicky hry) je hardwarové omezení, které neumožňuje vyhodnocení stisku více tlačítek/kláves současně (platí i pro joypad – nefungují šikmé směry). Toto je odstraněno až u nové řady H38×x.
Pro pohodlnější psaní delších textů je vhodné použít některou z externích klávesnic (Stowaway Portable Keyboard, Micro Keyboard, …), které se připojují přes sériový port.
Zvuk
Zvukový výstup se odehrává přes reproduktorek zabudovaný pod „joypadem“, z hlediska kvality výstupu je však výhodnější použít příslušný výstupní konektor (jack). V Linuxu je audio zařízení dostupné standardně přes ‚/dev/dsp‘, bohužel však umí pouze 16bit a stereo výstup, což může být problém pro některé aplikace, které umí pouze 8bit a/nebo mono (podle obecné filozofie vývoje linuxového kernelu tohle nesmí řešit driver – pokud hardware postrádá nějakou vlastnost, kernel ji nesmí „falšovat“).
Vstup zvuku je možný pouze přes zabudovaný mikrofon, hardware podporuje full duplex.
Rozhraní
S okolním světem může iPAQ komunikovat přes několik rozhraní. Především je to klasický sériový port (‚/dev/ttySA0‘), který je v případě Linuxu na iPAQu hlavním komunikačním kanálem. Bez sériového připojení Linux do iPAQu vůbec nenainstalujete, používá ho rovněž systémová konzola (což je např. v případě nefungujícího grafického rozhraní jediná možnost komunikace s iPAQem). Rovněž se často využívá pro IP komunikaci (protokolem PPP).
Dalším rozhraní je USB. Nadšence pro připojování čehokoliv však musím hned na začátku zchladit. iPAQ žádným způsobem nepodporuje bus mastering, proto se může chovat pouze jako USB klient. Prakticky to tedy znamená, že pomocí USB je možné ho připojit pouze k PC. USB je v tomto případě používáno jako USBNET (ethernet přes USB, dnes již standardní součást kernelu), poskytující výrazně rychlejší IP spojení s okolním světem než PPP přes výše zmíněný sériový port nebo přes IrDA.
IrDA je také posledním standardním komunikačním rozhraním iPAQu. Dnes již podporuje FastIR a dá se využít nejen k běžné datové komunikaci, ale například i k ovládání mobilního telefonu (gnokii) či domácích spotřebičů (lirc).
Modely novější řady H38×x jsou ještě navíc vybaveny rozhraním MMC/SD (MultiMedia Card a jeji bezpečné varianty Secure Digital).
Rozšíření
iPAQ je také vybaven jedním speciálním rozšiřujícím konektorem. Přes něj se připojují tzv. sleeves (marketingově většinou nazývané „jackets“). Současně je možné připojit vždy jen jeden rozšiřující modul, je však možná jeho výměna za běhu (hotswap). Za zmínku stojí následující moduly:
- CF sleeve pro připojení jednoho zařízení v CF (CompactFlash) formátu. Většinou se jedná o paměť Flash ROM, ale v CF formátu se vyrábí i další zařízení, jako jsou microdrive (harddisk o kapacitě až 1GB), modemy, ethernet a wireless adaptéry, přijímače GPS… Relativní novinkou je varianta tohoto modulu, který má kromě rozhraní CF i zabudovaný Bluetooth.
- PCMCIA sleeve pro připojení jedné PCMCIA karty typu II. Jak jsem se již dříve zmínil u popisu USB, iPAQ žádným způsobem nepodporuje bus mastering, což znamená, že lze použít pouze karty typu PC Card (odpovídá sběrnici ISA) a nikoliv CardBus (odpovídá PCI). O množství zařízení ve formátu PCMCIA se nebudu rozepisovat, zajímavou variantou je však použití VGA karty v tomto formátu (asi nemusím vysvětlovat, co to prakticky znamená). Velkou výhodou tohoto modulu je přítomnost dalšího akumulátoru, který je určen především k pokrytí vyšší spotřeby systému při jeho rozšíření.
- Dual PCMCIA sleeve pro připojení dvou PCMCIA karet typu II nebo jedné typu III. Platí totéž jako u předchozího modulu, navíc je ještě dále zvýšena kapacita akumulátoru.
Z dalších rozšiřujících modulů (které vyrábí i třetí strany) uvedu například GSM modul podporující HSCSD a GPRS, dual CF sleeve, CF sleeve s digitálním fotoaparátem či speciální modul pro prezentace (má VGA a S-Video výstup s vysokým rozlišením). Pravděpodobně jedinou nevýhodou všech rozšiřujících modulů (a zvláště těch PCMCIA) je, že s nimi nepříjemně vzrůstají rozměry a hmotnost iPAQa.
Co se týká podpory pod Linuxem, bez problémů jsou CF, PCMCIA i dual PCMCIA sleeves (a obecně veškerý hardware od Compaqu). Podpora zařízení v nich použitých (a opakuji, že v případě PCMCIA to musí být zařízení typu PC Card) je závislá na existenci linuxových driverů. Ty většinou po rekompilaci pro ARM fungují (výjimkou potvrzující pravidlo jsou např. ethernet karty 3Com). Problémy nejsou také se zařízeními, která pro svou obsluhu používají svůj interní sériový port (např. GPS či Nokia Card Phone). Podrobnější informace naleznete na stránce Ipaq Hardware Compatibility. Podpora speciálních modulů třetích stran je omezená, nikoli však nulová (např. dual CF sleeve je podporován, pro digitalní fotoaparát je k dispozici kompletní specifikace, zatím však nikdo nenapsal driver).
Akumulátor
Akumulátor LiPol (Lithium Polymer) je novinkou, o níž málokdo něco ví. Nelze jej vyjmout bez rozebrání přístroje. Power management Linuxu na iPAQu byl dlouhou dobu tvrdým oříškem. Postupem času se však naučil iPAQ i „spát“ (ze začátku jste museli vždy udělat shutdown a poté DIP přepínačem odpojit akumulátor) a dále se možná doba tohoto „spánku“ (mluvíme o výdrži akumulátoru) prodloužila ze 48 hodin až na více než 10 dnů.
Pokud jde o výdrž za běžného provozu, konkrétní hodnoty jsou problém. Výdrž totiž závisí na příliš mnoha faktorech (používání a intenzita podvětlení, používání zvukového výstupu a dalších zařízení, zatížení CPU…). Pro orientaci mohu uvést, že nepříliš zatížený iPAQ s vypnutým podsvětlením a bez zvuku (např. čtení) vydrží asi osm hodin. Při přehrávaní MP3 dochází ke zkrácení asi o čtvrtinu, při zapnutém podsvětlení však výdrž klesá na pouhé dvě hodiny. Stav baterie lze zjistit z ‚/proc/apm‘.
Nová řada H38×x má díky vyšší kapacitě akumulátoru dobu provozu výrazně navýšenou.
Bližší informace
o hardware jsou dostupné na této stránce, zvláště pak zde. Obecně je server www.handhelds.org zdrojem informací o provozu Open Source systémů na více různých handheldech, především je však ale základnou Linuxu pro iPAQ (server totiž patří společnosti Compaq).
Tak a to je pro tentokrát všechno, příště si něco povíme o možných alternativách operačního systému Windows CE a blíže se podíváme na jeden z nich – Familiar Linux. Seznámíme se s jeho technickými specifiky a podíváme se i na instalaci.