Долгая загрузка лаптопа

vasek
Проверил у себя - более 3000
ага, энтропия постоянно меняется(растёт, сбрасывается), и на момент старта системы её у ТС может и не хватать
RusWolf
feannir, nvidia какой модели?
GeForce MX150 (GP108M, rev a1)
С энтропией - установил haveged, запустил, увеличилось на 1000-1500 примерно. Сейчас 2983. Однако же после входа в сеанс система неработоспособна около минуты.
Похоже, что nouveau задавлено, сообщений, о каких говорил вначале, больше не выводится нигде (делал через blacklist в /etc/mkinitcpio.d/ по вики.
Однако начало сеанса по прежнему омрачается задержками.
Странно, что systemd-analyze не даёт ничего, энтропия достаточна, пара задержек (половина из них) удалены успешно... Что-то собралось сразу несколько и не желают признаваться.... Каким заклинанием командой вывести их из сумрака?
feannir
GeForce MX150 (GP108M, rev a1)
Может стоит поставить нормальный драйвер и настроить PRIME render offload.
feannir
Странно, что systemd-analyze не даёт ничего, энтропия достаточна, пара задержек (половина из них) удалены успешно… Что-то собралось сразу несколько и не желают признаваться…. Каким заклинанием командой вывести их из сумрака?
systemd отработал нормально, все службы запущены без задержек и, похоже, проблемы при работе в текстовой консоле (до старта Х-ов) нет.
Насколько понимаю, проблема возникает только при запуске Х-ов, то есть после загрузки Х-ов проблем не наблюдается? - все работает нормально?
Если это так, то задержка идет на каком то процессе, точнее, системном вызове при запуске Х-ов и нужно этот вызов отловить. Скорее всего проблема обусловлена видеодрайвером. ..... а может долго стартует какая-нибудь прога, записанная в автостарт?
Я не использую ни nvidia ни amd и практически их не знаю, а потому ничего советовать не буду.
А вот в части использования инструмента для возможного поиска причины могу посоветовать два инструмента - strace или sysdig, но работа с ними не так то и проста, да еще и для отладки Х-ов, которая и не очень то описана.

PS - для начала можно сделать самое простое - посмотреть лог запуска программ при старте Х-ов, для чего стартуй без DM, используя .xinitrc, но вместо строчки для запуска DE/WM, типа
exec spectrwm (пропиши свое)
используй следующее
exec dbus-launch --exit-with-session spectrwm > "/tmp/spectrwm-$USER.log" 2>&1
После запуска в /tmp появится файлик типа spectrwm-vasek.log - может в нем что то будет интересное, хотя если проблема связана с видеодрайвером, то вряд ли что будет интересное ... но начинать с чего то нужно.
Ошибки не исчезают с опытом - они просто умнеют
Я бы попробовал для начала посмотреть время выполнения системных вызовов при загрузке Х-ов, например, так (этого нигде не найдешь ...)
Загружаемся в текстовую консоль (Х-ы не запускаем), меняем файл /etc/X11/xinit/xserverrc, например, приводим к виду (изменив на нужное)
cat /etc/X11/xinit/xserverrc
#!/bin/sh
#exec /usr/bin/X -nolisten tcp "$@"
exec /usr/bin/strace -f -T -o /home/vasek/strace_X.log /usr/bin/X -nolisten tcp "$@"

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

сохраняемся и стартуем Х-ы - не пугаемся, время загрузки увеличится, НО сразу после загрузки убиваем (выходим) Х-ы и приводим файл /etc/X11/xinit/xserverrc к нормальному виду
cat /etc/X11/xinit/xserverrc
#!/bin/sh
exec /usr/bin/X -nolisten tcp "$@"
Можно просто не нужную строку закоментировать, а нужную раскоментировать.
Снова загружаем Х-ы и анализируем файл strace_X.log, в котором в конце каждой строки будет указано время выполнения системного вызова, типа такого
9218  openat(AT_FDCWD, "/proc/9232/cmdline", O_RDONLY) = 27 <0.000027>
9218  read(27, "tilix\0", 4097)         = 6 <0.000019>
9218  close(27)                         = 0 <0.000015>
… ну и ищем строки с большим временем … (здесь же будут и проги автозапуска, например, у меня показан tilix)
Ошибки не исчезают с опытом - они просто умнеют
feannir
systemd-analyze не даёт ничего
Некоторые любят еще смотреть анализ критической цепочки - systemd-analyze critical-chain - толку мало, но посмотреть не долго ...
systemd-analyze critical-chain [UNIT...] prints a tree of the time-critical chain of units (for each of the specified UNITs or for the default target otherwise). The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. Note that the output might be misleading as the initialization of one service might depend on socket activation and because of the parallel execution of units.

PS - обрати внимание на строки, выделенные красным цветом
Ошибки не исчезают с опытом - они просто умнеют
vasek
время выполнения системных вызовов при загрузке Х-ов
Добавьте пожалуйста в блог

https://archlinux.org.ru/forum/topic/17049/

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

EDIT 1 - вообщем решил написать новый блог - имхо, так лучше - пусть будет отдельно, возможно будет и дополняться.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.