Grub2: возможно ли отключить графические драйверы через команду загрузки ядра?

17013
Jonathan Voss

Вопросы

Вот мои вопросы: возможно ли отключить драйвер Linux fglrx или сделать что-нибудь, чтобы подавить функциональность (например, 3D-ускорение), которая не совместима между аппаратными средствами через конфигурацию grub? Если так, как это будет сделано?

В частности, я настроил предпочитаемую программную среду разработки на SSD, который я использую на нескольких компьютерах, только на некоторых из которых установлены дискретные графические процессоры Radeon, на других - iGPU от Intel. На машинах с графическими процессорами Radeon gmd для бесперебойной работы нужны драйверы fglrx (без них 3D-ускорение особенно тяжело). Мне нужно иметь возможность создавать / выбирать параметры загрузки в grub, которые позволяют мне загружаться на устройстве Intel с использованием iGPU или устройства AMD с графическими процессорами Radeon.

Вся информация, которую я нашел об изменении загрузочного меню grub, устарела, поэтому я обратился к SU за разъяснениями.

Фон

У меня на компьютере установлена ​​двойная загрузка: Windows 7 на одном SSD и Ubuntu Gnome 14.04 на другом (Ubuntu я использую в основном для разработки программного обеспечения). Недавно я обновил свой компьютер с пары Radeon HD 7700 до AMD R9 280, после чего драйверы Radeon перестали работать с 3D-ускорением, что привело к заиканию всего. Затем я переключился на fglrx, и все проблемы прекратились. Все было хорошо в электронном микрокосме моего рабочего стола.

Единственная проблема заключается в том, что я переношу этот Ubuntu SSD с машины на машину, когда прыгаю между офисами, домами и городами. Не все машины имеют графические процессоры Radeon, что может вызвать проблемы с драйверами fglrx. Например, сегодня я зашел в офис и вставил свой SSD в компьютер, который мне там дали; он имеет процессор Intel и не имеет дискретного графического процессора. Grub показывал бы мои параметры загрузки как обычно, но мои попытки запустить Ubuntu (даже в "отказоустойчивом" графическом режиме) потерпели неудачу. Мне повезло, что у меня была живая флешка, поэтому я загрузил живой дистрибутив, установил / привязал к SSD, удалил / очистил fglrx, а затем перезагрузил.

Это не совсем оптимальное решение. Идеальным решением является создание опции меню grub для загрузки без 3D-ускорения, специфичного для fglrx.

Еще некоторые особенности

root@toor:/$ grub-install --version grub-install (GRUB) 2.02~beta2-9ubuntu1.3 root@toor:/$ uname -orvp 3.16.0-50-generic #67~14.04.1-Ubuntu SMP Fri Oct 2 22:07:51 UTC 2015 x86_64 GNU/Linux 

Пока установлены драйверы fglrx, загрузка на машине Intel приводит к довольно раздражающему явлению: на экране появятся зеленые буквы с надписью «Запуск веб-сервера apache ...», которые будут постоянно возвращаться независимо от того, какой виртуальный терминал выбран., Это заняло около 5 минут, чтобы войти в систему, и sudo rebootпотому что экран с зеленым текстом продолжал загружаться каждые 2-10 секунд (сильно изменяющиеся и непредсказуемые сроки). Нажатие Ctrl + Alt + Del иногда не приводит к перезагрузке машины, а иногда просто задерживается на полминуты или около того, прежде чем ответить. Однако, когда он все же ответил, заставка GDM очень быстро появилась бы перед перезагрузкой.

4

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

5
MariusMatutiae

You should use the nomodeset parameter:

nomodeset

The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts.. This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen. Unfortunately, on some cards this doesnt work properly and you end up with a black screen. Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.

This way you can boot safely, and then dish out to X the business of selecting the appropriate drive for your needs. You might even decide to do no programming whatsoever, and see whether the simple command

 dpkg-reconfigure xserver-xorg 

(this works on Debian and derivatives, which is your case) might do in your case.

EDIT:

it is possible to disable a graphical boot completely. Copy

 cp /etc/default/grub /etc/default/grub-orig 

The edit /etc/default/grub, comment out this line,

 #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 

modify this line to look like

 GRUB_CMDLINE_LINUX="text" 

then uncomment this line,

 GRUB_TERMINAL=console 

Save, run

 update-grub 

when you reboot,if you do not have a broken installation, you will kind yourself in text mode. After reconfiguring X, youmay start the graphical session with

 startx 
Я проверяю это сейчас. Если это сработает, я внесу предложения по редактированию, чтобы ответ был более полным. Jonathan Voss 8 лет назад 0
Это не работает. Я добавил `GRUB_CMDLINE_LINUX_DEFAULT =" nomodeset "` в / etc / default / grub, а затем использовал `update-grub` вместо` dpkg-reconfigure`, потому что не удалось найти пакет xserver-xorg. (Вы имели в виду xserver-xorg- *?) В результате заставка Ubuntu заменяется более ностальгическим экраном с текстом, который неизбежно останавливается после «запуска apache ... восстановления состояния решателя ... запуска демонов Quagga ... Диспетчер речи отключен ... »Затем экран постоянно мигает, как я описал в разделе« Фон ». Есть идеи? Jonathan Voss 8 лет назад 0
@JonathanVoss Пожалуйста, прочитайте мое редактирование. MariusMatutiae 8 лет назад 0
У меня не будет времени опробовать это новое решение до завтра. Это выглядит многообещающе, но мне нужно будет найти способ сделать это второстепенным вариантом (возможно, в разделе «Дополнительные параметры загрузки»). Jonathan Voss 8 лет назад 0
Я попробовал это, и это вроде как почти сработало. Это приведет меня к tty1, и я смогу запустить startx оттуда. Проблема заключается в том, что мне все еще нужно удалить драйверы перед загрузкой с Intel iGPU, а затем мне нужно переустановить и перезагрузить компьютер, прежде чем запускать машину с AMD GPU. Я также должен был бы запускать startx каждый раз. Как бы я добавил пользовательскую запись в современный эквивалент "menu.lst"? Jonathan Voss 8 лет назад 0
@JonathanVoss После того, как вам удалось загрузиться без графики и приземлиться на ** консоль ** (не эмулятор терминала), перенастройка вашего X-сервера должна быть простой, читайте здесь: `https: // wiki.debian.org / Xorg` особенно раздел «Что делать, если у меня нет конфигурационного файла xorg?». Если вы хотите пользовательскую запись GRUB, пожалуйста, задайте другой вопрос, это превращается в теленовеллу. MariusMatutiae 8 лет назад 0

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