LINUX.ORG.RU

Как дебажить 90 секундную задержку запуска компьютера?

 , ,


0

2

Здравствуйте, уважаемые!

После очередного обновления пакета linux-firmware в archlinux компьютер стартует с 90 секундной задержкой. Всё это время чёрный экран. В dmesg разрыв примерно выглядит так:

[    5.825856] Bluetooth: hci0: BCM4350C5 (003.006.007) build 0000
[    5.826730] Bluetooth: hci0: BCM4350C5 'brcm/BCM4350C5-0a5c-6414.hcd' Patch
[    5.888068] usb 1-8: Found UVC 1.00 device Integrated Camera (5986:2118)
[    5.909267] usbcore: registered new interface driver uvcvideo
[    6.474927] Bluetooth: hci0: BCM4350C5 USB 37.4 MHz wlbga_BU_eLNA
[    6.474950] Bluetooth: hci0: BCM4350C5 (003.006.007) build 2724
[   93.801368] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   93.801373] Bluetooth: BNEP filters: protocol multicast
[   93.801377] Bluetooth: BNEP socket layer initialized

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

В dmesg есть и другие ошибки, но они точно также отображаются и на меинтейнерском ядре. Часто у systemd таймауты по 90 сек, но как найти ошибочный сервис, если в нём дело? systemd-analyze blame ничего интересного не показывает.

Большое спасибо за подсказки!

★★

Опять рач. Ничего удивительного. Попробуй блютуф вырубить аппаратно. Проверь результат. Возможно он пытается что то подключить по блютуфу (уши, мыши и т.д.). Что за ethernet emulator по блютуф?

alll81
()
Последнее исправление: alll81 (всего исправлений: 2)

Судя по логам в твоём блютуфном патче какой-то безумный global kernel lock непонятно зачем, вот ядро и ждёт теперь пока блютуф отдуплится или таймаут истечёт. Ковыряй драйвер блютуфа.

ЗЫ: Приношу соболезнования по поводу того, что в компе оказалась железеа броадкома. Оно всегда таким было, и, видимо, всегда таким будет. Если блютуф вынимается - ну там M.2 платка или подобное - попробуй найти не броадком и заменить, чтобы с патчами не связываться.

Stanson ★★★★★
()
  1. Из логов видно, что тормозит Bluetooth.

  2. На ядре, поставляемом системой, у меня не работает блютус, поэтому собираю патченное.

Вывод: твой патч не работает и отваливается с таймаутом.

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

Вероятно глючит на стадии device-probing. Тут уже без ковыряния сырцов и под твой конкретный случай вряд-ли с ходу разберёшься.

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

Вероятно глючит на стадии device-probing.

А не подскажешь, где логи на эту тему найти? Мой вопрос не о том, как решить проблему, а где найти подсказки в логах, дебаге.

rmu ★★
() автор топика

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

А какое значение preempt использовалось при сборке (CONFIG_PREEMPT_NONE, CONFIG_PREEMPT_VOLUNTARY, CONFIG_PREEMPT, или, не дай б-же, CONFIG_PREEMPT_RT)? Просто я раньше сталкивался с броудкомовским ядерным кодом (в другом контексте), и для корректной работы с CONFIG_PREEMPT его пришлось допиливать.

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

По PREEMPT у меня такие параметры:

CONFIG_PREEMPT_BUILD=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
CONFIG_PREEMPTION=y
# CONFIG_PREEMPT_DYNAMIC is not set
CONFIG_PREEMPT_RCU=y
CONFIG_PREEMPT_NOTIFIERS=y
# CONFIG_PREEMPT_TRACER is not set
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
rmu ★★
() автор топика

Попробуй поиграться с разными таймаутами: https://github.com/torvalds/linux/blob/master/include/net/bluetooth/hci.h#L457-L465

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

anonymous
()

Если беспроводной модуль не припаян, то проще всего будет его заменить на Intel. Mediatek вроде тоже ничего, а какой-то Realtek в виде USB-донгла TP-Link и вовсе из коробки работает с контроллером Xbox, в отличие от Intel AX. Главное, чтобы не Broadcom.

anonymous
()

Я на одном ноуте поменял модуль. Не помню точно на какой, но точно broadcom. Wifi5 & bt. Тоже примерно так же инициализируется.
Что с дровами из ядра, что из driver update. Забей. У broadcom видимо так надо...

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

Практически раскопал, что происходит. Дело вообще не в блютус драйвере.

Оказалось очень полезной команда:

journalctl -b --grep=fail

Позволяет искать по всем systemd сервисам регуляркой. Вот тут-то и вылезло, что у меня валится запуск TPM2 устройства. Если оно вообще есть на материнке.

rmu ★★
() автор топика

В итоге оказалось, что у меня не хватало каких-то настроек для устройства TPM 2.0, которое у меня на материнке есть. Вычислил это тем, что грепал объединённый вывод systemd.

journalctl -b --grep=fail

Логи показали, что не запускался сервис dev-tpmrm0.device. Порыл в инете, вышел на тему TPM.

Проблему решил тем, что в конфиге ядра добавил в секции TPM галочек, которые подсмотрел в конфиге меинтейнерского ядра. Как итог загрузка снова стала 10 секунд.

Спасибо всем за подсказки!

rmu ★★
() автор топика