Why UDEV ignores multiple rules for the same device?
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
In my opinion, udev should create two symlink pointing to sda1 after sending uevent to it or executing udevadm test --force /block/sda/sda1.
Only one, first symlink is created. Why the second is ignored?
OK, I know that it is possible to put two link names in one SYMLINK key (SYMLINK+="pendr-eqe pendr-eqs"), but I would like to know why the first method doesn't work.
My udev version is 0.125-6 from Debian.
Last edited by arctgx; 09-24-2008 at 08:38 PM.
Reason: small typo
A complete guess on my part, but I suspect that udev simply executes the first rule it find that matches the device and doesn't look for other rules that may match.
A complete guess on my part, but I suspect that udev simply executes the first rule it find that matches the device and doesn't look for other rules that may match.
Then what is the sense of existing the "last_rule" option?
Hey, I said it was a guess. It turns out it was a wrong one however:
Quote:
One device can be matched by more than one rule. This has it's practical advantages, for example, we can write two rules which match the same device, where each one provides its own alternate name for the device. Both alternate names will be created, even if the rules are in separate files. It is important to understand that udev will not stop processing when it finds a matching rule, it will continue searching and attempt to apply every rule that it knows about.
The above quote is from this site, so apparently you are allowed to do what you're trying to do. As to why yours doesn't work, try reversing the order and see if the first one is still the only one executed. According to the site I linked to, the += operator should be appending to a list of names pointing to the original device, however I suppose it is possible that by having two rules, the second time the list gets "appended" it gets wiped out and recreated instead.
Independently of the order of rules, after reloading database and running udevadm test, only the first rule is executed.
Maybe this behaviour of udevd is a small bug. I should test a present or the recent version on another distro.
Sorry if my post sounded like I think that your comment would be statement, not supposition. I am still a beginner in writing English This may be cause of many misunderstandings in the future.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.