Date: Fri, 14 Aug 2009 14:35:22 -0400
From: pgrinberg(a)nyc.saic.com
To: fedora-kernel-list(a)redhat.com
Subject: Recompile kernel without SMP
Hi there,
I am trying to recompile kernel without SMP. So far I've been
unsuccessful. Meaning I am able to compile, but it was still SMP..
Can someone tell me what I am doing wrong?
And why I don't get "kernel-headers" build?
It is probably related to spec parameters....
So far this is what I've done:
cd ~/
rpmdev-setuptree # as regular user
cd rmpbuild
yumdownloader --source kernel # as regular user
cd ~/rpmbuild/BUILD/kernel-2.6.29/linux-2.6.29.i686/
cp configs/kernel-2.6.29.6-i586.config .config
make menuconfig # console setup
Select option: Processor type and features.
Disable "Symmetric multi-processing support" (SMP)
cp .config ~/rpmbuild/SOURCES/config-i686-generic
cp .config ~/rpmbuild/SOURCES/config-i686
cd ~/rpmbuild/SPECS
nano kernel.spec
Add line:
% define buildid .NONSMP
Replace:
# Allow kernel-firmware building
#%define with_firmware %{?_with_firmware: 1} %{?!_with_firmware: 0}
%define with_firmware %{?_with_firmware: 0} %{?!_with_firmware: 1}
#%define with_firmware %{?_without_firmware: 0} %{?!_without_firmware:
1}
%define with_firmware %{?_without_firmware: 1} %{?!_without_firmware:
0}
# Allow kernel-headers building
# Allow kernel-devel building
# Create RPM package
rpmbuild -bb --with firmware --target=i686 kernel.spec
# To actually install kernel
su
rpm -ivh kernel-firmware-2.6.29.6-217.2.3.nonsmp.fc11.i686.rpm
kernel-PAE-2.6.29.6-217.2.3.nonsmp.fc11.i686.rpm
kernel-PAE-devel-2.6.29.6-217.2.3.nonsmp.fc11.i686.rpm
Just in case:
$ cat config-i686-PAE | egrep -i "smp" | more
CONFIG_BROKEN_ON_SMP=y
# CONFIG_SMP is not set
CONFIG_X86_FIND_SMP_CONFIG=y
# CONFIG_X86_VSMP is not set
CONFIG_SCSI_SAS_HOST_SMP=y
CONFIG_VIDEO_VP27SMPX=m
Best,
Paul
I just got bit by a similar problem in trying to build
kernel-2.6.31-0.125.4.2.rc5.git2.fc12.src.rpm
I followed the steps outlined in
http://fedoraproject.org/wiki/Docs/CustomKernel
I only wanted to build i686 architecture
- without SMP
- without cpu id support
- without multicore support
- without hyperthreading support
- with kernel config support
- with kernel config via /proc support
- with frequency default governor set to Performance
- with preemptible kernel
- with rt2860 module support
- with NTFS read/write support
Well, it ended up building i686-PAE Debug kernel with SMP support.
It seems as if the architecture is i686, then only i686 PAE Debug gets built.
I do not know where the problem lies, but ....SOURCES/Makefile.config
might be the place where the target kernel build is being selected.
To get around it, I edited
...SOURCES/Makefile.config and removed all rules and definitions pertaining to i686-PAE
and only left the simple i686 def and rule.
PS: I do not know if this is necessary, but after I copied .config to
...SOURCES/config-i686
I also copied it to
...SOURCES/config-x86-generic
Then running rpmbuild -v -bb --target=i686 kernel.spec
is proceeding without problems
MK
_________________________________________________________________
Windows Liveā¢: Keep your life in sync.
http://windowslive.com/explore?ocid=PID23384::T:WLMTAGL:ON:WL:en-US:NF_BR...