Pagina 1 di 2

HAL e UDEV

Inviato: mer 4 giu 2008, 14:28
da conraid
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

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)



e poi fare un file simile a questo

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>
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

Codice: Seleziona tutto

/etc/hal/fdi/policy/10osvendor
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

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 14:44
da targzeta
Ti dirò conraid, spero che qualcuno su questo forum abbia le idee più chiare delle mie. Anche io mi sono messo a leggiucchiare qualcosa su hal, ma da quello che ho capito io, hal non si occupa del montaggio delle periferiche, bensì si limita a dare informazioni, tramite dbus a chi le vuole, sulle periferiche inserite nel PC.
Infatti se io metto la mia pennina USB non c'è nessun automount e chissà cosa. A questo punto credo che sia KDE (che io non ho) ad occuparsi del montaggio delle periferiche e non hal, lui si limita a dare delle informazioni.
Se ne sai di più, ti prego di darmi delucidazioni, perchè io non ci sto a capire più niente :).

Spina

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 14:56
da conraid
No, hai ragione.
Hal comunica tramite D-BUS alle applicazioni.
Infatti anche se inserisco quelle regole e non ho KDE attivo non funziona. Credo che dovrei utilizzare ivman od altro.

L'esempio che ho fatto era riferito alla situazione con KDE compilato come su Slackware

Su altre distribuzioni ho letto che ci sono programmi (chimati callouts nella terminologia di hal) specifichi per queste cose.
Pat nella ultima mail mi disse proprio che oltre a cercare di compilare al meglio KDE4 e la sua compatibilità con KDE3, stava cercando, insieme al team, di studiare e migliorare il supporto ad HAL

Detto questo, sono d'accordo con te quando dici che siccome ormai è usato da molte applicazioni va studiato, ma IMHO è una complessità non necessaria in un sistema unix-like.
Alle volte mi sembra di guardare dentro il registro... si lo so, sto bestemmiando.

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:15
da neongen
ma nessuno usa mettere le etichette alle partizioni? :roll:

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:20
da legionario
Grazie conraid!!

Ora e' piu' chiaro!! Alla fine di tutti questi discorsi sono portato a credere che il ragazzo che aveva aperto il thread "UUID e dispositivi USB" in realta' non puo' aver risolto il suo problema perche' udev non gestisce i punti di montaggio.

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:21
da legionario
neongen ha scritto:ma nessuno usa mettere le etichette alle partizioni? :roll:
Che vantaggio avrei dall'etichettare una partizione?

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:22
da targzeta
conraid ha scritto:...Credo che dovrei utilizzare ivman od altro....
ivman non lo conoscevo, grazie per la dritta...forse forse ora so come gestire il mio PC.
Da quello che sto leggendo io, ovvero il file:
/usr/doc/hal-0.5.10/spec/hal-spec.html
sto capendo un pò di più, ho notato, ad esempio che sul mio PC è attivo il processo:

Codice: Seleziona tutto

/usr/libexec/hald-addon-cpufreq
e nel file:

Codice: Seleziona tutto

/usr/share/hal/fdi/policy/10osvendor/10-cpufreq.fdi
c'è quanto segue

Codice: Seleziona tutto

<?xml version="1.0" encoding="UTF-8"?>

<deviceinfo version="0.2">
  <device>
    <match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
      <append key="info.addons" type="strlist">hald-addon-cpufreq</append>
    </match>
  </device>
</deviceinfo>
suppongo quindi che sia hal a farlo partire grazie a questa direttiva. Comunque dando un occhiata veloce al file, che come avrai visto è un tomo, mi sembra di capire che leggendo tutto alla fine dovrei capirci qualche cosa in più :). Addirittura credo si possa dire ad hal di ignorare un determinato device, e quindi potrei riuscire a dire ad hal di non far partire quel comando. Il problema è che io non so cosa fa quel comando :).
Insomma, per ora sono in alto mare.

Spero che questa scelta, tra l'altro credo ormai obbligata, non renda la Slackware meno configurabile di un tempo. In pratica ora, se uno non usa KDE l'avere dbus o hal serve solo perchè quasi tutti i programmi sotto X sono stati compilati con tale supporto. Ad esempio gimp non parte se non hai hal attivo. E non solo, ma kde lancia anche dbus --session, cosa che il mio piccolo icewm non fa, e quindi quando lancio gimp, lui deve anche lanciare dbus --session :).

Vabbuò ma questi sono solo punti di vista, credo che tutti gli sviluppatori di windows manager oggi semplicemente debbono fare i conti con hal e dbus e fornire il supporto.
Anche sotto linux la tastiera sta per essere sopraffatta dal topo :).

Spina

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:31
da conraid
neongen ha scritto:ma nessuno usa mettere le etichette alle partizioni? :roll:
Guarda, per quel che vale, nel senso del punto di montaggio sotto media hai ragione, con la label crea /media/LABEL

E va beh... almeno ho scoperto qualcosa in più :-)

E comunque è sempre KDE a gestire la cosa.
HAL dice, tramite DBUS, a KDE: Guarda questo dispositivo si chiama così, ha questi dati, etc... fai quel che vuoi.
Se ci aggiungi la regola del mount lui dice: Guarda questo dispositivo si chiama così, ha questi dati, etc... fai quel che vuoi, ma lui vorrebbe essere montato in tal directory

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:51
da Mario Vanoni
Premetto, sempre utente root!


ls -l /usb00, permessi drwxr-xr-t

/etc/fstab:
/dev/sdc1 /usb00 ext2 defaults 1 2

inserisco una penna usb, aspetto che il LED si calmi:
mount /usb00
cd /usb00
lavorabile
umount /usb00
e stacco la penna


Sotto KDE
inserisco una penna usb, aspetto che il LED si calmi:
la riconosce e chiede cosa fare
clicco open in a new window e dice
system:media/sdc1 come locazione e
Error - Konqueror
Permission denied

Inaccettabile per un vecchio UNIXiano,
preferisco il metodo manuale.


Su tre macchine, comportamento identico,
con tre penne diverse, Konqueror le riconosce diverse

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 15:57
da conraid
Mario Vanoni ha scritto: Sotto KDE
inserisco una penna usb, aspetto che il LED si calmi:
la riconosce e chiede cosa fare
clicco open in a new window e dice
system:media/sdc1 come locazione e
Error - Konqueror
Permission denied
Ma root c'è nel gruppo plugdev? :)

Mario, ma che te frega? Anche io nonostante tutte queste discussioni faccio sempre il mount a mano. Mi trovo meglio... però conoscere, anche se in minima parte, dove gira il mondo può essere di aiuto.

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 16:04
da Mario Vanoni
conraid ha scritto: Ma root c'è nel gruppo plugdev? :)
Mario, ma che te frega? Anche io nonostante tutte queste discussioni faccio sempre il mount a mano. Mi trovo meglio... però conoscere, anche se in minima parte, dove gira il mondo può essere di aiuto.
root e` nel gruppo plugdev

era solo interesse generale,
a livello shell governo la/le macchina/e,
tranne la HW, un HD quasi nuovo andato a farsi friggere (sic!)

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 16:11
da danix
conraid ha scritto:[...]
Mario, ma che te frega? Anche io nonostante tutte queste discussioni faccio sempre il mount a mano. Mi trovo meglio... però conoscere, anche se in minima parte, dove gira il mondo può essere di aiuto.
imho il bello (uno dei tanti) di linux è proprio il poter fare la stessa cosa in N modi diversi... :D
l'unico lato negativo (eufemismo) è il fatto che nessuno potrà mai dire di conoscere alla perfezione questo tipo di sistemi operativi...

PS
grazie conraid per questo topic chiarificatore...

PPS
@Mario:
non voglio farmi i fatti tuoi, solo capire una cosa... abbiamo già parlato altre volte del fatto che usi solo l'utente root nei tuoi pc, ma le password le generi in qualche modo o te le inventi tu??


ciau...

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 16:47
da Mario Vanoni
danix85 ha scritto: @Mario:
non voglio farmi i fatti tuoi, solo capire una cosa... abbiamo già parlato altre volte del fatto che usi solo l'utente root nei tuoi pc, ma le password le generi in qualche modo o te le inventi tu??
Invenzioni mie, ma per me memorizzabili,
[:alnum:] mescolati con [:punct:], in gergo isalpha(3),
ed in sequenza tale che un osservatore alle tue spalle
non riesca a seguire il movimento delle dita, tranne un genio.
Ci sono quattro righe di tasti, pensaci, saltando ..., e.g.
qwerty in fretta, poi
-= in fretta, poi
asdfg in fretta, chi riesce a seguirti?
Se poi usi nomi/parole/abbreviazioni con significato per te ...

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 16:59
da targzeta
Offtopic: Io le mie password me le invento in questo modo:
1) Penso una frase
2) Uso le iniziali della frase per la password, e là dove c'è la possibilità, uso i numeri

Ad esempio:
Il primo Gennaio sono andato sul Monte Bianco
diventerebbe:
I1GsasMB

Non so se sia un buon metodo ma almeno è mnemonico

Spina

Re: HAL e UDEV

Inviato: mer 4 giu 2008, 18:56
da Vash


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.


Ora e' piu' chiaro!! Alla fine di tutti questi discorsi sono portato a credere che il ragazzo che aveva aperto il thread "UUID e dispositivi USB" in realta' non puo' aver risolto il suo problema perche' udev non gestisce i punti di montaggio.
Io il problema l'ho risolto invece e il punto di mount non è più /media/disk o chi per esso, ma /media/HD_usb dato da me... :) E con quel percorso posso gestire l'harddisk dalle varie applicazioni e sò che sarà sempre quello il percorso.. mentre prima mi cambiava, una volta era /media/sdb dopo era /media/sdc, in base a cosa collegavo prima o dopo l'harddisk.. :)