To follow up, it seems the debug symbols were the problem.<div><br></div><div>Going into the &quot;kernel hacking&quot; sections of the menuconfig and turning off everything related to debug symbols brought the new kernel to within 1 MB of the original kernel (much more realistic). It seems Suse explicitly strips the object files as a separate step (rather than turning symbols off in the configuration) but the result is almost the same.</div>
<div><br></div><div>Thanks Mike for your suggestion, even though the instructions my friend was using were functionally identical to what that guide suggests.</div><div><br></div><div>-Michael </div><br><div class="gmail_quote">
On Thu, Jun 7, 2012 at 5:26 AM, Mike Martin <span dir="ltr">&lt;<a href="mailto:mike@redtux.org.uk" target="_blank">mike@redtux.org.uk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 7 June 2012 08:02, Michael Quaintance &lt;<a href="mailto:penfoldq@penfoldq.co.uk">penfoldq@penfoldq.co.uk</a>&gt; wrote:<br>
&gt; A friend of mine is stuck with using SUSE for a work project, he needs to<br>
&gt; modify the stock kernel and so he followed the instructions from SUSE but<br>
&gt; the resulting kernel is, in his words, gargantuan.<br>
&gt;<br>
&gt; Anyone got any ideas on what he has done wrong? Specifically, are there any<br>
&gt; alternate make targets he should be using instead/as well?<br>
&gt;<br>
&gt; I&#39;ve attached his own description of the problem below.<br>
&gt;<br>
&gt; Thanks in advance.<br>
&gt;<br>
&gt; -Michael<br>
&gt;<br>
&gt; -------------------------------------------------------<br>
&gt;<br>
&gt; I have an installation of SLES 11.2 on the x86_64 platform updated to the<br>
&gt; 3.0.26-0.7 kernel.<br>
&gt;<br>
&gt; As a part of a project, I need to tweak the kernel configuration and apply a<br>
&gt; minor patch to a few of the source files.<br>
&gt;<br>
&gt; I did the following (based mostly on the /usr/src/linux/README.SUSE file):<br>
&gt;<br>
&gt; Copy the source tree to my home directory:<br>
&gt;<br>
&gt; $mkdir -p ~/builds/kernel/linux-3.0.26-0.7/src<br>
&gt; $cd ~/builds/kernel/linux-3.0.26-0.7/src<br>
&gt; $cp -R /usr/src/linux-3.0.26-0.7/* .<br>
&gt;<br>
&gt; Clone the running system&#39;s configuration and then launch menuconfig to tweak<br>
&gt; that:<br>
&gt;<br>
&gt; $make cloneconfig<br>
&gt; $make menuconfig<br>
&gt;<br>
&gt; Make the following changes to the configuration:<br>
&gt; *Change the local version string<br>
&gt; *Enable the TCP MD5 option<br>
&gt; *Enable IPv6 multicast routing<br>
&gt; *Eanble IPv6 multicast multi-table support<br>
&gt; *Enable IPv6 PIM-SM<br>
&gt;<br>
&gt; Make my changes to the sources<br>
&gt; Build and install and make RPMs<br>
&gt;<br>
&gt; $make<br>
&gt; $make modules_install<br>
&gt; $make install<br>
&gt; $make rpm-pkg<br>
&gt;<br>
&gt;<br>
&gt; When I do this, the kernel I get is gargantuan compared to the binaries<br>
&gt; provided by SUSE, even though I am supposedly using the same configuration<br>
&gt; they used.<br>
&gt;<br>
&gt; For comparison:<br>
&gt;<br>
&gt; Their /lib/modules directory is about 91M, while mine is 1.8G<br>
&gt; Their /lib/modules/kernel/drivers directory is about 60M, while mine is 1.3G<br>
&gt; Their /lib/modules directory contains 2167 files while mine has 3772<br>
&gt; Individual module files are much larger. For example, their<br>
&gt; kernel/drivers/net/e1000/e1000.ko is 260K while mine is 2M.<br>
&gt; Their initrd file is 7.1M while mine is 14M<br>
&gt; Their vmlinuz...gz file is 4.3M while mine is 43M<br>
&gt; The RPMs generated don&#39;t match. SUSE provided kernel-default,<br>
&gt; kernel-default-base, kernel-devel, and linux-kernel-headers. I got only two<br>
&gt; (kernel- and kernel-headers)<br>
&gt; The sum total of the SUSE-provided kernel RPMs (kernel-default,<br>
&gt; kernel-default-base, kernel-devel and linux-kernel-headers) is about 38M.<br>
&gt; The sum of the two kernel RPMs I got is about 321M<br>
&gt;<br>
&gt;<br>
&gt; I assume that my build is packed full of debug info and theirs isn&#39;t. Are<br>
&gt; there alternate make targets I should be using?<br>
&gt;<br>
&gt; If there are no magic command line parameters to give make, then it would<br>
&gt; appear that the config file I extracted from /proc/config.gz is not the one<br>
&gt; SUSE used to compile their kernel. Or at least not for compiling all the<br>
&gt; modules.<br>
&gt;<br>
&gt; What should I change in the configuration to bring my build down to a<br>
&gt; reasonable size? There are many symbol/debug options, but I don&#39;t want to<br>
&gt; just go randomly flipping switches trying to find the magic combination SUSE<br>
&gt; used.<br>
</div></div>have a look at this<br>
<br>
<a href="http://www.howtoforge.com/kernel_compilation_suse_p2" target="_blank">http://www.howtoforge.com/kernel_compilation_suse_p2</a><br>
<br>
I would guess you should have a config file in /boot and you should<br>
use that as a base<br>
<br>
_______________________________________________<br>
Nottingham mailing list<br>
<a href="mailto:Nottingham@mailman.lug.org.uk">Nottingham@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/nottingham" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/nottingham</a><br>
</blockquote></div><br>