Következő
Előző
Tartalom
7. Néhány kelepce
7.1 make clean Ha az új kernel egy rutinszerű kernelfrissítés után elkezd nagyon vad dolgokat művelni, akkor könnyen lehet, hogy elfeljtetted kiadni a
7.2 Nagy vagy lassú kernelHa a kernel sok memóriát foglal el, túl nagy, és/vagy egy örökkévalóságig tart lefordítani akkor is, ha a vadonatúj Quadbazillium-III/4400 gépeddel esel neki, akkor valószínűleg túl sok fölösleges dolog (eszközmeghajtók, fájlrendszerek, stb.) van belekonfigurálva. Ha nem használod, akkor ne is konfiguráld be, mert foglalja a memóriát. A túl nagy kernel legszembetűnőbb tünete a memória és diszk közötti túlzott swappolás. Ha a merevlemez sokat zörög, és nem egy régi Fujitsu Eagles, ami kikapcsoláskor olyan hangot ad, mint egy sugárhajtású repülőgép leszálás közben, akkor nézd át a kernel konfigurálást.
Megtudhatod, hogy mennyi memóriát használ a kernel, ha fogod a gépedben levő összes memória mennyiségét és kivonod belőle a ``total mem'' mező értékét a
7.3 A párhuzamos port nem működik, nem tudok nyomtatniPC-n úgy lehet beállítani a párhuzamos portot, hogy a kernel konfigurálásánál kiválasztjuk a `Parallel port support'-ot és a `PC-style hardware'-t a `General Setup' csoportban, és a `Parallel printer support'-ot a `Character devices' csoportban. A másik dolog az elnevezés. A Linux 2.2 másképp nevezi el a nyomtatókat, mit az előző verziók. A következmény az, hogy ha a régi kernel alatt
7.4 A kernel nem fordul le
Ha nem fordul le, akkor valószínűleg nem sikerült egy patch, vagy a forrás valahogy megsérült. Lehet, hogy nem jó a gcc adott verziója, vagy az is lehet sérült (például az include fájlok lehetnek hibásak). Ellenőrizd, hogy a szimbolikus linkek, amelyeket Linus említ a
Ritka esetekben előfordul, hogy a gcc hardver okok miatt száll el. A hibaüzenet valami olyasmi lesz, hogy ``xxx exited with signal 11'' és általában nagyon rejtélyesen néz ki. Talán nem is említeném, ha nem történt volna meg velem is egyszer. A cache memória hibás volt, és a gcc időnként véletlenszerűen elszállt. Először próbáld meg újrainstallálni a gcc-t, ha ilyen gond merül fel. Csak akkor kell gyanakodni, ha a kernel hiba nélkül lefordul kikapcsolt külső cache, kevesebb RAM, stb. mellett.
Az embereket általában nyugtalanítja, ha felvetődik, hogy a hardverük hibás lehet. Nos, nem én találtam ki. Itt van hozzá egy FAQ:
7.5 Az új kernel nem bootol
Nem futtattad a LILO-t, vagy rosszul van konfigurálva. Egyszer az ``fogott'' meg, hogy hiba volt a konfig fájlban. `
7.6 Elfelejtetted futtatni a LILO-t, vagy egyáltalán nem bootol
Hoppá! A legjobb amit ilyen helyzetben tehetsz az, hogy hajlékony lemezről bootolsz, és csinálsz egy másik bootolható lemezt (ahogy a `
A következő példában a root a
Az alapötlet az, hogy ha van egy működőképes
Először bootolj egy boot/root lemezpárosról vagy mentőlemezről, és mountold föl azt a fájlrendszert, ami a működő kernelt tartalmazza.
mkdir /mnt mount -t ext2 /dev/hda3 /mnt Ha az /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/bootHelyezz egy formattált lemezt az ``A:'' meghajtóba (ne a boot vagy root lemezt!), másold a kernelt a lemezre, és konfiguráld a root fájlrendszernek megfelelően:
cd /mnt/src/linux/arch/i386/boot dd if=bzImage of=/dev/fd0 rdev /dev/fd0 /dev/hda1 Menj a root könyvtárba és csatold le a normálisan
cd / umount /mnt Ezek után a megszokott módon lehet bootolni erről a lemezről. Ne felejtsd el futtatni a LILO-t (vagy amit rosszul csináltál) az újrabootolás után.
Ahogy az előbb említettem, van egy másik lehetőség. Ha van egy működő kernel a gyökérkönyvtárban (például
A LILO használata nagy merevlemezekkel (több, mint 1024 cilinder) gondot okozhat. Lásd a LILO mini-HOWTO-t vagy a dokumentációt segítségért.
7.7 Azt mondja `warning: bdflush not running'
Ez súlyos probléma lehet. Az 1.0 kernel verzió kibocsátása után (1994. április 20. táján) felfrissítették/lecserélték az `
7.8 Nem működik az IDE/ATAPI CD-ROM meghajtóKülönös módon sokan nem tudják használni az ATAPI meghajtókat, talán mert több oka lehet a hibának. Ha a CD-ROM meghajtó az egyetlen eszköz egy adott IDE csatolón, akkor a jumpereknek ``master'' vagy ``single'' állásban kell lenniük. Valószínűleg ez a leggyakoribb hiba. A Creative Labs (és mások is) IDE csatolókat építenek a hangkártyákra. Ebből következik az az érdekes probléma, hogy egyes gépeken csak egy csatoló van, másokon kettő beépítve az alaplapra (általában IRQ15), ezért a soundblaster csatolót a harmadik IDE portra teszik (IRQ11, állítólag). Ez problémákat okoz a linuxszal, mivel az 1.2.x kernelek nem támogatják a harmadik csatolót (az 1.3.x valamelyik tagjától kezdve már van, de az fejlesztői, és nem detektálja automatikusan). Ezt többféleképpen lehet kikerülni.
Ha már van második IDE port, könnyen lehet, hogy nem is használod, vagy még nincs rajta két eszköz. Vedd le az ATAPI meghajtót a hangkártyáról, és rakd a második csatolóra. Ezután ki lehet kapcsolni a hangkártya csatolóját és még egy IRQ-t is megspórolsz. Ha nincs második IDE csatoló, akkor jumpereld a hangkártya IDE csatolóját (ne a hangkártya hang részét) az IRQ15-re (második IDE csatoló). Ennek működnie kell.
7.9 Furcsa üzenetek ``obsolete routing requests''-ről
Szerezd be a
7.10 A tűzfal (firewall) nem működik az 1.2.0 kernellel
Frissíts legalább az 1.2.1 verzióra.
7.11 ``Not a compressed kernel Image file'' Tömörítetlen kernel fájl. Ne a
7.12 Problémák a konzollal 1.3.x-ra való frissítés után Az
7.13 Nem lehet semmit lefordítani kernel upgrade után A linux kernel forrás tartalmaz számos include fájlt (a #include <linux/xyzzy.h>Normális esetben van egy linux nevű link az /usr/include -ban, amely a kernel forrás include/linux könyvtárára mutat (általában /usr/src/linux/include/linux ). Ha ez a link nincs a helyén, vagy rossz helyre mutat, akkor a legtöbb programot egyáltalán nem lehet lefordítani. Ha letörölted a kernel forrást, mert túl sok helyet foglalt, akkor nyilvánvaló, hogy ez a gond. Lehet baj a hozzáférési jogosultságokkal is. Ha a root umask-ja alapértelmezés szerint nem engedi meg, hogy a többi felhasználó lássa a fájljait, és a kernel forrást a p (preserve filemodes = fájljogosultságok megőrzése) opció nélkül csomagoltad ki, akkor a felhasználók a C fordítót sem fogják tudni használni. Bár a chmod paranccsal is meg lehet ezt oldani, könnyebb újra kicsomagolni az include fájlokat. Ezt ugyanúgy kell csinálni, ahogy az elején kicsomagoltuk az egész forrást, csak még egy paraméter kell használni:
blah# tar zxvpf linux.x.y.z.tar.gz linux/includeMegjegyzés: A `` make config '' létrehozza az /usr/src/linux linket, ha nincs meg.
7.14 A korlátok megemeléseA következő néhány példa hasznos lehet azoknak, akik szeretnék tudni, hogyan lehet bizonyos, a kernel szabta korlátokat megemelni. echo 4096 > /proc/sys/kernel/file-max echo 12288 > /proc/sys/kernel/inode-max echo 300 400 500 > /proc/sys/vm/freepages
Következő Előző Tartalom |