Za jídlo, šaty a vzduch otročíme na programech z temných světů

iPodLinux

Mezi konzumací neuvěřitelně dobré omáčky na špagety vlastní provenience, učením se na zkoušky a čtením Harryho Pottera jsem si řekl, že se trochu pohrabu v iPodu. Povedlo se. Celý postup popíšu jen velmi stručně, protože je k nalezení na adrese projektu ve velmi přehledné wiki. Nicméně je popis instalace odzkoušený na starších generacích iPodů než mám já, takže jsem musel projít několik vláken v diskusních fórech, než jsem se dobral výsledku.
Celý postup je platný pro Mac-formátované iPody a instalováno je pod MacOS X:
  1. Budeme potřebovat několik archivů obsahujících komponenty samotného systému a instalační utility. Následující odkazy vedou na verze, které jsem použil já a pravděpodobně časem zastarají. Novější hledejte na webu projektu.
    • ipodpatcher – utilita, která za nás udělá většinu práce
    • Loader2 – systémový zavaděč (umožní při startu iPodu zvolit originální firmware nebo iPodLinux)
    • Kernel – jádro systému
    • Userland – obsah root adresáře, standarní linuxová struktura
    • Podzilla, schemes, modules – uživatelské rozhraní, vzhledy a moduly (= programy) – stačí jeden archiv začínající appearance, jeden podzilla a jeden pzmodules
  2. ipodpatcher vybalíme z archivu, nakopírujeme ho do adresáře kam v kde terminál hledá spustitelné soubory, nejlépe /usr/bin
  3. Pustíme terminál a zadáme:
    ipodpatcher –scan
    Tento příkaz nám proskenuje zařízení a zjistí, zda a jaký máme iPod. Pokud nic nevypíše, je něco špatně a máme smůlu.
  4. Provedeme backup celého obsahu iPodu. Systémový firmware pro všechny případy zazálohujeme přikazem:
    ipodpatcher -r bootpartition.bin
    Poté zjistíme v Disk Utility, jestli datový oddíl v našem iPodu má formát HFS+ bez žurnálu. Pokud ne, přeformátujeme jej tak, aby tento formát měl. Originální firmware ho zvládá bez problémů, zatímco iPodLinux může mít problémy. POZOR: formátujte pouze oddíl, ne celý iPod
  5. Nainstalujeme systémový zavaděč příkazem:
    ipodpatcher -ab loader.bin
    Kde loader.bin je .bin soubor který se nacházel v archivu se systémovým zavaděčem. Pokud pouze copy-pastujete příkazy, nezapomeňte si soubor přejmenovat. Příkaz samozřejmě musíte spustit z adresáře, kde se .bin soubor nachází.
  6. Vybalíme obsah userland archivu na iPod tak, aby jeho obsah byl přímo v root adresáři.
  7. Soubor .bin v archivu s kernelem přejmenujeme na linux.bin a nakopírujeme ho do root adresáře iPodu, soubor getLoader2Args, který se nachází v témže archivu nakopírujeme do adresáře bin na iPodu a změníme mu práva tak aby byl spustitelný příkazem:
    chmod +x ./getLoader2Args
    Příkaz musíme pochopitelně spustit z adresáře bin.
  8. Obsah archivu začínajícího podzilla, konkrétně soubor podzilla nakopírujeme do adresáře bin a nastavíme mu spustitelný atribut. Obsah adresáře pzmodules, který je v archivu začínajícím pzmodules nakopírujeme do adresáře usr/lib na iPodu. Adresáře fonts a schemes, které najdeme v archivu začínajícím appearances nakopírujeme do usr/share na iPodu
  9. Hotovo. Odpojíme iPod hozením jeho ikony do koše a on se sám restartuje.

Takto vypadá boot iPodLinuxu. Pokud některý z modulů při startu vypíše chybu, není nic jednoduššího, než ho z patřičného adresáře smazat.
Je nutné přiznat, že celý iPodLinux má použitelnost zahradního grilu uprostřed Antarktidy, zvláště na páté generaci iPodů, která má pomalejší procesor(y) a framebuffer, než generace předchozí. Je to prostě jedna z těch věcí, které někdo chtěl zkusit a tak je realizoval a které přitom nemají valné praktické využití.
Co tedy můžete očekávat ?
iPodLinux 1
Boot menu. Zde si můžete vybrat, zda spustit originální firmware, iPodLinux, nastartovat disk mode nebo iPod uspat. Menu je konfigurovatelné, podobně jako například LiLo na stolních počítačích, podrobný popis je tady

iPodLinux 2
Základní menu Podzilly. V Extras jsou nainstalované moduly (neplést s kernel moduly), File Browser nepotřebuje popisovat, v Settings můžete nastavit vše od vzhledu po asi deset metod zadávání znaků kolečkem, Run umožní přímo spustit zadaný příkaz a v Power lze iPod restartovat či vypnout.

iPodLinux 3
Jedno z dem, rotující 3D kostka, u které lze zapnout/vypnout průhledné stěny, jejich výplň, zoomovat a regulovat rychlost a směr rotace. Asi nejrychlejší z dem v defaultní Podzille obsažených.

iPodLinux 4
Fraktál. Podzilla má dva moduly na generování fraktálů, jeden na Julia set a druhý na Mandelbrot set. Nic moc rychlost, Psion 5MX se mi zdá generoval zhruba stejně rychle. Zajímalo by mě, na jaké rychlosti ARM pod Linuxem jede, podle mě nic moc.

iPodLinux 5
Dokáže si někdo představit unixový operační systém bez terminálu ? Já určitě ne.

iPodLinux 6
Kreslení na iPodu je opravdu nepoužitelné. Nakreslení takové stupidity jako je na obrázku zabere asi pět minut usilovné snahy, což za to nestojí. Inu touchscreen je touchscreen a ten kolečko holt nenahradí.

Jako moduly do Podzilly existují i „užitečnější“ věci, jako například Doom (kterým se už patnáct let měří použitelnost platformy, podle mě je to jeden z nejportovanějších programů) a MAME. Zatím jsem ani jedno nezkoušel, přiznám se ale, že pokud MAME poběží solidně, bude to pro mě důvod iPodLinux na iPodu nechat.

Celý projekt budiž důkazem toho, že Linux jde opravdu s trochou snahy portovat kamkoliv a to i když to nemá žádný význam. Na závěr pro Linuxáky obsah /proc/cpuinfo a /proc/meminfo:
/proc/cpuinfo

Processor	: ARM/VLSI ARM 7 TDMI rev 0 (v3l)
BogoMIPS	: 37.37
Hardware	: iPod
Revision	: b0011
Serial		: 0000000000000000

/proc/meminfo

        total:    used:    free:  shared: buffers:  cached:
Mem:  31236096 24899584  6336512        0     8192  6815744
Swap:        0        0        0
MemTotal:        30504 kB
MemFree:          6188 kB
MemShared:           0 kB
Buffers:             8 kB
Active:           1744 kB
Inactive:         4920 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:        30504 kB
LowFree:          6188 kB
SwapTotal:           0 kB
SwapFree:            0 kB

Keywords: iPodLinux, instalace iPodLinuxu, iPod, Apple, Mac OS X