.. and that problem is, in short, that the rebuild unmerges the previous
version, in the currently-running (or previous) kernel modules folder,
breaking the previous kernel.
And my question is, how to get it to stop doing that. If Portage has a
FEATURES setting that prevents the previous version being unmerged this
way, I don't know what it is.
Example:
I'm currently using 2.6.13-gentoo-r4, and am compiling 2.6.14-gentoo.
/usr/src/linux points to 2.6.14-gentoo.
module-rebuild rebuild
** Preparing to merge modules:
** Packages which I will emerge are:
=sys-fs/submount-0.9-r2
=media-libs/svgalib-1.9.23
=media-video/ati-drivers-8.18.8-r1
Now, taking the most important of these modules, let's look at what
happens with ati-drivers (it's most important because X is set to
use it, and naturally X won't start if the driver is not found).
| emerge (3 of 3) media-video/ati-drivers-8.18.8-r1 to /
snip
* Determining the location of the kernel source code
* Found kernel source directory:
* /usr/src/linux
* Found sources for kernel version:
* 2.6.14-gentoo
* Checking for MTRR support enabled ...
[ ok ]
* Checking for AGP support enabled ...
[ ok ]
* Checking for DRM support disabled ...
[ ok ]
* X11 implementation is xorg-x11.
So, the drivers are going to compile against 2.6.14, which is what I
want, and correct. So far so good.
| Unpacking source...
* Unpacking Ati drivers ... [ ok ]
* Applying fglrx-2.6.14-access_ok.patch ... [ ok ]
| Source unpacked.
* Building the DRM module...
make: Entering directory `/usr/src/linux-2.6.14-gentoo'
snip
make: Leaving directory `/usr/src/linux-2.6.14-gentoo'
| Test phase [not enabled]: media-video/ati-drivers-8.18.8-r1
| Install ati-drivers-8.18.8-r1 into
/var/tmp/portage/ati-drivers-8.18.8-r1/image/ category media-video
* Installing fglrx module
snip
--- /lib/modules/
--- /lib/modules/2.6.14-gentoo/
--- /lib/modules/2.6.14-gentoo/video/
| /lib/modules/2.6.14-gentoo/video/fglrx.ko
snip
| /usr/lib/opengl/ati/lib/libGL.so.1 - libGL.so.1.2
And the drivers build and install fine... then this:
| Safely unmerging already-installed instance...
snip
==--- cfgpro obj /lib/modules/2.6.13-gentoo-r4/video/fglrx.ko
==--- cfgpro dir /lib/modules/2.6.13-gentoo-r4/video
==--- cfgpro dir /lib/modules/2.6.13-gentoo-r4
snip
Switching to ati OpenGL interface... done
| original instance of package unmerged safely.
Switching to ati OpenGL interface... done
So the rebuild process has *removed* the kernel modules for what will be
the previous kernel when I reboot--- and if my new kernel doesn't boot,
well neither will my previous one, depending on how critical the modules
are (in this case, I just won't have X, but depending on one's setup,
one might have lost something really necessary).
In any case this is really not correct behaviour (I want both the
currently-running kernel module and the future-kernel module to be
installed).
The only way I can see to avoid this is to step through the emerges with
the 'ebuild' command, stopping after 'install', and not performing
'postinst' or 'unmerge' (whichever one is performed at the end to remove
the previously-existing package).
I don't see SLOTs as being precisely appropriate, but I don't see what
other method *might* resolve this, since the previously-installed
package is in this case (in most cases?) *not* the same as the
re-emerged package, because they are compiled against different kernels.
Is there a way to SLOT external kernel modules against the kernel
version it's being compiled against?
This seems to definitely be a bug, but I have not the first clue how to
submit it, nor what against
help, help, help and hope 2.6.14 works, because if it doesn't,
I've got no modules for my previous kernel
Holly
--
gentoo-user@gentoo.org mailing list