[CentOS] wiki howto on custom kernel

Mon Mar 12 16:02:01 UTC 2007
Alfred von Campe <alfred at 110.net>

On Mar 12, 2007, at 10:15, Jim Perrin wrote:

> Building as root is bad practice for all software. This is mostly to
> protect you from bad code. If a cleanup script tries to delete /
> instead of just the buildroot, you'll be in a world of hurt by
> building as root. By building as a normal/restricted user you reduce
> the permissions available to the code, thereby minimizing potential
> damage.

OK, I understand.  A (somewhat) related question: can I move the ~/ 
rpmbuild directory to a different location?  My home directory is NFS  
mounted, and I'd rather do a build on a local disk.  Can I just move  
it myself or is there a way to specify this as an option when  
installing the fedora-rpmdevtools RPM?

>>    2. Why do these steps not work if you do this as root
>>       (i.e., no ~/rpmbuild after fedora-buildrpmtree)?
>
> Root's rpmbuild dir is /usr/src/redhat

Of course, I should have known that.

>>    3. After copying the config file an making one small
>>       change with "make xconfig", why are there so many
>>       differences in the config file?
>
> Are they actual changes, or is the diff now simply off by a few lines?

Actual changes.  And lots of them.  The output of diff is over 2,000  
lines long.  It may be that things just got reordered, but all I did  
was a "make xconfig" and change two settings.

>> The first two questions are just intellectual curiosity, but the
>> third one really has me wondering what's going on.  I followed the
>> steps in the Wiki, and when I diff'ed the original config file to the
>> one create by "make xconfig" after making two changes in the serial
>> port section, I saw a lot of differences.
>
> Like what?

In order to compare apples to apples, I ran both config files through  
the following "filter": sort -u <configfile> | grep -v '^#'.  The  
resulting output of diff is now only 317 lines, and here are the  
first 20 or so:

# diff -wib /tmp/config.orig /tmp/config.new  | head -25
2d1
<
21d19
< CONFIG_ACPI_NUMA=y
24a23
 > CONFIG_ACPI_SLEEP_PROC_FS=y
31,32d29
< CONFIG_ACT200L_DONGLE=m
< CONFIG_ACTISYS_DONGLE=m
73a71
 > CONFIG_ATM_IDT77252_USE_SUNI=y
99c97
< CONFIG_BLK_DEV_DELKIN=y
---
 > CONFIG_BLK_DEV_DELKIN=m
159a158
 > CONFIG_BROKEN_ON_SMP=y
200,201d198
< CONFIG_COPS_DAYNA=y
< CONFIG_COPS_TANGENT=y
207c204
< CONFIG_CPU_FREQ_GOV_USERSPACE=m
---
 > CONFIG_CPU_FREQ_GOV_USERSPACE=y
212c209

The only changes I intended to make were the following two:

   CONFIG_SERIAL_8250_MANY_PORTS=y
   CONFIG_SERIAL_8250_NR_UARTS=20     [from 4]

I may only need one or the other, but I wasn't sure so I changed them  
both.  Anyway, I thought I followed the recipe to the letter, and I  
got all these changes.  After I noticed this, I even copied the  
config file again and re-ran "make xconfig" and the same thing  
happened again.

Alfred