Hi... I (well, the distro I use) has a little problem with creation of links for CD-ROM devices. For example, in my box, hda is a DVDRW and hdd is a DVD reader. I think I should have something like cdrom0 -> hda cdrom1 -> hdd dvd0 -> hda dvd1 -> hdd cdrw0 -> hda dvdrw0 -> hda (with optional cdrom and dvd links to the default one, say just the first). This is done with rule like: SUBSYSTEM=="block", ACTION=="add", ENV{ID_CDROM}=="?*", PROGRAM="/lib/udev/udev_cdrom_helper", SYMLINK+="%c" This helper tries to get the next free %d index to create cdrom%d, for example. The problem is that the launch of both helpers for hda and add seems to be done in parallel and the helper gets racy, so both cdroms get id 0, and the last that comes owns it: helper instance for hda helper instance for hdd Does cdrom0 exist ? No Does cdrom0 exist ? No ln -sf hda cdrom0 ln -sf hdd cdrom0 ???? Is there any way to serialize the calls to 'PROGRAM'. I tried something like: SUBSYSTEM=="block", ACTION=="add", ENV{ID_CDROM}=="?*", PROGRAM="/usr/bin/flock /sys/block /lib/udev/udev_cdrom_helper", SYMLINK+="%c" But looks a lot ugly. Any standard way to do this ? Can I still use %e, or is it really really deprecated ? this was easy: ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="burner%e", MODE="0666", GROUP="cdwriter" ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="burner%e", MODE="0666", GROUP="cdwriter" TIA -- J.A. Magallon <jamagallon()able!es> \ Software is like sex: werewolf!able!es \ It's better when it's free Mandriva Linux release 2006.1 (Cooker) for i586 Linux 2.6.16-jam5 (gcc 4.1.1 20060330 (prerelease)) #1 SMP PREEMPT Tue
Attachment:
signature.asc
Description: PGP signature
- Prev by Date: Re: 2.6.17-rc1-mm1: KEXEC became SMP-only
- Next by Date: Re: 2.6.17-rc1-mm1: mlockall() regression on x86_64
- Previous by thread: Re: CONFIG_FRAME_POINTER and module vermagic
- Next by thread: Re: udev, PROGRAM and races...
- Index(es):