Обновление мира + ядро 2.6.39.4 + nvidia = epic fail

Вчера обновил мир, прилетело новое ядро 2.6.39.4. Пересобрал ядро, пересобрал модули, пытаюсь загрузиться - чёрный экран.

Выдержки из логов:

kdm.log

FATAL: Error inserting nvidia (/lib/modules/2.6.39.4-calculate/video/nvidia.ko): No such device
(EE) NVIDIA: Failed to load the NVIDIA kernel module. Please check your
(EE) NVIDIA:     system's kernel log for additional error messages.
(EE) Failed to load module "nvidia" (module-specific error, 0)
(EE) No drivers available.

Fatal server error:
no screens found

messages

Aug 25 21:19:13 calculate kernel: nvidia: module license 'NVIDIA' taints kernel.
Aug 25 21:19:13 calculate kernel: Disabling lock debugging due to kernel taint
Aug 25 21:19:13 calculate kernel: NVRM: The NVIDIA probe routine was not called for 1 device(s).
Aug 25 21:19:13 calculate kernel: NVRM: This can occur when a driver such as nouveau, rivafb,
Aug 25 21:19:13 calculate kernel: NVRM: nvidiafb, or rivatv was loaded and obtained ownership of
Aug 25 21:19:13 calculate kernel: NVRM: the NVIDIA device(s).
Aug 25 21:19:13 calculate kernel: NVRM: Try unloading the conflicting kernel module (and/or
Aug 25 21:19:13 calculate kernel: NVRM: reconfigure your kernel without the conflicting
Aug 25 21:19:13 calculate kernel: NVRM: driver(s)), then try loading the NVIDIA kernel module
Aug 25 21:19:13 calculate kernel: NVRM: again.
Aug 25 21:19:13 calculate kernel: NVRM: No NVIDIA graphics adapter probed!
Aug 25 21:19:13 calculate kdm[3232]: X server died during startup
Aug 25 21:19:13 calculate kdm[3232]: X server for display :0 cannot be started, session disabled

Лог Xorg с ошибкой не сохранился, но там ничего интересного не было. Только сообщение о том, что nvidia не может загрузиться.

Пришлось откатиться на 2.6.38.8.

Куда копать?

P.S. После обновления на корневом разделе совсем не осталось места (0 байт). Может с этим как-то связано?

P.P.S. Вспомнил, что при обновлении была какая-то питоновская ошибка при вытягивании исходников ядра. Двум ядрам, видимо, тесно стало, у меня раздел забит. Может, чего-нибудь недоразвернулось? Но мне как-то боязно старое ядро совсем сносить - вдруг это не поможет?

Если кончилось место, emerge конечно может затупить и выдать ошибку. См. FAQ “Как удалить старые ядра” http://www.calculate-linux.ru/main/ru/faq

Освободил 2Гб места, пересобрал ядро и модули - результат тот же - чёрный экран. Глядя на вышеприведённые логи, думается, что проблема в конфликте с какими-то свободными драйверами.
Взываю о помощи вторично.

И ещё один момент, после emerge -ac исходники старого ядра уменьшились в размере с 1 до 0,5Гб. Это удалились откомпилированные модули какие-то? Я к тому, что смогу ли я откатиться на старое ядро в случае чего? Сейчас я на старом сижу (2.6.38.8).

Денис Телюх wrote:

Освободил 2Гб места, пересобрал ядро и модули - результат тот же - чёрный экран…

модули пересобирали?
после обновления ядра советую сделать вот что:

module-rebuild -X rebuild
emerge -avt1 xorg-{server,drivers} @x11-module-rebuild

Если ядро компилировали вручную(не бинарное), то и модули ядра должны быть скомпилированы вручную. Если у вас профиль бинарный, то самый простой вариант перевести систему на НЕбинарный профиль, выполнить module-rebuild -X rebuild и перевести обратно.

И ещё один момент, после emerge -ac исходники старого ядра уменьшились в размере с 1 до 0,5Гб. Это удалились откомпилированные модули какие-то?

Это удалилось все то, что не изменялось в пакете, т.е. сорцы. Осталось все что изменялось (или изменялась дата их изменения). По большей части это временные файлы.

Я к тому, что смогу ли я откатиться на старое ядро в случае чего?

На сколько я понимаю, удаление через emerge пакета ядра не затрагивает само ядро в /boot и модули для этого ядра в /lib/modules.

PS

Пересобрал ядро, пересобрал модули

Собственно, а зачем было пересобрано ядро? Если ядро ставится бинарное, либо если с ключем vmlinuz, то пакет уже содержит вполне себе работоспособное ядро, годное для большинства задач.

Какой командой собирали ядро?

Не подключены модули ядра -“FATAL: Error inserting nvidia (/lib/modules/2.6.39.4-calculate/video/nvidia.ko): No such device”. Скорее всего подцепились к предыдущей версии ядра, либо новое название ядра отличается от системного.

Можно попробовать использовать следующую команду для сборки:

cl-kernel -o -m && module-rebuild -X rebuild.

Можно также указать опцию --no-clean (см. cl-kernel --help), чтобы не пересобирать уже готовые модули.

P.S.
для подключения nvidia вначале попробуйте *modprobe r nvidia && modprobe nvidia && eselect opengl set nvidia* возможно поможет.

Действительно - ядро устанавливается сразу в бинарном виде. Правда, проблему решил виндузятным способом - переустановил систему. Но драйвера теперь nouveau, а не nvidia. Зачем они?

Проприетарные драйвера можно запустить только если при загрузке grub поднимет uvesafb. Поэтому изменить настройки xorg.conf недостаточно. Для смены настроек можно воспользоваться шаблонами утилит Calculate.

Выполните:

emerge nvidia-drivers
cl-install --startup --set os_install_x11_video_drv=nvidia

После этого перезагрузите компьютер.

Система установится с nvidia только в случае, если Вы при загрузке диска выберете проприетарный видеодрайвер, нажав клавишу F2 в isolinux меню. Либо укажете видеодрайвер во время установки изменив значение переменной.

P.S. Если опция “–startup” недоступна, обновите утилиты, либо используйте опцию “–live”.

Александр, сделал по вашему указанию - итог плачевный, всё тот же чёрный экран. Не хочет нВидиа дружить с нуво :(. Вернулся на нуво. По крайней мере с ним всё работает.

А какая у Вас видеокарта? Может Вам нужен не последний Nvidia драйвер.

Видеокарта 9500 GT, но эти же драйвера работали на ядре 38.8. Подозреваю, что решение в том, чтобы пересобрать ядро, предварительно вычистив из настроек нуво.

Проверьте что у Вас также:

 # grep nouveau /etc/modprobe.d/blacklist.conf
blacklist nouveau

 # grep uvesafb /boot/grub/grub.cfg
        linux   /boot/vmlinuz-2.6.39.4-x86_64-CLD root=UUID=987e4383-67c9-4ca1-8be5-8840480b480d ro video=uvesafb:ywrap,1600x1200-32,mtrr:3,splash=silent,theme:tty1 real_resume=UUID=542e4175-8c54-4251-b40f-c5ba46ea93ea elevator=cfq doscsi calculate=video:radeon console=tty1 udev quiet

 # grep -r radeon /etc/X11/xorg.conf
  Driver "nvidia"

в /etc/modprobe.d/blacklist.conf ещё и

blacklist nvidia
blacklist uvesafb

После установки драйвера нвидиа нужно было выполнять module-rebuild -X rebuild ?

Подтверждаю ту же проблему с черным экраном на карточке от Nvidia GT600.
Для себя списал сие на некомпетентность свою, и откатился на старую версию ядра.

GT9600

Денис Телюх wrote:

в /etc/modprobe.d/blacklist.conf ещё и
[…]

После установки драйвера нвидиа нужно было выполнять module-rebuild -X rebuild ?

После пересборки ядра или установки нового драйвера module-rebuild -X rebuild нужно обязательно выполнить.

С ядром 3.0.4 нВидиа заработала :slight_smile:

Бага-то была та же. От ядра не зависела. Udev поднимал оба модуля отсюда и конфликт.

Нет, не та же. На 39-м ядре я сидел с нуво, а драйвера нвидиа не работали. Вероятно, что-то в конфигурации было зарыто.