Modprobe загружает драйвер nvidia, но xorg.conf имеет ошибки

1

Я недавно обновился до 12.10. В процессе, мой ноутбук, который представляет собой W520 в док-станции, подключен к 2 внешним мониторам (такие же мониторы .. Dell U2400). Наконец-то я получил драйвер nvidia-экспериментальный-310, работающий с обоими мониторами. Все было великолепно в течение нескольких недель, а затем все решили обновить ядро, и я не понял, что это произошло, когда я попросил его выполнить обновление apt-get.

Осознав свою ошибку, я вернулся и попытался переустановить драйвер nvidia, так как полагал, что его нужно снова собрать под текущее ядро. Я не мог заставить работать драйверы nvidia-current или nvidia-экспериментальный-310 (они загружались в черный экран с мигающим курсором, или, в случае драйвера 310, не позволили бы мне включить мой второй экран) ,

Хотя я смог заставить работать драйвер nvidia-экспериментальный-304. Итак, после некоторых проб и ошибок я обновил свой файл xorg.conf и перезагрузился. Однако теперь я получаю следующую ошибку в моем файле Xorg.0.log:

[    16.023] (EE) Failed to load module "nvidia-experimental-304" (module does not exist, 0)

Но, когда я иду в виртуальный терминал, и запускаю следующее:

# modprobe nvidia-experimental-304
# /etc/init.d/lightdm restart

Теперь все работает, как и ожидалось, за исключением того, что в моем файле Xorg.0.log по-прежнему отображается следующее, даже когда X запускается так, как я ожидал:

[    16.023] (EE) Failed to load module "nvidia-experimental-304" (module does not exist, 0)

Может кто-нибудь сказать мне, что я делаю неправильно? Я хотел бы, чтобы модуль автоматически загружался при запуске, чтобы я мог загружаться в X напрямую, без необходимости вручную проверять модуль.

Мой файл xorg.conf следует.

редактировать

Если я заменил драйвер «nvidia-экспериментальный-304» на «nvidia» в моем файле xorg.conf, то при перезагрузке система будет работать в режиме низкой графики со следующими ошибками в файле xorg.conf:

[    17.147] (**) NVIDIA(0): Enabling 2D acceleration
[    17.163] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[    17.163] (EE) NVIDIA(0):     system's kernel log for additional error messages and
[    17.163] (EE) NVIDIA(0):     consult the NVIDIA README for details.
[    17.163] (EE) NVIDIA(0):  *** Aborting ***
[    17.163] (EE) NVIDIA(0): Failing initialization of X screen 0

Системный журнал теперь показывает:

Dec  3 12:55:03 corellia kernel: [   33.405620] e1000e 0000:00:19.0: irq 50 for MSI/MSI-X
Dec  3 12:55:03 corellia kernel: [   33.431116] nvidia: module license 'NVIDIA' taints kernel.
Dec  3 12:55:03 corellia kernel: [   33.431118] Disabling lock debugging due to kernel taint

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 304.64  (buildd@papaya)  Fri Nov  9 10:49:08 UTC 2012

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DELL U2410"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia-experimental-304"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 1000M"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-5"
    Option         "metamodes" "DFP-5: nvidia-auto-select +1920+0, DFP-6: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
jwir3
источник

Ответы:

2

Ваш драйвер должен быть просто nvidia.

Водитель "nvidia"

X не загружает модули ядра. Он загружает X модулей, которые вызывают устройство. Когда этого устройства нет, ядро ​​загружает модуль. Ссылка здесь , берегите глаза.

Таким образом, установив Driver "nvidia-экспериментальный-304", вы загружаете X-модуль, который не существует, и он не может сказать, какое устройство ядра он должен загрузить, и тогда ядро ​​не имеет представления, какой модуль загрузить. Причина, по которой это работает, если вы сначала используете modprobe, заключается в том, что модуль загружен. Я подозреваю, что "некоторые" вещи nvidia не будут работать таким образом. (т.е. модуль загружен, а драйвер x - нет)

Вот правильный раздел устройства, прошу прощения за форматирование.

Раздел «Устройство»
Идентификатор »Device1«
Драйвер »nvidia«
VendorName »Корпорация NVIDIA«
BoardName »GeForce GT 330M«
BusID »PCI: 1: 0: 0»
Экран 1
EndSection

coteyr
источник
При загрузке модуля «nvidia» выдается то же сообщение об ошибке с «nvidia» вместо «nvidia-экспериментальный-304». Ранее, когда я пытался загрузить драйвер nvidia-экспериментальный-310, мне действительно нужно было вставить «nvidia-экспериментальный-310» в строке драйверов, так как он никогда не мог найти драйвер «nvidia».
jwir3
из какого источника вы устанавливаете?
coteyr
Моя ошибка, сказанное выше не совсем верно. Если я ставлю «NVIDIA» на линии водителя, то он работает в условиях низкой графическом режиме, и дает мне следующее сообщение об ошибке (см редактирования, выше)
jwir3
На самом деле, я не уверен, как проверить и посмотреть, какой источник я использую. Я думаю, что я использую основной пакет Ubuntu, но это может быть PPA. В какой-то момент я помню, как пробовал пакет nvidia из PPA, но я почти уверен, что сейчас использую каноническое репо для этого пакета.
jwir3
Хорошо, теперь X загружает модуль nvidia X, но модуль ядра не загружается автоматически. Какие ошибки в системном журнале?
coteyr
2

Оказывается, что после всей реконфигурации на самом деле требовалась переустановка lightdm. Следующие команды сделали свое дело (примечание: у меня были исходный код и заголовочные файлы linux, но для ясности я добавляю шаги здесь на тот случай, если у кого-то еще возникнет такая же проблема, и они могут быть не установлены):

sudo apt-get remove --purge nvidia-experimental-304 nvidia-settings-experimental-304
sudo apt-get install linux-source linux-headers-($uname -r)
sudo apt-get install nvidia-experimental-304 nvidia-settings-experimental-304
sudo apt-get install --reinstall lightdm

Когда я загрузился, это работало нормально для меня.

jwir3
источник
Небольшое примечание: я все еще собираюсь дать ответ coteyr, так как он помог мне отладить несколько других проблемных вопросов. Более того, мне не очень нравится отдавать себе должное за то, что было вуду и случайным. :)
jwir3