# Multiple kernels alongside problems

## TobiWan

Hello everybody,

I seem to have a problem with compiling different kernels from different sources and run them alongside.

I have read the FAQ entry for this topic, but frankly I think that just mentioning how to edit the grub boot menu is not enough to explain the full procedure which starts already at compiling the kernel.

I did the following.

I emerged:

```

emerge -v gentoo-sources vanilla-sources

```

Then I did this:

```

cd /usr/src

rm linux

ln -s /usr/src/linux-2.4.22-gentoo-r4 /usr/src/linux

cd /usr/src/linux

make menuconfig

```

I followed the installation manual and created a working configuration which I then compiled:

```

make dep && make clean bzImage modules modules_install

mount /boot

cp /usr/src/linux/arch/i386/boot/bzImage /boot

env ALSA_CARDS="emu10k1" emerge alsadriver

emerge nvidia-kernel

```

This kernel perfectly works out for me. No problems so far. I can boot this kernel with the following entry in /boot/grub/grub.conf:

```

title=Gentoo Linux 1.4, Kernel 2.4.22 (gentoo-sources)

root (hd0,0)

kernel (hd0,0)/boot/bzImage root=/dev/hda3 hdc=ide-scsi hdd=ide-scsi

```

So far so good.

Now I wanted to have a similar kernel made from the vanilla-sources (2.4.24) with the same .config.

I added another entry in /boot/grub/grub.conf:

```

....

title=Gentoo Linux 1.4, Kernel 2.4.24 (vanilla-sources)

root (hd0,0)

kernel (hd0,0)/boot/bzImage-vanilla root=/dev/hda3 hdc=ide-scsi hdd=ide-scsi

```

and followed the FAQ manual on how to reuse a .config:

```

cp /usr/src/linux/.config /usr/src/linux-2.4.22/.config

rm /usr/src/linux

ln -s /usr/src/linux-2.4.24 /usr/src/linux

cd /usr/src/linux

make menuconfig

```

I used the "load configuration" option and checked whether this was exactly the same configuration and saved it when I quit the menu.

Then I continued:

```

make dep && make clean bzImage-vanilla modules modules_install

```

This fails after a short time with this:

```

make: *** Keine Regel, um »bzImage-vanilla« zu erstellen.  Schluss.

```

This translates into english like this: no rule to create bzImage-vanilla. End.

OK, I thought. Create the usual bzImage and rename it when you copy it into /boot. I did this, using:

```

make dep && make clean bzImage modules modules_install

mount /boot

cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-vanilla

env ALSA_CARDS="emu10k1" emerge alsadriver

emerge nvidia-kernel

```

Fine, I thought. Now let's reboot and try this.

I rebooted using the vanilla sources but loading any of the modules noted in /etc/autoload.d/kernel-2.4 failed with the exception of alsa and nvidia. XFree started fine.

I then rebooted with the gentoo sources and this was worse. It accepted the modules from /etc/autoload.d/kernel-2.4 with the exception of nvidia and alsa didn't start up either.

I know I haven't understood a very basic thing here but I fail to find it in the forums. So please don't point me to the FAQ topic on this. It only tells how to edit /boot/grub/grub.conf. I need a little background information on how different kernels from the 2.4 series handle modules. Do they share one set of modules? How do I compile a kernel when I want it to be named bzImage-vanilla?

I hope I have given you all the information you need. Maybe you can explain to me in simple language what I did wrong/forget here.

thanks in advance,

Tobias

----------

## Helena

Ok good that you provided a complete description, it speeds up matters a lot. First a tip to make things a little easier to read. Start all work after

```
cd /usr/src
```

which makes your commands shorter.

I first noted an initial error (it may be a typo) *TobiWan wrote:*   

> 
> 
> Then I did this:
> 
> ```
> ...

 "use" should have been "usr" here. If you followed my advice then you can simply write

```
ln -s linux-2.4.22-gentoo-r4 linux

cd linux
```

here instead. *TobiWan wrote:*   

> Fine, I thought. Now let's reboot and try this.
> 
> I rebooted using the vanilla sources but loading any of the modules noted in /etc/autoload.d/kernel-2.4 failed with the exception of alsa and nvidia. XFree started fine.
> 
> I then rebooted with the gentoo sources and this was worse. It accepted the modules from /etc/autoload.d/kernel-2.4 with the exception of nvidia and alsa didn't start up either.
> ...

 Next thing is, you have to recompile both nvidia-kernel and alsa-driver for each different kernel. So the switch back to gentoo sources indeed should fail. I wonder why the vanilla thing failed though. Third, I haven't completely checked grub.conf but it looks OK to me. Fourth, I use a different procedure for copying the kernel config; I use "Save config" from "make menuconfig" instead of a shell copy command. Judging from your commands that shouldn't be the problem, but you may as well give it a try. Please let me know if this is helpful and coninue asking!

----------

## TobiWan

The "errors" in the code parts are indeed typos and I noted the /usr/src/foo in the long version to stress where exactly stuff went.

 *Helena wrote:*   

> 
> 
> Next thing is, you have to recompile both nvidia-kernel and alsa-driver for each different kernel.
> 
> 

 

Isn't that what I did after compiling each kernel? The point is that the name of the kernel image seems to define where moduls go and who can use moduls. I compiled the gentoo sources into "bzImage" and emerged alsa-driver and nvidia-kernel. That's perfectly OK.

Now when I want a different name for the image this fails because of a missing make rule (see above). So I thought I could compile the vanilla sources into "bzImage" too and rename it later. This is where there's something wrong. When I rename "bzImage" into "bzImage-vanilla" it still tries to load the gentoo modules (for the bzImage) and of course this fails. Only the modules I compiled after compiling the vanilla sources work. A "modprobe -ls" renders only those alsa and nvidia modules visible although I compiled it with installing modules (see code fragment above: make dep && make clean bzImage modules modules_install). This is the clue I think but I need someone to explain me how to compile two different sets of modules along with different kernels. That darn "multiple kernel FAQ" is missing everything that's relevant. It's totally useless.

Why can't I compile a kernel by giving a different name than bzImage? Is the name of the image defining where the modules go? This would explain the behavior of the compiled images not finding modules.

 *Quote:*   

> 
> 
> So the switch back to gentoo sources indeed should fail. I wonder why the vanilla thing failed though.
> 
> 

 

I guess this is because I compiled the vanilla image with the same image name that the gentoo sources has and I renamed it afterwards.

See, when I do

```

make dep && make clean bzImage modules modules_install

```

Then this does the modules and installs them. But how should "make" know that this bzImage is a different one than the other?

I don't know any better how to express this thought, sorry.   :Embarassed: 

 *Quote:*   

> 
> 
> Third, I haven't completely checked grub.conf but it looks OK to me.
> 
> 

 

It is perfectly OK. Basically I just copied a working configuration entry and copied it.

 *Quote:*   

> 
> 
> Fourth, I use a different procedure for copying the kernel config; I use "Save config" from "make menuconfig" instead of a shell copy command. Judging from your commands that shouldn't be the problem, but you may as well give it a try. Please let me know if this is helpful and coninue asking!

 

It is exactly the same. I copy it manually and open it using "make menuconfig" and I browsed through the options and they are the same.

The question is: is it OK to compile all modules and the kernel with a specific image name and then rename the image when another one by the old name (bzImage) exists? I need to know how different 2.4 kernels keep their modules. Is it one set of modules for each series? Or does every compiled 2.4 kernel have its own set of modules? It must be tha latter, because otherwise I can't have different kernel configurations, can I?

So in short, this is what the vanilla sources have after booting them:

only nvidia and the alsa modules

The gentoo sources have:

everything apart the alsa and nvidia modules.

The only logical thing to conclude is that both images, the vanilla image and the gentoo image are looking for the modules inside a different location. The gentoo image can find its modules because I didn't rename the image after compiling it and installing the modules in the proces while the vanilla image is looking for its modules at the wrong place because I renamed the image.

The gentoo image can't load the nvidia module because I emerged it for the vanilla sources afterwards thus at a later time. Same goes for the alsa stuff.

In curious need of help,

Tobias

----------

## Wedge_

 *TobiWan wrote:*   

> Then this does the modules and installs them. But how should "make" know that this bzImage is a different one than the other? 

 

When you do "make .... bzImage modules modules_install", the location the modules are installed is determined by the Makefile in the kernel source directory (ie /usr/src/linux-x.y.z/Makefile). Open it in an editor, and look at the first few lines. On the kernel I'm using just now, it looks like this: 

```
VERSION = 2

PATCHLEVEL = 6

SUBLEVEL = 1

EXTRAVERSION = -love2
```

which translates to the name "linux-2.6.1-love2". The modules for this kernel are then installed in the directory "/lib/modules/2.6.1-love2". It doesn't matter if you have other kernels installed, this should always put the modules in the correct directory for the kernel you are building. 

You can't do "make bzImage-vanilla" etc because there is no target in the Makefile called "bzImage-vanilla", but this doesn't matter. As you discovered, it's perfectly alright to generate the bzImage normally then rename it when you copy it over to /boot. 

Your description of the behaviour of the ALSA/nvidia modules seems to be normal, as they need emerged again after every kernel change. 

What the problem seems to be is that you're missing the other modules for the vanilla kernel, correct? That seems a bit strange since as far as I can see, you're compiling everything correctly. Check that you didn't use "make ... modules modules install". It's a very easy typo to make, and the result is that the modules are built but not placed in the /lib/modules/<kernel version> directory.

----------

## TobiWan

 *Wedge_ wrote:*   

> When you do "make .... bzImage modules modules_install", the location the modules are installed is determined by the Makefile in the kernel source directory (ie /usr/src/linux-x.y.z/Makefile). Open it in an editor, and look at the first few lines. On the kernel I'm using just now, it looks like this: 
> 
> ```
> VERSION = 2
> 
> ...

 

Thanks. This is exactly the explanation and simple language I was hoping for.  :Smile: 

 *Quote:*   

> 
> 
> You can't do "make bzImage-vanilla" etc because there is no target in the Makefile called "bzImage-vanilla", but this doesn't matter. As you discovered, it's perfectly alright to generate the bzImage normally then rename it when you copy it over to /boot.
> 
> 

 

OK, then I can exclude my theory  :Wink: 

 *Quote:*   

> 
> 
> Your description of the behaviour of the ALSA/nvidia modules seems to be normal, as they need emerged again after every kernel change. 
> 
> 

 

This is done after I boot with the kernel I want nvidia-kernel and alsa-driver for, right? I can't emerge nvidia-kernel and alsa-driver for the vanilla image when I am using a gentoo image session, can I?

 *Quote:*   

> 
> 
> What the problem seems to be is that you're missing the other modules for the vanilla kernel, correct?
> 
> 

 

Correct. Glad someone is able to understand my noob explanation  :Wink: 

 *Quote:*   

> 
> 
> That seems a bit strange since as far as I can see, you're compiling everything correctly. Check that you didn't use "make ... modules modules install". It's a very easy typo to make, and the result is that the modules are built but not placed in the /lib/modules/<kernel version> directory.

 

I'll recompile and double-check on typos and report back here, sir!  :Wink: 

thanks,

Tobias

----------

## Wedge_

 *TobiWan wrote:*   

> This is done after I boot with the kernel I want nvidia-kernel and alsa-driver for, right? I can't emerge nvidia-kernel and alsa-driver for the vanilla image when I am using a gentoo image session, can I? 

 

I think it may depend on how the ebuild is written. I generally boot the new kernel first, then emerge anything that needs recompiled for it.

----------

## TobiWan

Hi Wedge_

I used the same .config that did fine with the linux-2.4.22-gentoo-r4 sources to compile those 2.4.24 sources like this:

```

make dep && make clean bzImage modules modules_install

```

Note the modules_install  :Wink: 

and it end like this:

```

...

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tda7432.o

depmod:         i2c_probe_R4e2acbec

depmod:         i2c_add_driver_Racf22304

depmod:         i2c_attach_client_Ra861362d

depmod:         i2c_master_send_Rb692cb0e

depmod:         i2c_detach_client_R0cfb40b4

depmod:         i2c_del_driver_R57837012

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tda9875.o

depmod:         i2c_probe_R4e2acbec

depmod:         i2c_add_driver_Racf22304

depmod:         i2c_transfer_R1dea91d1

depmod:         i2c_attach_client_Ra861362d

depmod:         i2c_master_send_Rb692cb0e

depmod:         i2c_detach_client_R0cfb40b4

depmod:         i2c_del_driver_R57837012

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tda9887.o

depmod:         i2c_probe_R4e2acbec

depmod:         i2c_add_driver_Racf22304

depmod:         i2c_attach_client_Ra861362d

depmod:         i2c_master_send_Rb692cb0e

depmod:         i2c_detach_client_R0cfb40b4

depmod:         i2c_del_driver_R57837012

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tuner.o

depmod:         i2c_probe_R4e2acbec

depmod:         i2c_add_driver_Racf22304

depmod:         i2c_attach_client_Ra861362d

depmod:         i2c_master_recv_R67b29cc4

depmod:         i2c_master_send_Rb692cb0e

depmod:         i2c_detach_client_R0cfb40b4

depmod:         i2c_del_driver_R57837012

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tvaudio.o

depmod:         i2c_probe_R4e2acbec

depmod:         i2c_add_driver_Racf22304

depmod:         i2c_transfer_R1dea91d1

depmod:         i2c_attach_client_Ra861362d

depmod:         i2c_master_recv_R67b29cc4

depmod:         i2c_master_send_Rb692cb0e

depmod:         i2c_detach_client_R0cfb40b4

depmod:         i2c_del_driver_R57837012

```

I can't remember the gentoo sources end like this. Could it be that the vanilla sources don't like my .config? It's totally identical with the gentoo one.

How do I proceed now?

[whining]And I just wanted to try out those vanilla sources...[/whining]  :Wink: 

cheers,

Tobias

----------

## Wedge_

The thing is that gentoo-sources will have options that aren't in vanilla-sources, which might be causing problems. What I would suggest doing is :

```
cp /usr/src/linux-2.4.24/.config ~/config-2.4.24

cd /usr/src/linux-2.4.24

make mrproper

cp ~/config-2.4.24 .config

make oldconfig

make dep && make clean bzImage modules modules_install
```

What "make mrproper" does is do a more thorough cleanup of the source tree than "make clean" does, including deleting your .config file (which is why you should copy it elsewhere first  :Smile: ). "make oldconfig" generates a new config for the current kernel based on a previous config, and I think it should remove any options that were added by gentoo-sources. After that just compile as normal and see what happens. At least it looks like it's putting the modules in the correct directory now.

----------

## TobiWan

 *Wedge_ wrote:*   

> The thing is that gentoo-sources will have options that aren't in vanilla-sources, which might be causing problems. What I would suggest doing is:
> 
> ...
> 
> 

 

I did exactly as you told me and I still get this:

```

Idepmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/bttv.o

depmod:         i2c_master_send

depmod:         i2c_bit_del_bus

depmod:         i2c_bit_add_bus

depmod:         i2c_master_recv

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/msp3400.o

depmod:         i2c_master_send

depmod:         i2c_transfer

depmod:         i2c_probe

depmod:         i2c_detach_client

depmod:         i2c_del_driver

depmod:         i2c_attach_client

depmod:         i2c_add_driver

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tda7432.o

depmod:         i2c_master_send

depmod:         i2c_probe

depmod:         i2c_detach_client

depmod:         i2c_del_driver

depmod:         i2c_attach_client

depmod:         i2c_add_driver

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tda9875.o

depmod:         i2c_master_send

depmod:         i2c_transfer

depmod:         i2c_probe

depmod:         i2c_detach_client

depmod:         i2c_del_driver

depmod:         i2c_attach_client

depmod:         i2c_add_driver

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tda9887.o

depmod:         i2c_master_send

depmod:         i2c_probe

depmod:         i2c_detach_client

depmod:         i2c_del_driver

depmod:         i2c_attach_client

depmod:         i2c_add_driver

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tuner.o

depmod:         i2c_master_send

depmod:         i2c_probe

depmod:         i2c_detach_client

depmod:         i2c_del_driver

depmod:         i2c_master_recv

depmod:         i2c_attach_client

depmod:         i2c_add_driver

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/media/video/tvaudio.o

depmod:         i2c_master_send

depmod:         i2c_transfer

depmod:         i2c_probe

depmod:         i2c_detach_client

depmod:         i2c_del_driver

depmod:         i2c_master_recv

depmod:         i2c_attach_client

depmod:         i2c_add_driver

```

I have decided to scrap the config of the video4linux parts and see if the vanilla sources compile without it.

Until then with regards and many thanks,

Tobias

----------

## Wedge_

Have you got i2c support in your config?

----------

## TobiWan

 *Wedge_ wrote:*   

> Have you got i2c support in your config?

 

Where do I find that?

When I disable the video4linux stuff compiling stops here:

```

find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia

if [ -r System.map ]; then /sbin/depmod -ae -F System.map  2.4.24; fi

```

without any further error message. With video4linux, this would have been followed by those messages above.

I'll look for this i2c support now,

EDIT: I found it and compiled most of it as modules. The compiling is running...

Tobias

----------

## Wedge_

 *TobiWan wrote:*   

> When I disable the video4linux stuff compiling stops here: ...

 

That's how the compilation should normally end.

The reason I asked about i2c was because those depmod errors seemed to be about missing i2c support.

----------

## TobiWan

 *Wedge_ wrote:*   

>  *TobiWan wrote:*   When I disable the video4linux stuff compiling stops here: ... 
> 
> That's how the compilation should normally end.
> 
> The reason I asked about i2c was because those depmod errors seemed to be about missing i2c support.

 

Ah, ok.

Well with that i2c thing enabled and almost every option beneath it enabled as a module and video4linux I now get this:

```

depmod: *** Unresolved symbols in /lib/modules/2.4.24/kernel/drivers/i2c/scx200_i2c.o

depmod:         scx200_gpio_configure

depmod:         scx200_gpio_base

depmod:         scx200_gpio_shadow

```

I guess, I have to disable the stuff I don't need and then this will go away too.

But I'll try again without video4linux and boot what's left after compiling  :Wink: 

Tobias

----------

## TobiWan

Accidently I clicked "new topic" instead of "reply"   :Embarassed:   :Embarassed:   :Embarassed: 

Well, thank the maker I can delete the other thing and copy and paste it here:

Wedge_, you've been a really great help!  :Smile:  Thanks.

This is how far I am now:

The vanilla sources compiled and I can boot using them or the gentoo image.

I booted the vanilla image with the /usr/src/linux still pointing to /usr/src/linux-2.4.24.

I did this:

```

env ALSA_CARDS="emu10k1" emerge alsa-driver && emerge nvidia-kernel

```

and rebooted the vanilla image. Great! It works. Now back to the gentoo image:

I rebooted and chose the gentoo image and everything started fine except the nvidia module.

I got curious. I did this and note that /usr/src/linux is still pointing to the vanilla sources:

```

emerge nvidia-kernel

```

and I noted that the ebuild is installing the nvidia module using the /usr/src/linux link blindly. There is more! Not only does it rely on the /usr/src/linux link it also safely unmerges any other nvidia module from other kernels. Now this is great.  :Evil or Very Mad: 

So I can only have one nvidia-kernel instance at a time. How am I supposed to have more than one kernel to boot from then?

Is there a way to get around this? Any portage option to pass along emerge that tells the nvidia-kernel ebuild to leave the other module right where it is?

thanks for your help, when all this works I'm going to right a small howto for dummies out of this  :Wink: 

Tobias

----------

## IWBCMAN

I seem to remember seeing somewhere that you can stop emerge from unmerging certain files by changing their time stamp. If you have ever done an emerge of a program and then modified one of its files (ie. a config file) you will notice that upon re-emerging or update the program that those files which you modified are not removed. This is due to the fact that emerge will only remove those files which have the exact same time stamp as the time of the initial install. 

```

find /lib/modules/your-kernel-modules/ -name '*.o' -exec touch {} \;

```

should do the trick...modules for the 2.4 kernel end in ".o" and ".ko" for the 2.6 kernel...

If you do this you should probably do a:

```

make mkproper 

```

in your kernel source directory if you should choose to re-compile the kernel-which of course means you will have to re-emerge the kernel modules(nvidia/alsa, etc). You really shouldn't have stale modules in your /usr/lib/ directory and /boot/System.map should reflect the current modules and current kernel you are running....

But beware- if you do a make mrproper be absolutely sure that you have copied your /usr/src/linux/.config to a safe place prior to executing this command-this command wipes everything under /lib/modules/your-kernel-modules and all files not included in the initial install of the kernel source-which means it will also wipe your kernel config...

Simply copy it to another directory before issuing the command and re-copy the file back into /usr/src/linux.  IF  you do use a .config file from another kernel install (ie. 2.4.20 for 2.4.22) be sure and run 

```

make oldconfig 

```

prior to compiling the kernel. 

Within the same kernel family (ie.2.4 *or* 2.6) make oldconfig will usually work fine-but it is not safe to take your 2.4 .config file and compile 2.6- if you do so and then compile and reboot you will be lucky if the machine boots at all, and if it does, you won't have any virtual terminals. If you choose to try out 2.6 remember to heed the warnings which emerge puts on the screen at the end of the ebuild:

 *Quote:*   

> "Please note that ptyfs support has been removed from devfs in the later 2.5.x kernels, and you have to compile it in now, or else you will get errors when trying to open a pty. The option is File systems->Pseudo filesystems->/dev/pts "filesystem." 
> 
> Also, note that you must compile in support for "input devices (Input device support->Input devices), the virtual terminal (Character Devices->Virtual terminal),vga_console (Graphics Support->Console...->VGA text console)
> 
> and the vt_console (Character Devices->Support for console...). Otherwise, you will get the dreaded "Uncompressing the Kernel" "error."
> ...

 

Also if you choose to use 2.6 don't forget to create a /sys dir (ie. mkdir /sys) and add a line for it to your /etc/fstab:

```
none                   /sys            sysfs                   defaults       0 0
```

And you may also need to enable 

file systems-->partition types-->Advance partition selection-->PC BIOS (MSDOS partition tables) support (NEW)

In order to get GRUB to boot your new 2.6 kernel......

Unfortunately I have not yet found a way to dynamically choose the /boot/System.map file and /etc/modules.d/kernel-2.x file according to the kernel I am actually booting. /ect/modules.d/kernel-2.x is a relatively new addition to portage and does help when running both 2.4 and 2.6 kernels but doesn't help if you are running multiple different kernels of the same family. I have resorted to creating multiple seperate files under /etc/modules.d/ and symlinking(ln -sf existing-file symlink-name) them when switching kernels-ie.:

```

kernel-2.4-2.4.20-gentoo-r8

kernel-2.4-2.4.20-gentoo-r7

kernel-2.4 -> kernel-2.4-2.4.20-gentoo-r8

```

Lastly changes are scheduled for portage to enable it to NOT unmerge extra kernel modules when emerging extra modules for other kernels. But I don't know when this will be implemented-so in the mean time give my little trick a try.......

----------

## TobiWan

That's a lot of information you gave me. Thank you very much.

So, to summarize the essentials:

If I "touch" for example

```

/lib/modules/2.4.22-gentoo-r4/video/nvidia.o

```

then

```

rm /usr/src/linux

ln -s /usr/src/linux-2.4.22 /usr/src/linux

emerge nvidia-kernel

```

won't unmerge the linux-2.4.22-gentoo-r4 nvidia module?

Would copying the module to another directory before emerging and then copying it back do the trick too? Or in other words, does the nvidia-kernel ebuild do anything else apart from placing the nvidia.o file into the right directory?

Regarding your 2.6 hints: really interesting. I have to admit that I still have too much of a great respect concerning replacement of my 2.4 series kernel with a 2.6 version. One thing that is going to be difficult when running a 2.4 next to a 2.6 is ALSA. Since ALSA makes use of a /etc/init.s script for the 2.4 kernel and the 2.6 has everything compiled into the kernel those two won't cope because the /etc/init.d script doesn't make a difference whether a 2.4 kernel or a 2.6 kernel is booting, right? Also, I am using the SCSI emulation for CD drives which I need for burning. SCSI emulation doesn't exist anymore in 2.6 so I don't trust any promise that burning will work with 2.6 as usual.

I guess, I'm going to wait a little bit longer until the mainstream distributors like SuSE switch to 2.6, then there's enough additional knowledge and experience available when it comes to tricky, maybe hardware related questions with 2.6.

I'll try that touch trick this week when I have a little bit time and report back here if it worked.

thanks a lot,

Tobias

----------

## Helena

 *IWBCMAN wrote:*   

> Also if you choose to use 2.6 don't forget to create a /sys dir (ie. mkdir /sys) and add a line for it to your /etc/fstab:
> 
> ```
> none                   /sys            sysfs                   defaults       0 0
> ```
> ...

 Funny, I already had /sys mounted without adding it to fstab. Is this maybe because I selected I2C support in the kernel?

And second, I didn't know about the Advanced partition option, I always skip that part of the kernel config. I have no trouble booting my 2.6 kernel from GRUB however...

----------

## IWBCMAN

TobiWan,

I do not believe that simply copying your nvidia driver out of /lib/modules/your-kernel-modules will work. "touch" simply changes the timestamp of the file in question thereby altering portages' emerge operation-ie. it only deletes things which have the same time-stamp recorded in the initial install.

 *Quote:*   

> 
> 
> If I "touch" for example
> 
> Code:
> ...

 

yup, that is what I am saying. AFAIK, unless the portage routines have changed very recently, this should work fine.

Note, I am not trying to talk you into the transition to kernel 2.6. I have my reasons for liking 2.6 more than 2.4, yet I still have a gentoo install with 2.4 (ie. totally seperate installs), due to the fact that 2.4 still supports some kernel modules which are not yet supported under 2.6(ie. I have not yet gotten capi for my isdn card working under 2.6- I have a rather complex software setp which enables my isdn card to do Caller ID, and this infor is then pumped into a mysql database which is coupled with a php web addressbook interface, in addition to the answering machine and fax services which are also running on....)

As regards ALSA and 2.6-it is not true that everything must be compiled into the kernel- you may do so if you choose but you may also  leave most of it setup as modules. On the install from which I am now typing this message I have both 2.4 and 2.6 kernels. I started out with 2.4 and setup my ALSA config for my emu10k1(SBlive!) card. I later switched to 2.6(2 days later) and I had to change almost *nothing* for sound to work- my kernel sound config is modularized, ie. consists of modules to be loaded. I only changed /etc/modules.autoload.d/kernel-2.6 to NOT include the named modules to be loaded, which I did include in the /etc/modules.autoload.d/kernel-2.4 file.

IF you need certain kernel modules which are only available for 2.4, then by all means don't change to 2.6. However if you are not using such arcane kernel modules, and particularly propietary closed-source modules, I see no real reason to not take advantage of the significant boost in speed and stability which 2.6 offers. 

And ide-scsi emulation works fine in 2.6, although I far prefer using the very latest cdrdao(~x86) with ide-atap burning. Much more stable, much less hassle, much easier to setup(no more problems enabling dma for my cd burner-which is not easy with ide-scsi emulation)

Oh and the reason I have multiple installs of gentoo on the same machine is that I have one install form me personally, which I use to experiment with the latest and greatest and another install which is a carbon copy of the LTSP server which I administer at the University of Freiburg for their Sociology department which hosts 30 ancient pc's as LTSP clients-this is so that I can test any software out locally prior to changing the live system-ie. a way of covering my ass.

----------

## IWBCMAN

Helena,

I believe that the newest baselayout package now includes the /sys entry in /etc/fstab by default. AFAIK.

And regarding the :

ile systems-->partition types-->Advance partition selection-->PC BIOS (MSDOS partition tables) support (NEW) 

On my Dell Dimension 8100 machine I never needed this, yet I pulled my hair out trying to get kernel 2.6 setup on a tyan dual-mp board(Athlon-mp x 2 x 2.4Ghz/1 GB RAM/2 x 80 GB w/8MB cache). I had to manually type in the boot parameters into GRUB each time I booted until I discovered this option in the kernel. Funnily enough the line I typed in from the GRUB boot prompt was *identical* to what was in /boot/grub/menu.lst file. This baffled me completely and I rought with it over and over again. Then I tried out this kernel setting and voila! my GRUB boot now came up with the boot menu and it has worked fine since then.....

----------

## Wedge_

 *TobiWan wrote:*   

>  and I noted that the ebuild is installing the nvidia module using the /usr/src/linux link blindly. There is more! Not only does it rely on the /usr/src/linux link it also safely unmerges any other nvidia module from other kernels. Now this is great

 

I think I remember reading that the next major upgrade to portage will fix this problem, which would be nice since it's a PITA at the moment  :Smile: 

----------

## Helena

 *IWBCMAN wrote:*   

> Helena,
> 
> I believe that the newest baselayout package now includes the /sys entry in /etc/fstab by default. AFAIK.
> 
> And regarding the :
> ...

 Ok I understand. Thanks for the tip, anyway!

----------

