[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: