Hibaelhárítás

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Troubleshooting and the translation is 100% complete.

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.

Tip
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.

Tip
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:

  1. Ez a probléma hardverrel vagy szoftverrel kapcsolatos?
  2. Mit tettek vagy változtattak a közelmúltban, ami előidézhette ezt a problémát?
  3. 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:

CODE Dependency graph error
!!! 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:

CODE Example of dependency graph error
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:

CODE Example of a block conflict
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
CODE Example of an update conflict
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