Переход на драйверы Nvidia и fglrx: различия между версиями
Barssc (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
(не показано 65 промежуточных версий 10 участников) | |||
Строка 1: | Строка 1: | ||
{{Шаблон:Stub}} | {{Шаблон:Stub}} | ||
{{Устарело}} | |||
Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом. | |||
на Nvidia и fglrx соответственно сопряжён с определёнными сложностями и для его осуществления следует выполнить целую последовательность действий. | |||
== | {{Note|Данная статья устарела в части fglrx, так как начиная с p8 его уже нет в репозитоиии}} | ||
{{Attention|Переход на fglrx следует осуществлять осторожно. Драйвер поддерживается производителем крайне посредственно, и часто последняя версия не соответствует текущей версии xorg, в силу чего просто не работает. Например, {{altbug|31980}} (p8 и p9 уже не затрагивает по причине отсутствия fglrx) }} | |||
{{Note|Перед установкой проприетарных драйверов можно сделать, на всякий случай, [[Теневое копирование+Точка восстановления|'''точку восстановления''']]}} | |||
== Установка проприетарных драйверов nvidia и fglrx : == | |||
'''Важное замечание для владельцев Radeon''': | |||
{{Внимание| Драйвер fglrx уже ни применяется начиная с p8. Последние проприетарные драйвера ATI/AMD (fglrx) поддерживают только видеокарты серии Radeon HD 2000 и выше. Так-что в отношении карт radeon статья устарела.}} | |||
{{note|в статье предполагается, что у вас стоит ядро типа std-def}} | |||
'''Шаг 1.''' Обновите систему и ядро до текущего состояния репозитория. Для этого выполните в любом эмуляторе терминала | |||
<tt> | <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> | |||
<tt> | |||
После того как вы узнали модель вашей видеокарты выполните следующие команды. | |||
<div style="display: inline; color: red;">Для владельцев Nvidia</div> | |||
<tt>$ su -</tt> | |||
<tt> | |||
<tt># apt-get install nvidia_glx_common | |||
<tt>apt-get install kernel-modules-fglrx- | # 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> | <source lang=bash> | ||
Строка 52: | Строка 60: | ||
в этом случае "ваше-ядро" называется std-def. | в этом случае "ваше-ядро" называется std-def. | ||
'''Шаг 6.''' Перезагрузите компьютер. | |||
Убедитесь, что у вас загрузился драйвер nvidia. И работает видеодрайвер nvidia | |||
<source lang=bash> | |||
$ su - | |||
# lsmod | grep nvidia | |||
# exit | |||
<source lang= | |||
</source> | </source> | ||
Для того чтобы посмотреть, какой видеодрайвер используется, можно выполнить команду (предварительно установив при необходимости одноимённый пакет ): | |||
<source lang=bash> | <source lang=bash> | ||
$ inxi -G | |||
</source> | </source> | ||
== Удаление модулей драйверов для используемого ядра или запись их блеклист (при необходимости) : == | |||
{{Note | В современных системах нет необходимости удалять свободные драйвера, так-что эта глава имеет чисто теоретический интерес.}} | |||
0. Выходим из графики: | |||
<source lang=bash> | |||
<Ctrl> + <Alt> + <F4> | |||
# telinit 3 | |||
</source> | |||
1. Удаляем модуль | 1. Удаляем модуль | ||
Строка 126: | Строка 102: | ||
При этом, если ядер окажется, всё же, более одного, apt-get завершится с ошибкой, но выведет весь список с версиями. Так что, это можно использовать, если Вы не знаете, как записать версию. | При этом, если ядер окажется, всё же, более одного, apt-get завершится с ошибкой, но выведет весь список с версиями. Так что, это можно использовать, если Вы не знаете, как записать версию. | ||
2. | 2. Помещение модуля в | ||
<tt>make-initrd</tt> | |||
Создаём файл /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> | <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]] | Для '''Nvidia''' основная статья [[Nvidia_optimus,_настройка_и_запуск_bumblebee]] | ||
Для '''AMD''': | Для '''AMD''': | ||
Для управления переключениями видеокартами через amdcccle (Catalyst) необходимо дать из под рута команду aticonfig --initial после этого появится пункт в | |||
amdcccle для переключения | Для управления переключениями видеокартами через amdcccle (Catalyst) необходимо дать из под рута команду | ||
Для управления из консоли | <source lang="bash">aticonfig --initial</source> | ||
aticonfig --px-igpu переключение на интегрированную | после этого появится пункт в amdcccle для переключения между intel/amd или amd/amd в зависимости от железа. Есть одно НО необходимо как минимум перезапустить X-сервер о чем и будет написано в amdcccle после совершения манипуляции. | ||
aticonfig --px-dgpu переключение на дискретную | |||
Для управления из консоли | |||
<source lang="bash">aticonfig --px-igpu переключение на интегрированную | |||
aticonfig --px-dgpu переключение на дискретную</source> | |||
и для лучшего понимания man aticonfig | и для лучшего понимания 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. Предложения, правки приветствуются. | |||
[[ | ==Ссылки по теме== | ||
*[[Nvidia|Настройка видеокарт Nvidia]] | |||
*[http://forum.altlinux.org/index.php/topic,11721.msg148508.html#msg148508 Оригинал статьи на форуме] | |||
{{todo|добавить пояснение причин и проблем}} | |||
{{Category navigation|title=Видеодрайвера|category=Видеодрайвера|sortkey={{SUBPAGENAME}}}} | |||
Текущая версия от 16:25, 21 декабря 2023
Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом.
Установка проприетарных драйверов nvidia и fglrx :
Важное замечание для владельцев Radeon:
Шаг 1. Обновите систему и ядро до текущего состояния репозитория. Для этого выполните в любом эмуляторе терминала
$ su -
# apt-get update
# apt-get dist-upgrade
# update-kernel
Шаг 2. Перезагрузите компьютер и выберите пункт загрузки с новым ядром (обычно это первый пункт меню загрузчика).
Шаг 3. Установите соответствующий ядерный модуль видеодрайвера и сам видеодрайвер. Если вы не знаете, какой видеокартой вы пользуетесь, то выполните в терминале команду
$ lspci | grep VGA
После того как вы узнали модель вашей видеокарты выполните следующие команды.
$ su - # apt-get install nvidia_glx_common # nvidia-install-driver
$ 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
Успокойтесь и не паникуйте. Вы легко можете вернуться к использованию открытых драйверов. Для этого нужно проделать следующую последовательность шагов.
Известные проблемы
Проблема:
Решение:
Проблемы разные, а решение одно и то же:
в этом случае помогает принудительное выставление графического режима в опциях ядра при загрузке (в настройках загрузчика), например, 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-битным цветом.
Кол-во цветов | Число бит | 640x480 | 800x600 | 1024x768 | 1280x1024 | 1440x900 | 1600x1200 |
256 | 8 | 0x301 | 0x303 | 0x305 | 0x307 | 0x360 | 0x31c |
32k | 15 | 0x310 | 0x313 | 0x316 | 0x319 | 0x361 | 0x31d |
64k | 16 | 0x311 | 0x314 | 0x317 | 0x31A | 0x362 | 0x31e |
16M | 24 | 0x312 | 0x315 | 0x318 | 0x31B | 0x363 | 0x31f |
Можно еще взять вот из такой таблицы, 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. Предложения, правки приветствуются.
Ссылки по теме