Yksi mahdollisuus on, että jossain vaiheessa symbolinen linkki hakemistosta /usr/include/linux on kadonnut tai jotain muuta. Tällainen symbolinen linkki pitäisi olla olemassa:
$ ls -l /usr/include/linux lrwxrwxrwx 1 root root 26 May 28 13:34 /usr/include/linux -> ../src/linux/include/linux |
Tarkista, että myös hakemisto /usr/src/linux/include/linux löytyy ja siellä on oikeat otsikkotiedostot. Hakemistolistaus alkaa näin (eri kernelin versioissa voi olla eroja, tämä on 2.2.5):
a.out.h acct.h . . . if_slip.h if_strip.h . . . prctl.h proc_fs.h |
Toinen vaihtoehto on, että et ole asentanut Redhatin ns. devel-paketteja. Redhatissa on kahdenlaisia paketteja: loppukäyttäjän ohjelmien käyttämiseen tarvittavat tiedostot ovat yhdessä paketissa ja ohjelmien kehittämiseen ja/tai kääntämiseen tarvittavat paketit toisessa. Paketit ovat muuten saman nimisiä, mutta kehityspakettien nimessä on "devel".
Jos saat tällaisen virheen:
make[1]: as86: Command not found |
Jos koneen uudelleenkäynnistyksessä kone jumiutuu kohtaan "Checking module dependencies", sinulla on edelleen käytössä vanhan kernelisi moduuleja. Tähän ongelmaan auttaa vanhojen moduulien poisto ennen moduulien asennusta. Vanhat moduulit kannattaa kuitenkin varmuuden vuoksi säilyttää.
Ensin käännetään ydin ja moduulit, mutta ei vielä asenneta niitä.
Siirretään vanhat moduulit talteen:
# cd /lib/modules # ls -l total 4 drwxr-xr-x 11 root root 4096 Dec 8 20:41 2.2.12-20 # mv 2.2.12-20 2.2.12-20.old |
Seuraavaksi asennetaan uusi ydin ja sen moduulit.
# cd /usr/src/linux # make install; make modules_install |
Nyt koneen pitäisi löytää seuraavassa käynnistyksessä oikeat moduulit.
Luultavasti et ole kääntänyt verkkotukea [1] tai Unix domain socket-tukea mukaan ytimeen. Vaikkei sinulla olisikaan verkkoa, monet Linux-ohjelmat, kuten X-ikkunointi, kommunikoivat myös koneen sisäisesti käyttäen soketteja, ja vaativat siksi verkkotuen. Käännä verkkotuki aina mukaan ytimeen, jollet ole aivan varma ettet tarvi sitä. Myös tästä varoitetaan ytimen käännösohjeissa, joten lue käännösohjeet!
Toinen mahdollisuus on, että olet käyttänyt väärää kääntäjäversiota ytimen kääntöön. 2.0-sarjan ytimessä on ohjelmointivirhe, joka ei tullut esiin silloisella C-kääntäjän versiolla. Uudemmilla kääntäjillä virhe tulee esiin, ja sen yksi seuraus on X:n toimimattomuus. 2.0-kernelien kääntöön suositellaan gcc:n versiota 2.7.2.3 ja 2.2-ydinten kääntöön versiota egcs 1.1.2. 2.4-sarja kääntyy ainakin versioilla gcc 2.95.3 (suositeltava) ja sitä uudemmilla.
System.map ei kopioitu.
/etc/lilo.conf ei päivitetty ja liloa ei ajettu.
Vanhoja moduleita ei poistettu alta pois hakemistosta /lib/modules/.
/etc/modules.conf (Debianissa on eriävä käytäntö, katso Miten Debianissa määritellä ytimeen ladattavat modulit?>).
Kernel panic: VFS: Unable to mount root fs on 03:01 |
Jos ydin antaa käynnistyessä edellisen virheen, kannattaa toimia seuraavasti:
Onko juuren tiedostojärjestelmä virheilmoituksen ilmoittama laite?
Virheessä 03:01 tarkoittaa laitetta /dev/hda1 ja esimerkiksi 03:05 laitetta /dev/hda5. Näistä numeroista tarkemmin kertoo ytimen dokumentaation mukana tuleva devices.txt.
Sisällytitkö ytimeesi tuen sille tiedostojärjestelmälle, mitä juuresi sisältää? (ext3 tms) Se ei saa olla modulina, vaan kiinteästi käännettynä ytimeen. (Modulien lataamiseksi tarvitaan tiedostojärjestelmä.)
Sisällytitkö ytimeen tuen kovalevyllesi? Tarkista ettei esim. IDE- tai SCSI-ajuri ole modulina.
[1] |
engl. network support |