Драйверы NVIDIA не работают после обновления. Почему я могу видеть только терминал?

34

Сегодня вечером я обновился до 11.04. Проблемы. Когда я закончил обновление, я перезагрузил компьютер, как он мне и сказал. Когда я прошел Ubuntu 11.04 (фиолетовые точки оранжевого цвета), он просто подошел к терминалу и попросил меня войти в систему. Я попытался перезапустить X-сервер с помощью «sudo service gdm restart», но дисплей не появился. В моем файле загрузок также оказалось несколько драйверов NVIDIA, поэтому я попробовал, но «скрипт установки» не удался.

После всего этого я загрузил Ubuntu в графическом отказоустойчивом режиме. Затем я решил посмотреть, что произойдет, если я удалил проприетарный драйвер. После этого и перезагрузки моя Ubuntu загрузилась в графическом режиме «yay!». Таким образом, без драйверов Nvidia я, наконец, вижу что-то другое, кроме терминала, но мне нужны эти драйверы NVIDIA для моей работы. Так что я могу сделать? Я попытался установить новые драйверы NVIDIA linux с веб-сайта NVIDIA и попытался установить рекомендуемый драйвер через «дополнительные драйверы», но оба привели к тому, что я застрял в терминале.

Если вы можете помочь или дать мне несколько советов, пожалуйста, сделайте! Я действительно в очень плохой ситуации ...

Sixthlaw
источник
2
Вы сначала удалили файл /etc/X11/xorg.conf, затем перезагрузили компьютер, а затем попытались активировать версию драйверов NVIDIA для дополнительных драйверов?
fossfreedom
1
Я испытываю ту же проблему. Я активирую драйвер, выхожу из системы и вижу «Устройства не найдены» в X log. Если я удаляю xorg.conf, X запускается без поддержки GLX. Modprobe говорит, что nvidiaдрайвер загружен.
Vissi
Нет, я не удалил файл Xorg.conf. У меня та самая проблема, с которой ты говоришь. Это ужасно.
Sixthlaw
Рекомендуем прочитать это руководство: askubuntu.com/questions/61396/…
Луис Альварадо,

Ответы:

30

Вам нужно будет загрузиться в режиме восстановления, затем выполнить apt-get remove --purge nvidia-currentкоманду на корневом терминале, а затем apt-get install nvidia-current-, чтобы пересобрать драйвер nvidia для нового ядра. У меня тоже была эта проблема, когда я обновился.

Пожалуйста, не устанавливайте драйверы с сайта nVidia, кстати! Вы можете столкнуться с серьезными проблемами, если затем попытаетесь установить рекомендуемый драйвер, не удаляя предыдущий.

Изменить: вам нужно будет запустить эти команды из терминала. Я не могу гарантировать идеальный результат, так как я собираюсь основываться на том, что я нашел через Интернет и по памяти.

Проблема, которую вы получаете, вызвана наличием различных компонентов пользовательского режима и модулей ядра. Чтобы это исправить, модуль ядра nvidia должен быть перестроен. Это должно произойти при перезагрузке, но часто это не так.

Сначала вам нужно установить заголовки ядра Linux:

  • sudo apt-get install linux-headers-generic

Затем вам нужно будет запустить dkms, чтобы удалить старый модуль ядра nvidia:

  • sudo dkms remove nvidia

Затем запустите:

  • sudo apt-get install nvidia-current
  • это должно сделать его правильно установленным, поэтому все, что вам нужно сделать, это запустить sudo nvidia-xconfig and reboot.
  • Если вы все еще получаете ошибку о версии модуля, запустите: sudo dkms build nvidia

Это должно решить проблему.

Извините, если что-то немного сбивает с толку, я попытался собрать воедино процесс, который мне пришлось использовать в меру моей памяти :)! Если у вас возникнут проблемы, не стесняйтесь, дайте мне знать (и если кто-нибудь обнаружит какие-либо проблемы с инструкциями, пожалуйста, дайте мне знать как можно скорее) !!!!


Обновить:

Я нашел другую возможную причину. Nouveau, возможно, не занесен в черный список, а nvidia-current может не помещаться в файл .conf, который используется для выбора драйвера дисплея. Вот как это исправить:

NB:

Прежде чем продолжить, убедитесь, что у вас есть драйвер nvidia-current из репозиториев. Загрузка драйвера с веб-сайта nvidia может вызвать проблемы позже, поскольку он не использует формат пакета debian и оставляет вещи, которые могут конфликтовать с более поздними установками. Поэтому сначала убедитесь, что вы удалили его следы, а затем установите стандартный драйвер из репозитория Ubuntu. Если вы этого не сделаете, вы получите несоответствие драйверов, и это исправление будет бессмысленным.

  • Если вы застряли на консоли, войдите в систему и установите драйвер nouveau X.org: sudo apt-get install xserver-xorg-video-nouveau
  • Перезагрузите компьютер (у вас будет рабочая графика, да! Но это временно).
  • Откройте gedit от имени пользователя root gksu gedit.
  • Из Гедит открыты /etc/modprobe.d/blacklist.conf.
  • Добавьте эту строку в нижней части : blacklist nouveau.
  • Сохраните файл и откройте /etc/modprobe.d/nvidia-graphics-drivers.conf.
    • Добавьте эти строки:

      черный список nouveau
      черный список lbm-nouveau
      черный список nvidia-173
      черный список nvidia-96
      псевдоним nvidia nvidia-current

  • Теперь сохраните этот файл и закройте gedit.
  • Бег:
    • sudo nvidia-xconfig,
    • а потом:
    • sudo apt-get remove xserver-xorg-video-nouveau,
    • с последующим:
    • sudo shutdown -r now,
  • Когда ваша система перезапустится, у вас должны быть работающие драйверы nvidia.
Кстати, эта проблема не внесения в черный список nouveau, похоже, существует в более новых драйверах (nvidia-current), поэтому я бы предложил после исправления проблемы дождаться обновления этой ошибки (я скоро сообщу об ошибке) ).

Альтернативное решение: если вы установили драйверы NVIDIA с их веб-сайта, то вы должны загрузиться в текстовый терминал (удерживайте при загрузке, чтобы увидеть меню grub и выберите режим восстановления версии ядра, которая в последний раз работала с драйверами NVIDIA, и выберите командную строку в качестве корневого параметра)

Затем запустите оригинальный скрипт установки оболочки NVIDIA, который вы запустили, чтобы установить драйверы NVIDIA с их сайта. например sudo ./NVIDIA-Linux-x86-290.10.run --uninstall. (Ваша версия может отличаться.)

Вам не нужно будет запускать команду «sudo dkms remove nvidia», так как это не относится к вашему случаю.

RolandiXor
источник
Я попробовал это, но когда я перезапустил, снова это только показало терминал. Я попробовал sudo startx в терминале и получил следующие сообщения: ОШИБКА: несоответствие API: модуль ядра NVIDIA имеет версию 260.19.36, компонент драйвера NVIDIA имеет версию 270.41.06. Пожалуйста, убедитесь, что модуль ядра и все компоненты драйвера nvidia имеют одинаковую версию.
Sixthlaw
Я также получил это: Фатальная ошибка сервера не найден экран.
Sixthlaw
1
@Sixthlaw: аааа - держись, это проблема с dkms, и это та же проблема, что и у меня. Вам нужно будет выполнить сборку dkms из командной строки (я забыл команду, так что подождите, пока я ее получу, и я обновлю свой ответ).
RolandiXor
1
sudo apt-get install nvidia current->sudo apt-get install nvidia-current
IanVaughan
1
Обратите внимание, что данный вызов dkmsподдерживается только в 11.10 или новее. На 11.04 или старше вам также нужно указать версию модуля и ядра ( man dkms).
Кинан
12

Вот почему я всегда рекомендую устанавливать Ubuntu как чистую установку вместо обновления. Это только мое мнение, но у меня всегда были какие-то проблемы при обновлении. Нет проблем при выполнении чистой установки.

Для того, что я прочитал поверх других ответов, вы установили драйвер Nvidia с сайта Nvidia. Даже если это работает хорошо и т. Д. НЕ ДЕЛАЙТЕ ЭТОГО! Тот, что входит в репозитории Ubuntu, был протестирован и рекомендован.

В вашем случае вам нужно будет сделать несколько вещей.

Шаг 1 - Удалите установленный драйвер nvidia и никогда не устанавливайте его снова. Это избавит вас от этой конкретной проблемы, что ... э-э-э ... у кого-то тоже было это (Me;)), вам также нужно удалить модули из нее и все файлы конфигурации, которые она оставляет. Если не ошибаюсь, то у драйверов nvidia с сайта Nvidia есть бинарный файл для удаления. Запустите его и убедитесь, что другие файлы nvidia не работают.

ОБНОВЛЕНО - Чтобы удалить драйвер Nvidia, установленный с сайта Nvidia, у вас может быть один из нескольких вариантов:

  • Некоторые предлагают удалить с помощью того же установщика.
    Пример: NVIDIA-Linux-x86-1.0-8178.run --uninstall
  • Другие предлагают использовать установщик Nvidia.
    Пример: nvidia-installer --uninstall

СОВЕТ. Попробуйте ввести --help в конце двоичного исполняемого файла Nvidia, чтобы увидеть, не показывает ли он какую-то помощь. Такие страницы, как https://help.ubuntu.com/community/NvidiaManual и http://www.nvnews.net/vbulletin/showthread.php?t=83678, дают представление о том, как удалить драйвер Nvidia с сайта Nvidia.

Шаг 2 - перезагрузите компьютер и убедитесь, что вы НИЧЕГО не оставили от nvidia. Удалите файл xorg.conf, так как вы скоро создадите новый. Перезагружать.

Шаг 3 - Установите рекомендуемые драйверы Nvidia. sudo apt-get install nvidia-currentили sudo apt-get reinstall nvidia-current(если он уже установлен. Я бы порекомендовал unistall, а затем установить его снова.)

Шаг 4 - СОЗДАЙТЕ файл xorg.conf для рекомендуемого драйвера Nvidia. nvidia-xconfig, Это создаст файл xorg.con с параметрами, необходимыми для вашей видеокарты nvidia. Перезагрузите снова.

До этого шага мне понадобилась бы обратная связь, если у вас возникли проблемы. Для более общего решения, пожалуйста, не стесняйтесь читать это руководство: Как мне установить драйверы Nvidia?

Луис Альварадо
источник
1
Мои извинения Но я точно не знаю, как выполнить шаг 1. Кажется, я не могу найти скрипт удаления, о котором вы говорите.
Sixthlaw
1
Нет проблем, Шестой Закон. Позволь мне найти это. Дай мне пару минут
Луис Альварадо,
1
Обновлено, чтобы включить небольшую справку о том, как его удалить. Пожалуйста, дайте мне знать, если это помогает и какая помощь сделала свое дело.
Луис Альварадо
1
Это не решение, если я хочу установить определенный драйвер, тогда не нужно устанавливать что-то еще. Это все равно что решить проблему с Java, сказав: не используйте Java, используйте Python. У меня такая же проблема (несоответствие версий модуля ядра), но мне определенно нужен этот девайдер NVIDIA CUDA.
скрат
1
Я не говорю, чтобы установить что-то еще. Я говорю, что наиболее совместимым в этом случае является тот, который поставляется с Ubuntu. Это было доказано снова и снова, что оно создает меньше проблем, более удобно при обновлении / обновлении, и у вас есть больше документации и отзывов сообщества. Если бы я говорил о java, я бы рекомендовал openjdk по многим причинам, для python та, которая приходит по умолчанию, потому что она уже была протестирована, и так далее, и так далее. Вы поняли мою точку зрения, наверное.
Луис Альварадо
7

У меня также была проблема с драйверами nvidia, и я сделал все, что смог найти (также в других ответах):

  • удалите ранее установленные драйверы и установите снова
  • загрузка failsafeXи активация драйвера
  • используя предыдущий драйвер ( 173)
  • я добавил UNITY_FORCE_START=1к /etc/environmentупомянутому здесь (поскольку GeForce 7300/7400 занесены в черный список, но у меня есть GeForce Go 7100)

Но все продолжало терпеть неудачу. Итак, в крайнем случае (я должен был подумать об этом раньше), я исследовал X-log-файлы. Внутри моего /var/log/Xorg.0.logя обнаружил, что у nvidia были проблемы с выделением памяти:

[    14.055] (EE) NVIDIA(0): Failed to allocate primary buffer: out of memory.
[    14.055] (EE) NVIDIA(0):  *** Aborting ***

Видимо, это известная ошибка, и мне пришлось сделать следующее, чтобы это исправить:

  • редактировать /etc/default/grub
  • найти вариант GRUB_CMDLINE_LINUXи добавить nopat, так что для меня это выглядело как

    GRUB_CMDLINE_LINUX="nopat"

  • бег sudo update-grub

И вот, наконец, у меня все заработало :) Надеюсь, это поможет.

nathanvda
источник
Это отлично сработало, спасибо большое! (Nvidia GeForce 9400 на Natty 64 бит работает под управлением «текущих» драйверов)
dandelionmood
2

Обратите внимание, что ядро ​​ниже указывает на предыдущий выпуск Ubuntu. Новое ядро ​​с Ubuntu 11.10: 3.0.0.12. У меня была та же проблема с тем, что меня перевели в командный режим, и Xserver не удался, хотя я не смог найти драйвер nvidia_173. Затем я понял, что обновление не обновило мою MBR до версии 3.0.0.12. Я использовал EasyBCD для обновления файла, перезагрузился, и все было хорошо. Конечно, такие сбои драйверов могут происходить, когда они находятся на смешанных уровнях. Мой совет, после обновления убедитесь, что вы запускаете новое ядро, initrd, vmlinuz, ... что у вас есть.

DKMS make.log for nvidia-current-270.41.06 for kernel 2.6.38-8-generic (x86_64)
Sat May 14 20:48:39 EDT 2011

The C compiler 'cc' does not appear to be able to
create executables.  Please make sure you have 
your Linux distribution's gcc and libc development
packages installed.

*** Failed CC sanity check. Bailing out! ***

make: *** [select_makefile] Error 1

Я выяснил, что cc (псевдоним для gcc), используемый в моем / usr / bin, не был той же версией, что и gcc, найденный в этом же каталоге, независимо от всех пакетов dev, которые уже были установлены на моем компьютере. Мне пришлось сделать символическую ссылку, чтобы указать на файл gcc.

sudo mv /usr/bin/cc /usr/bin/cc.old
sudo ln -s /usr/bin/gcc /usr/bin/cc

После этого переустановка пакета nvidia-current пошла мне на пользу.

С уважением

Стивен Розато
источник
2

Мое обновление 11.04 также загружалось только в окно терминала. Тогда я нашел этот сайт. Я начал делать то, что рекомендовал Роланд Тейлор, сначала я сделал

sudo apt-get install linux-headers-generic

Тогда я попытался сделать:

sudo dkms remove nvidia 

Но это не удалось жаловаться, что команда была не завершена, что мне нужно, -mи -vи версия

Я собирался повторить попытку, но заметил, что на экране была информация журнала из первой команды, отметив, что он установил его, nvidia-currentкогда я установил заголовки, поэтому я подумал: интересно, что он будет делать, если я перезагружусь сейчас? Так я и сделал, и рабочий стол X подошел нормально. Так что только одна команда исправила мою проблему с установкой.

Johngee
источник
0

Это сработало для меня.

1) Перейдите к Терминалу F1, нажав Ctrl + Alt + F1.

2) Запустите следующие команды.

sudo /etc/gdm stop
sudo apt-get install linux-headers-$(uname -r) linux-image-$(uname -r)
wget -O /tmp/nvidia.run http://us.download.nvidia.com/XFree86/Linux-x86/280.13/NVIDIA-Linux-x86-280.13.run
# Make sure to allow the script to uninstall all existing drivers.
sudo sh /tmp/nvidia.run
sudo /etc/gdm start
Руна Каагард
источник
0

Для тех, у кого также есть эта проблема, убедитесь, что Optimus (технология переключения видеокарт Nvidia) отключен в BIOS.

Сэм Йоутси
источник