Tuuma kasutamine

Allikas: Kuutõrvaja

Sissejuhatus

Arvuti käivitamisel laadib bootloader esmalt operatsioonisüsteemi tuuma, mis sisaldab arvuti tööks põhilist funktsionaalsust, seejärel käivitab tuum programmi init mis omakorda käivitab muud süsteemsed programmid ja lõpuks käivitatakse vastavalt inittab failis määratud default runlevelile vastavast /etc/rc?.d kataloogisti rakendused, nt /etc/rc2.d. Käesolevas tekstis käistletakse Linuxi tuuma kasutamist Debian GNU/Linuxiga.

Standardne tuum

Debian GNU/Linux sisaldab valmis kompileeritud kujul mitmesuguseid tuumi, mida saab paketihaldusvahenditega paigaldada ja edaspidi uuendada. Nimekirja tuumadest näeb öeldes näiteks

 # apt-cache search 'linux-image*'

Näiteks pakett linux-image-2.6-amd64 on 64 bit x86 platvormi tuum

# apt-cache show linux-image-2.6-amd64
Package: linux-image-2.6-amd64
Priority: optional
Section: admin
Installed-Size: 32
Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
Architecture: amd64
Source: linux-latest-2.6 (6etch3)
Version: 2.6.18+6etch3
Depends: linux-image-2.6.18-6-amd64
Filename: pool/main/l/linux-latest-2.6/linux-image-2.6-amd64_2.6.18+6etch3_amd64.deb
Size: 2292
MD5sum: c63dca7dcf0c94f4c7a7163dadf6b865
SHA1: 6b103bcccb2b70730a9520c59d44e0ac2da1e38c
SHA256: 34ecfc4ba431a67176faf7e38e46c3e01d76ff68b4b4384cdd44d6eae5c63cbb
Description: Linux kernel 2.6 image on AMD64
This package depends on the latest binary image for Linux kernel 2.6 on
all 64bit single- and multiprocessor AMD and Intel machines.

Kusjuures linux-image-2.6-686 on nö uuematel 32 bit arvutil kasutamiseks sobiv tuum ning selle tuuma kasutamisel töötab 64 bit x86 riistvara 32 bit režhiimis.

Standardne tuum kasutab ramdiski, st tuuma pakett sisaldab

  • /boot/vmlinuz-2.6.18-6-amd64 - tuum
  • /lib/modules/2.6.18-6-amd64 - tuuma moodulid

kusjuures tuuma paigaldamise moodustatakse kõnealusele süsteemile sobiv ramdiski tõmmis

 /boot/initrd.img-2.6.18-6-amd64

Ise tuuma ramdiski tõmmise moodustamiseks tuleb öelda

 bash# mkinitramfs -o /boot/ramdisk-tmp.img

Ramdiski lahti pakkimiseks tuleb öelda

 bash# mkdir /tmp/ramdisk && cd /tmp/ramdisk
 bash# gunzip -c /root/ramdisk.img | cpio -dmvi

Vastav GRUB bootloaderi seadistusfail /boot/grub/menu.lst võiks olla selline

default         0
timeout         15
color cyan/blue white/blue

title           Debian GNU/Linux, kernel 2.6.18-6-amd64
root            (hd0,1)
kernel          /boot/vmlinuz-2.6.18-6-amd64 root=/dev/sda2 ro
initrd          /boot/initrd.img-2.6.18-6-amd64
savedefault

Tuuma mooduli kohta info küsimine toimub programmiga modinfo näidates mooduli nime

 # modinfo ext3  
 filename:       /lib/modules/2.6.25-2-xen-686/kernel/fs/ext3/ext3.ko
 license:        GPL
 description:    Second Extended Filesystem with journaling extensions
 author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
 depends:        mbcache,jbd
 vermagic:       2.6.25-2-xen-686 SMP mod_unload 686

Tuuma uuendamine

Tuuma uuendamisel kasutatakse selliseid seadistusfaile

  • /etc/kernel-img.conf - reeglina sobivad vaikeväärtused, 'do_initrd = Yes' on sobiv kasutada initramfs puhul st reeglina, vastasel korral esitatakse dialoog

Kernel-img.conf-1.gif

kernel.org tuum

Erinevatel asjaoludel võib olla vajalik kasutada Debiani paketihalduse tuuma asemel nö ehedat Linuxi tuuma. Selleks tuleb kopeerida sobiva versiooni lähtetekst aadressilt http://kernel.org/, veel parem kohalikust peeglist, nt , 2009 aasta alguses ftp://ftp.linux.ee/pub/kernel/linux/kernel/v2.6/linux-2.6.28.7.tar.bz2 kataloogi /usr/src ning lahti pakkida

bash# cd /usr/src
bash# wget ftp://ftp.linux.ee/pub/kernel/linux/kernel/v2.6/linux-2.6.28.7.tar.bz2
bash# tar jxf linux-2.6.28.7.tar.bz2

Seejärel tuleb veenduda, et süsteem sisaldab vajalikke vahendeid tuuma kompileerimiseks ja kasutamiseks, lihtsaim moodus selleks on veenduda, et failis /etc/apt/sources.list sisaldub rida

 deb-src http://ftp.ee.debian.org/debian stable main non-free contrib

ning öelda

bash# apt-get build-dep linux-image-2.6-amd64

ning eriti kontrollida failist linux-2.6.28.7/Documentation/Changes sektsiooni 'Current Minimal Requirements'

 o  Gnu C                  3.2                     # gcc --version
 o  Gnu make               3.79.1                  # make --version
 o  binutils               2.12                    # ld -v
 o  util-linux             2.10o                   # fdformat --version
 o  module-init-tools      0.9.10                  # depmod -V
 o  e2fsprogs              1.29                    # tune2fs
 o  jfsutils               1.1.3                   # fsck.jfs -V
 o  reiserfsprogs          3.6.3                   # reiserfsck -V 2>&1|grep reiserfsprogs
 o  xfsprogs               2.6.0                   # xfs_db -V
 o  pcmciautils            004                     # pccardctl -V
 o  quota-tools            3.09                    # quota -V
 o  PPP                    2.4.0                   # pppd --version
 o  isdn4k-utils           3.1pre1                 # isdnctrl 2>&1|grep version
 o  nfs-utils              1.0.5                   # showmount --version
 o  procps                 3.2.0                   # ps --version
 o  oprofile               0.9                     # oprofiled --version
 o  udev                   081                     # udevinfo -V
 o  grub                   0.93                    # grub --version

Kui need ettevalmistused on tehtud, tuleb tuum seadistada ning kompileerida

# cd linux-2.6.28.7
# cp /boot/config-eelmine-versioon .config
# make oldconfig
# apt-get install libncurses5-dev
# make menuconfig

Tuuma-kasutamine-1.gif

# apt-get install kernel-package
# make-kpkg -rev tuum26287.1 kernel_image
# dpkg -i ../kernel-image-2.6.28.7_tuum26287.1_adm64.deb
# make-kpkg clean

Mitme protsessoriga arvuti puhul maksab seada enne tuuma kompileerimist keskkonnamuutuja CONCURRENCY_LEVEL, nt nelja protsessori puhul sedasi

 # export CONCURRENCY_LEVEL=4

ramdisk'i kasutamine

Ramdiski kokkupakkimine

 # cd ramdiski-kataloog
 # find . | cpio -H newc -o | gzip > ../ramdisk

Module Assistanti kasutamine

Module Assistanti tarkvara paigaldamiseks tuleb öelda

 # apt-get install module-assistant

Module Assistani kasutamiseks sobib ehk kõige paremini kasutada interaktiivselt liidest

M-a-1.gif

Töö käigus kasutatud lähtetekstid asuvad kataloogis /usr/src/modules ning tekitatud paketid /usr/src kataloogis.

Tuuma parameetrid

Kui parameetriga panic laaditud tuum nö hangub, siis 180 sekundi pärast tehakse arvutile restart

kernel /boot/vmlinuz-2.6.26-2-xen-amd64 root=/dev/sda1 ro panic=180

Märkused

  • 2008 suvel ilmutati nn etchnhalf tuum, nt amd64 arhitektuuri jaoks paketinimega linux-image-2.6-amd64-etchnhalf. See põhineb 2.6.24 kernel.org tuumal ja ilmutuse eesmärk oli teha kasutajatele kättesaadavaks mitmeid uuemad draiverid. Etch vaiketuum põhineb versioonil 2.6.18.
  • etchnhalf tuuma üks oluline erinevus bxn2 draiveri kasutajate jaoks on, et draiveri nö tööd tegev osa tuleb eraldi firmware kujul paigaldada, öeldes apt-get install firmware-bnx2. Seejuures genereeritakse uus initramfs tõmmis.
  • Vahel tuleb arvestada asjaolu, et Lenny (v. 5.0) tuum on kompileeritud GCC v. 4.1 kompilaatoriga kusjuures süsteemis on vaikimisi kasutusel 4.3.
  • SysRq key kasutamist kontrollib parameeter
 Kernel hacking -> Magic SysRq key

Kasulikud lisamaterjalid