Это перевод статьи Nouveau & nvidia-drivers switching. Распространяется под лиценцией Creative Commons Attribution Share Alike. Пожалуйста, поместите этот перевод в wiki, если сочтёте это необходимым.
Переключение между бинарным драйвером nVidia и открытым драйвером noveau может быть несколько мудрёным, однако осуществимым. Эта статья объяснит как может быть осуществлено такое переключение на различных уровнях (т.е. на этапе загрузки, в runlevel и т.п.).
Переключение с использованием двух ядер
При загрузке
Этот метод предполагает следующее:
Portage использует переменную VIDEO_CARDS для включения поддержки различных видеокарт в пакетах. Установка значения VIDEO_CARDS в nvidia nouveau будет подгружать корректный драйвер:
Переключение между бинарным драйвером nVidia и открытым драйвером noveau может быть несколько мудрёным, однако осуществимым. Эта статья объяснит как может быть осуществлено такое переключение на различных уровнях (т.е. на этапе загрузки, в runlevel и т.п.).
Переключение с использованием двух ядер
При загрузке
Этот метод предполагает следующее:
- Два ядра: одно с включённым в него драйвером nouveau, другое — без (или с nouveau в виде модуля).
- Ядро без nouveau будет иметь суффикс -nvidia
- Загрузчик GRUB
Конфигурация ядра General setup ---> (-mykernel-nvidia) Local version - append to kernel releaseТеперь убедимся, что драйвер noveau отключен или собран как модуль:
Конфигурация ядра Device Drivers ---> Graphics support ---> <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> <M> Nouveau (nVidia) cardsТеперь пересоберите и установите ядро. Также убедитесь, что вы обновили GRUB и новое ядро добавлено в его список выбора. Обратите внимание, что ядра с одинаковой версией и разными именами считаются уникальными. Поэтому если вы хотите установить ядро не из дерева portage для использования совместно с nouveau-ядром, вам следует скопировать из ядра nouveau конфигурационный файл /usr/src/linux/.config
Portage использует переменную VIDEO_CARDS для включения поддержки различных видеокарт в пакетах. Установка значения VIDEO_CARDS в nvidia nouveau будет подгружать корректный драйвер:
Файл: /etc/portage/make.conf VIDEO_CARDS="nvidia nouveau"После этой настройки следует обновить систему, чтобы изменения вступили в силу:
root # emerge --ask --changed-use --deep world
Добавьте nvidia и nouveau модули в blacklist т.к. вы не хотите чтобы udev загруджал их автоматически:
root # echo -e "blacklist nouveau\nblacklist nvidia" >> /etc/modprobe.d/nvidia-n-nouveau.conf
В конце мы будем использовать local.d скрипт, приведённый ниже для переключения драйвера в зависимости от ядра, с которым вы загружаетесь:
Файл: /etc/local.d/nvidia.start #!/bin/bash depend() { need localmount before xdm } if [[ $(uname -r) == *-nvidia ]] ; then modprobe -q nvidia if [[ $(eselect opengl show) != nvidia ]] ; then eselect opengl set nvidia &>/dev/null fi cat > /etc/X11/xorg.conf.d/01-nvidia.conf << EOF Section "Device" Identifier "Device0" Driver "nvidia" Option "NoLogo" "True" EndSection EOF else modprobe -q nouveau if [ -f /etc/X11/xorg.conf.d/01-nvidia.conf ] ; then rm /etc/X11/xorg.conf.d/01-nvidia.conf fi if [[ $(eselect opengl show) != xorg-x11 ]] ; then eselect opengl set xorg-x11 &>/dev/null fi fiСкопируйте этот скрипт в /etc/local.d/nvidia.start
root # chmod +x /etc/local.d/nvidia.start
Переключение с использованием одного ядра и hprofile
Другим методом является переключение между двумя профилями hprofiles с использованием всего одного ядра: /etc/init.d/hprofile должен быть модифицирован с добавлением нескольких строк для переключения vga. Внимание! hprofile должен быть добавлен в boot runlevel.
0 коммент.:
Отправить комментарий