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

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: