Hibaelhárítás
Ennek az oldalnak az a célja, hogy a felhasználók számára egy sor technikát és eszközt biztosítson a Gentoo beállításaikkal kapcsolatos hibaelhárításhoz és javításhoz.
Ez a cikk feltételezi, hogy a Gentoo kézikönyvet elolvasta, és van már egy alapvető ismerete a Gentoo használatáról.
Ha a hibaelhárítás után se nem találja a megoldást, akkor tekintse meg a segítségkérésről szóló támogatás cikket.
Csomagok, amelyek segíthetnek a hibaelhárításban
Ez olyan eszközök gyűjteménye, amelyek segíthetnek a hibaelhárításban, és nagyon ajánlottak.
A wgetpaste egy praktikus eszköz a töredékek, fájlok, parancskimenetek stb. megosztására, amikor a hibaelhárításnál felmerülő kérdéseket tárgyalja meg online.
Csomagkezelés
Csomag | Leírás |
---|---|
gentoolkit | Eszközök gyűjteménye a Gentoo-val való interakcióhoz, beleértve az értékes equery-t, eclean-t, euse-t stb. |
eix | Egy eszköz a portage lekérdezésére a csomagokkal kapcsolatban. |
Portage File List | Az e-file eszközt kínálja, amellyel lekérdezhető, hogy egy adott fájlt melyik csomag tartalmazza. Olyan csomagoknál is működik, amelyek nincsenek telepítve, mivel online keresést használ. |
genlop | Egy eszköz az emerge naplók elemzéséhez, amely praktikus annak megállapítására, hogy bizonyos csomagok mikor lettek telepítve, frissítve, és mennyi ideig tartott a fordításuk. |
elogv | Egy ncurses alapú interfész az emerge naplófájlok böngészéséhez. |
Hardver
Package | Leírás |
---|---|
pciutils | Egy eszköz amellyel a PCI eszközökről lehet információkat gyűjteni. |
usbutils | Egy eszköz amellyel az USB eszközökről lehet információkat gyűjteni. |
Megfigyelés
Csomag | Leírás |
---|---|
htop | Egy olyan eszköz a folyamatok megfigyelésére, mint a top, de annál fejlettebb. |
iotop | Egy top-szerű eszköz a kimeneti-bemeneti műveletek folyamatonkénti figyelésére. |
net-analyzer/nettop | Egy top-szerű eszköz a hálózati forgalom vizsgálatára protokoll, port és folyamat szerint. |
Egy probléma beazonosítása
Ahhoz, hogy egy problémát megoldássá formálhassunk, először megfelelően azonosítani kell magát a problémát. A probléma pontos megértése nagyobb valószínűséggel vezet jó megoldáshoz. Ez oktalannak tűnhet, de enélkül nehéz lesz a hibaelhárítás.
Vegye figyelembe néhány dolgot:
- Ez a probléma hardverrel vagy szoftverrel kapcsolatos?
- Mit tettek vagy változtattak a közelmúltban, ami előidézhette ezt a problémát?
- Gyűjthető-e további információ a problémáról?
Az információk, naplók, hasonló problémákkal küzdő emberek jelentései stb. összegyűjtése hasznos lehet a jó áttekintéshez.
Hardverproblémák
Illesztőprogramok
A hardverrel kapcsolatos illesztőprogram-hiba az egyik leggyakrabban jelentett probléma az IRC-n.
Mindenekelőtt azonosítsa be, hogy melyik az a hardver, amely a problémákat okozza. Az lspci és az lsusb nagyszerű eszközök erre a célra. Íme egy példa egy Ethernet-kártyára, mint problémás eszközre:
A megfelelő illesztőprogram meghatározása
Először nézze meg az lspci segítségével, és keresse meg az eszköz adatait:
root #
lspci
03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8071 PCI-E Gigabit Ethernet Controller (rev 16)
A -n
opciót is használhatjuk rövid jelölésforma megadására (amit könnyebben lehet keresni az interneten):
root #
lspci -n
03:00.0 0200: 11ab:436b (rev 16)
A modellnév (0200
) és a gyártó/modell (11ab:436b
) felhasználható az eszköz megkeresésére olyan helyen, mint a WikiDevi vagy a Debian HCL, hogy megtaláljuk a megfelelő illesztőprogramot Linux alatt.
Ellenőrizze, hogy az illesztőprogram betöltődött-e
Önmagában az illesztőprogram beszerzése a csatának kevesebb mint a felét jelenti. A probléma nagyobbik fele akkor jön elő az illesztőprogramoknál amikor meg kell bizonyosodni arról, hogy, tényleg be vannak-e töltve és tényleg megfelelően működnek-e.
Ismét a lspci parancsra támaszkodva futtassa azt le:
root #
lspci -k
03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8071 PCI-E Gigabit Ethernet Controller (rev 16) Subsystem: Acer Incorporated [ALI] Device 014e Kernel driver in use: sky2
Vegye figyelembe, hogy itt egy jelző jelenik meg, hogy egy illesztőprogram használatban van. Ha nem jelenik meg, akkor egyetlen illesztőprogram sem vállalta a felelősséget ezért a hardverért. Feltételezve, hogy az illesztőprogram modulként épült be, nem pedig közvetlen (fixen) beépített, próbálja meg a modprobe <modul neve> parancsot futtatni, hogy megpróbálja betölteni a megfelelő modult. Ha az illesztőprogram be volt építve fixen, akkor fontolja meg modulként való elkészítését, mert a modulok a modprobe paranccsal betölthetők, és a modprobe -r paranccsal kivehetők, ami megtakarítja az újraindítások számát a hibakeresés során.
Egy illesztőprogram hibaelhárítása
Fordítsa le az illesztőprogramot modulként, majd rögzítse a modul betöltésekor generált kimenetet. Először mindenképpen távolítson el minden olyan modult, amely az illesztőprogramtól függ. (Tekintse meg a Kernelmodulok betöltése című leírást).
A következő parancs összehasonlítja a dmesg kimenetet a modul eltávolítása után (ebben a példában az r8169
) a modul újbóli hozzáadása utáni kimenettel, hatékonyan megjelenítve a hozzáadott üzeneteket. (A plusz jellel kezdődő sorok).
root #
diff -u <(modprobe -r r8169; dmesg) <(sleep 1; modprobe r8169; dmesg) | grep ^+
A leggyakoribb probléma a firmware hiánya. Ha megjelenik egy üzenet, amely tájékoztatja az adminisztrátort a hiányzó firmware-ről, akkor fogja meg a sys-kernel/linux-firmware-t vagy egy adott firmware-csomagot a portage-ból, és telepítse. A firmware telepítése után vegye ki a kernelmodult, majd töltse be újra a kernelmodult, hogy megbizonyosodjon arról, hogy ez megoldja-e a helyzetet.
Szoftver problémák
Portage problémák
Függőségi gráf slot ütközések
Esetenként ehhez hasonló üzenetek jelennek meg, amikor egy csomagot próbálnak előállítani:
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
Általában ez azt jelenti, hogy a felsorolt csomagoknak több kért verziója van a függőségi gráfban. Szerencsére a legtöbb, ha nem az összes eset lehetővé teszi a probléma megoldását a legmagasabb kért verzióra való manuális frissítéssel. feltételezve, hogy a következő üzenetet kaptuk:
app-emulation/emul-linux-x86-xlibs:0
(app-emulation/emul-linux-x86-xlibs-20120127::gentoo, installed) pulled in by
~app-emulation/emul-linux-x86-xlibs-20120127 required by (app-emulation/emul-linux-x86-medialibs-20120127::gentoo, installed)
(and 2 more with the same problem)
(app-emulation/emul-linux-x86-xlibs-20120520::gentoo, ebuild scheduled for merge) pulled in by
>=app-emulation/emul-linux-x86-xlibs-20120520 required by (net-im/skype-2.2.0.35-r99::gentoo, ebuild scheduled for merge)
~app-emulation/emul-linux-x86-xlibs-20120520 required by (app-emulation/emul-linux-x86-medialibs-20120520::gentoo, ebuild scheduled for merge)
A kívánt legújabb verzió a 20120520, tehát:
root #
emerge --ask --oneshot =app-emulation/emul-linux-x86-xlibs-20120520
Gyakran előnyös, ha az összes konfliktust egyszerre (--oneshot
vagy -1
) kezeljük, mert néha egymástól függenek.
Itt van egy másik példa a blokkra:
app-text/poppler:0
(app-text/poppler-0.24.5::gentoo, installed) pulled in by
app-text/poppler:0/44=[xpdf-headers(+)] required by (dev-tex/luatex-0.76.0::gentoo, installed)
app-text/poppler:0/44=[cxx,jpeg,lcms,tiff,xpdf-headers(+)] required by (net-print/cups-filters-1.0.43::gentoo, installed)
(app-text/poppler-0.24.3::gentoo, ebuild scheduled for merge) pulled in by
>=app-text/poppler-0.12.3-r3:0/43= required by (app-text/texlive-core-2013-r1::gentoo, installed)
poppler:0/43
Nem lehet probléma a poppler verziók megváltoztatásával. Vegye figyelembe, hogy a app-text/texlive-core nem igényel speciális Poppler-verziót, de újra össze kell állítani a használt verzióval:
root #
emerge --ask --oneshot =app-text/poppler-0.24.5 app-text/texlive-core
Íme egy másik példa, amely elzáródáshoz vezethet:
root #
emerge --ask --verbose --update --newuse --deep @world
sys-power/cpupower:0
These are the packages that would be merged, in order:
Calculating dependencies... done!
Total: 0 packages, Size of downloads: 0 KiB
WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:
sys-power/cpupower:0
(sys-power/cpupower-4.9.0-r1:0/0::gentoo, ebuild scheduled for merge) conflicts with
<sys-power/cpupower-4.7 required by (mate-base/mate-applets-1.12.1-r4:0/0::gentoo, installed)
^ ^^^
Nothing to merge; quitting.
A Portage csomagkezelő figyelmeztet a nem végrehajtható frissítésre, azonban nincs probléma, mert ezt a frissítést egyik csomag se nem igényli. Pontosabban a frissítést ki kell hagyni, mert a mate-base/mate-applets-1.12.1-r4 a sys-power/cpupower csomag 4.7-es verziójánál alacsonyabb verzióját igényli.
A rendszerkorlátozások megakadályozzák a megfelelő felépítést
When compiling with n jobs parallel the requirement of RAM grows approximately by a factor n. Unfortunately we can not predict the exact amount of RAM needed nor we can predict how much RAM will be consumed by other programs.
Hibakeresés binárisokban
Bináris gépi-kódra lefordított program hibaelhárítása az erőteljes Debugging eszköz segítségével.
További információk gyűjtése
Amikor segítséget kér másoktól, akkor gyakran további információkat kérnek Öntől. Például elkérik egy parancs kimenetét. Ezek némelyike több tucat vagy száz sornyi szöveget produkál. Túl sokat ahhoz, hogy alkalmas legyen chatszobákba való beillesztésre, például a Gentoo, IRC támogatás csatornára.
A Wgetpaste lehetővé teszi a felhasználók számára, hogy rövid linkeket lehessen közzétenni. Ezek a rövid linkek aztán a hosszú információkat tartalmazó weboldalakra mutatnak.
Az /etc/conf.d/net tartalmának megjelenítéséhez:
user $
wgetpaste /etc/conf.d/net
Ha valakinek szüksége van egy lspci parancs részletes kimenetére, akkor:
root #
wgetpaste -c 'lspci -nnk'
Néha át kell irányítani az stderr-t az stdout-ba, hogy a hibaüzenetek is megjelenjenek a képernyőn, és ezáltal azok is mind beilleszthetőek legyenek:
root #
wgetpaste -c 'emerge -pv <package>'
- Hardver vagy kernelproblémák esetén:
user $
wgetpaste /usr/src/linux/.config
- Portage problémák esetén:
root #
emerge --verbose --info | wgetpaste
- Csomagtelepítési hibák esetén:
root #
wgetpaste /var/tmp/portage/<category>/<package>-<version>/temp/build.log
- Xorg probléma esetén:
user $
wgetpaste /var/log/Xorg.0.log
- Ha meg kell adni a rendszerre telepített összes csomagot:
root #
eix-update && eix-installed all
A dolgok összecsomagolása
Az alábbiak szerint található egy shell-függvény, amellyel több parancsot is végrehajthatunk, és kimenetüket egyetlen wgetpaste paranccsal feldolgozhatjuk. Így csak egy URL-t kell megadni a segíteni akaró felhasználónak vagy fejlesztőnek:
root #
wgetpaste -i -c "lspci -nnk" -c "lsusb" -c "cat /usr/src/*$(uname -r)/.config" -c "cat /var/log/Xorg.0.log" -c "dmesg" -c "eix-update" -c "eix-installed all"
Kérem, ne használja a pastebin szolgáltatást a Gentoo-user levelezőlistán
A pastebin szolgáltatásnál a régi szövegbeillesztések többsége időnként lejár (nem beszélve arról, hogy a pastebin szolgáltatások aligha jövedelmezőek, és folyamatosan bezárnak), míg a levelezőlista üzeneteit több helyen archiválják, és évekig hivatkoznak rájuk. Ha a megfelelő kimenet rövid, vagy levágható, akkor másolja be és illessze be az e-mail törzsébe - a hosszabb kimenet szöveges fájlba irányítható, és sima mellékletként csatolható.
Egy megoldás megalkotása
A probléma jó leírásával, a műveletek teljes előzményével, és mindenféle hibakeresési adattal (probléma részletei, hardver/szoftverinformációk, naplók, visszakövetések és egyebek) egy egész sor hasznos adat áll majd rendelkezésre a megoldás kereséséhez.
Általában véve, kérjük ismételje meg a következő lépéseket a megoldás megszületésének érdekében:
- Képzelje el, hol lehet a probléma, gondolja át a lehetséges okokat.
- Ha nincsenek nyilvánvaló területek, amelyeket érdemes megvizsgálni, ismerkedjen meg közelebbről a kapcsolódó területekkel, vagy kérdezzen többet erről egy szakértőtől.
- Néha feltevésekre van szükség a továbblépéshez. Amikor feltételezéseket teszünk, tegyük próbára: A hamis feltételezések nem tehetik vakká a felhasználókat és a fejlesztőket más okok előtt.
- Szerezzen további hibakeresési információkat a probléma területén, vagy végezzen teszteket.
Ez gyakran több lehetséges okra vezethető vissza. fontos ezeket tesztelni (ellenőrizni, hogy az a valódi hibaokozó vagy sem), és ezért egyénileg tesztelni kell őket. Ezt a hibakereső módszert az "Oszd meg és uralkodj" néven is ismerik.
Tegyük fel, hogy egy olyan probléma jelenik meg, mint például "A böngészőm néha fehér oldalakat jelenít meg indításkor", és sok részlet már ismert. Ennek számos lehetséges oka lehet:
- Ez azért van, mert a böngésző nem megfelelően volt bezárva a rendszer újraindításakor?
- Ellenőrizze ezt úgy, hogy leállítja a folyamatot, és többször húzza ki a dugót, és minden alkalommal ellenőrizze, hogy az oldalak fehérek-e az újbóli indítás után. Ha ez okozta a problémát, akkor ez a tényleges ok, vagy más okok is vannak?
- Ez egy adott böngészőverzió meghibásodásának az eredménye?
- Próbálkozzon régebbi vagy újabb verziókkal néhány napig. Esetleg indítson újra, és nézze meg, hogy azok is elromlottak-e.
És így tovább...
Merjen konkrétabb okokra gondolni a további információkkal:
- Egy bizonyos rögzített X lap, amely az Y bővítményt tölti be, felborítja a rendszert?
- Oldja fel a lapot, hogy többé ne nyíljon meg indításkor, vagy tiltsa le a beépülő modult, hátha ez távol tartja a problémát.
- Grafikai problémákat is jelentettek, lehet, hogy ez azt jelentheti, hogy ezt a videó illesztőprogramjai okozzák?
- Próbáljon ki egy másik verziót ezekhez az illesztőprogramokhoz, vagy alternatív illesztőprogramokat, ha elérhető.
Amint minden lehetséges problémaokozót megvizsgálunk, a probléma tényleges okozója egyre közelebb kerülhet.
Végül, ha az okot továbbra se nem találja, akkor tekintse meg a támogatás cikket.
További olvasnivaló a témában
- Knowledge Base:Recovering from a kernel boot failure
- Project:Portage/Fixing broken portage — provides guidance on how to manually update or fix a broken Portage installation - particularly in the event emerge -v1 sys-apps/portage cannot be run.
- Fix my Gentoo — rescuing an installation when a chroot is not possible
- Project:Portage/FAQ
- Support — provide support for technical issues encountered when installing or using Gentoo Linux