Subject: | |
From: | |
Reply To: | |
Date: | Fri, 27 Jan 2006 08:41:23 -0600 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
[log in to unmask] wrote:
> I tried the following steps:
> I installed kernel-smp-devel-2.6.9-22.0.1.EL.x86_64.rpm
> The tarball was untarred to
> /usr/src/kernels/2.6.9-22.EL-smp-x86_64/drivers/scsi/aic7xxx/
> # cd /usr/src/kernels/2.6.9-22.EL-smp-x86_64
> # make oldconfig
> # make
From your choice of directories in which to run make, it looks like you
may be omitting the same steps I ran into a while back trying to compile
a module for video capture. The following is excerpted from
/usr/share/doc/sl-release-4.1/RELEASE-NOTES-x86-en. Maybe you could
build the proper kernel source tree following these instructions and
then copy over the new kernel module source to its place under
/usr/src/redhat/BUILD?
---------------------------------
o In order to eliminate the redundancy inherent in providing a
separate
package for the kernel source code when that source code already
exists in the kernel's .src.rpm file, Scientific Linux 4.x no
longer includes the kernel-source package. Users that require access
to the kernel sources can find them in the kernel .src.rpm file. To
create an exploded source tree from this file, perform the following
steps (note that <version> refers to the version specification for
your currently-running kernel):
1. Obtain the kernel-<version>.src.rpm file from one of the
following sources:
o The SRPMS directory on the appropriate "SRPMS" CD iso
image
o The FTP site where you got the kernel package
2. Install kernel-<version>.src.rpm (given the default RPM
configuration, the files this package contains will be
written to
/usr/src/redhat/)
3. Change directory to /usr/src/redhat/SPECS/, and issue the
following command:
rpmbuild -bp --target=<arch> kernel.spec
(Where <arch> is the desired target architecture.)
On a default RPM configuration, the kernel tree will be located
in /usr/src/redhat/BUILD/.
4. In resulting tree, the configurations for the specific kernels
shipped in Scientific Linux 4.x are in the /configs/
directory. For example, the i686 SMP configuration file is
named
/configs/kernel-<version>-i686-smp.config. Issue the following
command to place the desired configuration file in the proper
place for building:
cp <desired-file> ./.config
5. Issue the following command:
make oldconfig
You can then proceed as usual.
Note
An exploded source tree is not required to build kernel modules
against the currently in-use kernel.
For example, to build the foo.ko module, create the following file
(named Makefile) in the directory containing the foo.c file:
obj-m := foo.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
Issue the make command to build the foo.ko module.
|
|
|