Вы здесь

Несколько модулей[Решено]

Здравствуй Gentoo-сообщество! Когда я собираю новые ядра то для них приходится пересобирать модули nvidia и virtualbox'овские. Когда возвращаюсь к прежнему ядру, то данные модули не работают ввиду того, что сконфигурированы под ядра по-новее. Вопрос: как можно иметь несколько копий модулей под разные ядра?

Вообще-то модули при пересборке не удаляются, это можно проверить исследованием содержимого каталогов /lib/modules/.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

хммм... тогда почему при выборе прежнего ядра он жалуется, что не может запустить gdm из-за отсутствия модуля nvidia?

По-моему, там модуль иксов завязывается на конкретную версию ядра или что-то в этом духе.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

да, верно. Качает бинарник и конфигурирует по ядру, находящемуся по ссылке /usr/src/linux.

кроме того это не только с nvidia, но и с virtualbox'овскими модулями.

А вы когда прежнее ядро грузите eselect перед этим делаете? По моему это должно решить проблему.

а можно по-подробнее?

Ну после обновления вы как честный гражданин должны делать eselect kernel list и видеть нечто такое:

Available kernel symlink targets:
  [1]   linux-3.0.6-gentoo
  [2]   linux-3.1.0-gentoo-r1 *

После чего сделать eselect kernel set <номер нужного ядра>
Ну и там дальше настройка сборка и т.п.

Из известных эффектов этого действа это смена симлинка /usr/src/linux на актуальное ядро. Возможно нужный модуль таки лежит в /lib/modules/<версия ядра>/... но ядро не может его подцепить в связи с тем что дергает по версии взятой из eselect. А может я не прав ) это лишь догадка)
Но если предположить что я прав, то eselect нужного ядра перед перезагрузкой даст нам положительный результат ) В общем от вас только попробовать и сказать о результате)
ЗЫ начните с простого find /lib/modules/ -name 'имя нужного модуля' если нужные модули лежат в двойном экземпляре то может я и прав)

Скорее всего ты прав полностью) я благодаря командам ниже убедился что для каждой версии ядра есть свои модули nvidia. Так что видимо eselect надо делать :)

P.S. Сейчас проведу эксперимент: перезагружусь на ядро постарее без eselect; вернусь на текущее; сделаю eselect; перезагружусь снова на ядро постарее. Скорее всего в первом случае не взлетит графа, во втором должна.

Однако не сработало О_о. На ядре постарее модуль взлетел сам. Раньше такого не было. Приходилось каждый раз переконфигурировать модуль.

Таки мне кажется вы путаете с новым ядром. Я потому что не припомню подобных хлопот со старыми ядрами если честно )

Чтож, все мы учимся на своих ошибках :).

Ядра разных версий автоматически имеют по одной копии модулей:

$ cd /lib/modules/
$ find -name 'coretemp.ko' | sort
./2.6.31-gentoo-r10/kernel/drivers/hwmon/coretemp.ko
./2.6.32-gentoo-r7/kernel/drivers/hwmon/coretemp.ko
./2.6.33-gentoo-r2/kernel/drivers/hwmon/coretemp.ko
./2.6.34-gentoo-r12/kernel/drivers/hwmon/coretemp.ko
./2.6.34-gentoo-r1/kernel/drivers/hwmon/coretemp.ko
./2.6.36-gentoo-r5/kernel/drivers/hwmon/coretemp.ko
./2.6.36-gentoo-r8/kernel/drivers/hwmon/coretemp.ko
./2.6.37-gentoo-r4/kernel/drivers/hwmon/coretemp.ko
./2.6.38-gentoo-r6/kernel/drivers/hwmon/coretemp.ko
./2.6.39-gentoo-r3/kernel/drivers/hwmon/coretemp.ko
./3.0.6-gentoo/kernel/drivers/hwmon/coretemp.ko 

Проблемы начинаются, когда одно и то же ядро, например, 3.0.6, хочется иметь в двух(трёх) конфигурациях.
Вероятно, вам поможет CONFIG_LOCALVERSION="" - вдруг он добавит строку и в /lib/modules/версия...
(в каждой из двух(трёх) конфигурации CONFIG_LOCALVERSION должен различаться)

нет, версии ядер разные, но спасибо за эту идею.

Кстати, благодаря этому скрипту убедился, что под каждое ядро есть свои копии модуля nvidia. :)