[PlanetCCRMA] Building planetedge kernel for x86_64

Fernando Pablo Lopez-Lezcano nando@ccrma.Stanford.EDU
Wed Sep 22 17:55:02 2004


On Wed, 2004-09-15 at 15:36, BrbrOfSvl@aol.com wrote:
> We have a new dual-opteron box with an x86_64 installation of FC2.  I'm 
> trying to build Fernando's 2.6.8.1 (Q3) kernel, but I'm getting some errors 
> (I get the same errors when I try building it on our 32-bit computer, and 
> regardless of which target I try to build for, so I don't think it's a 
> 64-bit problem).  It's a problem with the noninteractive oldconfig option, 
> where for some reason it doesn't prompt oldconfig for the new options (or 
> something).  The following is what I get -- am I forgetting a step (do I 
> have to have this kernel installed before I can build it? -- it doesn't 
> seem like it, since the .spec copies a file from SOURCES to .config before 
> it runs make oldconfig... it seems like it should be buildable on any machine 
> that the build tools exist on)?

The problem is that I have never built for x86_64 so that the source rpm
does not have up to date versions of the x86_64 configuration files. The
only ones I keep updating are the i?86 ones. 

For the build to work you would have to update the config files for the
target processor you want to use to match as closely as possible to the
ones I'm using for i?86. The way I do this is to:
  rpmbuild -bp --target i686 kernel-xxx.spec
This will build a ready to compile tree in /usr/src/redhat/BUILD/
So you can change to:
  cd /usr/src/redhat/BUILD/kernel-xxx/linux-xxx/
and that's the top directory of the source. 

Then copy the relevant configuration file:
  cp /usr/src/redhat/SOURCES/kernel-2.6.8.1-x86_64.config .config
and run:
  make oldconfig
That should prompt for all options that are not currently defined. You
should look up what I chose for the i686 case so that your configuration
matches mine (or not, up to you of course). 

After you have a good .config file copy it back to the
/usr/src/redhat/SOURCES directory and rebuild the package...

If you manage to get a config file working email it to me to merge into
my source rpm...

[sorry for the delay in answering, I was away in a trip with no email
access]

-- Fernando

> ------------------------------------------------------
> SPECS]# rpmbuild -bp --target x86_64 kernel-2.6.8.1-1.520.1vQ3.ll.spec
> Building target platforms: x86_64
> Building for target x86_64
> Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.99858
> + umask 022
> + cd /usr/src/redhat/BUILD
> + LANG=C
> + export LANG
> + unset DISPLAY
> + cd /usr/src/redhat/BUILD
> + rm -rf kernel-2.6.8.1
> + /bin/mkdir -p kernel-2.6.8.1
> + cd kernel-2.6.8.1
> + /usr/bin/bzip2 -dc /usr/src/redhat/SOURCES/linux-2.6.8.1.tar.bz2
> + tar -xf -
> + STATUS=0
> + '[' 0 -ne 0 ']'
> ++ /usr/bin/id -u
> + '[' 0 = 0 ']'
> + /bin/chown -Rhf root .
> ++ /usr/bin/id -u
> + '[' 0 = 0 ']'
> + /bin/chgrp -Rhf root .
> + /bin/chmod -Rf a+rX,u+w,g-w,o-w .
> + cd linux-2.6.8.1
> + echo 'Patch #20331 (diff-bk-040828-2.6.8.1.bz2):'
> Patch #20331 (diff-bk-040828-2.6.8.1.bz2):
> + /usr/bin/bzip2 -d
> + patch -p1 -s
> + STATUS=0
> + '[' 0 -ne 0 ']'
> + echo 'Patch #20330 (voluntary-preempt-2.6.9-rc1-bk4-Q3):'
> Patch #20330 (voluntary-preempt-2.6.9-rc1-bk4-Q3):
> + patch -p1 -s
> + echo 'Patch #20332 (voluntary-preempt-enable-irq.patch):'
> Patch #20332 (voluntary-preempt-enable-irq.patch):
> + patch -p1 -s
> + echo 'Patch #330 (linux-2.6.3-ia64-build.patch):'
> Patch #330 (linux-2.6.3-ia64-build.patch):
> + patch -p1 -s
> + echo 'Patch #350 (linux-2.6.1-s390-compile.patch):'
> Patch #350 (linux-2.6.1-s390-compile.patch):
> + patch -p1 -s
> + echo 'Patch #400 (linux-2.6.3-sparc-addbzimage.patch):'
> Patch #400 (linux-2.6.3-sparc-addbzimage.patch):
> + patch -p1 -s
> + echo 'Patch #500 (linux-2.6.8.1-nonintconfig.patch):'
> Patch #500 (linux-2.6.8.1-nonintconfig.patch):
> + patch -p1 -s
> + echo 'Patch #530 (linux-2.6.0-must_check.patch):'
> Patch #530 (linux-2.6.0-must_check.patch):
> + patch -p1 -s
> + echo 'Patch #560 (linux-2.6.5-inode-clip.patch):'
> Patch #560 (linux-2.6.5-inode-clip.patch):
> + patch -p1 -s
> + echo 'Patch #590 (linux-2.6.2-tux.patch):'
> Patch #590 (linux-2.6.2-tux.patch):
> + patch -p1 -s
> + echo 'Patch #600 (linux-2.6.7-modsign-core.patch):'
> Patch #600 (linux-2.6.7-modsign-core.patch):
> + patch -p1 -s
> + echo 'Patch #601 (linux-2.6.7-modsign-crypto.patch):'
> Patch #601 (linux-2.6.7-modsign-crypto.patch):
> + patch -p1 -s
> + echo 'Patch #602 (linux-2.6.7-modsign-ksign.patch):'
> Patch #602 (linux-2.6.7-modsign-ksign.patch):
> + patch -p1 -s
> + echo 'Patch #603 (linux-2.6.7-modsign-mpilib.patch):'
> Patch #603 (linux-2.6.7-modsign-mpilib.patch):
> + patch -p1 -s
> + echo 'Patch #604 (linux-2.6.7-modsign-script.patch):'
> Patch #604 (linux-2.6.7-modsign-script.patch):
> + patch -p1 -s
> + echo 'Patch #1000 (linux-2.4.0-test11-vidfail.patch):'
> Patch #1000 (linux-2.4.0-test11-vidfail.patch):
> + patch -p1 -s
> + echo 'Patch #1020 (linux-2.6.4-stackusage.patch):'
> Patch #1020 (linux-2.6.4-stackusage.patch):
> + patch -p1 -s
> + echo 'Patch #1060 (linux-2.6.3-crash-driver.patch):'
> Patch #1060 (linux-2.6.3-crash-driver.patch):
> + patch -p1 -s
> + echo 'Patch #1070 (linux-2.6.0-sleepon.patch):'
> Patch #1070 (linux-2.6.0-sleepon.patch):
> + patch -p1 -s
> + echo 'Patch #1100 (linux-2.6.7-i8042.patch):'
> Patch #1100 (linux-2.6.7-i8042.patch):
> + patch -p1 -s
> + echo 'Patch #1110 (linux-2.6.7-symlink.patch):'
> Patch #1110 (linux-2.6.7-symlink.patch):
> + patch -p1 -s
> + echo 'Patch #20000 (linux-2.6.6-rt-0.1.1.patch.gz):'
> Patch #20000 (linux-2.6.6-rt-0.1.1.patch.gz):
> + /usr/bin/gzip -d
> + patch -p1 -s
> + STATUS=0
> + '[' 0 -ne 0 ']'
> + echo 'Patch #20002 (linux-2.6.8.1-makefile.patch):'
> Patch #20002 (linux-2.6.8.1-makefile.patch):
> + patch -p1 -s
> + echo 'Patch #20003 (linux-2.6.8-sysnice.patch):'
> Patch #20003 (linux-2.6.8-sysnice.patch):
> + patch -p1 -s
> + cp /usr/src/redhat/SOURCES/COPYING.modules Documentation/
> + mkdir configs
> + cp -fv /usr/src/redhat/SOURCES/kernel-2.6.8.1-x86_64-smp.config /usr/src/redhat/SOURCES/kernel-2.6.8.1-x86_64.config .
> `/usr/src/redhat/SOURCES/kernel-2.6.8.1-x86_64-smp.config' -> `./kernel-2.6.8.1-x86_64-smp.config'
> `/usr/src/redhat/SOURCES/kernel-2.6.8.1-x86_64.config' -> `./kernel-2.6.8.1-x86_64.config'
> + perl -p -i -e 's|CONFIG_LATENCY_TRACE=y|CONFIG_LATENCY_TRACE=n|g' kernel-2.6.8.1-x86_64-smp.config
> + perl -p -i -e 's|CONFIG_LATENCY_TRACE=y|CONFIG_LATENCY_TRACE=n|g' kernel-2.6.8.1-x86_64.config
> + mv kernel-2.6.8.1-x86_64-smp.config .config
> ++ echo kernel-2.6.8.1-x86_64-smp.config
> ++ cut -d- -f3
> ++ cut -d. -f1
> ++ sed -e s/i.86/i386/ -e s/s390x/s390/ -e s/ppc64.series/ppc64/ -e s/ppc8.../ppc/ -e s/ppc32dy4/ppc/
> + make ARCH=x86_64 nonint_oldconfig
> .config:41: trying to assign nonexistent symbol PREEMPT_VOLUNTARY
> .config:42: trying to assign nonexistent symbol PREEMPT_NORESCHED
> .config:43: trying to assign nonexistent symbol IRQBALANCE
> .config:46: trying to assign nonexistent symbol SMBIOS
> .config:47: trying to assign nonexistent symbol IRQSTACKS
> .config:111: trying to assign nonexistent symbol PCI_GOBIOS
> .config:112: trying to assign nonexistent symbol PCI_GOMMCONFIG
> .config:113: trying to assign nonexistent symbol PCI_GODIRECT
> .config:114: trying to assign nonexistent symbol PCI_GOANY
> .config:121: trying to assign nonexistent symbol PCI_USE_VECTOR
> .config:221: trying to assign nonexistent symbol MTD_ICH2ROM
> .config:328: trying to assign nonexistent symbol IDEDISK_STROKE
> .config:351: trying to assign nonexistent symbol BLK_DEV_IDE_TCQ
> .config:384: trying to assign nonexistent symbol DMA_NONPCI
> .config:407: trying to assign nonexistent symbol SCSI_REPORT_LUNS
> .config:578: trying to assign nonexistent symbol I2O_PCI
> .config:602: trying to assign nonexistent symbol IP_ROUTE_NAT
> .config:622: trying to assign nonexistent symbol NETDUMP
> .config:799: trying to assign nonexistent symbol NET_FASTROUTE
> .config:808: trying to assign nonexistent symbol NET_SCH_CSZ
> .config:818: trying to assign nonexistent symbol NET_SCH_DELAY
> .config:979: trying to assign nonexistent symbol 8139_RXBUF_IDX
> .config:996: trying to assign nonexistent symbol NET_GIGE
> .config:1078: trying to assign nonexistent symbol RCPCI
> .config:1427: trying to assign nonexistent symbol UNIX98_PTY_COUNT
> .config:1513: trying to assign nonexistent symbol BUSMOUSE
> .config:1523: trying to assign nonexistent symbol IPMI_KCS
> .config:1550: trying to assign nonexistent symbol AMD7XX_TCO
> .config:1993: trying to assign nonexistent symbol USB_PWC
> .config:2086: trying to assign nonexistent symbol USB_BRLVGER
> .config:2235: trying to assign nonexistent symbol INTERMEZZO_FS
> .config:2254: trying to assign nonexistent symbol NEC98_PARTITION
> .config:2323: trying to assign nonexistent symbol DEBUG_STACKOVERFLOW
> .config:2327: trying to assign nonexistent symbol DEBUG_PAGEALLOC
> .config:2333: trying to assign nonexistent symbol DEBUG_STACK_USAGE
> .config:2368: trying to assign nonexistent symbol CRYPTO_AES_GENERIC
> .config:2386: trying to assign nonexistent symbol CRC16
> .config:2406: trying to assign nonexistent symbol MCE_DEBUG
> .config:2412: trying to assign nonexistent symbol SLAB_DEBUG
> CONFIG_CPU_FREQ_GOV_ONDEMAND
> CONFIG_X86_SPEEDSTEP_CENTRINO
> CONFIG_X86_ACPI_CPUFREQ
> CONFIG_UNORDERED_IO
> CONFIG_BLK_DEV_UB
> CONFIG_MD_RAID10
> CONFIG_INET_TUNNEL
> CONFIG_IP_NF_CT_ACCT
> CONFIG_IP_NF_MATCH_SCTP
> CONFIG_IP_NF_CT_PROTO_SCTP
> CONFIG_R8169_NAPI
> CONFIG_IPMI_POWEROFF
> CONFIG_I2C_ALGOPCA
> CONFIG_I2C_PCA_ISA
> CONFIG_SENSORS_SMSC47M1
> CONFIG_SND_ATIIXP_MODEM
> CONFIG_SND_USB_USX2Y
> CONFIG_USB_SUSPEND
> CONFIG_RPCSEC_GSS_SPKM3
> CONFIG_SCHEDSTATS
> CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE
> CONFIG_CRYPTO_WHIRLPOOL
> make[1]: *** [nonint_oldconfig] Error 22
> make: *** [nonint_oldconfig] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.99858 (%prep)