RHEL4中编译内核及内核模块
时间:2006-06-05 来源:su_hub
- 从以下资源中的一个获取 kernel-<version>.src.rpm 文件:
- 适当的 "SRPMS" 光盘 iso 映像的 SRPMS 目录
- 您得到内核软件包的 FTP 站点
- 通过运行以下命令:
up2date --get-source kernel
安装 kernel-<version>.src.rpm (提供默认的 RPM 配置,这个软件包包括的文件将被写到 /usr/src/redhat/)
改变目录到 /usr/src/redhat/SPECS/,运行以下命令:
rpmbuild -bp --target=<arch> kernel.spec
(这里的 <arch> 是所要被安装的机器的体系)
在默认的 RPM 配置中,内核树会位于 /usr/src/redhat/BUILD/。
在结果树中,红帽企业 Linux 4 所带内核的配置信息在 /configs/ 目录中。例如:i686 SMP 配置文件的名字为 /configs/kernel-<version>-i686-smp.config。使用以下命令来把适当的配置文件放置到适当的目录中:
cp <desired-file> ./.config
运行以下命令:
make oldconfig
您可以恢复到通常的情况。
备注
一个快速扩展的资源树不需要重新构建内核模块。
例如,创建 foo.ko 模块,在包含 foo.c 文件的目录中建立名为 Makefile 的文件:
obj-m := foo.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
运行 make 命令来构建 foo.ko 模块。
gcc cpp glibc-devel glibc-headers glibc-kernheaders kernel-2.6.9-34.EL.src.rpm rpm-build redhat-rpm-config ncurses-devel |
#cd /usr/src/redhat/SPECS #rpmbuild -bp --target=i686 kernel-2.6.spec #cd /usr/src #ln -s redhat/BUILD/kernel-2.6.9/linux-2.6.9 linux-2.6 #cd /usr/src/linux-2.6 #make mrproper #make menuconfig #make #make modules_install #make install |