Re: custom kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Paul Howarth wrote:
On Fri, 2005-02-04 at 22:46 -0600, S B wrote:

Hi all,
 I made an attempt to custom build a kernel from the src.rpm. I
followed the tutorial by Kevin Hobbs to complete the task.
 I have several questions with the build process. I did read a couple
of tutorials before I actually build the kernel.


1. The build process failed at prep when I tried to build the binaries. rpmbuild -bb --target=i686 ~/rpmbuild/SPECS/kernel-2.*.spec .
I followed the tutorial (Kernel Compilation Tutorial-Kevin Hobbs)
step by step but could not build the kernerl.


What error message did you get?


2. So, I decided to build the binaries directly without rpmbuild -bp step. So i installed the src.rpm,
then rpmbuild -bb ~/rpmbuild/SPECS/kernel-2.*.spec. This went
smooth, except it took more
than a couple of hours to build the rpms.


So, is it normal for the build process to take this long?


Depends on machine you're building on, but I'd say "yes".


Why did the build process fail via the first method? (I should be able
to provide more information on this, I do not have the tmp files right
now)


The error messages you get would be necessary to diagnose this.

Paul.
I am builing the kernel version 2.6.10-1.1121_FC4 on a sony vaio PCG GRV550 Laptop with pentium 4 processor.


I do not know how much of the output is going to be needed; I am going to paste the end part of the rpmbuild -bb command here.


.config:4476: trying to assign nonexistent symbol X86_P4_CLOCKMOD
.config:4477: trying to assign nonexistent symbol X86_LONGRUN
.config:4478: trying to assign nonexistent symbol X86_LONGHAUL
.config:4479: trying to assign nonexistent symbol X86_CPUFREQ_NFORCE2
.config:4481: trying to assign nonexistent symbol X86_HT
.config:4492: trying to assign nonexistent symbol SOFTWARE_SUSPEND
.config:4493: trying to assign nonexistent symbol PM_DEBUG
.config:4494: trying to assign nonexistent symbol CPU_FREQ
.config:4495: trying to assign nonexistent symbol CPU_FREQ_DEBUG
.config:4496: trying to assign nonexistent symbol CPU_FREQ_DEFAULT_GOV_PERFORMANCE
.config:4497: trying to assign nonexistent symbol CPU_FREQ_DEFAULT_GOV_USERSPACE
.config:4498: trying to assign nonexistent symbol CPU_FREQ_GOV_PERFORMANCE
.config:4499: trying to assign nonexistent symbol CPU_FREQ_GOV_POWERSAVE
.config:4500: trying to assign nonexistent symbol CPU_FREQ_GOV_USERSPACE
.config:4501: trying to assign nonexistent symbol CPU_FREQ_GOV_ONDEMAND
.config:4502: trying to assign nonexistent symbol CPU_FREQ_TABLE
.config:4503: trying to assign nonexistent symbol CPU_FREQ_STAT
.config:4504: trying to assign nonexistent symbol CPU_FREQ_STAT_DETAILS
.config:4509: trying to assign nonexistent symbol KPROBES
.config:4511: trying to assign nonexistent symbol PCI_MMCONFIG
.config:4521: trying to assign nonexistent symbol HOTPLUG_PCI_PCIE
.config:4522: trying to assign nonexistent symbol HOTPLUG_PCI_PCIE_POLL_EVENT_MODE
.config:4545: trying to assign nonexistent symbol FOREIGN_PAGES
+ echo '# xen'
+ cat .config
+ for i in '*.config'
+ mv kernel-2.6.10-i686.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=
+ make ARCH= nonint_oldconfig
Makefile:448: /home/shashank/rpmbuild/BUILD/kernel-2.6.10/linux-2.6.10/arch//Makefile: No such file or directory
make: *** No rule to make target `/home/shashank/rpmbuild/BUILD/kernel-2.6.10/linux-2.6.10/arch//Makefile'. Stop.
error: Bad exit status from /var/tmp/rpm-tmp.83269 (%prep)



RPM build errors: Bad exit status from /var/tmp/rpm-tmp.83269 (%prep)

Please find attached herewith the rpm-tmp.83269 file.

Thanks,
Shashank
#!/bin/sh

  RPM_SOURCE_DIR="/home/shashank/rpmbuild/SOURCES"
  RPM_BUILD_DIR="/home/shashank/rpmbuild/BUILD"
  RPM_OPT_FLAGS="-O2 -g -pipe -m32 -march=i686 -mtune=pentium4"
  RPM_ARCH="i386"
  RPM_OS="linux"
  export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
  RPM_DOC_DIR="/usr/share/doc"
  export RPM_DOC_DIR
  RPM_PACKAGE_NAME="kernel"
  RPM_PACKAGE_VERSION="2.6.10"
  RPM_PACKAGE_RELEASE="1.1121_FC4.shashank"
  export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
  RPM_BUILD_ROOT="/var/tmp/kernel-2.6.10-1.1121_FC4.shashank-root"
  export RPM_BUILD_ROOT
  
  
  set -x
  umask 022
  cd /home/shashank/rpmbuild/BUILD
LANG=C
export LANG
unset DISPLAY


cd /home/shashank/rpmbuild/BUILD
rm -rf kernel-2.6.10
/bin/mkdir -p kernel-2.6.10
cd kernel-2.6.10
/usr/bin/bzip2 -dc /home/shashank/rpmbuild/SOURCES/linux-2.6.10.tar.bz2 | tar -xf -
STATUS=$?
if [ $STATUS -ne 0 ]; then
  exit $STATUS
fi
[ `/usr/bin/id -u` = '0' ] && /bin/chown -Rhf root .
[ `/usr/bin/id -u` = '0' ] && /bin/chgrp -Rhf root .
/bin/chmod -Rf a+rX,u+w,g-w,o-w .
cd linux-2.6.10

#
# Patches 0 through 100 are meant for core subsystem upgrades
# 
echo "Patch #1 (patch-2.6.11-rc2.bz2):"
/usr/bin/bzip2 -d < /home/shashank/rpmbuild/SOURCES/patch-2.6.11-rc2.bz2 | patch -p1  -s
STATUS=$?
if [ $STATUS -ne 0 ]; then
  exit $STATUS
fi
echo "Patch #2 (patch-2.6.11-rc2-bk10.bz2):"
/usr/bin/bzip2 -d < /home/shashank/rpmbuild/SOURCES/patch-2.6.11-rc2-bk10.bz2 | patch -p1  -s
STATUS=$?
if [ $STATUS -ne 0 ]; then
  exit $STATUS
fi

#
# Patches to back out
#

#
# Architecture patches
#

#
# x86(-64)
#
# Flexible mmap patch for x86-64
#%patch210 -p1
# Fix wrong TASK_SIZE on x86_64 for 32bit processes
#%patch211 -p1
# Compile 686 kernels tuned for Pentium4.
echo "Patch #212 (linux-2.6.10-x86-tune-p4.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-x86-tune-p4.patch


# 
# ppc64
#

# Patch for Kconfig and Makefile build issues
echo "Patch #300 (linux-2.6.2-ppc64-build.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.2-ppc64-build.patch
echo "Patch #301 (linux-2.6.8-ppc64-netboot.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-ppc64-netboot.patch

#
# ia64
#

# Basic build fixes
echo "Patch #330 (linux-2.6.3-ia64-build.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.3-ia64-build.patch


#
# s390
#

# Basic build fixes
echo "Patch #350 (linux-2.6.1-s390-compile.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.1-s390-compile.patch
# Auto raidstart for S390
echo "Patch #351 (linux-2.6.9-s390-autoraid.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-s390-autoraid.patch
# Recover after aborted nameserver request.
echo "Patch #353 (linux-2.6.9-s390-zfcp_port-fix.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-s390-zfcp_port-fix.patch
# Support broadcast on z800/z900 HiperSockets
echo "Patch #360 (linux-2.6.9-s390-qeth_hipersocket-fix.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-s390-qeth_hipersocket-fix.patch

#
# sparc/sparc64
#
echo "Patch #400 (linux-2.6.3-sparc-addbzimage.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.3-sparc-addbzimage.patch

#
# Xen
#
echo "Patch #450 (linux-2.6.10-xen.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-xen.patch
echo "Patch #452 (linux-2.6.9-xen-compile.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-xen-compile.patch
echo "Patch #453 (linux-2.6.9-xen-agpgart.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-xen-agpgart.patch

#
# Patches 500 through 1000 are reserved for bugfixes to the core system
# and patches related to how RPMs are build
#


# This patch adds a "make nonint_oldconfig" which is non-interactive and
# also gives a list of missing options at the end. Useful for automated
# builds (as used in the buildsystem).
echo "Patch #500 (linux-2.4.0-nonintconfig.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.4.0-nonintconfig.patch


#
# The execshield patch series, broken into smaller pieces
#
# 1) Exec shield core
echo "Patch #511 (linux-2.6.0-exec-shield.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.0-exec-shield.patch

# 2) Option to printk fatal signals, useful for debugging
echo "Patch #512 (linux-2.6.8-print-fatal-signals.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-print-fatal-signals.patch

# 3) The Execshield VA rearrangements
echo "Patch #513 (linux-2.6.8-execshield-vaspace.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-execshield-vaspace.patch

# 4) Fixes to make Xen work with Execshield
echo "Patch #514 (linux-2.6.8-execshield-xen.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-execshield-xen.patch

#
# Patch that adds a __must_check attribute for functions for which checking
# the return value is mantadory (eg copy_from_user)
#
echo "Patch #530 (linux-2.6.0-must_check.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.0-must_check.patch

#
# GPG signed kernel modules
#
echo "Patch #600 (linux-2.6.7-modsign-core.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-modsign-core.patch
echo "Patch #601 (linux-2.6.7-modsign-crypto.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-modsign-crypto.patch
echo "Patch #602 (linux-2.6.7-modsign-ksign.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-modsign-ksign.patch
echo "Patch #603 (linux-2.6.7-modsign-mpilib.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-modsign-mpilib.patch
echo "Patch #604 (linux-2.6.7-modsign-script.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-modsign-script.patch
echo "Patch #605 (linux-2.6.7-modsign-include.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-modsign-include.patch
echo "Patch #606 (linux-2.6.9-sha1.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-sha1.patch


#
# Patches 1000 to 5000 are reserved for bugfixes to drivers and filesystems
#


# add vidfail capability; 
# without this patch specifying a framebuffer on the kernel prompt would
# make the boot stop if there's no supported framebuffer device; this is bad
# for the installer cd that wants to automatically fall back to textmode
# in that case
echo "Patch #1000 (linux-2.4.0-test11-vidfail.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.4.0-test11-vidfail.patch

# Periodically scan slab caches for corruption.
echo "Patch #1010 (linux-2.6.10-periodic-slab-debug.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-periodic-slab-debug.patch

#
# Fix the extreme stack usage in some kernel functions
#
echo "Patch #1020 (linux-2.6.4-stackusage.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.4-stackusage.patch

#
# Make /dev/mem a need-to-know function 
#
echo "Patch #1050 (linux-2.6.7-devmem.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.7-devmem.patch
echo "Patch #1051 (linux-2.6.0-devmem.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.0-devmem.patch
echo "Patch #1052 (linux-2.6.8-devmem-xen.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-devmem-xen.patch


#
# /dev/crash driver for the crashdump analysis tool
#
echo "Patch #1060 (linux-2.6.3-crash-driver.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.3-crash-driver.patch

#
# Most^WAll users of sleep_on are broken; fix a bunch
#
echo "Patch #1070 (linux-2.6.0-sleepon.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.0-sleepon.patch

#
# SCSI Bits.
#
# Additions to the SCSI whitelist to make card readers work.
echo "Patch #1120 (linux-2.6.10-scsi-whitelist.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-scsi-whitelist.patch
# Enable both new and old megaraid drivers.
echo "Patch #1136 (linux-2.6.9-scsi-megaraid-legacy.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-scsi-megaraid-legacy.patch

#
# Various upstream NFS/NFSD fixes.
#
echo "Patch #1201 (linux-2.6.9-NFSD-non-null-getxattr.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-NFSD-non-null-getxattr.patch
echo "Patch #1207 (linux-2.6.8-lockd-racewarn2.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-lockd-racewarn2.patch
echo "Patch #1209 (linux-2.6.9-lockd-block-nosleep.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-lockd-block-nosleep.patch
echo "Patch #1210 (linux-2.6.9-lockd-reclaims.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-lockd-reclaims.patch
#%patch1211 -p1

# NIC driver fixes.
# Use correct spinlock functions in token ring net code
echo "Patch #1351 (linux-2.6.9-net-tr-irqlock-fix.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-net-tr-irqlock-fix.patch
# Workaround for the E1000 erratum 23
#%patch1358 -p1
# Workaround E1000 post-maturely writing back to TX descriptors
#%patch1359 -p1
# E1000 64k-alignment fix
#%patch1361 -p1
# NULL out ptrs in airo after kfree'ing them.
echo "Patch #1362 (linux-2.6.9-net-airo-nullptr.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-net-airo-nullptr.patch

# netdump bits
echo "Patch #1500 (linux-2.6.10-crashdump-common.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-crashdump-common.patch
echo "Patch #1501 (linux-2.6.10-netdump.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-netdump.patch
echo "Patch #1502 (linux-2.6.8-netconsole.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.8-netconsole.patch
echo "Patch #1503 (linux-2.6.10-diskdump.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.10-diskdump.patch

#
# Various SELinux fixes from 2.6.10rc
#

# Misc fixes
# Add missing MODULE_VERSION tags to some modules.
echo "Patch #1760 (linux-2.6.9-module_version.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-module_version.patch
# Make spinlock debugging panic instead of continue.
echo "Patch #1910 (linux-2.6.9-spinlock-debug-panic.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-spinlock-debug-panic.patch

#
# VM related fixes.
#
# Extra debugging on OOM Kill.
echo "Patch #2003 (linux-2.6.9-vm-oomkiller-debugging.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-vm-oomkiller-debugging.patch

# IDE bits.
# Handle early EOF on CD's.
echo "Patch #2101 (linux-2.6.9-ide-cd-early-EOF.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-ide-cd-early-EOF.patch

#
# Local hack (off for any shipped kernels) to printk all files opened 
# the first 180 seconds after boot for debugging userspace startup 
# speeds
#
# %patch2999 -p1

#
# External drivers that are about to get accepted upstream
#

# Intel wireless
echo "Patch #3020 (linux-2.6.9-ipw2100.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-ipw2100.patch
echo "Patch #3021 (linux-2.6.9-ipw2200.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-ipw2200.patch
echo "Patch #3022 (linux-2.6.9-ieee80211.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.9-ieee80211.patch

#
# Patches 5000 to 6000 are reserved for new drivers that are about to
# be merged upstream
#


#
# final stuff
#

#
# misc small stuff to make things compile or otherwise improve performance
#
echo "Patch #10000 (linux-2.6.0-compile.patch):"
patch -p1  -s < /home/shashank/rpmbuild/SOURCES/linux-2.6.0-compile.patch


# END OF PATCH APPLICATIONS

cp /home/shashank/rpmbuild/SOURCES/COPYING.modules Documentation/

mkdir configs

cp -fv $RPM_SOURCE_DIR/kernel-2.6.10-i?86*.config .


# now run oldconfig over all the config files
for i in *.config 
do 
	mv $i .config 
	Arch=`head -1 .config | cut -b 3-`
	make ARCH=$Arch nonint_oldconfig > /dev/null
	echo "# $Arch" > configs/$i
	cat .config >> configs/$i 
done

# make sure the kernel has the sublevel we know it has. This looks weird
# but for -pre and -rc versions we need it since we only want to use
# the higher version when the final kernel is released.
perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = 10/" Makefile
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -prep/" Makefile

# get rid of unwanted files resulting from patch fuzz
find . -name "*.orig" -exec rm -fv {} \;
find . -name "*~" -exec rm -fv {} \;

###
### build
###

exit 0

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux