Ano, skutečně je možné místo EPOCu na tomto kapesním počítači používat více méně plnohodnotný Linux a aplikace na něm běžící. Je to možné díky projektu Linux7k, který se jednak zaobírá potřebnými úpravami jádra a jednak rovněž vytvořili minidistribuci, která obsahuje základní soubor aplikací.
Podívejme se teď trochu detailněji na to, jak vlastně Linux na S5 funguje. Operační systém EPOC je u těchto zařízení uložen v paměti ROM, čímž je zajištěno, že se OS „neztratí“ ani při vyjmutí hlavní i záložní baterie nebo tvrdém resetu. Jakmile jednou OS nabootuje, počítač se za normálních okolností nikdy skutečně nevypíná, pouze přechází do hybernace, kdy je spotřeba energie snížena na minimum. Protože je EPOC startován z ROM, není samozřejmě možné změnit zavaděč tak, aby bootoval přímo Linux. Linux7k využívá podobného principu, jako při bootování Linuxu z DOSu pomocí programu loadlin. V případě Psionu jde o nativní EPOCovskou aplikaci ArLo (ARM Loader). Ta načte image jádra, případně ramdisk a předá řízení jádru, které definitivně odstraní EPOC z operační paměti. Od tohoto okamžiku již na běží na S5 Linux (pokud použijete jádro z ftp Linux7k, půjde o verze 2.2.1).
Tak to byl obecný postup, teď si řekněme konkrétně jak na to. Nejdříve je nutné zazálohovat všechna data, která máte na disku C:, protože při bootu Linuxu bude vyprázdněn (jde vlastně o operační paměť). Autoři varují, že není dobré spoléhat se na to, že data na disku D: (karta Compact Flash) nebudou nijak postižena, ale já jsem za celou dobu testování nezaznamenal žádný problém.
Druhým krokem je nahrání celkem čtyřech souborů na Psion (nejlépe přímo do C:). Jde o Psion Installer, nejnovější ArLo (pouze soubor Arlo.sis z archivu) a nejnovější jádro a ramdisk (glued-* a initrd-*, oboje k nalezení zde). Pozor, jádro se nahrává dekomprimované! K nahrání souborů lze s úspěchem použít plptools, o kterých jsme psali minule.
Jakmile máte vše potřebné nahrané na Psionu, stačí nainstalovat ArLo a pak nabootovat. Nejdříve je třeba spustit program INSTEXE.EXE. Ten navenek nic neudělá, vyjma toho, že soubor Arlo.sis změní svou ikonku. Nyní spustíme právě soubor Arlo.sis a na dotaz, kam instalovat ArLo zvolíme disk C:. Soubor Arlo.sis zmizí a místo něj se objeví soubor Arlo.exe.
Nyní již přikročíme k vlastnímu bootování. Jelikož je při něm nutné zadat jméno souboru s jádrem a ramdiskem, je vhodné je přejmenovat na něco rozumného (např. glued-??? na img a initrd-???.gz na initrd.gz). Po té spustíme program Arlo.exe, který vypíše text podobný následujícímu:
Loading logical device Opening the channel Commands are: ... Option buffer at address XXX Memory description at address YYY > _
nahrajeme jádro povelem
l img
a obdržím hlášení podobné tomuto:
Opening file image Succeeded File size XXX Loading XXX bytes to address YYY Read XXX bytes No pages = ZZZ > _
nahrajeme ramdisk povelem
l initrd.gz
a opět obdržíme stejné hlášení jako po načtení jádra, pouze s jinými číselnými hodnotami.
Nakonec spustíme vlastní bootování povelem
b
Pakliže se všechno povede jak má, uvidíte již důvěrně známé hlášky kernelu a Linux běží (viz obrázek).
to v pravém horním rohu displaye je tučňák, ačkoliv to tak nevypadá :)
Tak, Linux by běžel, ale co vlastně na něm lze provádět? V podstatě téměř vše, co s libovolným jiným linuxovým strojem, samozřejmě s jistými omezeními plynoucími ze specifičnosti hardwaru. Z běžných aplikací jsem bez větších problému testoval například editory vi nebo joe nebo komunikační program minicom. Spustit lze i Midnight Commander, ale nefungují v něm moc dobře klávesy, což je možná jenom otázka nastavení, bohužel nemám příliš času s tím laborovat.
Aplikace lze získávat v binární podobě, kompilované pro platformu ARM. Pokud budete využívat standardní ramdisk, musí být kompilované jako a.out, naopak ramdisky flatcap (mimochodem, mnohem bohatší na aplikace) jsou postavené na ELF binárkách.
Ani pokud potřebnou aplikace nenajdete v binární podobě, není nic ztraceno. Na ftp Linux7k najdete dva balíky – xdev a xdev-aout, které slouží ke cross-kompilaci programů pro platformu ARM na platformě i386 (rovněž jsou tyto balíky nutné pro kompilaci jádra). Kompilace je celkem jednoduchá, stačí zaměnit volání všech programů z binutils a kompileru za programy z tohoto balíku – například gcc za arm-linux-gcc nebo arm-linuxaout.gcc a analogicky i ostatní programy, jako např. ranlib, strip atd.).
Největší mínus je bohužel to, že se mi ani po několikadenním snažení nepodařilo zprovoznit ppp připojení. Osobně mi totiž zatím jako největší přínos kombinace Psion/Linux připadá zejména nasazení v oblasti vzdálené správy serverů připojených do Internetu, tedy hlavně teoreticky bezproblémový provoz Secure Shellu, možnost volby FTP klienta atd.).
Nicméně Linux7k se stále vyvíjí, i když pomaleji, než v počátcích a já doufám, že nebude trvat dlouho a bude i tento problém vyřešen.
Než se vrhnete do testování, rád bych upozornil, že pro mnoho účelů je EPOC a jeho aplikace mnohem vhodnější a zcela určitě komfortnější, než Linux v této podobě (otázka je, jak se do budoucna vyvine například projekt NanoGUI). Navíc se instalací Linuxu zbavíte mnoha funkcí přístroje Series 5, jako je například nahrávání a přehrávání zvuku a podobně.
Nicméně je třeba podotknout, že návrat k EPOCu je bez problémů možný, stačí provést pouze tvrdý reset přístroje (ten ale občas po nabootování Linuxu zafungoval až na několikátý pokus, oproti tomu, vyjmutí hlavních i záložní baterie funguje zcela spolehlivě). Pozor, opakuji, že data z disku C: se pří bootování Linuxu zničí, takže je dobré je mít zazálohované.
No, a na závěr snad ještě nějaký ten tip pro ty, kdo se rozhodnou s Linuxem na Psionu experimentovat.
- Vřele bych doporučil pořídit si kartu Compact Flash, neboť ta vám umožní bez problémů přecházet mezi Linuxem a EPOCem, nahrajete-li si na ní vše potřebné pro nabootování Linuxu. Lze na ni i ukládat data, která potřebujete sdílet mezi oběma systémy.
- Protože nefunguje správně kombinace kláves Ctrl+C nebo Ctrl+Z, není občas možné ukončit některé aplikace. V případě jedné konzole jste pak odsouzeni k tvrdému resetu a následné nové instalaci Linuxu. Lze tomu předejít otevřením dalších virtuálních konzol. To lze udělat pomocí programu login:
login </dev/tty2 >/dev/tty2 &
otevře konzoli, na níž se přepnete pomocí stisku Menu+2. Analogicky lze otevřít i další konzole.
Linux7k je zatím ještě značně experimentální projekt, který však již vykazuje prvky stability a použitelnosti. Není na něm nejdůležitější to, že jde o Linux, ale to, že přináší něco úplně nového, doposud nevídaného na poli kapesních počítačů: nezávislost na operačním systému od výrobce. To, co je běžné na stolních PC, je často komplikované již u notebooků a doposud to bylo prakticky nemožné u handheld zařízení – možnost vzít disketu (CDROM, paměťovou kartu nebo cokoliv jiného) a nainstalovat si operační systém podle své volby. To Linux7k umožňuje a je to opravdu revoluční záležitost. A co je na tom nejkrásnější je to, že nejde o nějaký hack několika nadšenců, ale projekt částečně podpořený přímo firmou Psion, která poskytla technickou dokumentaci a je podle autorů obecně daleko otevřenější spolupráci, než její soupeři ve světě mobilních zařízení. Za to jí rozhodně patří dík.
Počítač Psion Series 5 zapůjčila k testování společnost Point.X, spol. s r. o.