# Kernels and .config questions [solved]

## h2sammo

I am a bit confused about how to have several kernels available for boot from grub.conf.

1. Am i correct to say that menuconfig maintains a .config file file which is compiled into a kernel with the command "make"?  

2. Am i also correct to say that the newly formed kernel does NOT need the .config file once it is compiled and created?  The .config file in this case exists just as a reference or just for menuconfig to work with for the creation of a potentially new kernel?

3. Continuing with my previous train of thought, would i be correct to say that if i never change the default .config name when i save a menuconfig, i can have several kernels in /boot with only ONE .config file?  In other words, is it imperative that every kernel needs its own .config file AFTER it has become a compiled kernel?

4. Following my previous train of thought, is it possible to regenerate a .config file from an existing kernel (if it does NOT have the .config file it has been created with in the first place)?Last edited by h2sammo on Thu Apr 09, 2009 2:15 am; edited 1 time in total

----------

## avx

1. only if you enable .config-support in kernel, if not, it doesn't get build in.

2. if you need external modules from the tree or somewhere else, the .config often is required

3. depends on the two above

4. not that I know of

----------

## NeddySeagoon

h2sammo,

1. Yes.

2. Yes.

3. No.

4. Maybe.

I'll expand on 3 and 4. 

4. You can recover the kernel config file if you elect to embed it in the kernel, so it appears at /proc/config.gz when the kernel is being used.

There may be tools to dig it out the kernel binary too but I'm not aware of any.

3. Using the same .config file for several kernels is ok for the kernel binary which goes into /boot but not for the modules that go into /lib/modules/`uname -r`/ as you will only ever have the modules for the last kernel build.  If you are very careful, you can manage this but things get very messy if you manage to get something built in and as a module, so its generally not safe.

You should make a copy of the kernel tree and in the new tree, edit Makefile and change EXTRAVERSION  at the top of the file

```
VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 29

EXTRAVERSION = -gentoo
```

This makes the new kernels `uname -r` different from the previous one and the modules go to a different /lib/modules/`uname -r`/

When you get an update to gentoo-sources, you get this change for free.

----------

## h2sammo

ok i still need help.  i have the following kernels present in /boot.  I am not sure if i built them properly (and anyhow only one of them boots).

```
localhost bobby # cd /boot 

localhost boot # ls 

2.6.28-gentoo-r4               kernel-2.6.28-gentoo-r4 

System.map-2.6.28-gentoo-r4r4  kernel-2.6.28-gentoo-r4-sound-trial 

boot                           lost+found 

config-2.6.28-gentoo-r4r4      vmlinuz-2.6.28-gentoo-r4r4 

grub
```

as you can see, i have all those kernels but only one .config file.  what happened was everytime i made a new kernel, i kept saving the menuconfig changes into the same .config initial file name. i dont know which of these kernel the .config file belongs to. i dont even know if all the menuconfig changes i made are compiled into the only kernel which compiles.  

1. is there a way (properly) to delete the kernels which dont boot? 

2. if i make changes in menuconfig (like ata/sata/ide type of changes - changes which will affect a proper kernel boot through sda/hda fstab partition denominatioon) can i save them as a new .config file with a different name, compile that and copy the bzImage into ANY kernel name i wish? or is there a format for kernel name i have to follow? can i name my kernel 'mickey mouse' for example?

3. if this kernel does not work properly doesnt boot, can i just pick the other kernel which i have working from my grub.conf and will gentoo start unaffected by any changes i would have made in my trial kernel menuconfig?

4. what happens if i compile a menuconfig but never copy the image to a kernel name in /boot ?

----------

## poly_poly-man

Story time  :Razz: 

A .config file is necessary only when building a kernel. I just keep these around in the respective /usr/src/linux-* directory. You do not need these in boot.

When a kernel is installed, two steps happen - first, you copy over the binary to /boot (I always use bzImages, and name them as such), then modules get installed with modules_install - the modules make their way into /lib/modules/<version>/, and then a depmod happens.

1. If a kernel doesn't boot, just delete its binary and its modules directory.

2. As long as you set up grub properly, all you have to do is mention the correct name for the binaries. Try to keep .config files consistent (or extract them from /proc/config.gz if needed), meaning keep track of what works and all that, but it is unnecessary to put the config in /boot/. You could name a binary mickey_mouse, as long as you told grub that that's what it's called.

3. Yep - plus or minus some various module issues (usually not a problem)

4. that's the same as if you haven't compiled it - the system will never boot that kernel. If you changed modules around and did a modules_install afterwards, some modules might be affected by the change.

----------

## h2sammo

i went into menuconfig, i saved my config to 1_alsa.config.  

i compile it, make install it, the modules as well, then copy the bzImage as '1_alsa_2.6.28' into /boot .  

```
WARNING: /lib/modules/2.6.28-gentoo-r4/video/fglrx.ko needs unknown symbol pv_cpu_ops

WARNING: /lib/modules/2.6.28-gentoo-r4/video/fglrx.ko needs unknown symbol pv_lock_ops

WARNING: /lib/modules/2.6.28-gentoo-r4/video/fglrx.ko needs unknown symbol pv_mmu_ops

WARNING: /lib/modules/2.6.28-gentoo-r4/video/fglrx.ko needs unknown symbol pv_irq_ops

```

shouldt the modules go into /lib/modules/1_alsa_2.6.28 ?  

i reboot, select this kernel, system halts on boot, giving a crc error. 

i tried to look for the /proc/config.gz but there is no config.gz in /proc .  i wanted to look inside the .config of my working kernel and play with changing a few options for experimentation.  i cant get that .config so i think my current .config is NOT linked with my working kernel and has errors in it.

i have the feeling i dont do this properly.  the kernel should work fine as i have it configured properly like i had done the previous one.

----------

## h2sammo

bump

----------

## NeddySeagoon

h2sammo,

Lets tell the story of a kernel build, starting with make menuconfig.

make menuconfig can load and save configuration files under any name you like but only the default (.config) is ever used for building the kernel.

When you save a config file under another name, its just for you.

The make step does two things.

It makes the bzImage file in arch/<your_arch>/boot/ and it builds the kernel modules and leaves them scattered in the kernel tree.

make modules_install copies the kernel modules to /lib/modules/`uname -r`/ and works out the inderdependancies, so modprobe can load any module and all the modules it depends on. 

You also need to copy the bzImage to /boot, so grub can work.  Look at my laptop install

Thats a browsable Gentoo install with several kernels in /boot

I name my kernels after the version information that DEPMOD leaves on the screen at the end of make modules_install. That way its a copy and paste. I told you in my previous post how to change the  /`uname -r`/ part of the kernel name by editing the Makefile

----------

## h2sammo

ah, golden info, thx.

i will be all over it when i get home from work

edit: where is the "kernel tree"?

----------

## h2sammo

 *Quote:*   

> 3. Using the same .config file for several kernels is ok for the kernel binary which goes into /boot but not for the modules that go into /lib/modules/`uname -r`/ as you will only ever have the modules for the last kernel build. If you are very careful, you can manage this but things get very messy if you manage to get something built in and as a module, so its generally not safe. 
> 
>  You should make a copy of the kernel tree and in the new tree, edit Makefile and change EXTRAVERSION at the top of the file 
> 
> ```
> ...

 

tell me if i got this right:

i go to /usr/src/ . in there i have a linux symlink and a linux-2.6.28-gentoo-r4 folder.  the symlink points to the folder. (not sure what the use of this link is).  that folder 'linux-2.6.28-gentoo-r4' is the kernel tree.  its makefile already reads:

```
VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 28

EXTRAVERSION = -gentoo-r4

NAME = Erotic Pickled Herring
```

the '-r4' ending corresponds to the name of the kernel.

now lets say i want to go into menuconfig, make some changes and save a different image of the kernel for booting purposes and add it to grub.conf. i dont want to copy the newly compiled image over the existing kernel because it is my only working booting one. will this one have its own corresponding folder in /usr/src ?

in your example, each kernel image in grub.conf corresponds to a different kernel version.  i want to have a second image of THE SAME kernel version (2.6.28-r4) in my case. is that a possibility?  if not, how can i try out is changes in menuconfig actually keep my kernel booting, before overwriting my good kernel image?Last edited by h2sammo on Tue Apr 07, 2009 2:55 am; edited 1 time in total

----------

## poly_poly-man

 *h2sammo wrote:*   

>  *Quote:*   3. Using the same .config file for several kernels is ok for the kernel binary which goes into /boot but not for the modules that go into /lib/modules/`uname -r`/ as you will only ever have the modules for the last kernel build. If you are very careful, you can manage this but things get very messy if you manage to get something built in and as a module, so its generally not safe. 
> 
>  You should make a copy of the kernel tree and in the new tree, edit Makefile and change EXTRAVERSION at the top of the file 
> 
> ```
> ...

 linux points to the currently used sources. When you have multiple versions in there, it is very helpful. *Quote:*   

> .  that folder 'linux-2.6.28-gentoo-r4' is the kernel tree.  its makefile already reads:
> 
> ```
> VERSION = 2
> 
> ...

 

the folders in /usr/src tend to correspond with different source trees - of course you could make multiple copies for each compiled kernel, but it would be wasteful and pointless.

----------

## h2sammo

 *Quote:*   

> the folders in /usr/src tend to correspond with different source trees - of course you could make multiple copies for each compiled kernel, but it would be wasteful and pointless.

 

i see.

however, i have the following problem:

i have a working kernel, as i said.  but, if i go into menuconfig and change a non-essential item like...i dunno, toggling a mac driver from Y to N and recompile the kernel image, copy it as a different name than my current kernel, add it to gub.conf...i cannot boot from it, even though theoretically i should be able to, since it should have all the settings of my working kernel, except the non-essential one i changed.

that makes me believe that because of my meddling with the .config file and compiling/copying the resulting images to new (non-wroking) kernel images names over and over, my working kernel image and my current .config file are not in sync anymore.  i believe my current .config file has all the changes i have made to it since i compiled my last (and  current) working kernel image, and there must be some changes i made which give me the errors i get at boot (kernel panics, crc errors, etc) whenevr i compile it into new  kernel images.

keep i mind these kernels were made based on the same kernel source, 2.6.28-r4

is my judgement correct? 

if it is, i am scared to apply and save the current .config over to my current working kernel image file im booting from since i will not be able to boot at all until i find the problem...which could be another month at the rate im learning this stuff.  any workaround?

edit: i actually have a reason for trying all this.  i have an ALSA problem.  im only mentioning it so i dont sound likei want to make insane copies of a working kernel image. pls dont address the alsa issue here as i have a separate thread for it.

i dont think the ALSA sound modules were selected properly in my working kernel image.  they are now selected properly in .config but whatever OTHER changes i have made to .config ever since will not compile into anything bootable.  i cant check the .config pertaining to my working kernel image becaseu i kept saving over it throught my trials and tribulations.

----------

## NeddySeagoon

h2sammo.

 *poly_poly-man wrote:*   

>  the folders in /usr/src tend to correspond with different source trees - of course you could make multiple copies for each compiled kernel, but it would be wasteful and pointless.

 

Its not as wasteful and pointless as the above quote suggests. If you have a working kernel and want to experiment with the same kernel version, its the only safe way to do it without risking the modules that belong to your working kernel.

The /usr/src/linux symbolic link is used by packages that need to build against the kernel. Its name never changes but it can point to any kernel you like. This makes for reduced maintainance in these packages as they do not have to be updated for every kernel.

A kernel tree, refers to any of the directories foun in /usr/src.  They all contain kernels with the files arranged in directories in a tree like structure.  

The kernel name is given by 

```
VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 28

EXTRAVERSION = -gentoo-r4
```

all concatinated together.  Try the command 

```
uname -r
```

 on your system to see. You can also do cd /lib/modules/`uname -r`/ ... the `uname -r` will be replaced by information from the running kernel. 

You might want to use 

```
EXTRAVERSION = -h2sammo-r4
```

in your new kernel tree.

----------

## h2sammo

 *Quote:*   

> You might want to use Code: 
> 
> EXTRAVERSION = -h2sammo-r4 
> 
> in your new kernel tree.

 

oh, i think i start to understand.  when you said earlier to make a copy of the kernel tree you meant make a copy and put it in the the same folder (/usr/src).  i would name my new kernel tree 2.6.28-h2sammo-r4, with EXTRAVERSION= -h2sammo-r4 in makefile.

but...HOW would the newly compiled kernel image i make from .config know to put its modules into a new /lib/modules/ connected to this new kernel tree i just created?

also, do i have to make the linux symlink point to the kernel tree i am using? is this done automatically or i have to do it manually?

----------

## NeddySeagoon

h2sammo,

 *h2sammo wrote:*   

> oh, i think i start to understand. when you said earlier to make a copy of the kernel tree you meant make a copy and put it in the the same folder (/usr/src). i would name my new kernel tree 2.6.28-h2sammo-r4, with EXTRAVERSION= -h2sammo-r4 in makefile. 

 Thats right.

You can actually copy the kernel tree to anywhere you like, it will still build and install correctly.

The .config file only tells how to build the kernel, not where to install its modules. When make finishes, which reads the .config file to know what to do, all the parts of the kernel are still in the kernel tree.

make modules_install reads the makefile and uses 

```
VERSION =

PATCHLEVEL =

SUBLEVEL =

EXTRAVERSION =
```

to know where to put the modules. Thats why the change to EXTRAVERSION is essential.

You can get the same effect with changing the SUBLEVEL but thats a really bad idea as external packages that build against the kernel often check the the first three items to make sure the kernel is compatible.

----------

## h2sammo

more questions.  

i understand that those first lines in makefile are responsible for telling make modules_install where to install the modules but...

as far as i remember (im at work) i dont name the kernel image copy until AFTER 'make modules_install' is executed. so the command cant benefit from the name i would give the new kernel image.  

when i type the command 'make modules_install' in, i dont specify WHICH makefile to look into, how does it know to refer to the makefile i want? im having diffuculty in digesting the chronology.

edit: im assuming the command 'make' only makes the IMAGE of the kernel based on the .config details and WITH source from the kernel tree (another question would be which kernel tree it picks and how does it know to pick it)

----------

## NeddySeagoon

h2sammo,

When you issue the command make modules_install, it uses the Makefile in the current directory, that would be /usr/src/2.6.28-h2sammo-r4 for your own kernel or /usr/src/2.6.28-gentoo-r4

 *h2sammo wrote:*   

> as far as i remember (im at work) i dont name the kernel image copy until AFTER 'make modules_install' is executed. so the command cant benefit from the name i would give the new kernel image. 

 

Thats correct.

You always name the kernel file yourself when you copy it to /boot. You would use cp arch/x86/boot/bzImage /boot/2.6.28-h2sammo-r4 for example. The kernel file is always called bzImage in the kernel tree, so its a bad name to use in /boot, since you would keep overwriting it and you would not know which kernel version /boot/bzImage really was.

The kernel make command always works on the current directory and its children. This is referred to as the top of the kernel tree. Try an experiment ... rename the Makefile and run make. I'm not telling you what it does, only that its harmless.

Now rename the file back to Makefile.

----------

## h2sammo

i will try the experiment when i get home.

i just realized another thing from your detailed explanation.  

according to the handbook, when i do menuconfig and run make, i am suposed to be in /usr/src/linux.  that puts me wherever the linux symlink points to (my 2.6.28-gentoo-r4) kernel.

if i want to create a new boot kernel image file pointing and pulling from my new kernel tree i just created, i should go into /usr/src/2.6.28-h2sammo-r4 and run makeconfig and make from there.  this way all my make compilation commands will know which Makefile to use, and which kernel tree to pull out the source from.  

of course, another way would be to point the symlink to my new (-h2sammo-r4) kernel tree folder.

am i correct?

----------

## poly_poly-man

 *h2sammo wrote:*   

> i will try the experiment when i get home.
> 
> i just realized another thing from your detailed explanation.  
> 
> according to the handbook, when i do menuconfig and run make, i am suposed to be in /usr/src/linux.  that puts me wherever the linux symlink points to (my 2.6.28-gentoo-r4) kernel.
> ...

 the symlink should point to the sources used to build the currently running kernel.

----------

## h2sammo

i copied all contents of /usr/src/linux-2.6.28-gentoo-r4 to /usr/src/2.6.28-h2sammo-r4

```
cd -r /usr/src/linux-2.6.28-gentoo-r4 /usr/src/2.6.28-h2sammo-r4

nano /usr/src/2.6.28-h2sammo-r4/Makefile

************edited EXTRAVERSION= -h2sammo-r4************

cd /usr/src/2.6.28-h2sammo-r4

make menuconfig

make && make modules_install

cp arch/x86_64/boot/bzImage /boot/2.6.28-h2sammo-r4

nano /boot/grub/grub.conf

************added 2.6.28-h2sammo-r4 as boot kernel exactly like the current working one***********

reboot
```

during the compilation i saw the following line several times: 'format not a string literal and no format arguments'

during the reboot kernel panicked:

```
VFS: Cannot open root device "hda3" or unknown-block (0,0)

Please append a correct "root=" boot option; here are the available partitions:

*********nothing displayed************

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0)
```

so then i went back to my other kernel and im inside now allright.

is the panic due to a bad kernel through a bad .config or due to something i did wrong with the kernel tree formation, compilation, etc?

----------

## poly_poly-man

you did cp -a, right?

----------

## h2sammo

 *poly_poly-man wrote:*   

> you did cp -a, right?

 

no i did 

```
cp -r
```

----------

## h2sammo

ok i fixed that problem, (disabled SATA in kernel, left IDE only).

but now i get:

```
ERROR: interface eth0 does not exist

Please ensure that you have loaded the correct kernel module for your hardware
```

i checked the kernel...i have 10mbit ethernet enabled...or is it another option i have to enable for eth?

----------

## d2_racing

Can you post this :

```

# lspci

# cd /etc/init.d/ && ls -la

```

----------

## h2sammo

```
localhost bobby # lspci

00:00.0 RAM memory: nVidia Corporation C51 Host Bridge (rev a2)

00:00.1 RAM memory: nVidia Corporation C51 Memory Controller 0 (rev a2)

00:00.2 RAM memory: nVidia Corporation C51 Memory Controller 1 (rev a2)

00:00.3 RAM memory: nVidia Corporation C51 Memory Controller 5 (rev a2)

00:00.4 RAM memory: nVidia Corporation C51 Memory Controller 4 (rev a2)

00:00.5 RAM memory: nVidia Corporation C51 Host Bridge (rev a2)

00:00.6 RAM memory: nVidia Corporation C51 Memory Controller 3 (rev a2)

00:00.7 RAM memory: nVidia Corporation C51 Memory Controller 2 (rev a2)

00:04.0 PCI bridge: nVidia Corporation C51 PCI Express Bridge (rev a1)

00:08.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a1)

00:09.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a2)

00:09.1 SMBus: nVidia Corporation MCP55 SMBus (rev a2)

00:09.2 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)

00:0a.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)

00:0a.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)

00:0c.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)

00:0d.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)

00:0d.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)

00:0d.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a2)

00:0e.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)

00:0e.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)

00:10.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)

00:11.0 Bridge: nVidia Corporation MCP55 Ethernet (rev a2)

00:12.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)

00:13.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)

00:15.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)

00:16.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)

00:17.0 PCI bridge: nVidia Corporation MCP55 PCI Express bridge (rev a2)

00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransportTechnology Configuration

00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

01:00.0 VGA compatible controller: ATI Technologies Inc RV570 [Radeon X1950 Pro]

01:00.1 Display controller: ATI Technologies Inc RV570 [Radeon X1950 Pro] (secondary)

02:09.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev 80)

04:00.0 RAID bus controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)

localhost bobby # cd /etc/init.d/ && ls -la                                            

total 272                                                                              

drwxr-xr-x  2 root root  4096 Apr  4 09:36 .                                           

drwxr-xr-x 65 root root  4096 Apr  7 21:54 ..                                          

-rwxr-xr-x  1 root root   818 Mar 25 19:37 acpid                                       

-rwxr-xr-x  1 root root  6868 Mar 29 08:37 alsasound

-rwxr-xr-x  1 root root   533 Mar 28 06:22 atieventsd

-rwxr-xr-x  1 root root  3577 Mar 24 21:18 bootmisc

-rwxr-xr-x  1 root root  1767 Mar 24 21:18 consolefont

-rwxr-xr-x  1 root root   540 Mar 25 19:56 consolekit

-rwxr-xr-x  1 root root  1729 Mar 24 23:18 crypto-loop

-rwxr-xr-x  1 root root   286 Mar 27 17:53 cupsd

-rwxr-xr-x  1 root root  1152 Mar 25 21:56 dbus

lrwxrwxrwx  1 root root    21 Mar 23 16:42 depscan.sh -> ../../sbin/depscan.sh

-rwxr-xr-x  1 root root   817 Mar 24 21:18 devfs

-rwxr-xr-x  1 root root   628 Mar 25 19:32 device-mapper

-rwxr-xr-x  1 root root   660 Mar 25 19:50 dmcrypt

-rwxr-xr-x  1 root root   320 Mar 24 21:18 dmesg

-rwxr-xr-x  1 root root   547 Mar 25 19:32 dmeventd

-rwxr-xr-x  1 root root   993 Mar 27 17:23 esound

-rwxr-xr-x  1 root root  2168 Mar 24 21:18 fsck

lrwxrwxrwx  1 root root    26 Mar 24 21:18 functions.sh -> //lib64/rc/sh/functions.sh

-rwxr-xr-x  1 root root   951 Mar 24 22:32 gpm

-rwxr-xr-x  1 root root  1111 Mar 27 09:30 hald

-rwxr-xr-x  1 root root   377 Mar 24 21:18 hostname

-rwxr-xr-x  1 root root  2730 Mar 24 21:18 hwclock

-rwxr-xr-x  1 root root  1813 Mar 24 21:18 keymaps

-rwxr-xr-x  1 root root   389 Mar 24 21:18 killprocs

-rwxr-xr-x  1 root root   693 Mar 24 21:18 local

-rwxr-xr-x  1 root root  1951 Mar 24 21:18 localmount

-rwxr-xr-x  1 root root  1536 Mar 24 21:18 modules

-rwxr-xr-x  1 root root  1013 Mar 24 21:18 mount-ro

-rwxr-xr-x  1 root root   739 Mar 24 21:18 mtab

-rwxr-xr-x  1 root root 10661 Mar 27 21:00 mysql

-rwxr-xr-x  1 root root  6632 Mar 27 21:00 mysqlmanager

lrwxrwxrwx  1 root root     6 Mar 23 16:42 net.eth0 -> net.lo

-rwxr-xr-x  1 root root 15179 Mar 24 21:18 net.lo

-rwxr-xr-x  1 root root  2074 Mar 24 21:18 netmount

-rwxr-xr-x  1 root root  1566 Mar 24 22:02 nscd

-rwxr-xr-x  1 root root   723 Mar 24 21:18 numlock

-rwxr-xr-x  1 root root  1871 Mar 25 19:40 pciparm

-rwxr-xr-x  1 root root  1919 Mar 24 21:18 procfs

-rwxr-xr-x  1 root root   538 Mar 27 23:00 pwcheck

-rwxr-xr-x  1 root root   666 Mar 24 23:13 pydoc-2.5

-rwxr-xr-x  1 root root   304 Mar 24 21:16 reboot.sh

-rwxr-xr-x  1 root root   592 Mar 24 21:18 root

-rwxr-xr-x  1 root root   558 Mar 24 22:15 rsyncd

lrwxrwxrwx  1 root root    23 Mar 23 16:42 runscript.sh -> ../../sbin/runscript.sh

-rwxr-xr-x  1 root root   525 Mar 27 23:00 saslauthd

-rwxr-xr-x  1 root root   804 Mar 24 21:18 savecache

-rwxr-xr-x  1 root root   385 Mar 24 21:16 shutdown.sh

-rwxr-xr-x  1 root root  2309 Mar 27 23:54 slpd

-rwxr-xr-x  1 root root  2114 Mar 24 23:24 sshd

-rwxr-xr-x  1 root root   601 Mar 24 21:18 swap

-rwxr-xr-x  1 root root   376 Mar 24 21:18 sysctl

-rwxr-xr-x  1 root root  1301 Mar 24 21:18 sysfs

-rwxr-xr-x  1 root root  1894 Mar 24 15:25 syslog-ng

-rwxr-xr-x  1 root root   765 Mar 24 21:18 termencoding

-rwxr-xr-x  1 root root  5792 Mar 24 21:17 udev

-rwxr-xr-x  1 root root  2585 Mar 24 21:17 udev-dev-tarball

-rwxr-xr-x  1 root root  2686 Mar 24 21:17 udev-mount

-rwxr-xr-x  1 root root   685 Mar 24 21:17 udev-postmount

-rwxr-xr-x  1 root root   947 Mar 24 21:18 urandom

-rwxr-xr-x  1 root root   530 Mar 28 00:09 vixie-cron

-rwxr-xr-x  1 root root  5210 Apr  4 09:36 xdm

```

this is from my previous working kernel, do you need this info when i login with the troublesome kernel? because that might be hard as my ssh is down along with eth0.

i tried starting KDE wheni logged in the troublesome kernel but it gave me a black screen after i saw the login (nice blue droplets \, etc) do i have to re-emerge any drivers if i swap between kernels like this?

----------

## NeddySeagoon

h2sammo,

Try doing 

```
modprobe forcedeth
```

as thats the module you need for your two Ethernet cards.

As you say, its under 10/100 Ethernet in the kernel.

Check your kernel configuration to be sure Forecdeth is set to either <M> or <*>

You must emerge any third party kernel modules, like ati-drivers against the new kernel.

To do that, change the /usr/src/linux symlink to point to you new kernel and run emerge ati-drivers.

It will follow the symlink to find the kernel to build against

----------

## h2sammo

thank you.

i also found: http://www.gentoo.org/doc/en/kernel-upgrade.xml (if anyone else will look for answers in my thread).  A wealth of kernel change/update info in there. 

i will give it a whirl tonight and let you know how that went.

----------

## h2sammo

do you reccommend following this procedure?  or should i go through the pain of identifing externel modules and re-emergin one by one?

 *Quote:*   

> 6.  Reinstalling external modules
> 
> If you use any kernel modules that are not included in the kernel source tree but are provided elsewhere in Portage (e.g. ALSA drivers and NVIDIA or ATI graphics drivers), then you must reinstall these after upgrading the kernel. This is as simple as re-merging the packages involved. For more information, refer to the chapter on Configuring the Kernel in the Gentoo Handbook. 
> 
> We provide you with an easy tool (sys-kernel/module-rebuild)  which rebuilds all the kernel modules you have installed using separate ebuilds for the kernel at /usr/src/linux. Its use is straightforward. After emerging it, simply run module-rebuild populate  to populate the database with a list of packages that will need to be rebuilt after upgrading the kernel. Once you have finished upgrading or recompiling your kernel, run module-rebuild rebuild  to rebuild the drivers for your new kernel. 
> ...

 

----------

## h2sammo

success.

i am logged into the new kernel.  all is good for now, thank you for the pointers and patient explanations.

----------

