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

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

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

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

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

4 ответа4

1

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

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 запустится

1
  1. Сделайте 3 разных записи grub для каждого ядра с driver1 , driver2 , driver3 качестве опций.
  2. Создайте 3 разных xorg.conf (каждый с одним из трех драйверов) и назовите их xorg.conf1 , xorg.conf2 , xorg.conf2 .
  3. Напишите initscript, который выполняется перед X, что greps /proc/cmdline для driver1 , driver2 или oder driver3 а затем символические ссылки xorg.conf1 , xorg.conf2 или xorg.conf2 на xorg.conf

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

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

  • использовать udev-правила
  • пусть initscript автоматически определяет текущую видеокарту

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .