LINUX.ORG.RU

Загадка с Only Driver Needs System

 


0

1

При установке Debian в Экспертном режиме есть возможность выбрать не все драйверы, а только те, которые требуются данной системе.
Это уменьшает занятость памяти и пр., поэтому попробовал этот вариант установки.
Сначала ставлю консольный режим, потом после проверки накатываю Иксы.

И вот что получилось:
- иногда после такой установки и консоль и Иксы работают замечательно, вопросов нет;
- но иногда при точно такой же установке в том же порядке на таком же компьютере в консольном варианте все работает нормально, но после доустановки Иксов происходит странное поведение системы:

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

Реакции на клавиатуру нет никакой, как по C-A-D, так и при попытках переключения по tty1... tty7.

Вроде как коматоз. Reset конечно помогает, но не только, нашлись есть еще 2 варианта «мягкого» возврата из этого непонятного состояния:

1) Кратковременное нажатие на PoweOn, и тогда не сразу, как это обычно бывает, а примерно аж через ~1 минуту компьютер выключается.
2) Поскольку сеть этого компьютера остается работоспособной, это видно по пингу бегает, можно по ssh потушить систему командой

# poweoff

Чтобы это все значило?
И стоит ли доверять этой ограниченной установке драйверов?

★★★★★

иногда после такой установки и консоль и Иксы работают замечательно, вопросов нет

Именно в такой момент следует перестать переустанавливать систему.

thesis ★★★★★
()

Чтобы это все значило?

Ответ кроется в логах dmesg, messages (или как то там по другому в systemd, более модно и нечитаемо просто тупо глазами, нужно как в винде смотреть через костыль journalctl) и Xorg.0.log.

И стоит ли доверять этой ограниченной установке драйверов?

Судя по формулировке поста ты не понимаешь как и что происходит, а так же какие именно «драйверы» (модули ядра) нужны твоему компьютеру. Так что конечно же не стоит, этот вариант рассчитан на тех кто понимает как происходит загрузка модулей, что именно нужно этому железу и способен самостоятельно допилить и разрулить конфигурацию.

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

Размер занимаемый ядром в памяти в итоге будет одинаков, так как в обоих случаях загруженными останутся только те модули которые нужны для физически наличествующего железа, остальное ядро выгрузит само.

Ладно, чуть чуть приподниму покров тайны. Если ты ставишь систему в экспертном режиме, БЕЗ Иксов, в режиме голой консоли, то модули ядра для поддержки иксовой части видеодрайвера системе «не нужны» (режим не случайно называется «only needed drivers»), ядрёная чОрная консолька рисуется через предельно простой фреймбуфер. А вот когда ты ставишь и ЗАПУСКАЕШЬ иксы — ядро «автомагически» пытается подгрузить нужные для работы иксов модули в память. И вот тут что то идёт не так, что именно — смотри в логах.

Иксы теоретически могут работать и через голый ядерный фреймбуфер, медленно и плохо, это «унаследованный» режим «для нищих», например для серверов со впаянными в мать VGA 2d видеоогрызками, которые кроме фреймбуфера ничего больше не умеют и нужны чтобы один раз настройки BIOS показать и консоль. Современные DE типа KDE и Гнома скорее всего на этом даже и не запустятся, так как им полноценная поддержка 3d нужна, а не простейший буфер картинок в памяти.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 4)
Ответ на: комментарий от Jameson

Судя по формулировке поста ты не понимаешь как и что происходит, а так же какие именно «драйверы» (модули ядра) нужны твоему компьютеру.

Разве я должен понимать какие? Установщик по этому поводу не задает мне вопросов, а сама формулировка «only needed drivers» намекает на то, что система сама знает и устанавливает те драйвера, которые ей нужны.

Наигрался с этим «only» и хватит, лучше воспользуюсь вашим советом -

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

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

Разве я должен понимать какие?

Конечно. Режим экспертный, ты же эксперт?

Установщик по этому поводу не задает мне вопросов, а сама формулировка «only needed drivers» намекает на то, что система сама знает и устанавливает те драйвера, которые ей нужны.

Поскольку ты эксперт тебе и не задают вопросов, тебе создают минимально рабочий «скелет», а остальное ты должен настроить сам, ручками. В режиме загрузки до голой ядерной консоли модули для поддержки иксовой части видедрайверов «не нужны», так как иксы не стартуют и возможно даже не установлены. Вот они ядром и не загружаются. Всё честно, «only needed drivers», как и было обещано.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Хм. А как тогда ставить Иксовые среды, которых нет в списке установщика ни в простом, ни в экспертном режиме?

К примеру, захотелось установить twm - а фигушки, нет его там давно!
Получается, его надо ставить в 2 этапа - сначала консольную установку, а потом доустановку twm.

При этом да, консольная установка должна включать в себя «all drivers».

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)
Ответ на: комментарий от chukcha

Иксовым средам ничто не мешает существовать параллельно. Можно спокойно к тому что у тебя там есть доставить twm и настроить его запуск в качестве отдельного сеанса. Существующие сеансы это не сломает. Можешь хоть десять DE и WM иметь параллельно, без проблем, они друг другу не мешают. Просто у каждого свой сеанс настраивай и всё.

Jameson ★★★★★
()

есть возможность выбрать не все драйверы, а только те, которые требуются данной системе. Это уменьшает занятость памяти

Это уменьшает только занимаемый на диске объём. Поэтому если можешь пожертвовать полгига места на диске, чтобы установить все модули, лучше не удалять лишние модули. Потому что

иногда при точно такой же установке в том же порядке на таком же компьютере в консольном варианте все работает нормально, но после доустановки Иксов происходит странное поведение системы

Потому что иногда могут понадобиться модули, которые вроде как раньше были не нужны. Сложно автоматически угадать исчерпывающий список модулей, которые могут понадобиться пользователю.

i-rinat ★★★★★
()
Ответ на: комментарий от Jameson

Иксовым средам ничто не мешает существовать параллельно.

Это знаю, и сто лет пользуюсь, вопрос был не об этом

Потому что иногда могут понадобиться модули, которые вроде как раньше были не нужны. Сложно автоматически угадать исчерпывающий список модулей, которые могут понадобиться пользователю.

Это тоже понятно, но не зря же указал:

- но иногда при точно такой же установке в том же порядке на таком же компьютере

Удивило то, что выполняя точно такие же шаги по установке, и даже не успев воспользоваться системой, получаю разный результат - во что удивило!

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

Ну поскольку у тебя не настроена вручную загрузка нужных модулей, и иксы видимо тоже не настроены, и ты полагаешься на их автоконфигурацию — вангую что возникает «гонка». Какие то модули либо не успевают динамически подгрузиться, либо грузятся в неверном порядке и конфликтуют. Так как ты не сказал что у тебя за видеокарта и логов тоже не показал можно только гадать. Возможно у тебя подгружаемая фирмварь не установлена, возможно у тебя конфликтуют нвидиа и невоняу драйверы, я понятия не имею что ты ставишь, как и какое у тебя железо.

Повторяю — ответы на все загадки сокрыты в логах ядра и иксов

А вообще олдскульный путь таков — сначала до консоли, потом ставим и НАСТРАИВАЕМ иксы, ГОЛЫЕ иксы, так чтобы они стартовали командой X, показывали тебе вырвиглазный фон с двигающимся крестиком, срубались бы через стрл+алт+бэкспейс, или через переключение обратно в консоль по ктрл+алт+F1(2,3, и тп) и kill процесса, а также писали свои логи без ошибок в них.

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

Все настолько привыкли к автоконфигурации иксов что разучились их настраивать блин...

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 6)
Ответ на: комментарий от Jameson

вангую что возникает «гонка».

Раз вы, уважаемый употребили это слово, то поневоле навели на нехорошие воспоминания об этом, извиняюсь, придурке - Поцнере, который «изобрел» systemd и pulse.
Из-за systemd и происходит хаотичность и непредсказуемость очередности загрузки модулей - гонка же!

Хотя почему извиняюсь - придурок, по моему мнению, он и есть придурок.
До него была стройная система System V и все было понятно. стройно и предсказуемо.

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

стройная система System V и все было понятно. стройно и предсказуемо.

Лол, задолго до systemd и Поттеринга было модно ругать System V init за обилие скриптовой лапши вызывающей друг друга, запутанность, избыточность и хвалить минимализм и стройность bsd init. И так как я тогда любил слакварь — у меня был именно bsd init. Один init, один плоский скрипт, одна слакварь.

А потом я полюбил Генту и сейчас люблю OpenRC. Но разные иниты уже не хейтю, так как у них у всех есть плюсы и минусы, и системд весьма хорош уже, и главный его минус в том что нужно его изучать и документацию читать.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Да, прогресс остановить нельзя. Но лучше бы он придумал что-то другое, не столь затрагивающее систему.

системд весьма хорош уже, и главный его минус в том что нужно его изучать и документацию читать.

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

Вот есть же созданная редхатавцами прекрасная система по безопасности - SElinux.
Но много ли кто ею пользуется? «Не только лишь все», потому что сложность ее и документации зашкаливает.
Apparmor звезд с неба не хватает, зато заметно проще в освоении и это, имхо, существенно перевешивает.

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

До него была стройная система System V и все было понятно. стройно и предсказуемо.

System V и Debian это разные ОС. В Debian были sysv-like скрипты, со своими особенностями. К System V они имели очень опосредованное отношение. Но чтобы каждый раз не писать «скрипты инициализации, вдохновлённые System V, но сильно изменённые для поддержки новых фич, который в System V не было, и изменённые для удобства использования в Debian», говорили просто sysv. Там была и параллельная загрузка, в которой можно было легко получить гонку, если написать скрипты неправильно, или забыть обновить зависимости после правки скриптов. Замучаешься отлаживать, если не знаком с тонкими деталями. К sysv-like скриптам ещё и udev был прилеплен сбоку, который толком в концепцию sysv не укладывается, ведь в 80-х не было горячего подключения устройств.

Из-за systemd и происходит хаотичность и непредсказуемость очередности загрузки модулей

У меня в системе даже если init’ом грузить просто /bin/bash, очерёдность загрузки модулей видеокарт не определена чётко. Иногда intel первым загружается, иногда radeon. Из-за этого всегда загадка, на что /dev/dri/renderD128 указывает, а на что — /dev/dri/renderD129. У GStreamer-vaapi нет нормального детектирования карт, он всегда берёт /dev/dri/renderD128, из-за чего от загрузки к загрузке то работает, то не работает.

На одном ноутбуке использовал скрипт, который ограничивал частоту intel iGPU, чтобы тот не тащил основные ядра в буст. Всё работало под sysv-like, пока система стояла на HDD. Поменял на SSD, и внезапно оказалось, что скрипт грузится раньше, чем загружается модуль. И нет нормального способа внутри sysv-like скриптов гарантировать, что скрипт загрузится после модуля. В итоге пришлось прикручивать скрипты к конфигам modprobe.

И где эта стройность и предсказуемость sysv-like? Да вот же она, в 1983 году! А в 2010-х никакой стройности и предсказуемости уже не было, как и System V.

Дописывал скрипты под себя для sysv-like в Debian, дописывал конфиги для systemd под себя в Debian. Заметной разницы в трудоёмкости нет. Что там, что сям приходилось искать документацию и гуглить. В systemd хотя бы есть хоть какая-то документация, в которой можно найти нужно. В sysv-like скриптах нужно было разбираться в этих скриптах. И так как они напичканы спецификой Debian, информация из интернета про другие дистрибутивы мало что давала.

Хотя нужно добавить, что для systemd было чуть проще. Там systemctl предупреждает, мол, ты файл поменял, наверное, хочешь новую версию, но я буду работать со старой, пока ты не дашь вот такую вот команду, которая потребует от меня перечитать конфиги заново. Это предупреждение очень много нервов сэкономило. В sysv-like скриптах в Debian я такого предупреждения не припомню. Там просто была мистика. Кажется, insserv нужно было вызывать. До сих пор не знаю, что именно он делал, в деталях.

i-rinat ★★★★★
()
Ответ на: комментарий от Jameson

bsd init и правда лучше, но на фоне ужасного systemd разница уже не так заметна. Впрочем у bsd init тоже минусы имеются, оно обросло лапшой уже.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от i-rinat

System V и Debian это разные ОС.

Вообще-то в данном контексте подразумевал не Debian, а CentOS 5 и 6 - изумительная система! Была.
До сих на некоторых серверах у меня крутится. Ностальгия по таким простым и логичным ситемам.
А потом пошло и поехало, systemd - мода же, блин!

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

Вообще-то в данном контексте подразумевал не Debian, а CentOS 5 и 6

Намекаешь на то, что там были оригинальные скрипты из System V, без изменений? Везде было что-то своё.

Ностальгия по таким простым и логичным ситемам.

А ты много скриптов для демонов сам писал? Я просто плохо понимаю, что там простого и логичного.

i-rinat ★★★★★
()
Ответ на: комментарий от shTigrits

Поддерживаю. Недавно бился с компом, типа зависал, Раз 10 за 2 недели. Как бы в DE ни курсор не ползает, ни якобы клавиатура не работает. А заметил в очередной раз, что LED HDD то помигивает, и комп пингуется. Ну залез по SSH на него в /var/log/syslog, а там какие-то стеки, таймауты от драйвера noveau. С драйверами копаться не стал, а выкинул просто видяху, мне и встроенной хватает для работы.

Кстати, во времена sysvinit dmesg писался на диск, как только появлялась ФС. Нынче при systemd dmesg все берет из памяти и старые записи от старта системы просто исчезают.

bugs-bunny
()
Ответ на: комментарий от Jameson

Ну что же, могу теперь точно сказать, в чем причина такого артефактного поведения Иксов.

После нашего обсуждения при установке Debian-11 начал использовать не «only», а «all», т.е. все драйвера.
И вот, после очередной установки даже «all» тем не менее, поймал точно такой же косяк:

- экран черный
- курсор мигает
- клава не действует ни по C-A-D, ни по C-A-Bs.
- но сеть работает.

В Иксовых логах обнаружился такой фрагмент:

[     4.366] (EE)
Fatal server error:
[     4.366] (EE) Caught signal 6 (Aborted). Server aborting
[     4.366] (EE)
[     4.366] (EE)
Please consult the The X.Org Foundation support at http://wiki.x.org for help.
Ну фатал так фатал, и поскольку старый стал, ленивый, не люблю копаться логах, а обращаться в ихний саппорт тем более, просто тупо переустановил Иксы, использовав волшебный ключик
apt install --reinstall ....
И Иксы после ребута чудесным образом заработали!
И наверное, с «only» драйверами после очередной переустановки они тоже могли бы заработать.

Фиг его знает, может это и называется «гонками» (в электронике употребляется термин «критические гонки»), но тогда хочется еще раз хорошенько лягнуть Поцнера с его новациями, которые породили новое свойство Linux:
- Непредсказуемость результатов при абсолютно одних и тех же действиях
.
Вот такая, млин, история.

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

Для меня оказалось неожиданностью, что на успех инсталляции Иксов влияет, имхо, порядок параметров.

Например, раньше устанавливал так:

apt install -y --no-install-recommends xserver-xorg  twm  slim  xterm
и успешный результат получался мягко говоря где-то через раз.

Сегодня попробовал чуть изменить команду:
apt install -y --no-install-recommends xserver-xorg  twm  slim  xterm
и результат трижды получился успешным.

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

А что думаете вы?

chukcha ★★★★★
() автор топика
Ответ на: комментарий от thesis

Исправляю прежнюю машинальную ошибку:

Например, раньше устанавливал так:

apt install -y --no-install-recommends xserver-xorg  xterm  slim twm

а теперь так:

apt install -y --no-install-recommends xserver-xorg  twm  slim  xterm

На этот раз, надеюсь, не ошибся :=)

chukcha ★★★★★
() автор топика
Последнее исправление: chukcha (всего исправлений: 1)