Переход на драйверы Nvidia и fglrx: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показано 28 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Шаблон:Stub}} | {{Шаблон:Stub}} | ||
{{Устарело}} | |||
Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом. | Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом. | ||
Строка 11: | Строка 12: | ||
== | == Установка проприетарных драйверов 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> | ||
Строка 59: | Строка 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. Удаляем модуль | ||
Строка 128: | Строка 102: | ||
При этом, если ядер окажется, всё же, более одного, apt-get завершится с ошибкой, но выведет весь список с версиями. Так что, это можно использовать, если Вы не знаете, как записать версию. | При этом, если ядер окажется, всё же, более одного, apt-get завершится с ошибкой, но выведет весь список с версиями. Так что, это можно использовать, если Вы не знаете, как записать версию. | ||
2. | 2. Помещение модуля в | ||
Создаём файл /etc/modprobe.d/blacklist-nvidia-x11.conf и записываем туда строчку: | |||
blacklist nouveau | |||
Выгружаем модуль | |||
<source lang=bash> | <source lang=bash> | ||
# rmmod nouveau | |||
</source> | </source> | ||
3. Чтобы модуль не попал в initrd, пересобираем его: | |||
<tt>make-initrd -k $(uname -r)</tt> | |||
или просто: | |||
<tt>installkernel $(uname -r)</tt> | |||
в последнем случае сразу и переустанавливается текущий загрузчик | |||
4. Переустановить загрузчик при необходимости. | |||
== Смена проприетарных драйверов на открытые == | == Смена проприетарных драйверов на открытые == | ||
Строка 237: | Строка 138: | ||
В принципе, этих шагов достаточно, чтобы после перезагрузки загрузиться с открытыми драйверами, однако не будет работать сплэш. Для его починки необходимо проделать следующие дополнительные шаги. | В принципе, этих шагов достаточно, чтобы после перезагрузки загрузиться с открытыми драйверами, однако не будет работать сплэш. Для его починки необходимо проделать следующие дополнительные шаги. | ||
'''Шаг 3.''' Удаляем файл /etc/modprobe.d/blacklist-alterator-x11 | '''Шаг 3.''' Удаляем (при необходимости) файл /etc/modprobe.d/blacklist-alterator-x11 | ||
<tt><nowiki># rm -f /etc/modprobe.d/blacklist-alterator-x11</nowiki></tt> | <tt><nowiki># rm -f /etc/modprobe.d/blacklist-alterator-x11</nowiki></tt> | ||
Строка 248: | Строка 149: | ||
При следующей загрузке сплэш должен заработать. | При следующей загрузке сплэш должен заработать. | ||
== Замена драйверов 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+ | {{note| 1. У владельцев NVIDIA в некоторых ситуациях при запуске системы мелькает логотип NVIDIA, происходит запуск Х-ов, но вместо нормальной картинки монитор показывает по центру полосу примерно в половину ширины экрана с прерывистыми диагональными линиями на ней. Если после этого сделать Ctrl+Alt+F3, Ctrl+Alt+F1, то изображение нормализуется.}} | ||
{{note| 2. В консоли шрифт (по нажатию Сtrl+Аlt+(1-6)) Шрифт очень крупный.}} | {{note| 2. В консоли шрифт (по нажатию Сtrl+Аlt+(1-6)) Шрифт очень крупный.}} | ||
Текущая версия от 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. Предложения, правки приветствуются.
Ссылки по теме