Aloitetaan tästä laitevalinnastani. Halpis Acer jonka hankin koneeksi kotiin joka (jonain päivänä) toimittaa uuden kotipalvelimen virkaa vanhan palvelimen tultua tiensä päähän. Ongelmat alkoi jokseenkin jo kaupassa, kun tarkoituksena oli saada vakio 1G muistin lisäksi toinen mokoma. -Missään ei mainittu muistin nopeutta. Avuliaan myyjän kanssa päädyimme kuitenkin Kingstonin 533MHz muistipalikkaan joka toimi ok.
Käyttöjärjestelmäksi tulisi Linux. Esiasennettu Linpus ei tulisi kelpaamaan ja aloitin Kubuntu 7.07:llä. Tuon kernelin versiota en juuri nyt muista, mutta ongelmaksi muodostui se ettei laitteen uudehko SiS emolevy ole kovinkaan hyvin tuettu. Ja SATA-kontrolleria ei ilmeisesti laisin, koska kovalevyä ei yksinkertaisesti löydy. Jostain luin, että SuSE:lla saattaisi olla parempi tuki. Vaikka viimeaikoina olen pääasiassa käyttänyt Kubuntua, olen aina pitänyt SuSE:sta joten päätin lähteä liikkeelle openSuSE 10.2:n kanssa ja sillä koettaa kaikkeni.
SATA:lle ei ollut tukea, mutta totesin että PATA-levykin riittää tarpeisiini. Levyä asentaessani huomasin, että laitteessa on ainoastaan yksi väylä saatavilla, jonka toinen liitin on tietysti DVD-RW aseman käytössä. Tämä on hyvä tietää ostopäätöstä tehtäessä jos ajattelee käyttää laitetta palvelimena. Tähänkin totesin olevan lääkkeitä vaikka koneessa olikin saatavilla ainoastaan kaksi PCI-korttipaikkaa laajennuksia varten. Joten kytkin levyn ja tämän jälkeen asensin openSuSE:n ongelmitta.
Koneen bootattua pystyyn aloin tutkimaan dmesg:llä mitä löytyy ja mitä ei. Miltä KDE:n käyttö tuntuu jne. Kompastuskiviä löytyi, mutta aloitan kaikkein ikävimmästä, mikä oli ettei Linuxin kerneli onnistunut ottamaan emolevylle integroitua verkkokorttia käyttöön. Laite tunnistettiin, mutta se ei vaan toiminut. Käytössä ollut kerneli oli SuSE:n valmistama 2.6.18.
Tutkimisen jälkeen selvisi, että kyseessä on emolevylle integroitu SiS:n SIS191 verkkokortti.
Systeemilogeista löytyin bootin yhteydestä virheilmoitus "sis190: Can not find ISA bridge" jonka pohjalta aloin etsimään infoa josko joku olisi törmännyt vastaavaan ongelmaan ja olikin. Ei tosin ihan samaa koska Linuxin ajuri on SiS190:lle, eikä SiS191:lle joka on Acerissa oleva kortti. Tämän vuoksi jouduin itse tutkimaan hieman lisää, jotta päästiin seuraavaan jolla saa kyseisen verkkokortin toimimaan Linuxissa. Yksityiskohtaisemmat ohjeet ovat osin SuSE-riipuvaisia, mutta peruslinja lienee sovellettavissa muihinkin Linux jakeluihin.
1. Hanki kernelin lähdekoodi
Avataan YaST Control Center, Software ja Software Management. Sieltä etsitään kernel-source paketti ja asennetaan se. Tämän jälkeen Linuxin kernelin koodi löytyy polusta /usr/src/linux.
2. Etsitään kateissa oleva ISA-silta
Systeemilogissa oleva viesti kertoi ISA-sillan olevan kateissa. Kun katsoo sis190 ajurin kernelin lähdekoodia ja etsii kyseistä logiviestiä, huomaa sieltä että ISA-siltaa koitetaan etsiä ID:llä 0x0965, rivillä joka tiedostossa /usr/src/linux/drivers/net/sis190.c näyttää seuraavalta:
isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0965, NULL);
Tarkistetaan että onko ISA-sillan ID tosiaan tämä. Seuraava tapahtuu komentorivillä. Ensin selvitä sillan osoite PCI-väylässä:
> lspci -v ... 00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS968 [MuTIOL Media IO] (rev 01)
Flags: bus master, medium devsel, latency 0
...
Tästä nähdään, että ISA sijaitsee osoittessa on 00:04.0. Seuraavaksi haetaan kortin tiedot numeerisessa muodossa, jotta saadaan selvitettyä kortin ID-numero:
> lspci -nv -s 00:02.0 00:02.0 Class 0601: 1039:0968 (rev 01)
Flags: bus master, medium devsel, latency 0
Tästä nähdään, että väylän laite ID on 0x0968, eli sis190 ajuri hakee väärällä ID:llä.
3. Muokataan Linuxin kerneliä
Kohdassa 2 mainitun rivi tiedostossa /usr/src/linux/drivers/net/sis190.c tulee siis korjata siten, että sillan ID on oikein. Seuraavassa korjattu rivi oikealla ID:llä:
isa_bridge = pci_get_device(PCI_VENDOR_ID_SI, 0x0968, NULL);
4. Käännetään ja asennetaan uusi kerneli
Käynnissä olevan kernelin konfiguraatio tiedosto pitäisi löytyä /boot hakemiston alta nimellä joka alkaa tekstillä config-. Oman käynnissä olevan kerneliversiosi saat tarkistettua komentoriviltä ajamalla uname -r. Kun olet löytänyt oikean konfiguraatiotiedoston, kopioi se /usr/src/linux hakemistoon nimellä .config ja käännä sekä asenna kerneli:
> make bzImage modules modules_install install
Tämän jälkeen boottaa koneesi ja verkon pitäisi lähteä toimimaan asennuksessa tekemisi valintojen mukaan.
Jatkanen muista seikkailuista kyseisen Acerin kanssa myöhemmin. Tarkoituksena olisi saada laitteseen lisää PATA-levyjä kiinni ja lisäksi toinen verkkokortti. Tuo voi osoittautua hankalaksi jo alussa mainittujen rajoituksien ansiosta. Näytönohjain (SiS Mirage 2) ei myöskään ole X.org:n tukema, joten tällekin varmaan tullaan etsimään ratkaisu joko softan tahi raudan kautta.
Katsotaan koska sitä taasen ehtii laitteen kimppuun...