Lähettäjä: Jukka Aho (jukka.aho@iki.fi) Aihe: Xbox ja Linux Keskusteluryhmät: sfnet.atk.linux, sfnet.atk.linux.asennus, sfnet.harrastus.pelit Päivämäärä: 06.01.2003 -------------------------------------------------------------------------------- Xboxin Linux-käytöstä ei ole näkynyt vielä kovinkaan paljon juttua missään (ja sitäkin vähemmän suomenkielisissä ryhmissä), joten raportoinpa omista ensikokemuksistani. Asentelin äksälaatikkoon pari päivää sitten Edgar Hucekin Xbox-sovitetun Debian GNU/Linux -perusasennuksen. Kohdekoneena oli Gigantista 199 eurolla ostettu nk. "V1.0"-Xbox, johon oli jo aikaisemmin lisätty "mod-piiri", jotta sillä pystyisi ajamaan muutakin kuin vain Microsoftin hyväksymää ja allekirjoittamaa koodia. ("Mod-piiri" on välttämättömyys myös Linuxin asennuksen ja käytön kannalta.) Ensivaikutelma lyhyesti: hyvin toimii. Pientä hienosäätöä Xbox-spesifisten ominaisuuksien tuen suhteen varmasti vielä tarvitaan, mutta peruspalikat ovat kasassa. * * * Asennus aloitetaan imuroimalla SourceForgesta n. 50 megatavun "Ed's Debian" -asennus-cd-image, joka poltetaan cd-r(w)-levylle. Asennusmedian valinnan suhteen kannattaa olla tarkkana, koska etenkin monissa vanhemmissa Xboxeissa on ronkeli DVD-asema, joka lukee kunnolla vain CD-RW-levyjä - niistäkin ehkä vain tietyntyyppisiä. Kun CD laitetaan sisään, käynnistyy Xbox Tux-pingviinilogon saattelemana iloisesti framebuffer-tekstikonsoliin, ja siellä normaaliin login-promptiin. Jos koneelle halutaan tästä promptista kirjautua sisään paikallisesti, tulee johonkin XBoxin peliohjainporteista kytkeä sopivan adapterin avulla kiinni tavallinen USB-näppäimistö. Sisäänkirjautumisen ja asennuksen voi kuitenkin suorittaa myös ssh-yhteyden yli, toiselta tietokoneelta käsin, joka lienee ainakin ensitestausta ajatellen näppärin vaihtoehto. * * * Kun sisää on tavalla tai toisella kirjauduttu, ollaan bash-shellissä, josta voidaan käynnistää varsinainen asennusscripti. Tarjolla on toistaiseksi kaksi asennusvaihtoehtoa: Xbox-Debianin voi asentaa joko 1) viidennelle partitiolle ("E-partitiolle") siten, että Linux-"partitiot" luodaan isokokoisiin image-tiedostoihin alkuperäisen FATX-tiedostojärjestelmän alaisuuteen, tai 2) suoraan kahdeksaa gigatavua isomman kiintolevyn loppupään käyttämättömälle osalle, jos sellaista on tarjolla. Jälkimmäisessä asennusvaihtoehdossa partitiot luodaan kiintolevyn (käyttämättömään) loppuosaan, sinne suoraan kirjoittamalla. Jos tälle alueelle on epävirallisin työkaluin luotu nk. "F-partitio", se ylikirjoitetaan, joten kannattaa olla varovainen. Tulevaisuudessa lienee mahdollista asentaa Linux Xboxiin myös muutamalla muulla tavalla, mutta toistaiseksi "Ed's Debian" tarjoaa vain näitä kahta vaihtoehtoa. Itse valitsin E-asemalle asennuksen ("install to game partition") koska kohdekoneessa oli muutenkin vain 8 gigatavun kiintolevy, joten ylimääräistä tilaa F-partitiota tai mitään muutakaan varten ei edes ollut käytettävissä. * * * Kuten yltä saattaa näppärästi päätellä, Xbox-Linux-projekti on jo poikinut oman tiedostojärjestelmäajurin FATX-tiedostojärjestelmän käsittelyyn, ja se on käännetty mukaan asennuskerneliin. Natiivi-Xbox-partitiot voi siis mountata normaalisti käyttöön, ja niitä voi Linuxin alta tutkia ja muokata. Itse Linux ja Debianin pakettienhallinta pyörivät ongelmitta. Koska etenkin verkon yli käytettynä Xbox tuntuu kuin miltä tahansa Linux-koneelta, sitä voi heti asennuksen ja perussäätöjen jälkeen suoraan ryhtyä käyttämään vaikkapa monitorittomana ja näppäimistöttömänä verkkoserverinä. Desktop-käyttö onnistuu tietyin varauksin: hiiren ja näppäimistön pitää olla USB-laitteita, niiden liittämiseksi peliohjainportteihin tarvitaan yksinkertainen adapteri (jonka voi tehdä itse), ja oletusasetuksilla saattavat sekä työpöydän että tekstikonsolin reuna-alueet leikkautua televisioruudulla kuvan ulkopuolelle. Viimeinen ongelma johtuu desktop-käyttöön soveltumattomista overscan-asetuksista, jotka Linux perii XBox-alkuanimaatiosta tai dashboardilta. Kuvan säätämiseen kunnolliseksi tarvitaan erillinen nvtv-niminen työkalu. Tuki grafiikkamoodien säätelyyn ja vaihteluun on ylipäänsäkin vielä melko olematonta, eikä onnistu ihan samalla tavalla mutkattomasti kuin tavallisella PC:llä. Tämä johtuu siitä, että Xbox tuottaa kaiken kuvansa normaalin VGA-RAMDACin sijaan erillisen videoenkooderin läpi, ja videoenkooderin tiettyjen asetusten täytyy olla synkronissa varsinaisen grafiikkakontrollerin vastaavien asetusten kanssa, tai muutoin kuva ei näy ollenkaan, tai se ei ainakaan näy oikein. Asetusten synkronoinnille näiden kahden piirin välillä ei ole entuudestaan olemassa valmista ajuritukea, ainakaan siinä mielessä kuin Xbox sitä tarvitsisi ollakseen videomoodien valinnan ja säätelyn suhteen helppokäyttöinen. Kuva siis näkyy, mutta sen säätely on hankalaa. Videoenkooderin salat kuitenkin paljastuvat pikkuhiljaa, ja parannusta asioihin lienee luvassa lähitulevaisuudessa. On oletettavaa, että jossain vaiheessa tulevaisuudessa xboxilla on oma framebuffer-ajuri, joka osaa suoraan säädellä myös videoenkooderia, jolloin sen säätelyyn ei enää tarvita erillisiä työkaluja, ja asiat yksinkertaistuvat muutenkin. Mitä työpöytätukeen tulee, Debianissa X11 ynnä muu graafinen tauhka pitää asentaa erikseen, kun taas puolestaan Xbox-Mandrake ilmeisesti asentaa heti suoraan graafisen, valmiiksi konfiguroidun työpöytäympäristön. Mandrakea en kuitenkaan ole kokeillut; ymmärtääkseni se ei toistaiseksi tue E-partitiolle asentamista, joten kokeilu ei ilmeisesti 8 gigatavun kiintolevyllä olisi mahdollistakaan. * * * Kuten arvata saattaa, "Ed's Debianin" kernel on erikseen Xboxia varten puukotettu. Xbox-spesifisen perusasennuksen jälkeen kaikki loput rojut voi kuitenkin asentaa pakettienhallintasysteemillä suoraan tavallisesta i386-Debianista. Tämä on mahdollista, koska Xbox on kuitenkin pohjimmiltaan vain riisuttu, "legacy-free" PC, jonka prosessorina jyllää 733 MHz Coppermine-Celeron. Normaalit i386-binäärit käyvät ja toimivat siis suoraan. Edgar ylläpitää omalla palvelimellaan muutamaa Xbox-spesifistä deb-pakettia, mutta muiden pakettien lähteeksi voi määritellä minkä tahansa normaalia i386-Debian-distribuutiota levittävän mirrorin. * * * Xbox-Linux-projektin puitteissa on tarjolla myös alusta alkaen pelkästään Linuxin boottaukseen kehitelty boot ROM Xboxille, nimeltään Cromwell. Cromwell-ROM-imagen voi imuroida projektin SourceForge-sivuilta. Cromwell eroaa tavanomaisen "mod-piirin" sisällöstä siten, että sillä ei voi tehdä muuta kuin bootata Linuxiin. Xbox-pelit eivät sen kanssa toimi. Tämä voi olla oiva ratkaisu silloin, jos Xboxia ei lainkaan haluta käyttää pelikäytössä, vaan laite on hankittu pelkästään Linux-koneeksi. (Cromwellin kanssa on myös mahdollista ottaa koko kiintolevy alusta alkaen Linux-käyttöön.) Eräs Cromwellin parhaista puolista on kuitenkin se, että toisin kuin yleisimmät "mod-piiri"-ratkaisut, se ei sisällä hitustakaan Microsoftin alkuperäistä kernel ROM -koodia, joten sitä voi täysin laillisesti jakaa maailmalle. Cromwellin käyttö ei kuitenkaan ole mitenkään välttämätöntä, ja Linuxia voi aivan hyvin käyttää myös tavanomaisen "mod-piirin" avulla, rinnakkaiselossa normaalin Xbox-softan kanssa. * * * Vielä muutama hajahuomio: - "Ed's Debianin" asennus-cd:llä tulee erillinen ISO-image valmiin asennuksen boottausta varten. Tarkoituksena on, että kun perusasennus kiintolevylle on tehty, asennus bootataan tästä toisesta imagesta tehdyltä CD:ltä. CD:ltä boottailu nyt ei ainakaan minun mielestäni ole alkuunkaan kätevää, joten vihjattakoon, että tämän bootstrap-cd:n sisällön voi kopioida kovalevylle, ja Linuxin voi tämän jälkeen käynnistää dashboardista - aivan kuin minkä tahansa muunkin kiintolevyasennetun Xbox-ohjelman. - Konsolitekstin ja grafiikankin mahdollinen suttuisuus (esimerkiksi Amigan tuottamaan Scart-RGB-kuvaan verrattuna) johtuu videoenkooderin interlace-värinää poistavista filtteröintiasetuksista. Videoenkooderin rekisterejä suoraan säätämällä kuvan saa paljon selvemmän näköiseksi. Nämä filtteröintiasetukset luultavasti tulevat "tavallisenkin" käyttäjän säädettäväksi jollain helpommalla konstilla joskus tulevaisuudessa, mutta nyt asia on vielä näin. - Xboxista saa ulos myös VGA-signaalia sopivalla omatekoisella kaapelilla ja sopivalla videohardwaren rekisterien säädöillä. Tukea tälle ollaan Xbox-Linux-puolella kehittelemässä ja soveltamassa, mutta asia on vielä kokeiluasteella. Näyttää kuitenkin siltä, että monitorin pitää tukea sync-on-greeniä tai composite synciä. Jos käytetään erillistä HSYNCiä ja VSYNCiä vaativaa monitoria, joudutaan kaapeliin rakentamaan jonkinlainen "sync separator". - Xboxin pad-ohjaimille on olemassa Linux-ajuri, joka antaa käyttää tatteja hiirenä ja mäpätä nappuloihin näppäineventtejä. (Toki koneeseen voi kytkeä myös normaalin USB-näppäimistön ja -hiiren.) * * * Vaikka toteutus onkin ehkä toistaiseksi vielä vähän "rough on the edges", asennusta kannattaa kyllä kokeilla jos asia yhtään kiinnostaa. (Ja jos kiinnostusta riittää, tietysti kaikenlainen omaehtoinen osallistuminen projektin kehittämiseen ja uusien piirteiden testaamiseen veisi asioita nopeammin eteenpäin.) Linkkejä: Xbox-Linux-projektin SourgeForge-kotisivu: Postituslistalle liittyminen: Postituslistan arkistot ja hakutoiminto: Ed's Debianilla on oma sivunsa: Postituslista on ehdottomasti paras tietolähde sen suhteen, mitä uutta projektissa tapahtuu. Tietysti myös kaikenlaiset testailut ja bugiraportoinnit yms. olisivat arvokkaita, jos niistä jaksaa raportteja listalle kirjoitella. Listalta saa myös apua asennus- ja säätöongelmiin, mutta ensin kannattaa ehkä lukea vanhoja viestejä, joissa on moneen asiaan jo vastattu. Loppuun voisi vielä todeta, että kun pelikonsoli laajenee täysiveriseksi tietokoneeksi ja verkkopäätteeksi, myös sen käyttömahdollisuudet tuntuvat laajenevan kummasti. (Nimim. "Xboxilla ircissä".) (Jatkot ohjattu sfnet.atk.linuxiin.) -- znark