
Linux Crash HOGYANNorman Patten

   nepatten@us.ibm.com

   2002.01.30
   Verzitrtnet
   Verzi: 1.0 2002.01.30 tdolgozta: NM
   Els kiads.

   Ez a dokumentum az LKCD (Linux Kernel Crash Dump) csomag teleptst
   s hasznlatt rja le.
     _________________________________________________________________

   Tartalomjegyzk
   1. [1]Bevezets

        1.1. [2]Szerzi jog s licenc
        1.2. [3]Magyar fordts

   2. [4]Hogyan mkdik az LKCD

        2.1. [5]Mire van szksged?

   3. [6]Az lkcd teleptse

        3.1. [7]Telepts forrskdbl
        3.2. [8]Az LKCD programok fordtsa s teleptse
        3.3. [9]Teleptett llomnyok
        3.4. [10]Az LKCD teleptse RPM csomagbl
        3.5. [11]A kernel foltozsa
        3.6. [12]A kernel fordtsa s teleptse

   4. [13]A crash belltsa, tesztelse s futtatsa

        4.1. [14]A crash dump belltsa
        4.2. [15]A crash tesztelse
        4.3. [16]A crash futtatsa

1. Bevezets

Az LKCD (Linux Kernel Crash Dump) projekt kernel foltok s alkalmazsok
egyttese, mely lehetv teszi a kernel memriatartalmnak elmentst
kernel pnik esetn. A kernel llapott tartalmaz llomny a mellkelt
alkalmazsokkal egytt lehetv teszi a kernel pnik utlagos
hibakeresst. A legtbb fizets Unix opercis rendszert hasonl crash
alkalmazsokkal szlltjk, de ez a csomag meglehetsen j a Linuxban, s
kzzel kell hozzadni. Az LKCD alkalmazs nem alkalmas megfelel
informcik sszegyjtsre hardver okozta pnik vagy szegmenshiba esetn.
A teljes LKCD csomag letlthet a [17]http://lkcd.sourceforge.net/
oldalrl.
     _________________________________________________________________

1.1. Szerzi jog s licenc

This document is copyrighted (c) 2002 by Norman Patten. Ezen dokumentum
msolsa, terjesztse s/vagy mdostsa engedlyezett a GNU Free
Documentation License 1.1 vltozata, vagy brmelyik ksbbi, a Free
Software Foundation ltal kzztett vltozat felttelei szerint; lland
fejezetek nlkl, ellapi s htoldali szveg nlkl. A licenc msolata
elrhet a [18]http://www.gnu.org/copyleft/fdl.html oldalon.

A Linux vdjegy Linus Torvalds tulajdona. Az lkcd a Silicon Graphics Inc.
ltal meghatrozott felttelek szerint terjeszthet.

Visszajelzst a [19]nepatten@us.ibm.com cmre lehet kldeni.
     _________________________________________________________________

1.2. Magyar fordts

A magyar fordtst [20]Furi Zoltn ksztette (2003.04.15). A lektorlst
[21]Daczi Lszl vgezte el (2003.04.16). Brmilyen fordtssal kapcsolatos
szrevtelt a [22]linuxhowto@sch.bme.hu cmre kldjetek. A dokumentum
legfrissebb vltozata megtallhat a [23]Magyar Linux Dokumentcis Projekt
honlapjn.
     _________________________________________________________________

2. Hogyan mkdik az LKCD

Amikor a kernel olyan hibval tallkozik amelyet nem tud lekezelni, meghvja
a "panic" (pnik) fggvnyt. Ez a pnik az LKCD-ben egy n. kernel dump-ot
eredmnyez, ekkor a kernel memrijnak a tartalma egy elre kijellt, n.
dump terletre msoldik. Dump eszkzknt alapbl az elsdleges swap
terlet van belltva. A kernel nem teljes mrtkben mkdkpes ekkor, de
mg elegend mrtkben ahhoz, hogy kimsolja a memria tartalmt a lemezre.
Miutn a dump befejezte a memria tartalmnak msolst a lemezre, a
rendszer jraindul. Amikor a rendszer jraindul, j crash dump fjlt keres.
Ha tall, akkor tmsolja azt a dump helyrl egy msik partcira, alapbl
a "/var/log/dump" knyvtrba. Az llomny msolsa utn a rendszer folytatja
a normlis indulsi folyamatot. A vizsglatokat egy ksbbi idpontban el
lehet vgezni.
     _________________________________________________________________

2.1. Mire van szksged?

Az lkcd-kernelxxx.diff fjlra a kernel foltozshoz. A tmogatott
kernelverzi folyamatosan vltozik. Az lkcdutils-xx.src.rpm tartalmazza az
alkalmazs forrskdjt s a belltshoz, illetve a crash adatok
olvasshoz szksges programokat. E szveg rsnak idejn egy futtathat
i386 rpm csomag elrhet az [24]lkcd.sourceforge.net webhelyen, de gy is
szksged lesz az indtshoz a szkriptekre a forrs rpm csomagbl.
     _________________________________________________________________

3. Az lkcd teleptse

3.1. Telepts forrskdbl

Szerezd be az lkcdutils-xxx.src.rpm csomagot s teleptsd az rpm -i
kcdutils-xxx.src.rpm paranccsal. Ez egy lkcdutils-xxx.tar.gz nev fjlt
helyez az /usr/src/redhat/SOURCES knyvtrba. Ez a fjl az lkcd forrsok
tmrtett tar llomnya. Csomagold ki a forrst egy tetszleges knyvtrba
(pldul "/usr/src" a tar -zxvf kcdutils-xxx.src.rpm paranccsal. Ez ltre
fogja hozni a "kcdutils-xxx" knyvtrat, amelyben az LKCD csomag rszeinek
forrskdja lesz.
     _________________________________________________________________

3.2. Az LKCD programok fordtsa s teleptse

Az LKCD a hagyomnyos GCC fordtt s make fjlokat hasznlja. A programok
fordtshoz lpj be LKCD forrsknyvtrba, s futtasd a ./configure
szkriptet a konfigurcis llomnyok elksztshez. A kvetkez lps a
make futtatsa az alkalmazs fordtshoz, s vgl futtasd a make install
parancsot a programok s kziknyv oldalak teleptshez.
     _________________________________________________________________

3.3. Teleptett llomnyok

  /etc/sysconfig/dump             # A dump konfigurcis llomnya
  /sbin/lcrash                    # A crash alkalmazs
  /sbin/lkcd                      # Szkript a crash konfigurlsra s mentsr
e
  /sbin/lkcd_config               # A dump konfigurcis programja
  /sbin/lkcd_ksyms                # A kernel szimblumok visszallt programja

  /usr/include/sial_api.h         # A SIAL API header llomnya
  /usr/lib/libsial.a              # Simple Image Access Language fggvnyknyvt
r
  /usr/man/man1/lcrash.1          # lcrash kziknyv oldalak
  /usr/man/man1/lkcd_config.1     # lkcd_config kziknyv oldalak
  /usr/man/man1/lkcd_ksyms.1      # lkcd_ksyms kziknyv oldalak
  /usr/share/sial/lcrash/ps.sial  # A SIAL ps parancsnak implementcija
     _________________________________________________________________

3.4. Az LKCD teleptse RPM csomagbl

Teleptheted az elre lefordtott programokat rpm csomagbl az rpm -i
kcdutils-xxx.rpm futtatsval. Azonban mg foltozni kell a kernelt, s
telepteni az indt szkriptet. Egybknt kihagyhatod az alkalmazs
fordtsnak lpseit.
     _________________________________________________________________

3.5. A kernel foltozsa

A kvetkez lps a kernel foltozsa s jrafordtsa. Foltoznod kell a
kernel forrst az a [25]http://lkcd.sourceforge.net/ oldalrl letlttt
lkcd-xxx.diff fjlal. Msold a foltot ugyanabba a knyvtrba, ahol a
kerneled forrsa van, s futtasd a patch -p0 < lkcd-kernelxxx.diff
parancsot. Gyzdj meg rla, hogy a folt verzija azonos a hasznlt
kernelvel. A kvetkez lpsben a kernel konfigurlsval engedlyezned
kell a crash dump tmogatst. Alapbelltsban a crash tmogats, miutn
alkalmaztad a foltot, ki van kapcsolva. Ha a make menuconfig vagy a make
xconfig parancsot hasznlod, az "LKCD support" opci a "kernel hacking"
fejezet alatt tallhat. Szksged lehet mg tovbbi opcik engedlyezsre.
Tovbbi rszletekrt olvasd el a [26]The Linux Kernel HOWTO (Linux kernel
HOGYAN) lerst .
     _________________________________________________________________

3.6. A kernel fordtsa s teleptse

A kvetkez lps a crash opcival engedlyezett kernel fordtsa s
teleptse. A kernel forrsknyvtrban futtasd egyms utn a kvetkez
parancsokat:


  make depend
  make install
  make modules
  make modules_install

   Ez lefordtja s telepti az j kernelt, de neked kell tmsolnod a
   Kerntypes llomnyt a kernel forrsknyvtrbl a /boot knyvtrba.
   Szksg lesz mg a lilo.conf llomny szerkesztsre is, hogy legyen
   benne az j kerneledre mutat bejegyzs is. Tovbbi informcirt
   olvasd el a [27]http://www.tldp.org/HOWTO/Kernel-HOWTO.html lerst.
     _________________________________________________________________

4. A crash belltsa, tesztelse s futtatsa

4.1. A crash dump belltsa

A swap partcira rt core llomny elmentshez, azt (mrmint a core fjlt
- a lektor) az indulsi folyamat sorn a swap partci aktivlsa eltt t
kell msolni egy msik partcira. Ennek vgrehajtshoz a sysinit
indtllomnyt meg kell vltoztatni. Az lkcd forrs tartalmaz egy scripts
knyvtrat, amely foltokat tartalmaz klnbz sysinit indt szkriptekhez.
Ezek a foltok hozzadjk az indt szkripthez a lkcd config s az lkcd save
parancsokat , ezek engedlyezik a crash dump szolgltatst, illetve a
ltez crash dump fjl elmentsrl gondoskodnak.
     _________________________________________________________________

4.2. A crash tesztelse

Az j crash bellts tesztelse rdekben, pnik kieszkzlsrt, fordtsd
le a kvetkez forrsprogramot a cc -c -I/usr/src/linux/include panic.c
paranccsal. A panic.o modul lefordtsa utn pnik elidzshez csak
tltsk be azt insmod panic.o paranccsal.

  ### panic.c ###########################

  #define __KERNEL__
  # MODULE

  # include init_module(void)

  int init_module (void)
  {
      panic(" panic has been called");
      return 0;
  }
     _________________________________________________________________

4.3. A crash futtatsa

A core llomny megtekintshez futtasd a lcrash parancsot a kvetkez
paramterekkel:

  lcrash [ System.map fjl ] [ dump fjl ] [ Kerntypes ]

  Plda:

  lcrash /boot/System.map ./dump.1 /boot/Kerntypes

   Nhny percet ignybe fog venni a kernel llomny betltse a
   memriba, majd kidob a crash parancssorba. A crash parancssorba
   berhatsz egy ? karaktert a hasznlhat parancsok megtekintshez.

References

   1. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#INTRO
   2. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#COPYRIGHT
   3. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN32
   4. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#HOWITWORKS
   5. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#WHATYOUNEED
   6. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#INSTALL
   7. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN50
   8. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN60
   9. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN66
  10. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN69
  11. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN73
  12. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN82
  13. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#SETUP
  14. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN93
  15. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN100
  16. file://localhost/home/dacas/temp/Linux-Crash-HOWTO-hu.html#AEN107
  17. http://lkcd.sourceforge.net/
  18. http://www.gnu.org/copyleft/fdl.html
  19. mailto:nepatten@us.ibm.com
  20. mailto:zfuri@avaya.com_NO_SPAM
  21. mailto:dacasa@freemail.hu_NO_SPAM
  22. mailto:linuxhowto@sch.bme.hu_NO_SPAM
  23. http://tldp.fsf.hu/index.html
  24. http://lkcd.sourceforge.net/
  25. http://lkcd.sourceforge.net/
  26. http://tldp.org/HOWTO/Kernel-HOWTO.html
  27. http://tldp.org/HOWTO/Kernel-HOWTO.html
