From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Zeuthen Date: Mon, 06 Sep 2004 14:46:37 +0000 Subject: [patch] compatibility symlinks for udev Message-Id: <1094481997.4727.14.camel@localhost.localdomain> MIME-Version: 1 Content-Type: multipart/mixed; boundary="=-IbgQd/efB8cJU16FMeaV" List-Id: To: linux-hotplug@vger.kernel.org --=-IbgQd/efB8cJU16FMeaV Content-Type: text/plain Content-Transfer-Encoding: 7bit Hey Greg, Here's a patch against udev-030 that can help create compatibility symlinks like /dev/cdrom, /dev/cdrom1 etc. The patch introduces a new substitution type %C (for Compatibility) that can be used as follows KERNEL="sr*", NAME="%k", SYMLINK="cdrom%C" KERNEL="scd*", NAME="%k", SYMLINK="cdrom%C" KERNEL="pcd*", NAME="%k", SYMLINK="cdrom%C" KERNEL="fd[0-9]", NAME="%k", SYMLINK="floppy%C" KERNEL="hd[a-z]", PROGRAM="/home/david/udev_ide_cdrom_or_floppy.sh %k", NAME="%k", SYMLINK="%c%C" KERNEL="fd[0-9]", NAME="%k", SYMLINK="floppy%C" %C will be substitued with nothing if the text prior to the %C doesn't exist, otherwise it will be substituted with the minimal positive integer such that text prior to %C and the integer doesn't exist. Pretty basic. Together with a simple helper script (that can be removed as soon as IDE exports the type in sysfs; alternatively this is trivial to write in C for e.g. early boot) #!/bin/sh TYPE=`cat /proc/ide/$1/media` if test "$TYPE" = "cdrom"; then echo -n cdrom exit 0 elif test "$TYPE" = "floppy"; then echo -n floppy exit 0 fi exit 1 I get the following symlinks [root@laptop udev]# ls -l floppy lrwxrwxrwx 1 root root 3 Sep 6 16:29 floppy -> hdc [root@laptop udev]# ls -l cdrom* lrwxrwxrwx 1 root root 3 Sep 6 16:29 cdrom -> hdd lrwxrwxrwx 1 root root 3 Sep 6 16:29 cdrom1 -> sr0 which I think is nice (... as far as programs relying on names of device nodes is nice, ahem). While the patch is somewhat against the spirit of udev it's very useful for maintaining compatibility with old software. People who depend and care about what /dev/cdrom%d is can always write exact rules to match them perfectly. I hope you will apply this patch. Thanks, David --=-IbgQd/efB8cJU16FMeaV Content-Disposition: attachment; filename=udev-compat-symlinks.patch Content-Type: text/x-patch; name=udev-compat-symlinks.patch; charset=ISO-8859-1 Content-Transfer-Encoding: base64 LS0tIHVkZXYtMDMwLm9yaWcvbmFtZWRldi5jCTIwMDQtMDctMDkgMTk6NTk6MTAuMDAwMDAwMDAw ICswMjAwDQorKysgdWRldi0wMzAvbmFtZWRldi5jCTIwMDQtMDktMDYgMTY6MjI6MDMuMDAwMDAw MDAwICswMjAwDQpAQCAtNDIsNiArNDIsNyBAQA0KICNpbmNsdWRlICJsb2dnaW5nLmgiDQogI2lu Y2x1ZGUgIm5hbWVkZXYuaCINCiAjaW5jbHVkZSAia2xpYmNfZml4dXBzLmgiDQorI2luY2x1ZGUg InVkZXZkYi5oIg0KIA0KIHN0YXRpYyBzdHJ1Y3Qgc3lzZnNfYXR0cmlidXRlICpmaW5kX3N5c2Zz X2F0dHJpYnV0ZShzdHJ1Y3Qgc3lzZnNfY2xhc3NfZGV2aWNlICpjbGFzc19kZXYsIHN0cnVjdCBz eXNmc19kZXZpY2UgKnN5c2ZzX2RldmljZSwgY2hhciAqYXR0cik7DQogDQpAQCAtMTc5LDYgKzE4 MCwzNyBAQCBzdGF0aWMgaW50IGdldF9mb3JtYXRfbGVuKGNoYXIgKipzdHIpDQogCXJldHVybiAt MTsNCiB9DQogDQorLyoqIEZpbmRzIHRoZSBsb3dlc3QgcG9zaXRpdmUgTiBzdWNoIHRoYXQgPG5h bWU+TiBpc24ndCBwcmVzZW50IGluIA0KKyAqICAkKHVkZXZyb290KSBlaXRoZXIgYXMgYSBmaWxl IG9yIGEgc3ltbGluay4NCisgKg0KKyAqICBAcGFyYW0gIG5hbWUgICAgICAgICAgICAgICAgTmFt ZSB0byBjaGVjayBmb3INCisgKiAgQHJldHVybiAgICAgICAgICAgICAgICAgICAgIDAgaWYgPG5h bWU+IGRpZG4ndCBleGlzdCBhbmQgTiBvdGhlcndpc2UuDQorICovDQorc3RhdGljIHVuc2lnbmVk IGludCBmaW5kX2ZyZWVfbnVtYmVyIChzdHJ1Y3QgdWRldmljZSAqdWRldiwgY2hhciAqbmFtZSkN Cit7DQorCWNoYXIgdGVtcFtOQU1FX1NJWkVdOw0KKwljaGFyIHBhdGhbTkFNRV9TSVpFXTsNCisJ c3RydWN0IHVkZXZpY2UgZGV2Ow0KKwlpbnQgcmVzdWx0Ow0KKw0KKwkvKiBoYXZlIHRvIHN3ZWVw IHRoZSBkYXRhYmFzZSBmb3IgZWFjaCBsb29rdXAgKi8NCisJcmVzdWx0ID0gMDsNCisJc3RybmNw eSh0ZW1wLCBuYW1lLCBzaXplb2YgKHRlbXApKTsNCisJd2hpbGUgKDEpIHsNCisJCWlmICh1ZGV2 ZGJfZ2V0X2Rldl9ieW5hbWUodGVtcCwgcGF0aCwgJmRldikgIT0gMCkNCisJCQlnb3RvIGZvdW5k Ow0KKwkJLyogc3ltbGluayBtaWdodCBiZSBzdGFsZSBpZiAkKHVkZXZyb290KSBpc24ndCBjbGVh bmVkOyBjaGVjaw0KKwkJICogb24gbWFqb3IvbWlub3IgdG8gc2VlIGlmIGl0J3MgdGhlIHNhbWUg ZGV2aWNlDQorCQkgKi8NCisJCWlmIChkZXYubWFqb3IgPT0gdWRldi0+bWFqb3IgJiYgZGV2Lm1p bm9yID09IHVkZXYtPm1pbm9yKQ0KKwkJCWdvdG8gZm91bmQ7DQorCQlzbnByaW50ZiAodGVtcCwg c2l6ZW9mKHRlbXApLCAiJXMlZCIsIG5hbWUsICsrcmVzdWx0KTsNCisJfQ0KKw0KK2ZvdW5kOg0K KwlyZXR1cm4gcmVzdWx0Ow0KK30NCisNCiBzdGF0aWMgdm9pZCBhcHBseV9mb3JtYXQoc3RydWN0 IHVkZXZpY2UgKnVkZXYsIGNoYXIgKnN0cmluZywgc2l6ZV90IG1heHNpemUsDQogCQkJIHN0cnVj dCBzeXNmc19jbGFzc19kZXZpY2UgKmNsYXNzX2RldiwNCiAJCQkgc3RydWN0IHN5c2ZzX2Rldmlj ZSAqc3lzZnNfZGV2aWNlKQ0KQEAgLTE5NSw2ICsyMjcsNyBAQCBzdGF0aWMgdm9pZCBhcHBseV9m b3JtYXQoc3RydWN0IHVkZXZpY2UgDQogCWNoYXIgKnJlc3Q7DQogCWludCBzbGVuOw0KIAlzdHJ1 Y3Qgc3lzZnNfYXR0cmlidXRlICp0bXBhdHRyOw0KKwl1bnNpZ25lZCBpbnQgbmV4dF9mcmVlX251 bWJlcjsNCiANCiAJcG9zID0gc3RyaW5nOw0KIAl3aGlsZSAoMSkgew0KQEAgLTI4NCw2ICszMTcs MTMgQEAgc3RhdGljIHZvaWQgYXBwbHlfZm9ybWF0KHN0cnVjdCB1ZGV2aWNlIA0KIAkJCXN0cmZp ZWxkY2F0bWF4KHN0cmluZywgIiUiLCBtYXhzaXplKTsNCiAJCQlwb3MrKzsNCiAJCQlicmVhazsN CisJCWNhc2UgJ0MnOg0KKwkJCW5leHRfZnJlZV9udW1iZXIgPSBmaW5kX2ZyZWVfbnVtYmVyKHVk ZXYsIHN0cmluZyk7DQorCQkJaWYgKG5leHRfZnJlZV9udW1iZXIgPiAwKSB7DQorCQkJCXNucHJp bnRmKHRlbXAyLCBzaXplb2YodGVtcDIpLCAiJWQiLCBuZXh0X2ZyZWVfbnVtYmVyKTsNCisJCQkJ c3RyZmllbGRjYXRtYXgoc3RyaW5nLCB0ZW1wMiwgbWF4c2l6ZSk7DQorCQkJfQ0KKwkJCWJyZWFr Ow0KIAkJZGVmYXVsdDoNCiAJCQlkYmcoInVua25vd24gc3Vic3RpdHV0aW9uIHR5cGUgJyUlJWMn IiwgYyk7DQogCQkJYnJlYWs7DQo= --=-IbgQd/efB8cJU16FMeaV-- ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel