HAL e UDEV
Inviato: mer 4 giu 2008, 14:28
Visto che in questi giorni sono nati dubbi ho indagato un poco la cosa.
Per avere un punto di montaggio sotto /media udev serve a poco. E' vero hai il device, ma con l'UUID sinceramente io mi trovo meglio.
Per il NAME che poi è quello che viene usato da media:/NAME allora ok, va fatto con UDEV, almeno credo che ci sia solamente quel modo.
Ma poi il mount point fisico è sempre /media/disk per esempio.
Questo si vede da /media/.hal-mtab (mi sembra si chiami così)
Allora mi sono chiesto. Perché si può modificare file sistem (ricordate ntfs.3g e tutti i post?) e non cambiare il punto di montaggio?
Allora mi sono messo a "studiare" le regole di HAL.
Insanzitutto capire i valori con hal-device
e poi fare un file simile a questo
chiamandolo magari 95-pennine.fdi (il nome non ha importanza, mentre "forse" lo ha il numero in modo che sia una delle ultime regole)
Da suggerimento di Pat l'ho messo in /etc, precisamente in
in modo da non venir sovrascritto da aggiornamenti vari.
Ora la usbpen si monta in /media/pennina
Spero che sia utile a qualcuno, soprattutto per iniziare a capire, io sinceramente continuo a fare a mano
P.S.
Ho usato UUID perché mi sembrava la cosa migliore, ed ho trovato riferimento anche nella documentazione di hal (hal.freedesktop.org) che purtroppo è maggiore per gli sviluppatori che non per gli utenti finali.
Ho trovato anche info interessante e vari esempi nella documentazione RedHat
P.S.2
Se non modifico UDEV ho /media/pennina, ma per esempio media:/sda1
Quindi per avere "entrambi" i valori desiderati va modificato UDEV e HAL
Per avere un punto di montaggio sotto /media udev serve a poco. E' vero hai il device, ma con l'UUID sinceramente io mi trovo meglio.
Per il NAME che poi è quello che viene usato da media:/NAME allora ok, va fatto con UDEV, almeno credo che ci sia solamente quel modo.
Ma poi il mount point fisico è sempre /media/disk per esempio.
Questo si vede da /media/.hal-mtab (mi sembra si chiami così)
Allora mi sono chiesto. Perché si può modificare file sistem (ricordate ntfs.3g e tutti i post?) e non cambiare il punto di montaggio?
Allora mi sono messo a "studiare" le regole di HAL.
Insanzitutto capire i valori con hal-device
Codice: Seleziona tutto
block.minor = 1 (0x1) (int)
volume.label = '' (string)
volume.ignore = false (bool)
org.freedesktop.Hal.Device.Volume.method_names = { 'Mount', 'Unmount', 'Eject' } (string list)
info.capabilities = { 'volume', 'block' } (string list)
volume.partition.flags = { 'boot' } (string list)
volume.is_partition = true (bool)
volume.mount_point = '/media/pennina' (string)
info.category = 'volume' (string)
info.product = 'Volume (vfat)' (string)
volume.is_disc = false (bool)
volume.is_mounted = true (bool)
volume.partition.type = '0x0c' (string)
block.is_volume = true (bool)
volume.linux.is_device_mapper = false (bool)
block.storage_device = '/org/freedesktop/Hal/devices/storage_serial_SanDisk_Cruzer_Micro_20060877021B13A11AD1_0_0' (strin
g)
info.parent = '/org/freedesktop/Hal/devices/storage_serial_SanDisk_Cruzer_Micro_20060877021B13A11AD1_0_0' (string)
volume.block_size = 512 (0x200) (int)
volume.partition.number = 1 (0x1) (int)
volume.num_blocks = 4001697 (0x3d0fa1) (int)
volume.policy.desired_mount_point = 'pennina' (string)
volume.fsversion = 'FAT32' (string)
block.device = '/dev/sda1' (string)
volume.uuid = 'A013-4846' (string)
volume.partition.label = '' (string)
volume.partition.scheme = 'mbr' (string)
volume.partition.media_size = 2048901120 (0x7a1fc000) (uint64)
volume.partition.uuid = '' (string)
volume.fsusage = 'filesystem' (string)
volume.is_mounted_read_only = false (bool)
org.freedesktop.Hal.Device.Volume.method_argnames = { 'mount_point fstype extra_options', 'extra_options', 'extra_options'
} (string list)
info.interfaces = { 'org.freedesktop.Hal.Device.Volume' } (string list)
storage.model = '' (string)
volume.size = 2048868864 (0x7a1f4200) (uint64)
info.udi = '/org/freedesktop/Hal/devices/volume_uuid_A013_4846' (string)
volume.mount.valid_options = { 'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec', 'ut
f8', 'shortname=', 'codepage=', 'iocharset=', 'umask=', 'dmask=', 'fmask=', 'uid=', 'flush' } (string list)
org.freedesktop.Hal.Device.Volume.method_signatures = { 'ssas', 'as', 'as' } (string list)
block.major = 8 (0x8) (int)
volume.fstype = 'vfat' (string)
org.freedesktop.Hal.Device.Volume.method_execpaths = { 'hal-storage-mount', 'hal-storage-unmount', 'hal-storage-eject' } (
string list)
volume.unmount.valid_options = { 'lazy' } (string list)
linux.hotplug_type = 3 (0x3) (int)
volume.partition.start = 32256 (0x7e00) (uint64)
linux.sysfs_path = '/sys/block/sda/sda1' (string)
Codice: Seleziona tutto
<device>
<match key="block.is_volume" bool="true">
<match key="volume.fsusage" string="filesystem">
<match key="volume.uuid" string="A013-4846">
<merge key="volume.policy.desired_mount_point" type="string">pennina</merge>
</match>
</match>
</match>
</device>
Da suggerimento di Pat l'ho messo in /etc, precisamente in
Codice: Seleziona tutto
/etc/hal/fdi/policy/10osvendorOra la usbpen si monta in /media/pennina
Spero che sia utile a qualcuno, soprattutto per iniziare a capire, io sinceramente continuo a fare a mano
P.S.
Ho usato UUID perché mi sembrava la cosa migliore, ed ho trovato riferimento anche nella documentazione di hal (hal.freedesktop.org) che purtroppo è maggiore per gli sviluppatori che non per gli utenti finali.
Ho trovato anche info interessante e vari esempi nella documentazione RedHat
P.S.2
Se non modifico UDEV ho /media/pennina, ma per esempio media:/sda1
Quindi per avere "entrambi" i valori desiderati va modificato UDEV e HAL