LinuxForum.Fans
Тема

МСВС - часто зависает при инициализации USB (при загрузке ОС)

Автор: Suoshi 6 сообщений 6820 просмотров
#173205

По работе пришлось столкнуться с МСВС 3.0 релиз14 (ядро 2.4.32 без smp) на процессорном модуле (одноплатный компьютер, all-in-one-module) CP306 производства Kontron.
Если в BIOS'е процессорного модуля включить только "USB controller 1", выключить "USB controller 2" и "USB controller 3", а также выключить поддержку USB2.0 (USB EHCI Host Controller), то МСВС грузится стабильно. Однако, при включении "USB controller 2" или "USB controller 3" (а также при их включении совместно) в 30-40 % случаев выполнение INIT останавливается на пункте "Инициализируется контроллер USB":

text
INIT:  version 2.86 booting                              [ OK ]
Добро пожаловать в ОС МСВС 3.0                           [ OK ]
Нажмите клавишу 'I' для входа в интерактивный режим.     [ OK ]
Монтирование файловой системы proc                       [ OK ]
Конфигурирование параметров ядра:                        [ OK ]
Загрузка таблицы трансляции клавиатуры (ru-ms):          [ OK ]
Активизация разделов swap                                [ OK ]
Установка имени хоста STEND_MCVC14                       [ OK ]
Инициализируется контроллер USB: 

Но иногда (если несколько раз пытаться загрузить ОС с помощью reset или PowerON/PowerOFF) загрузка может пройти успешно:

text
INIT:  version 2.86 booting                              [ OK ]
Добро пожаловать в ОС МСВС 3.0                           [ OK ]
Нажмите клавишу 'I' для входа в интерактивный режим.     [ OK ]
Монтирование файловой системы proc                       [ OK ]
Конфигурирование параметров ядра:                        [ OK ]
Загрузка таблицы трансляции клавиатуры (ru-ms):          [ OK ]
Активизация разделов swap                                [ OK ]
Установка имени хоста STEND_MCVC14                       [ OK ]
Инициализируется контроллер USB:                         [ OK ]
Монтируется файловая система USB:                        [ OK ]
Инициализируются устройства USB HID:                     [ OK ]
Инициализируется клавиатура USB:                         [ OK ]
Инициализируется мышь USB:                               [ OK ]
Проверка корневой файловой системы                       [ OK ]

etc..

Наблюдения:
- при установке МСВС все стабильно (в плане USB). Более того, первые "перезагрузки" системы никогда не приводили к зависанию (если флэшка не вставлялась ни разу);
- если воспользоваться флэшкой и оставить ее в процессорном модуле, то шансы зависания при последующей перезагрузке повышаются на некоторое количество процентов;
- на виртуальной машине никогда вышеописанный баг не проявлялся - загружается без проблем;
- включение/отключение "USB controller 1" в BIOS'е процессорного модуля никак не влияет на работоспособность ОС при загрузке.

Опытным путем выяснил, что "USB controller 2" и "USB controller 3" – это разъемы, расположенные на передней панели процессорного модуля. А куда выходит "USB controller 1" – не понятно (может что-то виртуальное, не?)

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

#173219
Suoshi написал:
Подскажите, пожалуйста, откуда начинать копать

ну для начала с ядра наверно , ну и правила udev посмотреть на тему usb-девайсов ..

#173225
gramozeka написал:
ну для начала с ядра наверно ,

Поддержку USB-контроллеров и USB-накопителей попробовать включить в ядро НЕ модулями.

#173254
gramozeka написал:

ну для начала с ядра наверно

Что можно сделать с ядром?

Lupo Alberto написал:

Поддержку USB-контроллеров и USB-накопителей попробовать включить в ядро НЕ модулями.

Я напоминаю, что МСВС поставляется без исходников, и без исходников ядра в том числе (да и заголовочные файлы далеко не все присутствуют :( ). Т.о. пересобрать ядро невозможно.

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

#173266
gramozeka написал:
ну и правила udev посмотреть на тему usb-девайсов ..

первый взгляд на udev немного огорчил: поиском

text
find / -name udev

был найден только один файл: /etc/udev/rules.d/60-wacom.rules. Вот его содержимое на всякий:

Показать
# udev rules for wacom devices
# will create:
# /dev/input/wacom
# /dev/input/wacom-tablets/<model>
# /dev/input/wacom-tablets/<model>-<device id>
#
# The last rule is intended for cases when you have more than one tablet
# of the same model. The id is input port dependent.
#
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event*", GOTO="wacom_rules"

GOTO="wacom_rules_end"

LABEL="wacom_rules"

ATTRS{idVendor}=="056a", SYMLINK+="input/wacom"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0000", SYMLINK+="input/wacom-tablets/penpartner input/wacom-tablets/penpartner-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", SYMLINK+="input/wacom-tablets/graphire input/wacom-tablets/graphire-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", SYMLINK+="input/wacom-tablets/graphire2-4x5 input/wacom-tablets/graphire2-4x5-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", SYMLINK+="input/wacom-tablets/graphire2-5x7 input/wacom-tablets/graphire2-5x7-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", SYMLINK+="input/wacom-tablets/graphire3 input/wacom-tablets/graphire3-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", SYMLINK+="input/wacom-tablets/graphire3-6x8 input/wacom-tablets/graphire3-6x8-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", SYMLINK+="input/wacom-tablets/graphire4-4x5 input/wacom-tablets/graphire4-4x5-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", SYMLINK+="input/wacom-tablets/graphire4-6x8 input/wacom-tablets/graphire4-6x8-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0060", SYMLINK+="input/wacom-tablets/volito input/wacom-tablets/volito-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0061", SYMLINK+="input/wacom-tablets/penstation2 input/wacom-tablets/penstation2-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0062", SYMLINK+="input/wacom-tablets/volito2-4x5 input/wacom-tablets/volito2-4x5-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0063", SYMLINK+="input/wacom-tablets/volito2-2x3 input/wacom-tablets/volito2-2x3-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0064", SYMLINK+="input/wacom-tablets/penpartner2 input/wacom-tablets/penpartner2-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0020", SYMLINK+="input/wacom-tablets/intuos-4x5 input/wacom-tablets/intuos-4x5-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0021", SYMLINK+="input/wacom-tablets/intuos-6x8 input/wacom-tablets/intuos-6x8-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0022", SYMLINK+="input/wacom-tablets/intuos-9x12 input/wacom-tablets/intuos-9x12-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0023", SYMLINK+="input/wacom-tablets/intuos-12x12 input/wacom-tablets/intuos-12x12-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0024", SYMLINK+="input/wacom-tablets/intuos-12x18 input/wacom-tablets/intuos-12x18-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0030", SYMLINK+="input/wacom-tablets/pl400 input/wacom-tablets/pl400-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0031", SYMLINK+="input/wacom-tablets/pl500 input/wacom-tablets/pl500-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0032", SYMLINK+="input/wacom-tablets/pl600 input/wacom-tablets/pl600-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0033", SYMLINK+="input/wacom-tablets/pl600sx input/wacom-tablets/pl600sx-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0034", SYMLINK+="input/wacom-tablets/pl550 input/wacom-tablets/pl550-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0035", SYMLINK+="input/wacom-tablets/pl800 input/wacom-tablets/pl800-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0037", SYMLINK+="input/wacom-tablets/pl700 input/wacom-tablets/pl700-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0038", SYMLINK+="input/wacom-tablets/pl510 input/wacom-tablets/pl510-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0039", SYMLINK+="input/wacom-tablets/dtu710 input/wacom-tablets/dtu710-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c0", SYMLINK+="input/wacom-tablets/dtf521 input/wacom-tablets/dtf521-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00c4", SYMLINK+="input/wacom-tablets/dtf720 input/wacom-tablets/dtf720-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0003", SYMLINK+="input/wacom-tablets/cintiq_partner input/wacom-tablets/cintiq_partner-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0041", SYMLINK+="input/wacom-tablets/intuos2-4x5 input/wacom-tablets/intuos2-4x5-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0042", SYMLINK+="input/wacom-tablets/intuos2-6x8 input/wacom-tablets/intuos2-6x8-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0043", SYMLINK+="input/wacom-tablets/intuos2-9x12 input/wacom-tablets/intuos2-9x12-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0044", SYMLINK+="input/wacom-tablets/intuos2-12x12 input/wacom-tablets/intuos2-12x12-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0045", SYMLINK+="input/wacom-tablets/intuos2-12x18 input/wacom-tablets/intuos2-12x18-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b0", SYMLINK+="input/wacom-tablets/intuos3-4x5 input/wacom-tablets/intuos3-4x5-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b1", SYMLINK+="input/wacom-tablets/intuos3-6x8 input/wacom-tablets/intuos3-6x8-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b2", SYMLINK+="input/wacom-tablets/intuos3-9x12 input/wacom-tablets/intuos3-9x12-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b3", SYMLINK+="input/wacom-tablets/intuos3-12x12 input/wacom-tablets/intuos3-12x12-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b4", SYMLINK+="input/wacom-tablets/intuos3-12x19 input/wacom-tablets/intuos3-12x19-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00b5", SYMLINK+="input/wacom-tablets/intuos3-6x11 input/wacom-tablets/intuos3-6x11-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="003f", SYMLINK+="input/wacom-tablets/cintiq21ux input/wacom-tablets/cintiq21ux-%b"
ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0047", SYMLINK+="input/wacom-tablets/intuos2-6x8a input/wacom-tablets/intuos2-6x8a-%b"

LABEL="wacom_rules_end"

Видимо, в МСВС до сих пор используется DevFS.. завтра продолжу изыскания.

#174455

не могу никак посмотреть логи загрузки при зависании ОС: видимо в файлы dmesg и messeges информация сбрасывается позже точки сбоя. :(

Не нашел правил и для devfs.. в МСВС стоит что-то совсем древнее?

Войдите или зарегистрируйтесь, чтобы ответить.