hal, udev & removable media
Hi,
После апгрейда KDE на 3.5.1 у меня чудесным образом заработал диалог "что
будем делать с воткнутой флешкой". Но проблема в том, что у меня помимо
картридера на 4 гнезда есть ещё внешний винчестер, и udev находит их в
произвольномо порядке. Вот сейчас, например, первый слот картридера /dev/sda,
потом внешний винчестер /dev/sdb, потом оставшиеся слоты
картридера /dev/sd{c,d,e}. А могло и по другому сложиться. Я, как стрелянный
воробей, написал свои правила для udev:
===
BUS="usb", KERNEL="sd*", SYSFS{product}="LaCie Hard Drive USB", NAME="%k",
SYMLINK="usbhdd%n"
BUS="scsi", KERNEL="sd*1", ID="*:0", SYSFS{model}="STORAGE DEVICE ",
SYSFS{vendor}="Generic ", NAME="%k", SYMLINK="card_cf", GROUP="hal"
BUS="scsi", KERNEL="sd*1", ID="*:1", SYSFS{model}="STORAGE DEVICE ",
SYSFS{vendor}="Generic ", NAME="%k", SYMLINK="card_ms", GROUP="hal"
BUS="scsi", KERNEL="sd*1", ID="*:2", SYSFS{model}="STORAGE DEVICE ",
SYSFS{vendor}="Generic ", NAME="%k", SYMLINK="card_sd", GROUP="hal"
BUS="scsi", KERNEL="sd*1", ID="*:3", SYSFS{model}="STORAGE DEVICE ",
SYSFS{vendor}="Generic ", NAME="%k", SYMLINK="card_sm", GROUP="hal"
===
И всё прекрасно работает, в том плане, что /dev/usbhdd* создаются нормально,
при вставке compact flash создаётся /dev/card_cf, при вставке mmc/sd
создаётся /dev/card_sd, всё прекрасно. И прописано в /etc/fstab:
===
/dev/card_cf /media/card_cf vfat
user,noauto,iocharset=koi8-r,codepage=866,umask=000 0 0
/dev/card_sd /media/card_sd vfat
user,noauto,iocharset=koi8-r,codepage=866,umask=000 0 0
===
И монтируется всё прекрасно. Командой mount /media/card_cf , например.
НО. lshal для вставленной флешки говорит:
===
block.device = '/dev/sda1' (string)
linux.sysfs_path_device = '/sys/block/sda/sda1' (string)
linux.sysfs_path = '/sys/block/sda/sda1' (string)
===
Как следствие, вся автоматика hal летит к черятм. Поскольку для
устройства /dev/sda1 у меня нет записи в /etc/fstab, то и не получается
смонтировать это иначе как ручками. А хотелось "красивой жизни".
Я извиняюсь за долгое изложение, просто хотел предупредить лишние вопросы.
Собственно, финальный вопрос: что делать? Как научить hal понимать, что
создалось устройство не /dev/sda1, а /dev/card_cf?
--
Anton Petrusevich
Reply to: