Bug 24426

Summary: Нет задержки перед монтированием USB
Product: Sisyphus Reporter: Dmitry A. Kharitonov <kharpost>
Component: startupAssignee: Alexey Gladkov <legion>
Status: CLOSED WORKSFORME QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: aen, evg, glebfm, kharpost, ldv, led, legion, mike, shakirov
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 23155    
Attachments:
Description Flags
патч добавления задержки none

Description Dmitry A. Kharitonov 2010-10-26 17:54:59 MSD
У меня на eeepc в качестве дополнительного диска стоит USB flash, которая смонтирована как /usr. По этому для нормальной работы пришлось патчить /etc/rc.d/rc.sysinit:
*** 136,141 ****
--- 136,144 ----
  # Set the system clock (when /etc/adjtime is missing)
  [ -s /etc/adjtime ] || /etc/init.d/clock start

+ # Pause for USB
+ action "Wainting for USB:" sleep 5
+
  # Activate swap
  action "Activating swap partitions:" swapon -a -e 

Правильнее в /etc/rc.d/rc.sysinit ввести какой-нить параметр задержки в секундах, который по умолчанию равен 0 (задержки на опрос USB устройств нет), а в этом скрипте его проверять.
Comment 1 led 2010-10-27 05:27:51 MSD
(В ответ на комментарий №0)
параметр delay_use для модуля usb-storage не помогает?
Comment 2 Dmitry A. Kharitonov 2010-10-27 07:02:31 MSD
Я бы попробовал, если б знал где этот параметр установить.
Да и на вскидку, помочь не должен. Там происходит формирование каталога /dev, и далее сразу монтирование устройств. Понятное дело udev просто не успевает всё опросить. т.е. система в этот момент ещё не в курсе, что подключена флешка и соответственно модуль usb-storage ещё не запущен.
Comment 3 Evgenii Terechkov 2010-10-27 07:40:08 MSD
#modinfo usb-storage G parm:
parm:           option_zero_cd:ZeroCD mode (1=Force Modem (default), 2=Allow CD-Rom (uint)
parm:           swi_tru_install:TRU-Install mode (1=Full Logic (def), 2=Force CD-Rom, 3=Force Modem) (uint)
parm:           delay_use:seconds to delay before using a new device (uint)
parm:           quirks:supplemental list of device IDs and their quirks (string)
Comment 4 Dmitry A. Kharitonov 2010-10-27 08:18:58 MSD
Я оказался прав

После
echo "options usb-storage delay_use=10" | sudo dd of=/etc/modprobe.d/usbup_test
мою задержку в /etc/rc.d/rc.sysinit пришлось увеличить до 15

Такое решение не подходит
Comment 5 Dmitry A. Kharitonov 2010-10-27 12:16:38 MSD
Можно ещё парсить fstab в ожидании появления всех прописанных там устройств. Естественно предусмотреть тайм аут такого ожидания скажем в 30 секунд.
Это чуть сложнее, но зато правильнее -- ожидание будет автоматически минимально-оптимальное
Comment 6 Dmitry A. Kharitonov 2010-10-28 17:24:38 MSD
Created attachment 4627 [details]
патч добавления задержки

Вариант опроса USB с ожиданием пока не появятся устройства, которые по fstab должны подключаться во время загрузки
Comment 7 led 2010-11-28 05:21:48 MSK
(В ответ на комментарий №4)
> Я оказался прав
> 
> После
> echo "options usb-storage delay_use=10" | sudo dd of=/etc/modprobe.d/usbup_test
> мою задержку в /etc/rc.d/rc.sysinit пришлось увеличить до 15
> 
> Такое решение не подходит

Вообще-то я имел ввиду delay_use=0 (потому что по-умолчанию этот параметр равен 5)
Comment 8 Dmitry A. Kharitonov 2010-11-28 10:21:08 MSK
(В ответ на комментарий №7)
> (В ответ на комментарий №4)
> > Я оказался прав
> > 
> > После
> > echo "options usb-storage delay_use=10" | sudo dd of=/etc/modprobe.d/usbup_test
> > мою задержку в /etc/rc.d/rc.sysinit пришлось увеличить до 15
> > 
> > Такое решение не подходит
> 
> Вообще-то я имел ввиду delay_use=0 (потому что по-умолчанию этот параметр равен
> 5)
похоже сейчас по умолчанию 0
После модификации патчем, во время работы скрипта на экран выводится счётчик секунд. Чаще всего задержка не отрабатывает (на ядре 35), иногда требуется 1-3с, а если подключен USB-CDROM -- до 6-7. При этом, мой патч USB-CDROM не ждёт -- застревает на другом устройстве. Там многое зависит в каком порядке зарегистрировались устройства, а порядок этот часто меняется.
Comment 9 Lenar Shakirov 2011-04-15 16:37:44 MSK
Мне usb-storage.delay_use=0 помог, спасибо led@!

Может закроем как WORKSFORME?
Comment 10 AEN 2011-07-01 17:45:42 MSK
Следую предложению Ленар.