Hits : 2952


Hal & Devices


Όταν ήθελες να προσαρτήσεις μία συσκευή (κάποτε) έπρεπε να επεξεργαστείς το fstab κατάλληλα.
Αυτό γινόταν είτε με το χέρι, είτε μέσω ενός gui interface.
Μάλιστα όταν έπρεπε να συνδέσεις μία usb συσκευή έπρεπε να την βρεις πρώτα.


Πλέον με το hal & το dbus γίνονται όλα αυτόματα, αρκεί να ακολουθήσεις όμως κάποιους κανόνες.
Για αρχή χρειάζεται να ρίξουμε μια ματιά στα παρακάτω links:


HAL
PolicyKit


top


PolicyKit


Από το 1ο link βλέπουμε ότι μπορούμε να ορίσουμε την πολιτική για τους χρήστες μας.
Αυτό γίνεται στο εξής αρχείο:


/etc/PolicyKit/PolicyKit.conf


Για παράδειγμα το δικό μου PolicyKit.conf είναι το εξής:


Formatter "highlight/html" not found


ΠΡΟΣΟΧΗ: Το δικό μου username είναι ebal, στο δικό σας παράδειγμα μπορεί να είναι κάτι άλλο.


Στο παραπάνω παράδειγμα υπάρχουν οι εξής δηλώσεις:


<match action="org.freedesktop.hal.storage.*">
    <return result="yes"/>
</match>


και


<match action="org.freedesktop.hal.power-management.*">
    <return result="yes"/>
</match>


Το πρώτο παράδειγμα επιτρέπει οποιαδήποτε ενέργεια σε ότι αφορά τους δίσκους (storage),
ενώ το δεύτερο παράδειγμα επιτρέπει οποιαδήποτε ενέργεια έχει να κάνει με την διαχείριση
του ρεύματος (π.χ. reboot ή shutdown)


Χρειάζεται να επιβεβαιώσουμε την ακεραιότητα του αρχείου, οπότε χρειάζεται να πληκτρολογήσουμε την εξής εντολή:


polkit-config-file-validate


Χρήσιμες και ενδιαφέρουσες πληροφορίες για τις συσκευές μας μπορούμε να δούμε με την εξής εντολή:


lshal


Φυσικά όταν ολοκληρώσουμε όλα τα παραπάνω χρειάζεται να επανεκιννήσουμε το dbus & hal


/etc/rc.d/dbus restart
/etc/rc.d/hal restart


top


Dbus


Τι γίνεται όταν ΔΕΝ υπάρχει το policy-kit στον υπολογιστή μας.
Πολύ απλά πρέπει να κάνουμε τις αλλαγές απευθείας στο dbus


/etc/dbus-1/system.d/hal.conf


Για τον δικό μου χρήστη: ebal


<policy user="ebal">
    <allow send_destination="org.freedesktop.Hal"
           send_interface="org.freedesktop.Hal.Device.Volume"/>
    <allow send_destination="org.freedesktop.Hal"
           send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
  </policy>


Φυσικά όταν ολοκληρώσουμε όλα τα παραπάνω χρειάζεται να επανεκιννήσουμε το dbus & hal


/etc/rc.d/dbus restart
/etc/rc.d/hal restart