Personal tools

Difference between revisions of "Instalarea kernelului 2.6.22.x (Slackware 12.0)"

From linux360

Jump to: navigation, search
 
m
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
Acest tutorial prezintă instalarea din surse a unui kernel 2.6.22.x în distribuția Slackware 12.0. Informațiile au fost testate pentru kernelul 2.6.22.5 și 2.6.22.9.
+
Acest tutorial prezintă instalarea din surse a unui kernel 2.6.22.x în distribuţia Slackware Linux 12.0. Informaţiile au fost testate pentru kernelul 2.6.22.5 şi 2.6.22.9.
  
'''Atenționare:''' Nu recomand utilizarea acestui tutorial dacă nu înțelegeți exact ce reprezintă fiecare etapă și cum trebuie parcursă corect, în concordanță cu particularitățile instalării distribuției Slackware Linux 12.0 pe calculatorul dumneavoastră.
+
'''Atenţionare:''' Nu recomand utilizarea acestui tutorial dacă nu înţelegeţi exact ce reprezintă fiecare etapă şi cum trebuie parcursă corect, în concordanţă cu particularităţile instalării distribuţiei Slackware Linux 12.0 pe calculatorul dumneavoastră.
  
 
Nu uitaţi că primul CD (DVD-ul) distribuţiei poate fi folosit şi ca "Rescue CD/DVD" - bootaţi calculatorul de pe CD/DVD şi tastaţi:
 
Nu uitaţi că primul CD (DVD-ul) distribuţiei poate fi folosit şi ca "Rescue CD/DVD" - bootaţi calculatorul de pe CD/DVD şi tastaţi:
 
<code>hugesmp.s root=/dev/hda3 rdinit= ro </code> unde "hda3" este partiţia pe care aţi instalat distribuţia Slackware Linux 12.0.
 
<code>hugesmp.s root=/dev/hda3 rdinit= ro </code> unde "hda3" este partiţia pe care aţi instalat distribuţia Slackware Linux 12.0.
 +
 +
----
  
 
==Introducere==
 
==Introducere==
*Configurația inițială
+
*Configuraţia iniţială
Distribuția Slackware Linux 12.0 a fost instalată cu opțiunea "full", cu imaginea de kernel hugesmp.s. Am folosit sistemul de fișere reiserfs. Așa cum este recomandat în [ftp://slackware.osuosl.org/pub/slackware/slackware-12.0/CHANGES_AND_HINTS.TXT CHANGES_AND_HINTS.TXT],  [ftp://slackware.osuosl.org/pub/slackware/slackware-12.0/ANNOUNCE.12_0 ANNOUNCE.12_0] și [ftp://slackware.osuosl.org/pub/slackware/slackware-12.0/RELEASE_NOTES RELEASE_NOTES], am trecut de la kernelul huge-smp la kernelul generic-smp astfel:
+
Distribuţia Slackware Linux 12.0 a fost instalată cu opţiunea "full", cu imaginea de kernel hugesmp.s. Am folosit sistemul de fişiere reiserfs. Așa cum este recomandat în [ftp://slackware.osuosl.org/pub/slackware/slackware-12.0/CHANGES_AND_HINTS.TXT CHANGES_AND_HINTS.TXT],  [ftp://slackware.osuosl.org/pub/slackware/slackware-12.0/ANNOUNCE.12_0 ANNOUNCE.12_0] şi [ftp://slackware.osuosl.org/pub/slackware/slackware-12.0/RELEASE_NOTES RELEASE_NOTES], am trecut de la kernelul huge-smp la kernelul generic-smp astfel:
# /cd boot
+
<code>
 +
# cd /boot
 
# mkinitrd -c -k 2.6.21.5-smp -m reiserfs
 
# mkinitrd -c -k 2.6.21.5-smp -m reiserfs
Fișierul inițial /etc/lilo.conf este:
+
</code>
 +
 
 +
Fişierul iniţial /etc/lilo.conf este:
 +
 
 
<code>
 
<code>
 
(...)
 
(...)
Line 28: Line 34:
  
 
<code>
 
<code>
wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.9.tar.gz
+
$ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.9.tar.gz
 +
$ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.9.tar.gz.sign
 
</code>
 
</code>
  
*Verificarea autenticității arhivei descărcate
+
*Verificarea autenticităţii arhivei descărcate
  
 
<code>
 
<code>
Line 39: Line 46:
  
 
*Despachetarea arhivei
 
*Despachetarea arhivei
 +
 
<code>
 
<code>
tar -zxvf ~/linux-2.6.22.9.tar.gz
+
$ tar -zxvf linux-2.6.22.9.tar.gz
 
</code>
 
</code>
  
Line 47: Line 55:
 
*Copierea arhivei în <tt>/usr/src/</tt>
 
*Copierea arhivei în <tt>/usr/src/</tt>
  
Există o controversă privind instalarea kernelului în <tt>/usr/src</tt>. Nu voi intra în detalii, așa
+
Există o controversă privind instalarea kernelului în <tt>/usr/src</tt>. Nu voi intra în detalii, aşa :
  
mv ~/linux-2.6.22.9 /usr/src/linux-2.6.22.9
+
<code>
 +
# mv ~/linux-2.6.22.9 /usr/src/linux-2.6.22.9
 +
</code>
  
*Crearea unei legături simbolice către sursele noului kernel
+
*Crearea unei legături simbolice (symlink) către sursele noului kernel
  
cd /usr/src/
+
<code>
 
+
# cd /usr/src/
rm /usr/src/linux
+
# rm /usr/src/linux
 
+
# ln -s /usr/src/linux-2.6.22.9 linux
ln -s /usr/src/linux-2.6.22.9 linux
+
</code>
  
 
==Construirea kernelului==
 
==Construirea kernelului==
  
*Copierea unui fișier .config în sursele noului kernel
+
*Copierea unui fişier <tt>.config</tt> în sursele noului kernel
cp /boot/config /usr/src/linux/.config
 
  
cd /usr/src/linux
+
<code>
 +
# cp /boot/config /usr/src/linux/.config
 +
</code>
  
*Rularea comenzii
+
*Construirea kernelului iniţial (conform informațiilor din fişierul <tt>.config</tt>)
  
Run make oldconfig in the kernel source directory so that the defaults are used from the .config file you just installed. Because your kernel sources are probably newer than the .config, there will be new options to choose from. You will only have to answer these (press ENTER for the default answers which are mostly fine, or M to build new drivers as modules).
+
<code>
 +
# cd /usr/src/linux
 +
# make oldconfig
 +
</code>
  
make oldconfig
+
* Stabilirea altor modificări, specifice configuraţiei hardware
 
 
*Alte modificări
 
You now have configured a pretty generic kernel (that is the reason why Pat calls them “kernel-generic” probably :-) but you will want to change some of the defaults to suit your needs. Run the X based configurator (if you do not run X but are at a text console, just run “make menuconfig” to get the curses-based dialog program instead)
 
  
 +
<code>
 
make xconfig
 
make xconfig
 +
</code>
  
Walk through the forest of options. What I usually change are things like:
+
sau
  
* build the ext3 (needs the jbd driver as well) and reiser fileystem drivers into the kernel instead of compiling them as modules - I do not need to create an additional “initrd” then
+
<code>
      (see under “Filesystems” in the configurator).
+
make menuconfig
 +
</code>
  
* enable support for dual procesessors and hypertreading - naturally this only helps if you have a HT Intel CPU, or a dual-CPU board or a dual-core CPU
+
Mai jos sunt câteva exemple:
      (under “Processor type and features” > “Symmetric multi-processing support”).
 
  
* enable 4GB of RAM. The Slackware default setting is to only support ~800 MB of your RAM, so any additional installed RAM is never used!
+
- activarea suportului pentru procesoarele duale şi hypertreading
      (under “Processor type and features” > “High Memory Support (4GB)”).
 
  
* enable the “low-latency” kernel if you run a desktop/laptop computer - multimedia apps will run much smoother
+
(“Processor type and features” > “Symmetric multi-processing support”);
      (under “Processor type and features” > “Preemption model” > “Preemptible kernel”).
 
  
* set a 1000Hz timer (under “Processor type and features” > “Preemption model” > “Timer frequency”).
+
- activarea suportului pentru 4GB RAM
  
* ... and more I can’t think of right now. You can decide to disable a lot of the modules that the default config will build, to cut down on time, if you don’t have the hardware in your computer. You could also looka at software suspend and CPU frequency scaling (under “Processor type and features”) if you own a laptop.
+
(“Processor type and features” > “High Memory Support (4GB)”);
  
And finally save your configuration if you’re satisfied.
+
- activarea opţiunii “low-latency” kernel pentru sistemele desktop/laptop
  
*Now, start the build of kernel and modules, and install them to the proper places.
+
(“Processor type and features” > “Preemption model” > “Preemptible kernel”);
  
make bzImage
+
- setarea timer-ului la 1000Hz pentru sistemele desktop/laptop
  
make modules
+
(“Processor type and features” > “Preemption model” > “Timer frequency”).
  
make modules_install
+
În final salvaţi modificările.
  
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.22.9-smp
+
*Construirea kernelului şi a modulelor de kernel
  
cp System.map /boot/System.map-2.6.22.9-smp
+
<code>
 +
# make bzImage
 +
# make modules
 +
</code>
  
cp .config /boot/config-2.6.22.9-smp
+
Instalarea modulelor şi imaginii kernelului
 +
 
 +
<code>
 +
# make modules_install
 +
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.22.9-smp
 +
# cp System.map /boot/System.map-2.6.22.9-smp
 +
# cp .config /boot/config-2.6.22.9-smp
 +
</code>
  
 
==Modificarea <tt>/etc/lilo.conf</tt>==
 
==Modificarea <tt>/etc/lilo.conf</tt>==
 +
*Crearea unui <tt>initrd</tt> pentru noul kernel
  
*initrd (nu este obligatoriu, dar este recomandat)
+
<code>
 +
# cd /boot
 +
# mkinitrd -c -k 2.6.22.9-smp -m reiserfs
 +
</code>
  
cd /boot
+
*Modificarea fişierului de configurare <tt>lilo.conf</tt>
  
mkinitrd -c -k 2.6.22.9-smp -m reiserfs
+
<code>
 +
# mcedit /etc/lilo.conf
 +
</code>
  
*Modificarea lilo.conf
+
şi adăugaţi informațiile pentru noul kernel
 
 
mcedit lilo
 
  
 
<code>
 
<code>
Line 128: Line 153:
 
   initrd = /boot/initrd.gz
 
   initrd = /boot/initrd.gz
 
   root = /dev/hda3
 
   root = /dev/hda3
   label = Slackware
+
   label = NewSlackware
 
   read-only  # Partitions should be mounted read-only for checking
 
   read-only  # Partitions should be mounted read-only for checking
 
# Linux bootable partition config ends
 
# Linux bootable partition config ends
 
</code>
 
</code>
 +
 +
apoi rulaţi comanda <tt>lilo</tt>.
  
 
*Cleaning and reboot
 
*Cleaning and reboot
cd /usr/src/linux
 
  
make clean
+
<code>
 +
# cd /usr/src/linux
 +
# make clean
 +
</code>
  
reboot
+
La următoarea bootare, comanda <tt>uname -srv</tt> ar trebui să arate:
  
uname -a
+
<code>
Linux MyLinuxBox 2.6.22.9-smp #1 SMP PREEMPT Fri Sep 28 17:54:30 EEST 2007 i686 AMD Sempron(tm) Processor 2500+ AuthenticAMD GNU/Linux
+
Linux 2.6.22.9-smp #1 SMP PREEMPT Fri Sep 28 17:54:30 EEST 2007
 +
</code>
  
 
==Reinstalarea modulelor==
 
==Reinstalarea modulelor==
  
Now, with the installation of your new kernel, you will lose these modules, and you have to recompile the sources so that the binary modules match the new kernel.
+
Pentru a afla care module de kernel (create de diferite aplicaţii) trebuie reinstalate, rulaţi comanda
You can get an overview of all packages that have installed a kernel module for your current kernel by running this command (i.e. you must run this command while still running your old kernel):
+
 
 +
<code>
 +
# cd /var/log/packages
 +
# grep -l "lib/modules/`uname -r`" *
 +
</code>
  
cd /var/log/packages
+
De asemenea, mai trebuie reinstalate driverele proprietare sau open source pentru diverse componente hardware (ex: placa video) şi trebuie reconfigurate unele soluţii de virtualizare (ex: VMware Server).
grep -l "lib/modules/`uname -r`" *
 
  
gspca
+
[[Category:Slackware Linux]]
/usr/bin/./vmware-config.pl
 
sh ./NV*.run
 

Latest revision as of 22:31, 4 February 2008

Acest tutorial prezintă instalarea din surse a unui kernel 2.6.22.x în distribuţia Slackware Linux 12.0. Informaţiile au fost testate pentru kernelul 2.6.22.5 şi 2.6.22.9.

Atenţionare: Nu recomand utilizarea acestui tutorial dacă nu înţelegeţi exact ce reprezintă fiecare etapă şi cum trebuie parcursă corect, în concordanţă cu particularităţile instalării distribuţiei Slackware Linux 12.0 pe calculatorul dumneavoastră.

Nu uitaţi că primul CD (DVD-ul) distribuţiei poate fi folosit şi ca "Rescue CD/DVD" - bootaţi calculatorul de pe CD/DVD şi tastaţi: hugesmp.s root=/dev/hda3 rdinit= ro unde "hda3" este partiţia pe care aţi instalat distribuţia Slackware Linux 12.0.


Introducere

  • Configuraţia iniţială

Distribuţia Slackware Linux 12.0 a fost instalată cu opţiunea "full", cu imaginea de kernel hugesmp.s. Am folosit sistemul de fişiere reiserfs. Așa cum este recomandat în CHANGES_AND_HINTS.TXT, ANNOUNCE.12_0 şi RELEASE_NOTES, am trecut de la kernelul huge-smp la kernelul generic-smp astfel:

  1. cd /boot
  2. mkinitrd -c -k 2.6.21.5-smp -m reiserfs

Fişierul iniţial /etc/lilo.conf este:

(...) Linux bootable partition config begins image = /boot/vmlinuz-generic-smp-2.6.21.5-smp

initrd = /boot/initrd.gz
root = /dev/hda3
label = Slackware
read-only  # Partitions should be mounted read-only for checking

Linux bootable partition config ends (...)

  • Descărcarea kernelului

Am folosit arhiva kernelului 2.6.22.9, descărcată de pe site-ul oficial al GNU/Linux Kernel.

$ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.9.tar.gz $ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.9.tar.gz.sign

  • Verificarea autenticităţii arhivei descărcate

$ gpg --keyserver wwwkeys.pgp.net --recv-keys 0x517D0F0E $ gpg --verify linux-2.6.22.9.tar.gz.sign linux-2.6.22.9.tar.gz

  • Despachetarea arhivei

$ tar -zxvf linux-2.6.22.9.tar.gz

Configurarea kernelului

  • Copierea arhivei în /usr/src/

Există o controversă privind instalarea kernelului în /usr/src. Nu voi intra în detalii, aşa că:

  1. mv ~/linux-2.6.22.9 /usr/src/linux-2.6.22.9

  • Crearea unei legături simbolice (symlink) către sursele noului kernel

  1. cd /usr/src/
  2. rm /usr/src/linux
  3. ln -s /usr/src/linux-2.6.22.9 linux

Construirea kernelului

  • Copierea unui fişier .config în sursele noului kernel

  1. cp /boot/config /usr/src/linux/.config

  • Construirea kernelului iniţial (conform informațiilor din fişierul .config)

  1. cd /usr/src/linux
  2. make oldconfig

  • Stabilirea altor modificări, specifice configuraţiei hardware

make xconfig

sau

make menuconfig

Mai jos sunt câteva exemple:

- activarea suportului pentru procesoarele duale şi hypertreading

(“Processor type and features” > “Symmetric multi-processing support”);

- activarea suportului pentru 4GB RAM

(“Processor type and features” > “High Memory Support (4GB)”);

- activarea opţiunii “low-latency” kernel pentru sistemele desktop/laptop

(“Processor type and features” > “Preemption model” > “Preemptible kernel”);

- setarea timer-ului la 1000Hz pentru sistemele desktop/laptop

(“Processor type and features” > “Preemption model” > “Timer frequency”).

În final salvaţi modificările.

  • Construirea kernelului şi a modulelor de kernel

  1. make bzImage
  2. make modules

Instalarea modulelor şi imaginii kernelului

  1. make modules_install
  2. cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.22.9-smp
  3. cp System.map /boot/System.map-2.6.22.9-smp
  4. cp .config /boot/config-2.6.22.9-smp

Modificarea /etc/lilo.conf

  • Crearea unui initrd pentru noul kernel

  1. cd /boot
  2. mkinitrd -c -k 2.6.22.9-smp -m reiserfs

  • Modificarea fişierului de configurare lilo.conf

  1. mcedit /etc/lilo.conf

şi adăugaţi informațiile pentru noul kernel

  1. Linux bootable partition config begins

image = /boot/vmlinuz-2.6.22.9-smp

 initrd = /boot/initrd.gz
 root = /dev/hda3
 label = NewSlackware
 read-only  # Partitions should be mounted read-only for checking
  1. Linux bootable partition config ends

apoi rulaţi comanda lilo.

  • Cleaning and reboot

  1. cd /usr/src/linux
  2. make clean

La următoarea bootare, comanda uname -srv ar trebui să arate:

Linux 2.6.22.9-smp #1 SMP PREEMPT Fri Sep 28 17:54:30 EEST 2007

Reinstalarea modulelor

Pentru a afla care module de kernel (create de diferite aplicaţii) trebuie reinstalate, rulaţi comanda

  1. cd /var/log/packages
  2. grep -l "lib/modules/`uname -r`" *

De asemenea, mai trebuie reinstalate driverele proprietare sau open source pentru diverse componente hardware (ex: placa video) şi trebuie reconfigurate unele soluţii de virtualizare (ex: VMware Server).