[sisyphus] Warning: udev-089
Anton Farygin
=?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Ср Апр 12 10:48:04 MSD 2006
Sergey Vlasov wrote:
> On Tue, Apr 11, 2006 at 05:42:17PM +0400, Anton Farygin wrote:
>> В ftp://ftp.altlinux.ru/pub/people/rider/udev-089 лежат пакеты нового udev.
>>
>> Просьба всем, кто использует ядро 2.6.16 - поставить и сообщить мне об
>> найденных ошибках. С ядрами < 2.6.16 новый udev работать не будет.
>>
>> Через пару дней это может добраться до Sisyphus - лучше проверить заранее.
>
> Да, камнепад будет изрядный.
>
> 1. После вызова udevtrigger нужно дождаться завершения обработки
> сгенерированных событий - иначе иногда при дальнейшей загрузке не
> обнаруживается даже /dev/urandom. Правда, в этом месте есть
> грабли:
>
> http://wiki.linuxfromscratch.org/lfs/ticket/1720
> http://permalink.gmane.org/gmane.linux.hotplug.devel/9711
Да, и это известно. Сейчас загрузка проходит нормально, а вот если
запускать udevtrigger из rc.sysinit - то всё становится очень плохо.
>
> 2. Большинство /etc/hotplug/*.rc (как минимум, pci.rc и usb.rc) после
> установки этой версии udev становятся бесполезным балластом -
> udevtrigger сам сгенерирует все нужные события (правда, в
> неопределённом порядке).
pci.rc и usb.rc помимо генерации событий ещё модули загружает. Впрочем я
уже давно собирался перенести эту функциональность в отдельный пакет.
>
> 3. В случае наличия нескольких сетевых плат перед установкой этого
> udev крайне желательно установить etcnet и настроить /etc/iftab,
> иначе потом придётся долго разбираться в перепутавшихся eth*.
> Причём USE_HOTPLUG=yes тоже может не работать, пока из
> /etc/hotplug/net.agent не будет удалён кусок:
>
> # Red Hat specific hack...
> if [ -f /etc/redhat-release ]; then
> # Don't do anything if the network is stopped
> if [ ! -f /var/lock/subsys/network ]; then
> exit 0
> fi
> fi
>
> Иначе получается race - сетевое устройство вполне может быть
> обнаружено раньше, чем запустится сервис network (точнее, если в
> запуск udevd будет добавлено ожидание завершения обработки событий
> от udevtrigger, устройства и будут обнаруживаться раньше).
Это если мы service udevd вынесем в rc.sysinit. Но там race идёт похуже
- например совершенно непонятно как дождаться появления устройств для /
и для swap
>
> Впрочем, это тоже неправильно - получается, что сетевые интерфейсы
> могут запускаться до завершения общей инициализации сети.
> Возможно, придётся добавить в запуск etcnet вызов собственной
> версии udevtrigger, генерирующей события только для
> /sys/class/net/* (и убедиться, что повторяющиеся вызовы
> ifup-removable не приводят к нежелательным эффектам).
Сейчас при service udevd restart сеть пропадает (она у меня
настраивается вручную). Наверное стоит посмотреть что там точно происходит.
>
> 4. В правилах есть ссылки на /lib/udev/path_id, которого нет в пакете.
хм. пропустил, сейчас добавлю.
Подробная информация о списке рассылки Sisyphus