Различные драйверы графических карт при загрузке с внешних носителей

1350
Unreason

Я загружаю определенную систему с Ubuntu 9.10 с внешнего жесткого диска. Я доволен настройкой, и она работает нормально, однако я хотел бы изменить ее, чтобы я мог выбирать, какие драйверы графической карты загружать во время загрузки. В частности, я хотел бы выбрать между:

  • проприетарный драйвер nvidia
  • собственный драйвер ati
  • универсальный драйвер

В настоящее время, если я использую проприетарные драйверы, не загружаюсь в X, удаляю xorg.conf, запускаю gdm и перенастраиваю систему, используя jockey (для драйверов оборудования).

Каковы были бы шаги, чтобы сделать это (полу) автоматическим и избежать перезапуска X?

Где можно найти примеры таких сценариев?

0

4 ответа на вопрос

1
  1. Сделайте 3 различных записи резьбовых для каждого ядра с driver1, driver2, в driver3качестве опции.
  2. Сделайте 3 различных xorg.conf (каждый с одним из трех водителей) и назовите их xorg.conf1, xorg.conf2, xorg.conf2.
  3. Запись сценария, запускающего что выполняется до X, который отбирает /proc/cmdlineдля driver1, driver2Одера driver3и затем симлинками xorg.conf1, xorg.conf2или xorg.conf2кxorg.conf

Я сделал что-то подобное, чтобы переключиться между настройками экрана с двумя заголовками и без них во времена до xrandr. К сожалению, скрипты и документация давно исчезли.

Возможные улучшения:

  • использовать udev-правила
  • пусть initscript автоматически определяет текущую видеокарту
+1 кажется верный путь. Как бы вы автоматически обнаружили? (lspci тогда insmod?) Unreason 14 лет назад 0
lspci это сложно ... Иногда видеокарты являются «Диспетчером дисплея», иногда их называют «VGA Controller». Первое, что пришло мне в голову, было "lshw". Например: «lshw | grep -m1 -A5 display | grep vendor» или «lshw -c display | grep vendor» 14 лет назад 0
1
Christoffer Madsen

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

Да, я бы сделал это, но я не уверен, что все шаги. У меня есть два разных файла xorg.conf, но этого достаточно? я должен также сделать несколько insmods до запуска gdm? Unreason 14 лет назад 0
X должен загрузить все модули, определенные в файле конфигурации. Daenyth 14 лет назад 0
Как и предполагал Lego399, вы можете запустить скрипт, который может загружать различные файлы конфигурации Xorg. Просто подготовьте эти файлы конфигурации (xorg.conf.nv, xorg.conf.ati, xorg.conf.vesa) и скопируйте один из них в исходный файл xorg.conf. После этого вы можете запустить сервер Xorg. Поэтому вы должны поместить этот скрипт перед запуском gdm (или другого менеджера входа в систему). 14 лет назад 0
@Pier, на самом деле это было то, что я сделал (у меня есть два рабочих файла xorg.conf, по одному для каждой настройки оборудования), но этого было недостаточно. Я предполагаю, что этого было недостаточно, так как я должен повторно запустить жокей, чтобы заставить вещи работать. Unreason 14 лет назад 0
1

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

http://en.gentoo-wiki.com/wiki/Framebuffer

1

Создайте разные версии вашего xorg.conf в зависимости от того, что вам нужно. Сказать:

/etc/X11/xorg.conf.nvidia /etc/X11/xorg.conf.ati /etc/X11/xorg.conf.generic 

Затем настройте несколько конфигураций загрузки в /boot/grub/grub.cfg и поместите разные параметры ядра (например, xconfig = myconfig) в каждую строку, где указано ядро. Где-то по линии:

menuentry "Ubuntu, Linux 2.6.31-17 nvidia" { ... linux /vmlinuz-2.6.31-17 root=UUID=885a6a07-fd6c-4638-aa17-d38997d477e1 xconfig=nvidia ro single ... }   menuentry "Ubuntu, Linux 2.6.31-17 ati" { ... linux /vmlinuz-2.6.31-17 root=UUID=885a6a07-fd6c-4638-aa17-d38997d477e1 xconfig=ati ro single ... }  menuentry "Ubuntu, Linux 2.6.31-17 generic" { ... linux /vmlinuz-2.6.31-17 root=UUID=885a6a07-fd6c-4638-aa17-d38997d477e1 xconfig=generic ro single ... } 

Параметры ядра, которые не распознаны, игнорируются, но все равно будут доступны в / proc / cmdline. Исходя из этого, вы можете написать небольшой скрипт оболочки, который выберет правильный файл конфигурации:

#!/bin/bash rm -f /etc/X11/xorg.conf config=`cat /proc/cmdline |sed -e 's/.*xconfig=\([a-z]*\).*/\1/g' ln -s /etc/X11/xonfig.conf.$config /etc/X11/xconfig.conf 

Затем поместите это где-нибудь в вашем порядке загрузки, прежде чем gdm запустится.

Упс .. Я вроде как прочитал вопрос неправильно .. во всяком случае .. :) 14 лет назад 0

Похожие вопросы