Bug 15348 - Нет задержки для инициализации USB-устройств
Summary: Нет задержки для инициализации USB-устройств
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: propagator (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Anton Farygin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks: 14491
  Show dependency tree
 
Reported: 2008-04-14 03:49 MSD by Michael A. Kangin
Modified: 2008-05-06 19:31 MSD (History)
4 users (show)

See Also:


Attachments
Мой список модулей, достаточных для загрузки с USB. (276 bytes, text/plain)
2008-04-18 12:04 MSD, Michael A. Kangin
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael A. Kangin 2008-04-14 03:49:41 MSD
В новой UDEV-ной версии пропагатор не ждёт инициализации USB-устройств и
ругается, что диск не найден.
Comment 1 Sergey Bolshakov 2008-04-16 15:46:17 MSD
fixed in 20080301-alt4
Comment 2 Michael A. Kangin 2008-04-18 12:02:08 MSD
Формально оно closed :)

Но есть такие мысли.
Я использую для загрузки USB-устройств сильно урезанный по составу список
modules, только необходимые модули - оно вроде и побыстрее грузится, и
потенциально больше шансов загрузиться на системах со странными контроллерами
(кстати, правильно я понимаю, что noload= больше не работает?).
Так вот с этим modules, когда дело доходит до проверки наличия
/sys/module/usb_storage, этой директории, судя по всему, еще нету. Выручает
sleep(1) перед этой проверкой.

Comment 3 Michael A. Kangin 2008-04-18 12:04:16 MSD
Created attachment 2574 [details]
Мой список модулей, достаточных для загрузки с USB.
Comment 4 Sergey Bolshakov 2008-04-18 13:38:26 MSD
То есть, этот sleep(1) нужен при урезанном modules и не нужен при обычном ?
и да, noload больше не работает -- можно подкладывать в 
initramfs /etc/modprobe.d/blacklist-local какой-нибудь.
Comment 5 Michael Shigorin 2008-04-18 13:43:54 MSD
(In reply to comment #4)
> и да, noload больше не работает -- можно подкладывать в 
> initramfs /etc/modprobe.d/blacklist-local какой-нибудь.
Боюсь, это не очень хороший вариант на местности... суппорт застрелится.
Comment 6 Michael A. Kangin 2008-04-18 13:51:28 MSD
(In reply to comment #4)
> То есть, этот sleep(1) нужен при урезанном modules и не нужен при обычном ?

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

> и да, noload больше не работает -- можно подкладывать в 
> initramfs /etc/modprobe.d/blacklist-local какой-нибудь.

Функциональность noload была иногда затребована народом, по крайней мере, на
старом пропагаторе. Отсюда же и мой урезанный modules.
А initramfs - это же пересобирать initrd надо, да? Не end-user решение :)
Comment 7 Sergey Bolshakov 2008-04-18 14:20:50 MSD
про noload: это был кривопридуманный и кривосделанный хак, мне его не жалко.
внедрение udev в propagator имело целью обеспечить одинаковое с установленной 
системой поведение при обнаружении устройств.
если считается, что подобная возможность нужна -- предлагаю доказывать это
майнтайнеру udev, не мне.
Comment 8 Sergey Bolshakov 2008-04-18 14:28:36 MSD
по поводу урезанного modules -- я не вижу в этом смысла.
ощутимо быстрее оно не будет, а разговоры о потенциально бОльших
шансах загрузиться и т.д. хорошо бы проиллюстрировать примером.
бишь, покажите мне проблему -- и мы её решим :)
Comment 9 Michael A. Kangin 2008-04-18 14:44:33 MSD
(In reply to comment #8)
> по поводу урезанного modules -- я не вижу в этом смысла.
> ощутимо быстрее оно не будет, а разговоры о потенциально бОльших
> шансах загрузиться и т.д. хорошо бы проиллюстрировать примером.

Ну лично я видел один такой компьютер видел где-то в июле - на нём не смог
загрузиться liveCD четвёртого десктопа - какой-то модуль из разряда sata/piix 
пытался минут сорок чего-то сделать, больше я не выдержал. Тогда так и не одолел.
Сейчас к этому компу уж не знаю, попаду ли когда-нибудь.

Надо еще будет спросить людей, которые noload пользовались.

> бишь, покажите мне проблему -- и мы её решим :)

ок :) приберегу пока этот патчик для себя, любимого. :)
Comment 10 Michael A. Kangin 2008-04-18 20:37:55 MSD
Кстати, в свете всяких там usb-storage-zerowait в новых ядрах, возможно будет
интересна "мягкая" задержка для инициализации:
http://git.altlinux.org/people/prividen/packages/?p=propagator.git;a=summary
Comment 11 Sergey Bolshakov 2008-04-18 21:43:04 MSD
идея понятна.
привлекательным было бы использовать uuid, имена устройств
имеют свойство прыгать.
Comment 12 Sergey Bolshakov 2008-04-18 21:50:59 MSD
(поразмыслив) скорее label
Comment 13 Michael A. Kangin 2008-04-18 22:33:45 MSD
(In reply to comment #11)
> идея понятна.
> привлекательным было бы использовать uuid, имена устройств
> имеют свойство прыгать.
> 

OMG, на это еще не тестировал (потенциально еще один плюс сокращённого modules).
Ну в большинстве случаев, флешка получается sda. 

Однако тогда надо сначала поддержку label в параметрах, чтобы propagator умел
находить загрузочное устройство по метке.
Comment 14 Sergey Bolshakov 2008-04-18 23:03:29 MSD
libata и прочие прелести прогресса увеличивают вероятность того,
что hd* вообще в сиссеме не будет, сплошной sd*.
не хотелось бы загибать пальцы на руке, вычисляя,
какая же циферька выпадет флешке.
в общем, мне подождать патча или самому что-то выпиливать ?
Comment 15 Michael Shigorin 2008-04-19 01:05:21 MSD
(In reply to comment #10)
> Кстати, в свете всяких там usb-storage-zerowait в новых ядрах
Это вообще-то хак^H^H^Hэксперимент -- не думаю, что стоит на него закладываться.
Comment 16 Michael A. Kangin 2008-04-19 11:12:38 MSD
(In reply to comment #14)
> libata и прочие прелести прогресса увеличивают вероятность того,
> что hd* вообще в сиссеме не будет, сплошной sd*.
> не хотелось бы загибать пальцы на руке, вычисляя,
> какая же циферька выпадет флешке.

Во-во... 
Может, добавить новый method usb?

> в общем, мне подождать патча или самому что-то выпиливать ?
 
боюсь, ниасилю :(( Я си вообще не знаю. И смогу что-то посмотреть не ранее, как
через неделю.

Кстати: по UUID тоже можно. Нету никаких проблем нарисовать скриптик для
сотворения загрузочной флешки (usb-hdd), который бы узнавал uuid нужной партиции
и учитывал его в syslinux.cfg. Насколько я понимаю, с UUID будет гораздо проще,
чем с label (/dev/disk/by-uuid/)
Comment 17 led 2008-04-19 17:49:38 MSD
(In reply to comment #15)
> (In reply to comment #10)
> > Кстати, в свете всяких там usb-storage-zerowait в новых ядрах
> Это вообще-то хак^H^H^Hэксперимент -- не думаю, что стоит на него 
закладываться.

Как раз задержка на 5 секунд - это хак. Хотя, не исключено, что без этого хака 
что-то не будет работать (но мне такое не попадалось)
Comment 18 Michael A. Kangin 2008-05-06 18:36:44 MSD
(In reply to comment #8)
> по поводу урезанного modules -- я не вижу в этом смысла.
> ощутимо быстрее оно не будет, а разговоры о потенциально бОльших
> шансах загрузиться и т.д. хорошо бы проиллюстрировать примером.
> бишь, покажите мне проблему -- и мы её решим :)

Ну вот проблемка и вылезла - с ядром 2.6.24-std-def-alt8 на ноуте на место sda
радостно влезает винчестер вместо флешки.
Пока нету поддержки label, спасаюсь урезанным modules.
Comment 19 Sergey Bolshakov 2008-05-06 19:09:23 MSD
оки, сделаю label/uuid днями
Comment 20 Sergey Bolshakov 2008-05-06 19:31:14 MSD
повешенная на этот счёт бага поможет не забыть, кстати