9d81bc9f2016ce51ac57922a26a57dcbbab327df
[mirror/scst/.git] / scst / README_RHEL
1 Recompiling a RHEL 5 / CentOS 5 kernel
2 --------------------------------------
3
4  - Look up the version of the installed kernel, e.g. through the
5 following command:
6     uname -r
7
8  - Choose a RHEL / CentOS mirror
9
10  - Download the source RPM matching the installed kernel version, e.g.
11 kernel-2.6.18-92.1.22.el5.src.rpm
12
13  - Now generate a kernel source tree from this source RPM by running
14 the following commands as root:
15
16     useradd mockbuild
17     rpm -i kernel-2.6.18-92.1.22.el5.src.rpm
18
19 The above commands will create a kernel spec file
20 /usr/src/redhat/SPECS/kernel-2.6.spec and will create the files for
21 building the kernel source tree in /usr/src/redhat/SOURCES/.
22
23  - The kernel source tree can now be built by running the commands
24 below. These commands will not only create a kernel source tree but will
25 also install a kernel .config file:
26  
27     yum install unifdef
28     rm -rf /usr/src/redhat/BUILD
29     mkdir -p /usr/src/redhat/BUILD
30     chown mockbuild /usr/src/redhat/BUILD
31     sudo -u mockbuild rpmbuild -bp /usr/src/redhat/SPECS/kernel-2.6.spec
32
33  - Next, apply the SCST patches to this kernel source tree:
34
35     cd "/usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.$(uname -m)"
36     patch -p1 <${SCST_SOURCE_DIR}/scst/kernel/rhel/scst_exec_req_fifo-rhel5.patch
37     patch -p1 <${SCST_SOURCE_DIR}/iscsi-scst/kernel/patches/rhel/put_page_callback-rhel5.patch
38
39  - Modify EXTRAVERSION in Makefile from "-prep" into "-scst". The text
40 assigned to the EXTRAVERSION variable will be appended to the kernel
41 version 2.6.18 and will appear a.o. in the GRUB boot menu. Choosing a
42 name that refers to the SCST project will help to recognize the
43 customized kernel.
44
45  - If you are familiar with kernel configuration, you can decrease
46 kernel compilation time significantly by minimizing the kernel
47 configuration as follows:
48
49     yum install qt-devel
50     lsmod
51     make xconfig &
52
53  - Now compile and install the kernel:
54
55     make && make modules
56     mkdir -p /lib/modules/2.6.18-scst && make modules_install && make install
57
58  - Edit the bootloader menu such that the newly compiled kernel is
59 loaded by default:
60
61     vi /boot/grub/menu.lst
62
63 - Boot into the new kernel:
64
65     reboot