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