dimanche 16 août 2009

emerge x11-drivers/nvidia-drivers compilation failed Could not find a usable .config

Problème :
Lors de la mise à jour où l'installation du package x11-drivers/nvidia-drivers, la compilation échoue.
Exemple :
* Could not find a usable .config in the kernel source directory.
* Please ensure that /usr/src/linux points to a configured set of Linux sources.
* If you are using KBUILD_OUTPUT, please set the environment var so that
* it points to the necessary object directory so that it might find .config.
*
* ERROR: x11-drivers/nvidia-drivers-185.18.31 failed.

Solution :

Vous ne pointez pas sur le bon noyau.Cela se produit lors de la mise à jour des sources du noyau.En effet, le lien symbolique /usr/src/linux est mise à jour lors d'un update.
Si vous faites:
ls -al /usr/src/
lrwxrwxrwx 1 root root 22 Aug 16 16:30 linux -> linux-2.6.30-gentoo-r1
drwxr-xr-x 22 root root 4096 Nov 29 2008 linux-2.6.26-gentoo-r3
drwxr-xr-x 23 root root 4096 Dec 6 2008 linux-2.6.27-gentoo-r4
drwxr-xr-x 23 root root 4096 Aug 9 13:36 linux-2.6.30-gentoo-r1

Vous constatez que le lien symbolique pointe vers les dernières sources mise à jour.
Hors, vous n'avez surement pas recompiler les sources de ce noyau et donc le répertoire de ce noyau ne contient pas de .config.
Donc il y a 2 solutions :
- Recompilez les dernières sources du noyau.
- Pointez sur votre noyau.

Pour sélectionner votre noyau :
# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.26-gentoo-r3
[2] linux-2.6.27-gentoo-r4
[3] linux-2.6.27-gentoo-r5
[4] linux-2.6.27-gentoo-r7
[5] linux-2.6.28-gentoo
[6] linux-2.6.28-gentoo-r1
[7] linux-2.6.29-gentoo-r2
[8] linux-2.6.29-gentoo-r4
[9] linux-2.6.30-gentoo-r1 *
[10] linux-2.6.30-gentoo-r2

Ensuite, vous pouvez sélectionner le noyau qui contient le .config.
# eselect kernel set 9

Si vous ré-executez la commande eselect kernel list, il mettra une étoile
à coté du noyau sélectionné.
Ensuite, vous pouvez faire l'update du package :
#emerge -u x11-drivers/nvidia-drivers

PoweredByGento