Jak jsem hackoval X-BOX

Poznámka: Než si tento hardware pořídíte, dočtěte tento happy-end do konce :)

Vše začal nápad distribuovat digitální televizi (DVB-T) na všechny počítače v naší domácí síti a zároveň do televize.

Začal jsem se tedy pídit po možnostech. Jednou z nich je použití nějakého PVR software - například MythTV, což je open source software, který (samozřejmě s nějakým vhodným hardwarem) více než zastane několik domácích přístrojů, jako je satelitní přijímač nebo digitální DVD rekordér. Výhodou tohoto řešení je univerzálnost (stroj s linuxem), zajímavé funkce a také možnost oddělení frontendu a backendu (distribuovaná data). Nevýhodou pak nutnost nějakého (dalšího) počítače.

Nákup

Jako nejvhodnější hardware se jeví nějaký minipočítač formátu Mini-ITX postavený na platformě VIA EPIA, nejlépe pouze s pasivním chlazením. To je ale dost drahá záležitost.

Řešením je X-BOX, hardware resp. herní konzole od Microsoftu. Jde o X-BOX verze 1, na úpravě X-BOXu 360 se zatím pracuje.

xbox

Poznámka: Přestože se v souvislosti s provozováním Linuxu na X-BOXu mluví o "hackování", nejde o žádnou ilegální aktivitu. Provozovat open source software nebo upravovat legálně koupený hardware není nic špatného, naopak.

Jak jsem se dočetl na stránkách projektu Xbox-Linux, cituji:

YES - You can run Linux on your Xbox!
YES - You can do it without a modchip!
YES - You can do it without opening your Xbox!

A tak když jsem v electroworldu náhodou narazil na krabici s X-BOXem, neváhal jsem, a asi za 4500kč jsem ho koupil.

Poznámka: Nový X-BOX se dá koupit údajně i pod 4 tisíce.

Hardware & Software

Jak je známo, dokumentace se čte až když není jiná možnost, a tak jsem se trochu pozdě dozvěděl, že pro instalaci linuxu budu potřebovat mimo jiné určitou X-BOXovou hru obsahující určitou chybu umožňující spustit Microsoftem nepodepsaný kód.

Hry, které podporuje projekt Xbox-Linux pro instalaci linuxu:

  • "007 Agent Under Fire" (Electronic Arts)
  • "MechAssault" (Microsoft)

Další hra, která může být pro hack použita, i když ne přímo projektem Xbox-Linux, je Splinter Cell.

Ani jednu z nich jsem samozřejmě neměl, navíc jsem zjistil, že moje verze X-BOXu je 1.6 :(

Varování - verze 1.6

Nejnovější verze X-BOXu s sebou nese několik omezení:

  • nelze přeflashovat TSOP - pro jiný BIOS je nutné použít modchip (dodatečný HW)
  • obsahuje chip pro TV out od MS, který není moc dobře podporovaný linuxem
  • možná některé další

Jak jsem vyřešil tento problém já? S trochou štěstí jsem narazil na člověka se starší verzí a X-BOX jsem s ním vyměnil. On tím získal fungl nový kousek se zárukou, já verzi vhodnou pro Linux s jedním nefunkčním keypadem a zapůjčení hry Splinter Cell.

USB redukce a keypad

Ze zjevných důvodů chtěl Microsoft zabránit použití běžných PC periferií, z důvodů nízké ceny ale nemohli vyvíjet vše od píky. Použili tedy upravené USB s vlastními konektory. Pro zapojení nějaké periferie jako je USB flash disk nebo USB klávesnice je pak potřeba vyrobit si redukci z "MS USB" na "normální USB".

K výrobě jsem použil nefunkční keypad, od kterého jsem odstřihl kabel s konektorem, na jehož druhou stranu jsem napájel samici klasického USB typu A. Více o této úpravě najdete zde:

http://www.xbox-linux.org/wiki/Xbox_Linux_USB_HOWTO Jak jsem později zjistil, nefunkční keypad byl nefunkční pouze kvůli "inline release" konektorům. Po jejich odstřižení a připojení klasické samičí koncovky USB typu A je možné připojit keypad k PC a po nainstalování příslušných ovladačů funguje jako klasický joystick - akorát má 7 os a až 24 tlačítek :)

Softmod Installer a Action Replay

Pro první hack jsem použil Softmod Installer Deluxe (4.5 Nknave Edition), který narozdíl od Xbox-Linuxu podporuje také hru Splinter Cell. Pro přenos souborů na X-BOX posloužil digitální foťák HP PhotoSmart 618, který je shodou okolností i na seznamu kompatibilních zařízení. Kompatibilní flash disk lze tímto způsobem připojit k X-BOXu jako Microsoftí Media card.

Trošku problém je, že MS používá jak pro disk tak pro paměťové karty souborový systém FATX, tedy modifikovaný FAT16/32. Pro uložení je potřeba nejdříve připojit USB storage k X-BOXu, kde se zformátuje a pak použít například Action Replay software pro Windows. Bohužel i tento software je potřeba upravit, neboť je určený pro USB paměti stejného výrobce.

Pokud kopírování gamesavů klaplo, stačí je v X-BOXu zkopírovat na disk a spustit pomocí odpovídající hry.

Poznámka: Alternativně by se gamesavy daly uložit v linuxu se skompilovaným modulem pro filesystem fatx, případně (asi nejjednodušší řešení) v live distru Xebianu.

Auto-Installer

Auto-Installer Deluxe (3.0) je balík různých utilit a dalšího software pro X-BOX. Mimo jiné obsahuje upravené dashboardy (prostředí pro spouštění her a další akce). Upravený dashboard zajistí bootování vlastních CD např. s linuxovými distribucemi. Hurá! :)

Instalace xebianu

Instalace linuxové distribuce už je rutina. Já jsem si vybral distribuci Xebian (1.1.4), která vychází ze stabilního Debianu Sarge. Po vypálení ISO na CD a nabootování je možné ji nainstalovat na disk příkazem XBOXLinuxInstall.

Varování: Pokud chcete nainstalovat linux na celý pevný disk (a ne pouze na volné místo na konci disku nebo jako gamesave), je potřeba přeflashovat TSOP! - viz další bod...

Flash TSOPu

Pro totální vymítění MS software a také pro využití celého disku linuxem je potřeba přeflashovat TSOP flash chip. Flashování je možné pouze po HW úpravě motherboardu. Celá procedura je popsána na této stránce:

http://www.xbox-linux.org/wiki/TSOP_flashing_HOWTO

V mém případě šlo pájení celkem hladce, obě dvojice kontaktů jsou těsně u sebe a tak stačila kapka cínu. Po dalším rebootu vás přivítá grafické rozhraní Cromwellu místo Microsoftího loga X-BOXu.

Finální instalace linuxu (Xebianu)

Pokud se vám povedlo flashnout Cromwell, můžete z CD/DVD nabootovat Xebian a spustit XBOXLinuxInstall - nainstalovat linux na celý disk. Ještě před instalací je vhodné v menu Cromwella unlocknout pevný disk (MS jinak používá jakési šifrování s klíčem, který je unikátní pro každý X-BOX), jinak tento disk nepřečtete v PC. Nezapomeňte také, že pro X-BOX je potřeba mimo jiné správný kernel.

MythTV

Instalace MythTV je popsána zde:

http://www.xbox-linux.org/wiki/MythTV_on_Xebian_HOWTO

Ostatní

Výstup z lspci:

0000:00:00.0 Host bridge: nVidia Corporation: Unknown device 02a5 (rev a1)
0000:00:00.3 RAM memory: nVidia Corporation: Unknown device 02a6 (rev a1)
0000:00:01.0 ISA bridge: nVidia Corporation nForce ISA Bridge (rev d4)
0000:00:01.1 SMBus: nVidia Corporation nForce PCI System Management (rev d1)
0000:00:02.0 USB Controller: nVidia Corporation nForce USB Controller (rev d4)
0000:00:03.0 USB Controller: nVidia Corporation nForce USB Controller (rev d4)
0000:00:04.0 Ethernet controller: nVidia Corporation nForce Ethernet Controller (rev d2)
0000:00:05.0 Multimedia audio controller: nVidia Corporation: Unknown device 01b0 (rev d2)
0000:00:06.0 Multimedia audio controller: nVidia Corporation nForce Audio (rev d2)
0000:00:06.1 Modem: nVidia Corporation nForce AC'97 Modem Controller (rev d1)
0000:00:08.0 PCI bridge: nVidia Corporation nForce PCI-to-PCI bridge (rev d2)
0000:00:09.0 IDE interface: nVidia Corporation nForce IDE (rev d4)
0000:00:1e.0 PCI bridge: nVidia Corporation nForce AGP to PCI Bridge (rev a1)
0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 02a0 (rev a1)

Fotky

Fotky, které jsem udělal, najdete v adresáři xbox.

Odkazy

(1) Xbox-Linux projekt
(2) Czech Xbox Pages
(3) Xbox-Scene
(4) llamma site
(5) MythTV