Переход на драйверы Nvidia и fglrx
Переход со свободных драйверов nouveau и radeon на Nvidia и fglrx соответственно сопряжён с определёнными сложностями, и для его осуществления следует выполнить целую последовательность действий. Обратный переход выполняется аналогичным образом.
Переход со свободных драйверов nouveau и radeon на проприетарные драйвера Nvidia и fglrx
1. Если вы ещё ни разу не обновляли дистрибутив, убедитесь, что apt настроен на нужный репозитарий. Это удобно сделать с помощью команды apt-repo.
apt-repo
2. Обновить ядро до последней версии в используемом репозитории: Открыть терминал и получить права пользователя root:
su -
или нажать <Ctrl+<Alt>+<F1>(или F2...F6) и войти как root:
login: root
passwsd: <пароль root - не отображается>
Обновить индекс содержимого репозитория:
apt-get update
Обновить систему:
apt-get dist-upgrade
Обновить ядро:
update-kernel
3. Перезагрузить компьютер c новым ядром.
4. Открыть терминал и получить права пользователя root: su -
5. установить модули для текущего используемого вами ядра:
apt-get install nvidia_glx_common nvidia-install-driver
или для fglrx
apt-get install kernel-modules-fglrx-ваше-ядро
где ваше ядро можно определить при помощи команды uname -r, например
$ uname -r
2.6.39-std-def-alt1
в этом случае "ваше-ядро" называется std-def.
6. Создать файл /etc/modprobe.d/blacklist-video.conf со следующим содержимым:
blacklist radeon blacklist nouveau
7. Создать файл: /etc/X11/xorg.conf.d/50-driver.conf со следующим содержимым:
Section "Device"
Identifier "Card0|0"
Driver "nvidia"
EndSection
или, соответственно fglrx
Section "Device"
Identifier "Card0|0"
Driver "fglrx"
EndSection
Если используется /etc/X11/xorg.conf (например, дистрибутив старого поколения), файл 50-driver.conf создавать не надо, а изменения следует делать в соответствующей секции
Section "Device"
.........
Driver "nvidia" (заменяем вместо того, что там прописан)
или
Driver "fglrx" (заменяем вместо того, что там прописан)
.....
EndSection
в xorg.conf.
8. Перегенерируем загрузочную запись (от root):
rmmod radeon
или
rmmod nouveau
installkernel $(uname -r)
9. Перезагрузиться.
Возможная проблема:
Несмотря на blacklist-video.conf, radeon и nouveau могут быть загружены всё равно, например, если они попали в initrd.
В случае такой проблемы можно удалить их совсем (см. Удаление модулей свободных драйверов для используемого ядра). Однако, следует помнить, что возвращать модуль, возможно, придётся из архива репозитария, если будет необходимость сохранить старое ядро. Архивы ведутся для Sisyphus и стабильных репозитариев, начиная с p7/t7.
Удаление модулей свободных драйверов для используемого ядра:
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. Пересобрираем initrd:
make-initrd -k $(uname -r)
или просто:
installkernel $(uname -r)
в последнем случае сразу и переустанавливается текущий загрузчик
3. Переустановить загрузчик при необходимости.
см Установка_проприетарных_драйверов_NVIDIA_и_ATI
Замена драйверов 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
Установка проприетарных драйверов NVIDIA и ATI :
Важное замечание для владельцев Radeon:
Последние проприетарные драйвера ATI/AMD (fglrx) поддерживают только видеокарты серии Radeon HD 2000 и выше. Если у вас более старая видеокарта, то вам придется использовать открытый драйвер и дальнейшую инструкцию вы можете не читать.
Шаг 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.
Шаг 4. (может не требоваться в ряде случаев вместе с шагом 5) Если не установлен, то установите модуль альтератора (центр управления системой), который отвечает за настройку X сервера.
# apt-get install alterator-x11
Шаг 5. Запустите альтератор, например, нажав Alt + F2 и введя в появившемся окне "acc". Зайдите в пункт "Дисплей", нажмите кнопку "Другой драйвер" и в появившемся окне выберите нужный драйвер: nvidia — Nvidia (proprietary) для владельцев Nvidia карт fglrx - ATI Radeon для владельцев карт Radeon. Нажмите "OK" и затем "Применить". Должно появиться окошко, сообщающее, что все изменения вступят в силу после перезагрузки.
Шаг 6. Перезагрузите компьютер.
Что делать, если после всех шагов не загрузилась графическая система?
При установке проприетарного драйвера ATI/Radeon установленного посредством выполнения скрипта, возможно, потребуется дать команду:
# amdconfig --initial -f
Успокойтесь и не паникуйте. Вы легко можете вернуться к использованию открытых драйверов. Для этого нужно проделать следующую последовательность шагов.
Смена проприетарных драйверов на открытые
Шаг 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
При следующей загрузке сплэш должен заработать.
Известные проблемы
Проблема:
Решение:
Проблемы разные, а решение одно и то же:
в этом случае помогает принудительное выставление графического режима в опциях ядра при загрузке (в настройках загрузчика), например, 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. Предложения, правки приветствуются.
Ссылки по теме