Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [для wiki] Черный экран. Как передать параметр ядру linux до загрузки  (Прочитано 9825 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Уважаемые форумчане! Ввиду обилия тем в разделе "Для новичков", так или иначе натыкающихся на эти грабли, с целью сохранения в рабочем состоянии символов с,т,р,е,л,о,ч,к,а,м,и на своей клавиатуре обеспечения возможности не расписывать эти действия всякий раз, а дать ссылку на wiki, предлагаю такую вот статью.
Заготовка статьи для wiki. "Чёрный экран". Как передать параметр ядру linux до загрузки
Цитировать
Семь бед? Nomodeset!
*народное*
Данная статья будет, в основном, полезна новичкам. В ней мы обзорно рассмотрим процесс загрузки системы с передачей ядру дополнительных параметров.  Краткий ликбез в рамках принятой в статье терминологии: железо - это аппаратная начинка Вашего устройства (ноутбка, компьютера, пылесоса); драйвер (он же, суть, модуль ядра) - это такая программная прослойка, которая позволяет Вашему железу работать так, как это задумал его производитель. Ядро linux, на котором построена Ubuntu, конечно содержит в себе модули для работы со многим железом. Однако, следует понимать, что засунуть в него поддержку всех существующих железок физически невозможно. Для этого и предусмотрена возможность установки драйверов от производителя, и просто сторонних драйверов. Вместе с тем, типовая ситуация, часто ставящая в тупик новичков: Вы купили новую видеокарту, или купили себе новый ноутбук, и при попытке установить систему сталкиваетесь с одним из нижеперечисленных явлений:
1. не удается стартовать с загрузочной флешки, - после экрана GRUB2 [загрузочное меню, из которого Вы выбрали пункт Try Ubuntu without install ("Запустить Ubuntu без установки") или Install Ubuntu ("Установить Ubuntu")] сразу возникает черный экран (иногда на нем посередине еще и курсор, который можно двигать - но более ничего не происходит)
2. сразу после установки системы и последующей перезагрузки Вы попадаете на описанный ранее по тексту черный экран (может с курсором, может - без)
3. сразу после установки системы и последующей перезагрузки Вы попадаете на экран авторизации (где вводится логин и пароль, и после ввода логина и пароля Вас либо выбрасывает на этот же экран авторизации, либо к уже дважды выше упомянутому черному экрану с возможной демонстрацией курсора).
С аналогичными проблемами Вы можете столкнуться и при попытке простого обновления проприетарного драйвера до более новой версии, либо при штатном обновлении ядра linux. В особенности это касается тех случаев, когда драйвер установлен с применением PPA производителя.

1. Случай с попыткой запуска системы с загрузочной флешки или загрузочного диска
1A. Флешка, подготовленная для запуска на машинах с UEFI
В данном случае загрузочное меню GRUB2 при корректно подготовленной загрузочной флешке будет показано автоматически. Бывают экзотические варианты, например при подготовке мультизагрузочных флешек отдельными специализированными утилитами загрузочное меню может быть модифицировано этими самыми утилитами, и там данная методика напрямую может не сработать, однако этот аспект выходит за рамки данной статьи.
Итак при загрузке Вы видите загрузочное меню, которое приведено на картинке:

По-умолчанию выбран пункт "Try Ubuntu without install" ("Запустить Ubuntu без установки") - он нам и нужен. Не давая машине начать загрузку (а времени на размышления у нас 10 секунд, - если ничего не предпринять, начнется загрузка пункта, выбранного по-умолчанию), нажимаем клавишу 'e' (латинская буква) на клавиатуре. Меню GRUB2 превращается в текстовый редактор, внешний вид которого приведен на рисунке:

Обратите внимание на обратные слеши (знаки /) - их суть лишь в том, что таким образом GRUB2 показывает Вам, что строка на этом не заканчивается, и написанное ниже - продолжение той же самой строки. Иными словами, не обращайте на эти символы внимания - вводить их с клавиатуры не следует, - GRUB2 Вас не поймет, фактически здесь мы имеем дело с таким кодом (убраны лишние пробелы - строка стала вмещаться в экран, слеши пропали сами):

Подчеркивание, которое стоит в начале самой первой строки - это курсор. Стрелочками на клавиатуре перемещаем курсор к строке, которая начинается со слова linux, и ведем курсор вправо, пока не поставим его в районе слов quiet и splash. Затираем эти два слова (клавишами backspace или delete, - по вкусу), и впечатываем туда с клавиатуры параметр ядра, с которым хотим загрузиться. В примере - вписывается параметр nomodeset:

Как только редактирование закончено, нажимаем клавишу F10 на клавиатуре, - пойдет загрузка. На сей раз во время загрузки будет показан подробный лог происходящих действий, поскольку мы убрали параметры quiet и splash, и дополнительно к ядру будет применен параметр nomodeset, обеспечивающий возможность загрузки на машинах с проблемной графикой. Если параметр помог - Вы попадете на рабочий стол Ubutnu (системы, запущенной в живом режиме).

1Б. Флешка, подготовленная для запуска в режиме Legacy
В данном случае загрузочное меню по-умолчанию не показывается. Вместо этого демонстрируется вот такой экран:

Как только мы его заметили - следует сразу же нажать клавишу Shift. Если успели - то экран преобразится до такого состояния:

Нам предлагают выбрать язык. Язык нас мало интересует. А вот задать кастомный параметр ядру хотелось бы. Нажимаем клавишу Esc. Меню выбора языков уходит, и экран становится таким:

Как видим, в соответствии с подсказкой, для выбора "Other Options" ("Другие опции") следует нажать клавишу F6. Нажимаем ее. Открывается список:

Всё для людей! Нам на выбор предлагают несколько параметров, чтобы подставить их в строку инициализации ядра:
acpi=off - не задействовать стандарт для управления питанием (Advanced Configuration and Power Interface). Параметр является крайней мерой, и работать в системе с ним в постоянном режиме не рекомендуется: будут неизбежные проблемы с выключением, уходом в сон и т.п. Применять тогда, когда иные не помогают, и исключительно до тех пор, пока не установите необходимые модули ядра для обеспечения корректной работы Вашего железа.
noapic - отключение расширенного программируемого контроллера прерываний (Advanced Programmable Interrupt Controller). Использование этой опции может привести к тому, что в сеансе, где она применена, не будет задействовано некоторое аппаратное обеспечение Вашего устройства (ноутбука, ПК).
nolapic - отключение локального расширенного программируемого контроллера прерываний (Local Advanced Programmable Interrupt Controller). Действие аналогочно действию noapic, разве что тип контроллера более новый.
edd=on - задействовать расширенный режим работы с дисками (Enhanced Disk Drive) (используется некоторыми материнскими платами для обеспечения корректного функционирования дисковых устройств)
nodmraid - не задействовать модуль dmraid (Device Mapper RAID), который используется для работы с RAID-массивами. Не рекомендован к применению, если Вы пытаетесь использовать RAID.
monodeset - использовать щадящий графический режим. Помогает запустить систему на машинах с проблемными видеоадаптерами, где стандартные модули ядра не справляются.
Стрелочками на клавиатуре выбираем желаемый (в нашем примере это по-прежнему nomodeset), и нажимаем либо клавишу пробел, либо клавишу Enter, - в результате напротив выбранного нами пункта меню появляется звездочка (символ *):

Можно выбрать сразу несколько пунктов. Снимается выделение той же клавишей, какой и ставится. Выбрав nomodeset, нажмаем клавишу Esc. Это приведет к закрытию меню. Теперь мы видим строку инициализации (кстати, доступную для редактирования руками - если есть в этом необходимость), в которой уже прописан параметр nomodeset:

Нажимаем клавишу Enter - пошла загрузка. Будет применен добавленный нами параметр ядра nomodeset. В случае успеха Вы попадете на рабочий стол  Ubutnu (системы, запущенной в живом режиме)

1В. Особенность загрузочного меню установочного носителя для машин с UEFI начиная с версии 19.04
Начиная с версии 19.04 Disco Dongo, загрузочное меню GRUB2 установочного носителя для машин с UEFI содержит еще по одному дополнительному пункту меню: "Try Ubuntu without install (Safe Graphics)" и "Install Ubuntu (Safe Graphics)". Если для загрузки в Вашем случае достаточно будет добавления параметра nomodeset - выбирайте данный пункт, - указанный параметр ядра в нем уже прописан:

Для загрузки с иными параметрами ядра обращайтесь к принципу, описанному в пункте 1А данной статьи.

2. Случай с попыткой запуска системы, уже установленной на жестком диске Вашего устройства (ПК, ноутбука)
Следует понимать при этом, что загрузка Вашей рабочей машины (ПК, ноутбука) в контексте рассматриваемого здесь вопроса, грубо говоря, происходит в три этапа:
1. инициализация BIOS/UEFI (это когда Вы видите, к примеру, логотип производителя материнской платы ПК или своего ноутбука),
2. инициализация загрузчика (в случае с Ubutnu по-умолчанию это загрузчик GRUB2),
3. загрузка ядра linux и собственно операционной системы Ubuntu.
Итак, имеем один из вышеперечисленных симптомов (черный экран, невозможность авторизации и т.п.). Перезагружаем устройство (ПК, ноутбук), и на этапе инициализации BIOS/UEFI попадаем в загрузочное меню GRUB2. Выглядит оно примерно так:

Если на Вашем устройстве (ПК, ноутбук) Ubuntu - единственная система, то по-умолчанию это загрузочное меню не показывается. Для того, чтобы в него попасть в этом случае на этапе инициализации BIOS/UEFI следует либо зажать и держать, либо многократно понажимать клавишу Shift (или клавишу Esc). Если данная манипуляция все равно не позволяет попасть в загрузочное меню - убедитесь в том, что:
1. для реального нажатия Shift (или Esc) на Вашей клавиатуре нет необходимости нажимать его одновременно с Fn (типичная особенность отдельных моделей современных ноутбуков), если такая необходимость есть - попробуйте использовать для доступа к GRUB2 сочетание клавиш Fn+Shift или Fn+Esc.
2. по клавише Esc или Shift не срабатывает какое-нибудь иное меню, предустановленное производителем Вашего ноутбука (например, штатное загрузочное меню) в этом случае следует либо вообще отключить данное меню на период экспеиментов средствами BIOS или предустановленной утилиты конфигурирования UEFI, либо пытаться "ловить момент" - соответствующая клавиша должна быть зажата тогда, когда ее уже не воспринимает Ваш BIOS/UEFI, но еще воспринимает загрузчик GRUB2, стартующий сразу после BIOS/UEFI. В частности, если по клавише Esc у Вас загружается Boot Menu от производителя - можно выбрать в нем пункт, соответствующий запуску Ubuntu, нажать клавишу, соответствующую инициации запуска (обычно, это Enter), и сразу после этого использовать Shift либо Esc в соответствии с описанной ранее методикой.
Попав в меню GRUB2, видим, что в нем по-умолчанию выбран пункт 'Ubuntu', и времени на размышления у нас 30 секунд. Если ничего не делать - будет выполнена загрузка с этим пунктом. Для добавления дополнительных параметров ядра нажимаем клавишу 'e' (латинская буква), и экран GRUB2 перевоплощается в экран текстового редактора:

Вновь обращаю Ваше внимание на обратные слеши (знаки /) - их суть лишь в том, что таким образом GRUB2 показывает Вам, что строка на этом не заканчивается, и написанное ниже - продолжение той же самой строки. Иными словами, не обращайте на эти символы внимания - вводить их с клавиатуры не следует, - GRUB2 Вас не поймет, и этого маневра не оценит.
Подчеркивание, которое стоит в начале самой первой строки - это курсор. Стрелочками на клавиатуре перемещаем курсор к строке, которая начинается со слова linux, и ведем курсор вправо, пока не поставим его в районе слов quiet и splash. Затираем эти два слова (клавишами backspace или delete, - по вкусу), и впечатываем туда с клавиатуры параметр ядра, с которым хотим загрузиться. В примере - вписывается параметр nomodeset:

После того, как редактирование закончено, следует нажать клавишу F10. Загрузка пойдет в обычном режиме, с тою лишь разницей, что во-первых, за счет того, что мы убрали параметры ядра quiet и splash вместо неинформативной картинки будет показан подробный лог загрузки, а во-вторых, и это в данном случае главное - будет применен параметр ядра nomodeset. В случае успеха Вы попадете на рабочий стол своей системы (или на экран авторизации пользователя, с которого на сей раз сумеете авторизоваться, если проблема состояла в этом).
После того, как Вам удалось войти в систему таким образом (прописав один из ранее поясненных параметров ядра), - следует приступить к выявлению и устранению проблем, мешающих нормальной загрузке. С высокой долей вероятности, Вам необходимо проверить установлены ли у Вас (и правильно ли установлены) все необходимые модули ядра (драйвера) для обеспечения корректной работы Вашего железа.
 
Ссылки:
1. Kernel Mode Setting. Статья в Ubuntu wiki (рус.): Kernel Mode Setting
1. Информация по параметрам ядра Linux (англ.): fxr.watson.org
2. Информация по типовым параметрам ядра, применяемым к Ubuntu (англ.): help.ubuntu.com
« Последнее редактирование: 19 Апреля 2019, 11:12:53 от zg_nico »
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Предлагаю обсудить:
а) целесообразность этой статьи в вики
б) ее местоположение в иерархии вики
в) корректность ее наполнения (что-то выбросить, что-то добавить и т.п.)
Прошу тапками не бросаться - проба пера всё-таки
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6690
  • 20% Cooler
    • Просмотр профиля
а) Дополнительная информация нужна всегда.
б-в) вики могут править все пользователи. Создайте страничку, а там уже общими усилиями доведём до ума.

Быстрогугл:
https://help.ubuntu.ru/wiki/ubuntu_12.04_проблемы_твики
+ первый раздел про черный экран
- неактуально, поддержка закончилась

https://help.ubuntu.ru/wiki/kms
инфы мало - предлагаю эту статью и дополнить.
« Последнее редактирование: 17 Апреля 2019, 23:40:32 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
Быстрогугл
Прикольно. А я эту, хотите верьте, хотите нет - раньше не видел  ;D
Цитата: Пикник. Мракобесие и джаз
...А не поверишь - всё украдено до нас...
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1772
    • Просмотр профиля
Полагаться на статьи в вики, да и вообще на любую другую инфу довольно сомнительно, т.к. есть существенные разночтения, особенно трудно тем, кто переходит с винды на linux.
например по ссылке выше на быстрогугл:
Настройка
Спящий режим (suspend to disk)
проверить работоспособность спящего режима
sudo pm-hibernate (это-же гибернация со сбросом инфы на диск).
 В то-же время например на oszone.net:
"При переходе в спящий режим все открытые документы и параметры сохраняются в памяти, и компьютер переходит в режим пониженного потребления электроэнергии, а при переходе в режим гибернации все открытые документы и программы сохраняются на жестком диске в файле hiberfil.sys, и затем компьютер выключается".Это означает, что сон, это сохранение инфы в оперативе и второй режим гибернация, сброс на диск.
На microsoft.com два пути для экономии эл.энергии "перевод его в спящий режим или в режим гибернации".
 А в самой вики есть ещё и понятие Ждущий режим, "В отличие от спящего режима, для ждущего режима требуется аппаратная поддержка со стороны оборудования".
На большинстве сборок linux в электропитании я вижу только спящий режим, в linux это гибернация, а где ждущий режим аналогичный спящему режиму в Windows ?

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
vladimirzhuravlev, статья не столько для полагания, сколько для возможности отсылки к ней новичка со ссылкой на кокретный пункт, дабы по 300 раз одно и то же не прописывать. На форуме только моих ответов про эти "стрелочки на клавиатуре" с два десятка в лёгкую гуглятся, - и всякий раз, тем не менее, в ответ на рекомендацию "загрузитесь с параметром ядра..." читаешь в ответ "а как?". Потому мне и представляется целесообразным описать в виде такого вот комикса этот процесс, - чтобы в дальнейшем можно было просто дать соответствующую ссылку, а не копипастить, и не грузить на lostpic одни и те же скриншоты.
Пример про гибернацию и сон не понятен - что Вы этим пытались донести? В linux поддерживается и то и другое, насколько я знаю, меж тем не пользовался я ни тем, ни другим, потому в вопросе не сведущ. В Википедии есть пара статей, поясняющих разницу между этими понятиями, но Вы ее и так уже упомянули.
По статье: думаю, следует добавить ссылки на установку драйверов видеочипов из Вики. Что-то вроде "смотрите также...".
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
От собака дискотечная! ;D
Цитата: Новость на Opennet
В меню загрузчика GRUB добавлен новый режим "Safe Graphics", при выборе которого система загружается с выставлением опции "NOMODESET", что позволяет в случае проблем с поддержкой видеокарт загрузиться и установить проприетарные драйверы
Скриншоты под нож, статью на перепись...
 :-\
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн vladimirzhuravlev

  • Старожил
  • *
  • Сообщений: 1772
    • Просмотр профиля
Но ведь на всех ранее выпущенных образах нет этой опции новой граба, не все-же новички начинают с "крайних" версий ?

Оффлайн firerat

  • Активист
  • *
  • Сообщений: 254
  • Audaces Fortuna Juvat
    • Просмотр профиля
От собака дискотечная!
постоянно такая фигня происходит. :)
Но vladimirzhuravlev прав. Не стоит вырезать данный блок информации. Вот когда окончательно отомрут версии без этого пункта, тогда и вырезать можно. А лучше, спрятать под спойлер и пусть все равно остается, мало ли какие случаи бывают...
Ubuntu 20.04 Unity

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
не все-же новички начинают с "крайних" версий
Здесь есть одна тонкость: новичок, который читает разные ресурсы перед тем, как водрузить себе незнакомую доныне ОС на рабочую машину, - он и не нуждается в данной статье, ему достаточно было бы KMS в том варианте, в котором она сейчас есть. Но есть и другой новичок. Тот, что вечно торопится. Написанное мною нацелено как раз на ту целевую аудиторию, которые предпочитают набивать шишки прямо по ходу действия (сперва сломал - после открыл инструкцию). И, поскольку такой человек в своих действиях сильно спешит, то ему нЕкогда вникать в то, какие там версии вообще есть - он с высокой долей вероятности скачивает именно что последнюю из доступных. Так что не упомянуть про это нельзя.
Не стоит вырезать данный блок информации
Я просто не верно выразился. Вырезать конечно не следует, - нужно просто дополнить. Добавил пункт 1В. Все равно, как только что показал прогон на эмуляторе qemu, - эти пункты меню доступны только в случае с UEFI. Надо будет попробовать накатить эту систему на виртуалку, - интересно, сохраняется ли данный пункт меню уже в установленной системе...  ???


Пользователь добавил сообщение 19 Апреля 2019, 12:59:44:
Запостил статью.
Мне показалось разумным разместить ее в разделе FAQ

Пользователь добавил сообщение 19 Апреля 2019, 12:59:31:
инфы мало - предлагаю эту статью и дополнить.
Мне кажется - в той статье имеет смысл вообще не говорить о "черном экране" как явлении. Вместо этого туда неплохо бы прописать некоторые (все - явно не получится) параметры ядра, и описать возможные сценарии их использования. Подготовлю черновик и создам отдельную тему по этому поводу...
« Последнее редактирование: 19 Апреля 2019, 12:59:44 от zg_nico »
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

Оффлайн Allj

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Великолепная статья!!!!!! Еслиб не она я (а я новичок) так бы и не установил и не запустил бы систему. Благодарю. Появился вопрос по этой теме: Благодаря описанному методу можно устанавливать и запускать систему, но каждый раз необходимо прописывать "pci=noacpi" перед запуском, скажите, как можно сделать так, чтобы этот параметр acpi при старте всегда был выключен))

Оффлайн zg_nico

  • Автор темы
  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3513
  • Nil mortalibus arduum est
    • Просмотр профиля
как можно сделать так, чтобы этот параметр acpi при старте всегда был выключен
Например вот так (шаг 2, вместо video=1280x800 везде по тексту подразумеваем свой параметр ядра pci=noacpi)
Thunderobot G150-D2: Intel SkyLake Core i7-6700HQ 2.60GHz, 8Gb DDR4 2133 MHz, Intel HD530, NVidia GeForce GTX 960M 2Gb.  Ubuntu 16.04 64x [Unity], KUbuntu 18.04 64x.

 

Страница сгенерирована за 0.073 секунд. Запросов: 21.