uscr 07.11.2010 01:46
How-to`s — Устанавливаем проприетарные драйвера для старой видеокарты nvidia.
Зачем была написана эта статья?Это просто развёрнутое решение вопроса, который возник у меня и был решён с помощью этого ресурса (welinux.ru).
Для кого эта статья?
Эта статья для новичка, который очень хочет включить эффекты рабочего стола на не слишком современной видеокарте.
Ну и некий отказ от гарантий:
я описываю в этой статье то, как я завёл у себя 3D ускорение на древней, как мир не самой новой видеокарте. Вам мои советы вполне могут не помочь или даже навредить.
Техническое задание
Не сильный по нынешним меркам компьютер:
RAM: 512 Mb
CPU: 3.0 GHz
Video GeForce4 Ti 4200 AGP 8x
Fedora 13 Gnome
Нужно установить проприетарный драйвер для видео и активировать эффекты рабочего стола.
Поехали!
Для начала нужно узнать модель вашей видеокарты. Для этого в консоли пишем команду
1 |
|
в выводе получаем модель нашей видеокарты.
В моём случае вывод этой команды выглядел так:
01:00.0 VGA compatible controller: nVidia Corporation NV28 (rev a1)
Теперь нужно идти на сайт компании nvidia и идти в меню "Драйверы" -> "Бета и архивные драйверы". Тут нужно указать серию видеокарты, операционную систему, язык (установщик для линукса всё равно будет на английском). Попадаем на страницу с ссылками, скачиваем скрипт - установщик. Теперь нужно покинуть милый графический интерфейс и перейти в аскетичную консоль. Для этого не слезая с дивана прямо из текущего сеанса одновременно зажимаем клавиши Ctrl+Alt+F2. Мы в консоли. Теперь нужно погасить X-server. Самый простой (и правильный?) способ - перейти на третий уровень выполнения. Если вы не знаете, кто такой уровень выполнения, то читайте википедию. Итак. Для перехода на третий уровень получайте права суперпользователя:
1 |
|
и, собственно:
1 |
|
Теперь x-server должен быть мертв. Но на всякий случай давайте проткнём мёртвое тело пикой:
1 |
|
Предполагаю, что вы, сами того не зная, используете свободный nvidia драйвер nouveau. Он будет нам мешать. Нужно запретить его загрузку. Для этого:
1 |
|
тут к описанию ядра, с которым вы будете грузиться (последнее в списке?) нужно добавить rdblacklist=nouveau. Так выглядит мой /boot/grum/menu.lst:
#boot=/dev/sda
default=0
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.34.7-61.fc13.i686)
root (hd0,0)
kernel /vmlinuz-2.6.34.7-61.fc13.i686 ro root=/dev/mapper/vg_king-lv_root rd_LVM_LV=vg_king/lv_root rd_LVM_LV=vg_king/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYTABLE=ru rhgb quiet nouveau.modeset=0 rdblacklist=nouveau
initrd /initramfs-2.6.34.7-61.fc13.i686.img
title Fedora (2.6.34.7-61.fc13.i686.PAE)
root (hd0,0)
kernel /vmlinuz-2.6.34.7-61.fc13.i686.PAE ro root=/dev/mapper/vg_king-lv_root rd_LVM_LV=vg_king/lv_root rd_LVM_LV=vg_king/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYTABLE=ru rhgb quiet nouveau.modeset=0 rdblacklist=nouveau
initrd /initramfs-2.6.34.7-61.fc13.i686.PAE.img
default=0
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.34.7-61.fc13.i686)
root (hd0,0)
kernel /vmlinuz-2.6.34.7-61.fc13.i686 ro root=/dev/mapper/vg_king-lv_root rd_LVM_LV=vg_king/lv_root rd_LVM_LV=vg_king/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYTABLE=ru rhgb quiet nouveau.modeset=0 rdblacklist=nouveau
initrd /initramfs-2.6.34.7-61.fc13.i686.img
title Fedora (2.6.34.7-61.fc13.i686.PAE)
root (hd0,0)
kernel /vmlinuz-2.6.34.7-61.fc13.i686.PAE ro root=/dev/mapper/vg_king-lv_root rd_LVM_LV=vg_king/lv_root rd_LVM_LV=vg_king/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=ru_RU.UTF-8 KEYTABLE=ru rhgb quiet nouveau.modeset=0 rdblacklist=nouveau
initrd /initramfs-2.6.34.7-61.fc13.i686.PAE.img
Теперь:
1 |
|
В самый конец файла добавляем строку - blacklist nouveau.
Подготовка завершена. Теперь ставим драйвер.
Установка драйвера
Для успешной установки вам понадобится пакет kernel-headers. Для его установки отдайте команду yum -y install kernel-headers. В других дистрибутивах может понадобиться пакет kernel-source.
Теперь всё готово к установке. Переходим в каталог, в котором у нас лежит скрипт-установщик скачанный с сайта и отдаём команду sh <цифры-буквы>.run
Установщик порадует вас симпатичным консольным интерфейсом и диалогами в духе "Да, Нет, Не знаю". В итоге вы получите сообщение об успешной установке и предложение запустить nvidia-xsettings. Нужно соглашаться (фактически - у вас нет выбора, если не хотите руками писать xorg.conf). На этом всё. Теперь можно перезагружаться и радоваться. Если у вас не получилось - читайте раздел для начинающих магов:
МАГИЯ
Осторожно, магия!
Раздел вместо troubleshooting'а.
Установщик ругается на некий kernel-interface и не хочет работать.
По совету f_evgeny помогает сборка ядра. Причём собранное ядро даже не нужно устанавивать. Достаточно просто его собрать и установщик найдёт всё сам.
P.S. В моём случае при таких симтомах помогло только скачивание адекватного (не 6 летней давности) установщика.
Всё установилось, но при перезагрузке вижу чёрный экран.
Борьба с этой напастью мне понравилась больше всего. Общий совет - играйте с /etc/X11/xorg.conf.
Но мне это ни черта не помогло. А помогло...ни за что не угадаете! Итак:
Идём на rpmsearch (Только для rpm based дистрибов. Где берут пакеты остальные - я не знаю.)
Выбираем Search -> Advansed search и ищем пакет xorg-x11-drv-nvidia-96xx для вашего дистрибутива (отмечаем галочкой). Найденный пакет устанавливаем, снова устанавливаем драйвер как описано выше. На этот раз установщик ругнётся на присутствие левого драйвера и попросит разрешения его удалить - разрешите. После перезагрузки иксы должны запуститься.
Комментарий автора:
Видимо, тут дело не столько в магии, сколько в зависимостях пакета. Посему ставить реккомендую именно через yum: yum -y --nogpgcheck install <путь к пакету>.
Всё установилось, но я вижу рабочий стол в разрешении 800x600
Насколько я понял - это проблемы энвидиевских программистов. Я делал так:
Из консоли запускаем nvidia-settings и настраиваем нужное нам разрешение. Если получили в консоль ругань о невозможности подключить дисплей hostname:0.0 - не пугайтесь. Если не получили - перезагрузитесь. Возможно, всё уже хорошо. Теперь с настроенныйм разрешением экрана запускаем nvidia-settings от рута:
1 |
|
и сразу закрываем. Теперь колдунство:
1 |
|
где USERNAME-ваш логин. Теперь Ещё раз запускаем nvidia-settings от пользователя и сразу закрываем. И ещё раз запускаем nvidia-settings от рута. Теперь на вкладке XServerDisplayConfiguration тыкаем кнопку Save to X Configuration File -> Сохранить. Всё. Перезагрузка - всё работает.
Не помогает :(
Как я писал выше, я описал только те проблемы, с которыми столкнулся сам. Попробуйе задать вопрос здесь (welinux.ru). Вам посоветуют решение.
P.S. Если вы оценили статью на плюсик - не забудьте отсыпать плюсов господам Shtsh, cooler и f_evgeny. Они сильно помогли мне в решении вопроса.
Если статья плохая и нужно минусовать. То минусуйте только меня, вышеозначенные юзеры не виноваты - писал по собственной инициативе.
Авторский бонус
Выкладываю здесь свой /etc/X11/xorg.conf:
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 1.0 (buildmeister@builder63) Tue Jul 13 13:32:36 PDT 2010
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
FontPath "/usr/share/fonts/default/Type1"
EndSection
Section "ServerFlags"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from data in "/etc/sysconfig/keyboard"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbLayout" "ru,us"
Option "XkbModel" "pc105"
Option "XkbOptions" "grp:shift_toggle,grp_led:scroll"
EndSection
Section "Monitor"
# HorizSync source: xconfig, VertRefresh source: xconfig
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CRT-1"
HorizSync 30.0 - 110.0
VertRefresh 50.0 - 150.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce4 Ti 4200 with AGP8X"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "metamodes" "1280x1024_60 +0+0; nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
# nvidia-settings: version 1.0 (buildmeister@builder63) Tue Jul 13 13:32:36 PDT 2010
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
FontPath "/usr/share/fonts/default/Type1"
EndSection
Section "ServerFlags"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from data in "/etc/sysconfig/keyboard"
Identifier "Keyboard0"
Driver "keyboard"
Option "XkbLayout" "ru,us"
Option "XkbModel" "pc105"
Option "XkbOptions" "grp:shift_toggle,grp_led:scroll"
EndSection
Section "Monitor"
# HorizSync source: xconfig, VertRefresh source: xconfig
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CRT-1"
HorizSync 30.0 - 110.0
VertRefresh 50.0 - 150.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce4 Ti 4200 with AGP8X"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "metamodes" "1280x1024_60 +0+0; nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
так, на всякий случай.
Мде... Ну ладно, можно начинать работать.
Оффтоп: А можно узнать версию вашего Xorg?
Оффтоп: А можно узнать версию вашего Xorg?
а не проще выйти из иксов обычным логаутом в менеджер входа(кдм, гдм, слим и так далее) и убить уже его: «killall kdm -9» .
Потом зачем блокировать новею, просто удалите драйвер коммандой «rmmod nouveau», установите драйвер нужный (новее вообще удалить тогда) и запустите перед иксами «modprobe nvidia». Так же новый икс не нуждается в конфиге, или хотя бы таком длином, пропигите только нвидиа и все.
Ну и последнее, зачем самому собирать? потом апдейты ядра сделаешь у тебя не будет работать, придется перекомпилить самому, так же это не совсем кошерно, особенно в пакетном дистре. Потому прежде, чем писать статью почитайте гугл =)
For GeForce 4 and below
Code:
If you use a PAE kernel
Code:
Or (akmod builds the required kmod on bootup )
Code:
Потом зачем блокировать новею, просто удалите драйвер коммандой «rmmod nouveau», установите драйвер нужный (новее вообще удалить тогда) и запустите перед иксами «modprobe nvidia». Так же новый икс не нуждается в конфиге, или хотя бы таком длином, пропигите только нвидиа и все.
Ну и последнее, зачем самому собирать? потом апдейты ядра сделаешь у тебя не будет работать, придется перекомпилить самому, так же это не совсем кошерно, особенно в пакетном дистре. Потому прежде, чем писать статью почитайте гугл =)
For GeForce 4 and below
Code:
su
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
yum install kmod-nvidia-96xx xorg-x11-drv-nvidia-96xx-libs.i686
If you use a PAE kernel
Code:
su
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
yum install kmod-nvidia-96xx-PAE
Or (akmod builds the required kmod on bootup )
Code:
su
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
yum install akmod-nvidia-96xx xorg-x11-drv-nvidia-96xx-libs.i686
ну и за большей инфо http://fedorasolved.org/video-solutions/nvidia-yum-kmod
просто удалите драйвер коммандой «rmmod nouveau»
rmmod выгружает модуль. После перезагрузке Вы получите загруженный и nouveau и nvidia.
В свою очередь
Он конфликтует с nvidia, и будет первым загружаться делая невозможным использование nvidia.
kmod-nvidia не всегда оправдывает ожидания. Особенно с нормальной поддержкой 3д. Как показала практика, ни у меня, ни у моего знакомого kmod-nvidia не работал с 3д-ускорением.
потом апдейты ядра сделаешь у тебя не будет работать
Логинимся рутом в голой консоли (Xorg ведь не запущен)
sh /path/to/NVIDIA-installer.bin && killall kdm && logout
~15 секунд и опять графический интерфейс жив.
там есть несколько видов установки для разных ядер, новею можно удалить как пакет(в ссылке есть как и я сказал про это тоже), а иметь сто дров и не нужное просто блеклистить, ну не совсем правильно решение, то что не надо — удаляем с системы. дрова то что я привел в пример, они же собраны из тех же дров с сайта.
кстати да, кмод - это кернел модуль, установка просто с сайта ставит тот же модуль. так в чем разница???
Ну и последнее, зачем самому собирать?
Для того, что бы всё работало. Беда в том, что для старых энвидий в репозитоиях уже нет драйверов, а тот, который я нашёл на RPM search - неработоспособен.
Для того, что бы всё работало. Беда в том, что для старых энвидий в репозитоиях уже нет драйверов, а тот, который я нашёл на RPM search - неработоспособен.
Кстати как получить дефолтний xorg.conf? Или что делать если его нет вообще?
Кстати как получить дефолтний xorg.conf?
Удалить тот, что есть и перезапустить иксы.
Или что делать если его нет вообще?
Он не обязательно должен присутствовать.
В моей связке KDM + fluxbox (бывшая дефолтовая установка KDE)
echo "STOP!" >> /etc/X11/xorg.conf && kill -15 kdm
После добавления строки Xserver выдаст ошибку о невозможности парсинга файла, и Xorg не запуститься. У Вас будет голая консоль.
Раздел про блеклист nouveau актуален для пользователей Fedora Core 12+, в предыдущих версиях данный драйвер по умолчанию не компилировался в ядро, на счет других дистрибутивов не уверен.
Раздел про "kernel-interface" немного не актуален в связи с использованием бинарного пакета хх-летней давности и/или не установленным пакетом kernel-devel. Все драйвера находятся на странице.
А так в общем мануальчик хороший получился, поздравляю с первым опытом в написании мануалов :)