阿里lvs+fullnet之內核編譯(二)(失敗)

先準備好要用到的包:

kernel-2.6.32-220.23.1.el6.src.rpm

Linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz

Linux-2.6.32-220.23.1.el6.x86_64.rs.src.tar.gz

Lvs-fullnat-synproxy.tar.gz

第一步: 

cd /usr/local/src

rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm
[root@localhost src]# rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm
Updating / installing...
   1:kernel-2.6.32-220.23.1.el6            ################################# [100%]
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root

第二步:生成內核源碼

cd ~/rpmbuild/SPECS

rpmbuild -bp kernel.spec

這裏會報錯:

 解決方法:

安裝以下依賴包:

yum install -y gcc asciidoc newt-devel

yum install redhat-rpm-config patchutilsxmlto elfutils-libelf-devel binutils-devel python-devel hmaccalcperl-ExtUtils-Embed -y

yum install perl-ExtUtils-Embed hmaccalc -y

yum install patchutils \

> xmlto  \
> elfutils-libelf-devel \
> binutils-devel  \
> hmaccalc -y

再次執行  rpmbuild -bp kernel.spec

[root@localhost SPECS]# rpmbuild -bp kernel.spec
warning: bogus date in %changelog: Tue Dec 07 2011 Karanbir Singh <[email protected]> [2.6.32-220.el6.centos]
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.kzl2xP

- umask 022
- cd /home/icbcmon/rpmbuild/BUILD
- patch_command='patch -p1 -F1 -s'
- '[' '!' -d kernel-2.6.32-220.el6/vanilla-2.6.32-220.el6/ ']'
- rm -f pax_global_header
- cd /home/icbcmon/rpmbuild/BUILD
- rm -rf kernel-2.6.32-220.el6
- /usr/bin/mkdir -p kernel-2.6.32-220.el6
- cd kernel-2.6.32-220.el6
- /usr/bin/bzip2 -dc /home/icbcmon/rpmbuild/SOURCES/linux-2.6.32-220.el6.tar.bz2
- /usr/bin/tar -xf -
- STATUS=0
- '[' 0 -ne 0 ']'
- /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
- mv linux-2.6.32-220.el6 vanilla-2.6.32-220.el6
- '[' -d linux-2.6.32-220.el7.x86_64 ']'
- cp -rl vanilla-2.6.32-220.el6 linux-2.6.32-220.el7.x86_64
- cd linux-2.6.32-220.el7.x86_64
- cp /home/icbcmon/rpmbuild/SOURCES/config-debug /home/icbcmon/rpmbuild/SOURCES/config-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-framepointer /home/icbcmon/rpmbuild/SOURCES/config-generic /home/icbcmon/rpmbuild/SOURCES/config-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-i686 /home/icbcmon/rpmbuild/SOURCES/config-i686-debug /home/icbcmon/rpmbuild/SOURCES/config-i686-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-i686-nodebug /home/icbcmon/rpmbuild/SOURCES/config-i686-nodebug-rhel /home/icbcmon/rpmbuild/SOURCES/config-i686-rhel /home/icbcmon/rpmbuild/SOURCES/config-ia64-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-nodebug /home/icbcmon/rpmbuild/SOURCES/config-nodebug-rhel /home/icbcmon/rpmbuild/SOURCES/config-powerpc-generic /home/icbcmon/rpmbuild/SOURCES/config-powerpc-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-powerpc64 /home/icbcmon/rpmbuild/SOURCES/config-powerpc64-kdump /home/icbcmon/rpmbuild/SOURCES/config-powerpc64-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x /home/icbcmon/rpmbuild/SOURCES/config-s390x-debug /home/icbcmon/rpmbuild/SOURCES/config-s390x-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x-kdump /home/icbcmon/rpmbuild/SOURCES/config-s390x-kdump-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86-generic /home/icbcmon/rpmbuild/SOURCES/config-x86-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86_64-debug /home/icbcmon/rpmbuild/SOURCES/config-x86_64-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86_64-generic /home/icbcmon/rpmbuild/SOURCES/config-x86_64-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86_64-nodebug /home/icbcmon/rpmbuild/SOURCES/config-x86_64-nodebug-rhel .
- cp /home/icbcmon/rpmbuild/SOURCES/merge.pl /home/icbcmon/rpmbuild/SOURCES/Makefile.common /home/icbcmon/rpmbuild/SOURCES/perf /home/icbcmon/rpmbuild/SOURCES/kabitool /home/icbcmon/rpmbuild/SOURCES/check-kabi .
- make -f /home/icbcmon/rpmbuild/SOURCES/Makefile.config VERSION=2.6.32 configs
  perl merge.pl config-nodebug-merged config-generic-merged > temp-generic
  perl merge.pl config-x86_64-generic-merged temp-generic  > temp-x86_64-generic
  perl merge.pl config-x86_64-nodebug-merged temp-x86_64-generic x86_64 > kernel-2.6.32-x86_64.config
  perl merge.pl config-debug-merged config-generic-merged > temp-debug-generic
  perl merge.pl config-x86_64-generic-merged temp-debug-generic  > temp-x86_64-debug-generic
  perl merge.pl config-x86_64-debug-merged temp-x86_64-debug-generic x86_64 > kernel-2.6.32-x86_64-debug.config
  perl merge.pl config-x86-generic-merged temp-generic  > temp-x86-generic
  perl merge.pl config-i686-merged temp-x86-generic > temp-i686-final
  perl merge.pl config-i686-nodebug-merged temp-i686-final i386 > kernel-2.6.32-i686.config
  perl merge.pl config-x86-generic-merged temp-debug-generic  > temp-x86-debug-generic
  perl merge.pl config-i686-merged temp-x86-debug-generic > temp-i686-debug-final
  perl merge.pl config-i686-debug-merged temp-i686-debug-final i386 > kernel-2.6.32-i686-debug.config
  perl merge.pl config-s390x-merged temp-generic > temp-s390x-generic
  perl merge.pl config-s390x-merged temp-s390x-generic s390 > kernel-2.6.32-s390x.config
  perl merge.pl config-s390x-merged temp-debug-generic  > temp-s390x-debug-generic
  perl merge.pl config-s390x-debug-merged temp-s390x-debug-generic s390 > kernel-2.6.32-s390x-debug.config
  perl merge.pl config-s390x-kdump-merged kernel-2.6.32-s390x.config s390 > kernel-2.6.32-s390x-kdump.config
  perl merge.pl config-powerpc-generic-merged temp-generic  > temp-powerpc-generic
  perl merge.pl config-powerpc64-merged temp-powerpc-generic powerpc > kernel-2.6.32-ppc64.config
  perl merge.pl config-powerpc64-kdump-merged kernel-2.6.32-ppc64.config powerpc > kernel-2.6.32-ppc64-kdump.config
  perl merge.pl config-powerpc-generic-merged temp-debug-generic  > temp-powerpc-debug-generic
  perl merge.pl config-powerpc64-merged temp-powerpc-debug-generic powerpc > kernel-2.6.32-ppc64-debug.config
- ApplyOptionalPatch linux-kernel-test.patch
- local patch=linux-kernel-test.patch
- shift
- '[' '!' -f /home/icbcmon/rpmbuild/SOURCES/linux-kernel-test.patch ']'
  ++ wc -l /home/icbcmon/rpmbuild/SOURCES/linux-kernel-test.patch
  ++ awk '{print $1}'
- local C=1
- '[' 1 -gt 9 ']'
- chmod +x scripts/checkpatch.pl
- mkdir configs
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-i686-debug.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-i686-debug.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ grep -c kernel-2.6.32-i686.config
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-i686.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ grep -c kernel-2.6.32-ppc64-debug.config
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-ppc64-debug.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-ppc64-kdump.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-ppc64-kdump.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-ppc64.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-ppc64.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ grep -c kernel-2.6.32-s390x-debug.config
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-s390x-debug.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-s390x-kdump.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-s390x-kdump.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ grep -c kernel-2.6.32-s390x.config
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-s390x.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-x86_64-debug.config
- '[' 1 -eq 0 ']'
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-x86_64.config
- '[' 1 -eq 0 ']'
- for i in '*.config'
- mv kernel-2.6.32-x86_64-debug.config .config
  ++ head -1 .config
  ++ cut -b 3-
- Arch=x86_64
- make ARCH=x86_64 nonint_oldconfig
  scripts/kconfig/conf.c: In function 'conf_sym':
  scripts/kconfig/conf.c:161:6: warning: variable 'type' set but not used [-Wunused-but-set-variable]
  int type;
      ^
  scripts/kconfig/conf.c: In function 'conf_choice':
  scripts/kconfig/conf.c:233:6: warning: variable 'type' set but not used [-Wunused-but-set-variable]
  int type;
      ^
- echo '# x86_64'
- cat .config
- rm -f include/generated/kernel.arch
- rm -f include/generated/kernel.cross
- for i in '*.config'
- mv kernel-2.6.32-x86_64.config .config
  ++ head -1 .config
  ++ cut -b 3-
- Arch=x86_64
- make ARCH=x86_64 nonint_oldconfig
- echo '# x86_64'
- cat .config
- rm -f include/generated/kernel.arch
- rm -f include/generated/kernel.cross
- find . '(' -name '*.orig' -o -name '*~' ')' -exec rm -f '{}' ';'
- cp /home/icbcmon/rpmbuild/SOURCES/extrakeys.pub .
- cat
  ###

### Now generating a PGP key pair to be used for signing modules.

###

### If this takes a long time, you might wish to run rngd in the background to

### keep the supply of entropy topped up.  It needs to be run as root, and

### should use a hardware random number generator if one is available, eg:

###

### rngd -r /dev/hwrandom

###

### If one isn't available, the pseudo-random number generator can be used:

###

### rngd -r /dev/urandom

###

- gpg --homedir . --batch --gen-key /home/icbcmon/rpmbuild/SOURCES/genkey
  gpg: WARNING: unsafe permissions on homedir `.'
  gpg: keyring `./secring.gpg' created
  gpg: keyring `./pubring.gpg' created

^C
gpg: signal Interrupt caught ... exiting

會在這裏卡着不動,解決方法是:

yum -y install rng-tools

rngd -r /dev/urandom

 繼續執行rpmbuild -bp kernel.spec

[root@localhost SPECS]# rpmbuild -bp kernel.spec
warning: bogus date in %changelog: Tue Dec 07 2011 Karanbir Singh <[email protected]> [2.6.32-220.el6.centos]
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.DP2RsI

- umask 022
- cd /home/icbcmon/rpmbuild/BUILD
- patch_command='patch -p1 -F1 -s'
- '[' '!' -d kernel-2.6.32-220.el6/vanilla-2.6.32-220.el6/ ']'
- cd kernel-2.6.32-220.el6/
- '[' -d linux-2.6.32-220.el7.x86_64 ']'
- rm -rf deleteme.x86_64
- mv linux-2.6.32-220.el7.x86_64 deleteme.x86_64
- cp -rl vanilla-2.6.32-220.el6 linux-2.6.32-220.el7.x86_64
- rm -rf deleteme.x86_64
- cd linux-2.6.32-220.el7.x86_64
- cp /home/icbcmon/rpmbuild/SOURCES/config-debug /home/icbcmon/rpmbuild/SOURCES/config-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-framepointer /home/icbcmon/rpmbuild/SOURCES/config-generic /home/icbcmon/rpmbuild/SOURCES/config-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-i686 /home/icbcmon/rpmbuild/SOURCES/config-i686-debug /home/icbcmon/rpmbuild/SOURCES/config-i686-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-i686-nodebug /home/icbcmon/rpmbuild/SOURCES/config-i686-nodebug-rhel /home/icbcmon/rpmbuild/SOURCES/config-i686-rhel /home/icbcmon/rpmbuild/SOURCES/config-ia64-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-nodebug /home/icbcmon/rpmbuild/SOURCES/config-nodebug-rhel /home/icbcmon/rpmbuild/SOURCES/config-powerpc-generic /home/icbcmon/rpmbuild/SOURCES/config-powerpc-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-powerpc64 /home/icbcmon/rpmbuild/SOURCES/config-powerpc64-kdump /home/icbcmon/rpmbuild/SOURCES/config-powerpc64-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x /home/icbcmon/rpmbuild/SOURCES/config-s390x-debug /home/icbcmon/rpmbuild/SOURCES/config-s390x-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x-kdump /home/icbcmon/rpmbuild/SOURCES/config-s390x-kdump-rhel /home/icbcmon/rpmbuild/SOURCES/config-s390x-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86-generic /home/icbcmon/rpmbuild/SOURCES/config-x86-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86_64-debug /home/icbcmon/rpmbuild/SOURCES/config-x86_64-debug-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86_64-generic /home/icbcmon/rpmbuild/SOURCES/config-x86_64-generic-rhel /home/icbcmon/rpmbuild/SOURCES/config-x86_64-nodebug /home/icbcmon/rpmbuild/SOURCES/config-x86_64-nodebug-rhel .
- cp /home/icbcmon/rpmbuild/SOURCES/merge.pl /home/icbcmon/rpmbuild/SOURCES/Makefile.common /home/icbcmon/rpmbuild/SOURCES/perf /home/icbcmon/rpmbuild/SOURCES/kabitool /home/icbcmon/rpmbuild/SOURCES/check-kabi .
- make -f /home/icbcmon/rpmbuild/SOURCES/Makefile.config VERSION=2.6.32 configs
  perl merge.pl config-nodebug-merged config-generic-merged > temp-generic
  perl merge.pl config-x86_64-generic-merged temp-generic  > temp-x86_64-generic
  perl merge.pl config-x86_64-nodebug-merged temp-x86_64-generic x86_64 > kernel-2.6.32-x86_64.config
  perl merge.pl config-debug-merged config-generic-merged > temp-debug-generic
  perl merge.pl config-x86_64-generic-merged temp-debug-generic  > temp-x86_64-debug-generic
  perl merge.pl config-x86_64-debug-merged temp-x86_64-debug-generic x86_64 > kernel-2.6.32-x86_64-debug.config
  perl merge.pl config-x86-generic-merged temp-generic  > temp-x86-generic
  perl merge.pl config-i686-merged temp-x86-generic > temp-i686-final
  perl merge.pl config-i686-nodebug-merged temp-i686-final i386 > kernel-2.6.32-i686.config
  perl merge.pl config-x86-generic-merged temp-debug-generic  > temp-x86-debug-generic
  perl merge.pl config-i686-merged temp-x86-debug-generic > temp-i686-debug-final
  perl merge.pl config-i686-debug-merged temp-i686-debug-final i386 > kernel-2.6.32-i686-debug.config
  perl merge.pl config-s390x-merged temp-generic > temp-s390x-generic
  perl merge.pl config-s390x-merged temp-s390x-generic s390 > kernel-2.6.32-s390x.config
  perl merge.pl config-s390x-merged temp-debug-generic  > temp-s390x-debug-generic
  perl merge.pl config-s390x-debug-merged temp-s390x-debug-generic s390 > kernel-2.6.32-s390x-debug.config
  perl merge.pl config-s390x-kdump-merged kernel-2.6.32-s390x.config s390 > kernel-2.6.32-s390x-kdump.config
  perl merge.pl config-powerpc-generic-merged temp-generic  > temp-powerpc-generic
  perl merge.pl config-powerpc64-merged temp-powerpc-generic powerpc > kernel-2.6.32-ppc64.config
  perl merge.pl config-powerpc64-kdump-merged kernel-2.6.32-ppc64.config powerpc > kernel-2.6.32-ppc64-kdump.config
  perl merge.pl config-powerpc-generic-merged temp-debug-generic  > temp-powerpc-debug-generic
  perl merge.pl config-powerpc64-merged temp-powerpc-debug-generic powerpc > kernel-2.6.32-ppc64-debug.config
- ApplyOptionalPatch linux-kernel-test.patch
- local patch=linux-kernel-test.patch
- shift
- '[' '!' -f /home/icbcmon/rpmbuild/SOURCES/linux-kernel-test.patch ']'
  ++ wc -l /home/icbcmon/rpmbuild/SOURCES/linux-kernel-test.patch
  ++ awk '{print $1}'
- local C=1
- '[' 1 -gt 9 ']'
- chmod +x scripts/checkpatch.pl
- mkdir configs
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-i686-debug.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-i686-debug.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-i686.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-i686.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-ppc64-debug.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-ppc64-debug.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-ppc64-kdump.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-ppc64-kdump.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-ppc64.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-ppc64.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-s390x-debug.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-s390x-debug.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-s390x-kdump.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-s390x-kdump.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-s390x.config
- '[' 0 -eq 0 ']'
- rm -f kernel-2.6.32-s390x.config
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-x86_64-debug.config
- '[' 1 -eq 0 ']'
- for cfg in 'kernel-2.6.32-*.config'
  ++ echo kernel-2.6.32-x86_64-debug.config kernel-2.6.32-x86_64.config
  ++ grep -c kernel-2.6.32-x86_64.config
- '[' 1 -eq 0 ']'
- for i in '*.config'
- mv kernel-2.6.32-x86_64-debug.config .config
  ++ head -1 .config
  ++ cut -b 3-
- Arch=x86_64
- make ARCH=x86_64 nonint_oldconfig
  scripts/kconfig/conf.c: In function 'conf_sym':
  scripts/kconfig/conf.c:161:6: warning: variable 'type' set but not used [-Wunused-but-set-variable]
  int type;
      ^
  scripts/kconfig/conf.c: In function 'conf_choice':
  scripts/kconfig/conf.c:233:6: warning: variable 'type' set but not used [-Wunused-but-set-variable]
  int type;
      ^
- echo '# x86_64'
- cat .config
- rm -f include/generated/kernel.arch
- rm -f include/generated/kernel.cross
- for i in '*.config'
- mv kernel-2.6.32-x86_64.config .config
  ++ head -1 .config
  ++ cut -b 3-
- Arch=x86_64
- make ARCH=x86_64 nonint_oldconfig
- echo '# x86_64'
- cat .config
- rm -f include/generated/kernel.arch
- rm -f include/generated/kernel.cross
- find . '(' -name '*.orig' -o -name '*~' ')' -exec rm -f '{}' ';'
- cp /home/icbcmon/rpmbuild/SOURCES/extrakeys.pub .
- cat
  ###

### Now generating a PGP key pair to be used for signing modules.

###

### If this takes a long time, you might wish to run rngd in the background to

### keep the supply of entropy topped up.  It needs to be run as root, and

### should use a hardware random number generator if one is available, eg:

###

### rngd -r /dev/hwrandom

###

### If one isn't available, the pseudo-random number generator can be used:

###

### rngd -r /dev/urandom

###

- gpg --homedir . --batch --gen-key /home/icbcmon/rpmbuild/SOURCES/genkey
  gpg: WARNING: unsafe permissions on homedir `.'
  gpg: keyring `./secring.gpg' created
  gpg: keyring `./pubring.gpg' created
- cat
  ###

### Key pair generated.

###

- '[' -s /home/icbcmon/rpmbuild/SOURCES/extrakeys.pub ']'
- gpg --homedir . --no-default-keyring --keyring kernel.pub --import /home/icbcmon/rpmbuild/SOURCES/extrakeys.pub
  gpg: WARNING: unsafe permissions on homedir `.'
  gpg: ./trustdb.gpg: trustdb created
  gpg: key CD09BEDA: public key "Red Hat Enterprise Linux Driver Update Program <[email protected]>" imported
  gpg: Total number processed: 1
  gpg:               imported: 1
- gpg --homedir . --export --keyring ./kernel.pub CentOS
  gpg: WARNING: unsafe permissions on homedir `.'
- gcc -o scripts/bin2c scripts/bin2c.c
- scripts/bin2c ksign_def_public_key __initdata
- cd ..
- exit 0

終於成功。

 第三步、對生成的內核源碼打patch

#在/usr/local/src下解壓linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz
tar zxf linux-2.6.32-220.23.1.el6.x86_64.lvs.src.tar.gz

#打patch
cd ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/
cp /usr/local/src/linux-2.6.32-220.23.1.el6.x86_64.lvs/lvs-2.6.32-220.23.1.el6.patch .

#修改.config文件
vim .config
CONFIG_IP_VS_TAB_BITS=20

 第四步:

make

這裏面又是數不清的坑。記錄一下已經遇到過的問題和解決方法:

problem 1:

 解決方法:將報錯文件中的END(do_hypervisor_callback)改爲END(xen_do_hypervisor_callback)

problem 2:

 解決方法:

In arch/x86/vdso/Makefile :

replace "-m elf_x86_64" by "-m64" on the line starting with VDSO_LDFLAGS_vdso.lds
replace "-m elf_i386" by "-m32" on the line starting with VDSO_LDFLAGS_vdso32.lds

problem 3:

 解決方法:

將drivers/scsi/pmcraid.h中的第611行註釋掉:

problem 4:

 明天繼續解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章