Переход на драйверы Nvidia и fglrx: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «{{Шаблон:Stub}} Переход со свободный драйверов nouveau и redeon на Nvidia и fglrx соответственно сопряжён ...»)
 
Нет описания правки
 
(не показано 97 промежуточных версий 17 участников)
Строка 1: Строка 1:
{{Шаблон:Stub}}
{{Шаблон:Stub}}
Переход со свободный драйверов nouveau и redeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями и для его осуществления следует выполнить целую последовательность действий.
{{Устарело}}


* Открыть терминал и получить права пользователя root: <tt>su -</tt>
Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом.


* обновить ядро до последней версии в используемом репозитории: <tt>apt-get update && update-kernel</tt>
{{Note|Данная статья устарела в части fglrx, так как начиная с p8 его уже нет в репозитоиии}}
{{Attention|Переход на fglrx следует осуществлять осторожно. Драйвер поддерживается производителем крайне посредственно, и часто последняя версия не соответствует текущей версии xorg, в силу чего просто не работает. Например, {{altbug|31980}} (p8 и p9 уже не затрагивает по причине отсутствия fglrx) }}


* перезагрузить компьютер


* Открыть терминал и получить права пользователя root: <tt>su -</tt>


* установить модули для исползуемого вами ядра: <tt>apt-get install kernel-modules-nvidia-ваше-ядро</tt> или <tt>apt-get install kernel-modules-fglrx-ваше-ядро</tt>, или <tt>apt-get install kernel-modules-nvidia-ваше-ядро</tt> где ''ваше ядро'' можно при помощи команды <tt>uname -r</tt>, например
{{Note|Перед установкой проприетарных драйверов можно сделать, на всякий случай, [[Теневое копирование+Точка восстановления|'''точку восстановления''']]}}
 
 
== Установка проприетарных драйверов nvidia и fglrx : ==
 
'''Важное замечание для владельцев Radeon''':  
 
 
{{Внимание| Драйвер fglrx уже ни применяется начиная с p8.  Последние проприетарные драйвера ATI/AMD (fglrx) поддерживают только видеокарты серии Radeon HD 2000 и выше. Так-что в отношении карт radeon статья устарела.}}
 
 
{{note|в статье предполагается, что у вас стоит ядро типа std-def}}
'''Шаг 1.''' Обновите систему и ядро до текущего состояния репозитория. Для этого выполните в любом эмуляторе терминала
 
<tt>$ su -</tt>
 
<tt><nowiki># apt-get update </nowiki></tt>
 
<tt><nowiki># apt-get dist-upgrade</nowiki></tt>
 
<tt><nowiki># update-kernel</nowiki></tt>
 
'''Шаг 2.''' Перезагрузите компьютер и выберите пункт загрузки с новым ядром (обычно это первый пункт меню загрузчика).
 
'''Шаг 3.''' Установите соответствующий ядерный модуль видеодрайвера и сам видеодрайвер. Если вы не знаете, какой видеокартой вы пользуетесь, то выполните в терминале команду
 
<tt>$ lspci | grep VGA</tt>
 
После того как вы узнали модель вашей видеокарты выполните следующие команды.
 
<div style="display: inline; color: red;">Для владельцев Nvidia</div>
 
<tt>$ su -</tt>
<tt># apt-get install nvidia_glx_common
# nvidia-install-driver</tt>
 
<div style="display: inline; color: red;">Для владельцев Radeon</div>
 
<tt>$ su -</tt>
 
<tt><nowiki># apt-get install kernel-modules-fglrx-std-def fglrx_glx fglrx-tools</nowiki></tt>
 
где ''std-def'' — [[Kernels/Flavours|тип вашего ядра]], который можно определить при помощи команды <tt>uname -r</tt>, например
 
<source lang=bash>
  $ uname -r
  $ uname -r
  2.6.39-std-def-alt1
  2.6.39-std-def-alt1
</source>
в этом случае "ваше-ядро" называется std-def.
в этом случае "ваше-ядро" называется std-def.


* удалить модули свободных драйверов для используемого ядра: <tt>apt-get remove kernel-modules-drm-radeon-std-def#1:2.6.39-alt1</tt>
'''Шаг 6.''' Перезагрузите компьютер.
 
Убедитесь, что у вас загрузился драйвер nvidia. И работает видеодрайвер nvidia
 
<source lang=bash>
$ su -
# lsmod | grep nvidia
# exit
</source>
 
Для того чтобы посмотреть, какой видеодрайвер используется, можно выполнить команду (предварительно установив при необходимости одноимённый пакет ):
 
<source lang=bash>
$ inxi -G
</source>
 
== Удаление модулей драйверов для используемого ядра или запись их блеклист (при необходимости) : ==
 
{{Note | В современных системах нет необходимости удалять свободные драйвера, так-что эта глава имеет чисто теоретический интерес.}}
 
0. Выходим из графики:
 
<source lang=bash>
<Ctrl> + <Alt> + <F4>
# telinit 3
</source>
 
1. Удаляем модуль
 
<tt>apt-get remove kernel-modules-drm-radeon-std-def#1:2.6.39-alt1</tt>
 
или
 
<tt> apt-get remove kernel-modules-drm-nouveau-std-def#1:2.6.39-alt1</tt>
 
 
Где "#1:2.6.39-alt1" - указание на версию модуля, если установлено более одного ядра. Если ядро одно, можно использовать просто
 
<tt>apt-get remove kernel-modules-drm-nouveau-std-def</tt>
 
При этом, если ядер окажется, всё же, более одного, apt-get завершится с ошибкой, но выведет весь список с версиями. Так что, это можно использовать, если Вы не знаете, как записать версию.
 
2. Помещение модуля в 
 
Создаём файл /etc/modprobe.d/blacklist-nvidia-x11.conf и записываем туда строчку:
 
blacklist nouveau
 
Выгружаем модуль
<source lang=bash>
# rmmod nouveau
</source>
 
3. Чтобы модуль не попал в  initrd, пересобираем его:
<tt>make-initrd -k $(uname -r)</tt>
или просто:
<tt>installkernel $(uname -r)</tt>
в последнем случае сразу и переустанавливается текущий загрузчик
 
4. Переустановить загрузчик при необходимости.
 
== Смена проприетарных драйверов на открытые ==
'''Шаг 0.''' Обновляем систему и ядро  до текущего состояния репозитория, как описано выше.
 
'''Шаг 1.''' Заходим в терминале под пользователем root.
 
'''Шаг 2.''' Устанавливаем открытый драйвер в конфигурационном файле /etc/X11/xorg.conf.d/10-monitor.conf . Для этого можно воспользоваться утилитой xsetup-monitor.
 
Пользователям nvidia необходимо выполнить следующую команду
 
<tt><nowiki># xsetup-monitor -d nouveau</nowiki></tt>
 
Пользователям radeon
 
<tt><nowiki># xsetup-monitor -d radeon</nowiki></tt>
 
В принципе, этих шагов достаточно, чтобы после перезагрузки загрузиться с открытыми драйверами, однако не будет работать сплэш. Для его починки необходимо проделать следующие дополнительные шаги.
 
'''Шаг 3.''' Удаляем (при необходимости) файл /etc/modprobe.d/blacklist-alterator-x11
 
<tt><nowiki># rm -f /etc/modprobe.d/blacklist-alterator-x11</nowiki></tt>
 
'''Шаг 4.''' Перезагружаем компьютер.
 
'''Шаг 5.''' Выполняем команду make-initrd
 
<tt><nowiki># make-initrd </nowiki></tt>
 
При следующей загрузке сплэш должен заработать.
 
== Замена драйверов nouveau/nvidia "на лету"  ==
 
[[Nvidia#.D0.97.D0.B0.D0.BC.D0.B5.D0.BD.D0.B0_.D0.B4.D1.80.D0.B0.D0.B9.D0.B2.D0.B5.D1.80.D0.BE.D0.B2_nouveau.2Fnvidia_.22.D0.BD.D0.B0_.D0.BB.D0.B5.D1.82.D1.83.22|Замена драйверов nouveau/nvidia "на лету"]]
 
== Гибридная графика ==
Для '''Nvidia''' основная статья [[Nvidia_optimus,_настройка_и_запуск_bumblebee]]
 
Для '''AMD''':
 
Для управления переключениями видеокартами через amdcccle (Catalyst) необходимо дать из под рута команду
<source lang="bash">aticonfig --initial</source>
после этого появится пункт в amdcccle для переключения между intel/amd или amd/amd в зависимости от железа. Есть одно НО необходимо как минимум перезапустить X-сервер о чем и будет написано в amdcccle после совершения манипуляции.
 
Для управления из консоли
 
<source lang="bash">aticonfig --px-igpu переключение на интегрированную
 
aticonfig --px-dgpu переключение на дискретную</source>
 
и для лучшего понимания man aticonfig
 
== Что делать, если после всех шагов не загрузилась графическая система? ==
При установке проприетарного драйвера ATI/Radeon установленного посредством выполнения скрипта, возможно, потребуется дать команду:
<tt><nowiki># amdconfig --initial -f</nowiki></tt>
Успокойтесь и не паникуйте. Вы легко можете вернуться к использованию открытых драйверов. Для этого нужно проделать следующую последовательность шагов.
 
== Известные проблемы  ==
'''Проблема:'''
 
{{note| 1. У владельцев NVIDIA в некоторых ситуациях при запуске системы мелькает логотип NVIDIA, происходит запуск Х-ов, но вместо нормальной картинки монитор показывает по центру полосу примерно в половину ширины экрана с прерывистыми диагональными линиями на ней. Если после этого сделать Ctrl+Alt+F3, Ctrl+Alt+F1, то изображение нормализуется.}}
{{note| 2. В консоли шрифт (по нажатию Сtrl+Аlt+(1-6)) Шрифт очень крупный.}}
 
'''Решение:'''
 
Проблемы разные, а решение одно и то же:
 
в этом случае помогает принудительное выставление графического режима в опциях ядра при загрузке (в настройках загрузчика), например, vga=0x314. Для этого:
 
'''Шаг 1.''' Открываем в редакторе (для новичков рекомендуется mcedit) файл /etc/sysconfig/grub2
 
<tt>$ su- </tt>
 
<tt><nowiki># </nowiki>mcedit /etc/sysconfig/grub2 </tt>
 
'''Шаг 2.''' Находим строчку с переменной GRUB_CMDLINE_LINUX_DEFAULT. Например, у автора руководства она имеет вид
 
<tt>GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash'</tt>
 
'''Шаг 3.''' Добавляем в переменную параметр vga=0x314
 
<tt>GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash vga=0x314'</tt>
 
Т.е. 0x314 - это 800x600 в режиме VESA с 16-битным цветом.
 
<table border="1">
  <tr>
    <td>Кол-во цветов</td><td>Число бит</td><td>640x480</td><td>800x600</td><td>1024x768</td><td>1280x1024</td><td>1440x900</td><td>1600x1200</td>
  </tr>
  <tr>
    <td>256</td><td>8</td><td>0x301</td><td>0x303</td><td>0x305</td><td>0x307</td><td>0x360</td><td>0x31c</td>
  </tr>
  <tr>
    <td>32k</td><td>15</td><td>0x310</td><td>0x313</td><td>0x316</td><td>0x319</td><td>0x361</td><td>0x31d</td>
  </tr>
  <tr>
    <td>64k</td><td>16</td><td>0x311</td><td>0x314</td><td>0x317</td><td>0x31A</td><td>0x362</td><td>0x31e</td>
  </tr>
  <tr>
    <td>16M</td><td>24</td><td>0x312</td><td>0x315</td><td>0x318</td><td>0x31B</td><td>0x363</td><td>0x31f</td>
  </tr>
</table>
 
Можно еще взять вот из такой таблицы, vga=XXX (те-же значения. но в 10-ном виде):
 
8bit:
<br>640x480 - 769
<br>800x600 - 771
<br>1024x768 - 773
<br>1280x1024 - 775
 
16bit:
<br>640x480 - 785
<br>800x600 - 788
<br>1024x768 - 791
<br>1280x1024 - 794
 
24bit:
<br>640x480 - 786
<br>800x600 - 789
<br>1024x768 - 792
 
Список всех разрешений можно получить, выполнив следующую команду:
 
<tt># hwinfo --framebuffer</tt>
 
Если ничего не показало, значит, надо установить hwinfo:
 
<tt># apt-get update; apt-get install hwinfo</tt>
 
'''Шаг 4.''' Сохраняем изменения и выходим.
 
'''Шаг 5.''' Перегенерируем конфиг загрузчика grub2:
 
<tt>$ su -</tt>
 
<tt><nowiki># grub-mkconfig -о /boot/grub/grub.cfg</nowiki></tt>
 
Теперь при следующей загрузке все должно нормализоваться.
 
'''Проблема:'''
 
У владельцев старых видеокарт NVIDIA проприетарный драйвер не стартует с сообщением
 
<tt> Failed to allocate/map the primary surface! </tt>
или
<tt> conflicting memory type </tt>
или
<tt> failed to allocate primary buffer: out of memory </tt>
 
'''Решение:'''
 
в этом случае помогает передача в опциях ядра при загрузке параметра "nopat" (о том, как это можно сделать, смотри предыдущий пример с "vga=0x314")
 
<tt>GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash vga=0x314 nopat'</tt>
 
Потом перегенерируем конфиг загрузчика grub2:
 
<tt>$ su -</tt>
 
<tt><nowiki># grub-mkconfig -о /boot/grub/grub.cfg</nowiki></tt>
 
'''Проблема и решение:'''<br>
Если не получается сгенерировать конфигурацию загрузчика в файл с опцией -o, то стоит воспользоваться полной опцией --output
<tt><nowiki># grub-mkconfig --оutput=/boot/grub/grub.cfg</nowiki></tt>
 
 
P.S. Предложения, правки приветствуются.


* пересобрать initrd: <tt>make-initrd</tt>
==Ссылки по теме==
*[[Nvidia|Настройка видеокарт Nvidia]]
*[http://forum.altlinux.org/index.php/topic,11721.msg148508.html#msg148508  Оригинал статьи на форуме]


* создать файл: /etc/X11/xorg.conf.d/50-driver.conf со следующим содержимым:
{{todo|добавить пояснение причин и проблем}}
Section "Device"
    Identifier  "Card0|0"
    Driver      "nvidia" # или, соответственно fglrx
EndSection


* перезагрузиться
{{Category navigation|title=Видеодрайвера|category=Видеодрайвера|sortkey={{SUBPAGENAME}}}}

Текущая версия от 16:25, 21 декабря 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
48px-Mail-mark-junk red.svg.png
Эта статья конкретно протухла.
Статья уже не подходит под современные реалии, под современные версии Альта или сломана совсем. Возможно, её уже не доработать и не поместить в архив.


Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом.

Примечание: Данная статья устарела в части fglrx, так как начиная с p8 его уже нет в репозитоиии
Внимание! Переход на fglrx следует осуществлять осторожно. Драйвер поддерживается производителем крайне посредственно, и часто последняя версия не соответствует текущей версии xorg, в силу чего просто не работает. Например, altbug #31980 (p8 и p9 уже не затрагивает по причине отсутствия fglrx)



Примечание: Перед установкой проприетарных драйверов можно сделать, на всякий случай, точку восстановления


Установка проприетарных драйверов nvidia и fglrx :

Важное замечание для владельцев Radeon:


Внимание: Драйвер fglrx уже ни применяется начиная с p8. Последние проприетарные драйвера ATI/AMD (fglrx) поддерживают только видеокарты серии Radeon HD 2000 и выше. Так-что в отношении карт radeon статья устарела.


Примечание: в статье предполагается, что у вас стоит ядро типа std-def

Шаг 1. Обновите систему и ядро до текущего состояния репозитория. Для этого выполните в любом эмуляторе терминала

$ su -
# apt-get update 
# apt-get dist-upgrade
# update-kernel

Шаг 2. Перезагрузите компьютер и выберите пункт загрузки с новым ядром (обычно это первый пункт меню загрузчика).

Шаг 3. Установите соответствующий ядерный модуль видеодрайвера и сам видеодрайвер. Если вы не знаете, какой видеокартой вы пользуетесь, то выполните в терминале команду

$ lspci | grep VGA

После того как вы узнали модель вашей видеокарты выполните следующие команды.

Для владельцев Nvidia
$ su -

# apt-get install nvidia_glx_common
# nvidia-install-driver
Для владельцев Radeon
$ su -
# apt-get install kernel-modules-fglrx-std-def fglrx_glx fglrx-tools

где std-defтип вашего ядра, который можно определить при помощи команды uname -r, например

 $ uname -r
 2.6.39-std-def-alt1

в этом случае "ваше-ядро" называется std-def.

Шаг 6. Перезагрузите компьютер.

Убедитесь, что у вас загрузился драйвер nvidia. И работает видеодрайвер nvidia

$ su -
# lsmod | grep nvidia
# exit

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

 $ inxi -G

Удаление модулей драйверов для используемого ядра или запись их блеклист (при необходимости) :

Примечание: В современных системах нет необходимости удалять свободные драйвера, так-что эта глава имеет чисто теоретический интерес.


0. Выходим из графики:

<Ctrl> + <Alt> + <F4> 
# telinit 3

1. Удаляем модуль

apt-get remove kernel-modules-drm-radeon-std-def#1:2.6.39-alt1

или

 apt-get remove kernel-modules-drm-nouveau-std-def#1:2.6.39-alt1


Где "#1:2.6.39-alt1" - указание на версию модуля, если установлено более одного ядра. Если ядро одно, можно использовать просто

apt-get remove kernel-modules-drm-nouveau-std-def 

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

2. Помещение модуля в

Создаём файл /etc/modprobe.d/blacklist-nvidia-x11.conf и записываем туда строчку:

blacklist nouveau

Выгружаем модуль

# rmmod nouveau

3. Чтобы модуль не попал в initrd, пересобираем его:

make-initrd -k $(uname -r)

или просто:

installkernel $(uname -r)

в последнем случае сразу и переустанавливается текущий загрузчик

4. Переустановить загрузчик при необходимости.

Смена проприетарных драйверов на открытые

Шаг 0. Обновляем систему и ядро до текущего состояния репозитория, как описано выше.

Шаг 1. Заходим в терминале под пользователем root.

Шаг 2. Устанавливаем открытый драйвер в конфигурационном файле /etc/X11/xorg.conf.d/10-monitor.conf . Для этого можно воспользоваться утилитой xsetup-monitor.

Пользователям nvidia необходимо выполнить следующую команду

# xsetup-monitor -d nouveau

Пользователям radeon

# xsetup-monitor -d radeon

В принципе, этих шагов достаточно, чтобы после перезагрузки загрузиться с открытыми драйверами, однако не будет работать сплэш. Для его починки необходимо проделать следующие дополнительные шаги.

Шаг 3. Удаляем (при необходимости) файл /etc/modprobe.d/blacklist-alterator-x11

# rm -f /etc/modprobe.d/blacklist-alterator-x11

Шаг 4. Перезагружаем компьютер.

Шаг 5. Выполняем команду make-initrd

# make-initrd 

При следующей загрузке сплэш должен заработать.

Замена драйверов nouveau/nvidia "на лету"

Замена драйверов nouveau/nvidia "на лету"

Гибридная графика

Для Nvidia основная статья Nvidia_optimus,_настройка_и_запуск_bumblebee

Для AMD:

Для управления переключениями видеокартами через amdcccle (Catalyst) необходимо дать из под рута команду

aticonfig --initial

после этого появится пункт в amdcccle для переключения между intel/amd или amd/amd в зависимости от железа. Есть одно НО необходимо как минимум перезапустить X-сервер о чем и будет написано в amdcccle после совершения манипуляции.

Для управления из консоли

aticonfig --px-igpu переключение на интегрированную

aticonfig --px-dgpu переключение на дискретную

и для лучшего понимания man aticonfig

Что делать, если после всех шагов не загрузилась графическая система?

При установке проприетарного драйвера ATI/Radeon установленного посредством выполнения скрипта, возможно, потребуется дать команду:

# amdconfig --initial -f

Успокойтесь и не паникуйте. Вы легко можете вернуться к использованию открытых драйверов. Для этого нужно проделать следующую последовательность шагов.

Известные проблемы

Проблема:

Примечание: 1. У владельцев NVIDIA в некоторых ситуациях при запуске системы мелькает логотип NVIDIA, происходит запуск Х-ов, но вместо нормальной картинки монитор показывает по центру полосу примерно в половину ширины экрана с прерывистыми диагональными линиями на ней. Если после этого сделать Ctrl+Alt+F3, Ctrl+Alt+F1, то изображение нормализуется.
Примечание: 2. В консоли шрифт (по нажатию Сtrl+Аlt+(1-6)) Шрифт очень крупный.


Решение:

Проблемы разные, а решение одно и то же:

в этом случае помогает принудительное выставление графического режима в опциях ядра при загрузке (в настройках загрузчика), например, vga=0x314. Для этого:

Шаг 1. Открываем в редакторе (для новичков рекомендуется mcedit) файл /etc/sysconfig/grub2

$ su- 
# mcedit /etc/sysconfig/grub2 

Шаг 2. Находим строчку с переменной GRUB_CMDLINE_LINUX_DEFAULT. Например, у автора руководства она имеет вид

GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash'

Шаг 3. Добавляем в переменную параметр vga=0x314

GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash vga=0x314'

Т.е. 0x314 - это 800x600 в режиме VESA с 16-битным цветом.

Кол-во цветовЧисло бит640x480800x6001024x7681280x10241440x9001600x1200
25680x3010x3030x3050x3070x3600x31c
32k150x3100x3130x3160x3190x3610x31d
64k160x3110x3140x3170x31A0x3620x31e
16M240x3120x3150x3180x31B0x3630x31f

Можно еще взять вот из такой таблицы, vga=XXX (те-же значения. но в 10-ном виде):

8bit:
640x480 - 769
800x600 - 771
1024x768 - 773
1280x1024 - 775

16bit:
640x480 - 785
800x600 - 788
1024x768 - 791
1280x1024 - 794

24bit:
640x480 - 786
800x600 - 789
1024x768 - 792

Список всех разрешений можно получить, выполнив следующую команду:

# hwinfo --framebuffer

Если ничего не показало, значит, надо установить hwinfo:

# apt-get update; apt-get install hwinfo

Шаг 4. Сохраняем изменения и выходим.

Шаг 5. Перегенерируем конфиг загрузчика grub2:

$ su -
# grub-mkconfig -о /boot/grub/grub.cfg

Теперь при следующей загрузке все должно нормализоваться.

Проблема:

У владельцев старых видеокарт NVIDIA проприетарный драйвер не стартует с сообщением

 Failed to allocate/map the primary surface! 

или

 conflicting memory type 

или

 failed to allocate primary buffer: out of memory 

Решение:

в этом случае помогает передача в опциях ядра при загрузке параметра "nopat" (о том, как это можно сделать, смотри предыдущий пример с "vga=0x314")

GRUB_CMDLINE_LINUX_DEFAULT='quiet=1 panic=30 splash vga=0x314 nopat'

Потом перегенерируем конфиг загрузчика grub2:

$ su -
# grub-mkconfig -о /boot/grub/grub.cfg

Проблема и решение:
Если не получается сгенерировать конфигурацию загрузчика в файл с опцией -o, то стоит воспользоваться полной опцией --output

# grub-mkconfig --оutput=/boot/grub/grub.cfg


P.S. Предложения, правки приветствуются.

Ссылки по теме

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