udev rules for USB Mass Storage
Вот в /usr/share/doc/udev/writing_udev_rules/index.html ясно написано,
что если добавить вот такое правило в udev.rules:
BUS="usb", KERNEL="sd*", SYSFS{product}="USB 2.0 Storage Device", NAME="%k", SYMLINK="usbhd%n"
то, втыкая в usb нечто, у которого product стоит "USB 2.0 Storage Device",
создадутся линки на соотв. sdX sdX1 ... (в зависимости от кол-ва разделов).
Однако, попробовав данный способ, понял, что он нихрена не работает. Естественно product
я заменил на то значение, которое отображается в sysfs у моей флэшки.
Ковыряясь в udev'е, я понял, что видимо начиная с некоторой версии ядра, сообщения о воткнутых
usb mass storage посылаются с BUS="scsi", а не usb. У scsi в соотв. поддереве sysfs нету
такой штуки как product, поэтому-то правило и не срабатывает. У меня стоит Sarge, но ядро в нем
собрано из linux-source-2.6.12-6.deb. Вопрос: на 2.6.8 у кого-нибудь такое работает?
Если нет, то, может быть, кто-нить знает как в правилах udev добраться до параметров характерных
usb-девайсам, если сообщение hotplug'а генерится для scsi? Собственно, если добраться до
параметра serial, то можно узнать серийный номер флэшки и создать, скажем, линк /dev/my-flashdisk
для собственной флэшки, а потом прописать его в fstab и монтировать от обычного юзера.
ЗЫ: У scsi-девайсов есть параметр model, но он не совсем то, что надо. Вот так будет работать
BUS="scsi", KERNEL="sd?1", SYSFS{model}="My Flash Model", NAME="%k", SYMLINK="my-flashdisk"
но, например, на двух разных флэшках одной модели он будет одинаковым, а хочется сделать красиво,
чтобы только на свою реагировало :)
--
Макс
Reply to: