|
|
本人想搭一个 LVS+Lustre的集群,首先就需要编译内核,所以我就同时打了lvs 的noarp 和 lustre的补丁,我用的是FC5,但编译模块时不能通过,请大家帮我看看这是什么错误 谢谢
*************************************************************
[root@localhost linux-2.6.15.i686]# make modules
CHK include/linux/version.h
CC [M] arch/i386/kernel/msr.o
CC [M] arch/i386/kernel/cpuid.o
CC [M] arch/i386/kernel/microcode.o
CC [M] arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.o
CC [M] arch/i386/kernel/cpu/cpufreq/p4-clockmod.o
AS [M] arch/i386/crypto/aes-i586-asm.o
CC [M] arch/i386/crypto/aes.o
LD [M] arch/i386/crypto/aes-i586.o
CC [M] kernel/intermodule.o
kernel/intermodule.c:178: warning: 鈏nter_module_register?is deprecated (declared at kernel/intermodule.c:38)
kernel/intermodule.c:179: warning: 鈏nter_module_unregister?is deprecated (declared at kernel/intermodule.c:78)
kernel/intermodule.c:181: warning: 鈏nter_module_put?is deprecated (declared at kernel/intermodule.c:159)
CC [M] fs/9p/trans_fd.o
CC [M] fs/9p/trans_sock.o
CC [M] fs/9p/mux.o
CC [M] fs/9p/9p.o
CC [M] fs/9p/conv.o
CC [M] fs/9p/vfs_super.o
CC [M] fs/9p/vfs_inode.o
fs/9p/vfs_inode.c: In function 鈜9fs_vfs_create?
fs/9p/vfs_inode.c:472: error: 鈙truct open_intent?has no member named 鈕pen?
make[2]: *** [fs/9p/vfs_inode.o] Error 1
make[1]: *** [fs/9p] Error 2
make: *** [fs] Error 2
**************************************************************
以下是我自己记录的编译步骤
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
内核编译 FC5
1.准备工作:
软件包
bash-3.1-9.fc5.1.i386.rpm 装新的bash ,quilt需要
quilt-0.46.tar.gz 给内核打补丁的工具
hidden-2.6.12-1.diff LVS的RealServer所必需的NO-ARP补丁
lustre-1.6.2.tar.gz Lustre 的包,里面有补丁
ncurses-devel-5.5-24.20060715.i386.rpm 在make menuconfig时所需的包,没有好像不能进入menu
kernel-2.6.15-1.2054_FC5.src.rpm 源码包在fedora上下的
2.安装
2.1 升级bash
rpm -Uvh bash-3.1-9.fc5.1.i386.rpm
2.2 安装quilt
tar -xzvf quilt-0.46.tar.gz
cd quilt-0.46
./configure
make
make install
2.3 安装内核源码
================================
[root@sunshine srpms]#rpm –Uvh kernel-2.6.15-1.2054_FC5.src.rpm
[root@sunshine srpms]#cd /usr/src/redhat/SPECS
[root@sunshine SPECS]#rpmbuild -bp --target $(uname -m) kernel-2.6.spec
[root@sunshine SPECS]# ls /usr/src/redhat/BUILD/kernel-2.6.15/
Config.mk linux-2.6.15.i686 vanilla xen xen-vanilla (有可能是i586我的是i686)
[root@sunshine SPECS]# cd /usr/src
[root@sunshine src]#mkdir kernels (默认的安装是没有kernels这个文件夹)
[root@sunshine src]# cd kernels/
[root@sunshine kernels]# ln -s ../redhat/BUILD/kernel-2.6.15/linux-2.6.15.i686/ 2.6.15-1.2054_FC5-i686
[root@sunshine kernels]# ls
2.6.15-1.2054_FC5-i686
[root@sunshine kernels]# cd 2.6.15-1.2054_FC5-i686/
[root@sunshine 2.6.15-1.2054_FC5-i686]# cp configs/kernel-2.6.15-i686.config .config
cp:是否覆盖“.config”? y
修正Makefile
++++++++
[root@sunshine 2.6.15-1.2054_FC5-i686]#uname –r (得到2.6.15-1.2054_FC5)
2.6.15-1.2054_FC5
那么就要将Makefile中的
EXTRAVERSION = -prep
换成
EXTRAVERSION = -1.2054_FC5
++++++++++
================================
2.4 安装ncurese-devel
rpm -Uvh ncurses-devel-5.5-24.20060715.i386.rpm
2.5 给内核打补丁
2.5.1 打lvs的noarp补丁
cp hidden-2.6.12-1.diff /usr/src/linux
patch -p1 < hidden-2.6.12-1.diff
2.5.2 打lustre的补丁系列
#这里参考 http://wiki.lustre.org/index.php?title=Kernel_Patch_Management 的做法,做两个连接就行
ln -s /usr/spce/lustre-1.6.2/lustre/kernel_patches/series/2.6-fc5.series /usr/src/linux/series
ln -s /usr/spce/lustre-1.6.2/lustre/kernel_patches/patches /usr/src/linux/patches
quilt push -av
2.6 配置和编译内核
[make mrproper]没编译过的不用
make menuconfig
***
ext3 *
jbd *
modules *
premption -> NO
IP-TULling
...
***
vi Makefile #该版本号
make dep
make clean
make bzImage
make modules #在这里出现错误
make modules_install
make install
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
|