Personal tools

Hardware Abstraction Layer (Slackware 12.0)

From linux360

Revision as of 12:55, 29 September 2007 by Gabel (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introducere

Implementarea HAL în Slackware Linux 12.0 este descrisă în CHANGES_AND_HINTS.TXT:

The /dev/cdrom line in /etc/fstab is commented out by default, as it interferes
  with HAL.  HAL defaults to on, so if you do not wish to use it, you will need
  to chmod -x /etc/rc.d/rc.hald and uncomment the /dev/cdrom line in /etc/fstab
 
Note that HAL will honor settings in /etc/fstab if a device is present there,
  so you could technically have removable devices defined in /etc/fstab, but if
  the fstab settings do not allow normal users to mount them (with the "user" or
  "users" option), then HAL/dbus will not allow them to be mounted either.
  Also note that you will need to run "/etc/rc.d/rc.messagebus reload" after 
  adding any users to plugdev, power, or video groups so that it re-reads the
  /etc/group file.

Principala sarcină a HAL nu este montarea sistemelor de fișiere de pe diferite dispozitive de stocare externe (CD-uri/DVD-uri, memorii USB, harddisk-uri externe, carduri de memorie din aparatele/camerele digitale sau telefoanele mobile, etc.), ci informarea sistemului de operare despre faptul că un nou dispozitiv a fost conectat. Această informație este preluată de managerul de desktop (KDE, GNOME sau XFCE), iar acesta montează în mod automat acel sistem de fișiere într-un punct de montare, de obicei /media/<nume_dispozitiv>. Dacă sunteți în afara mediului X, HAL informează sistemul de operare, dar nici o aplicație nu poate prelua această informație. Dacă rulați un alt manager de desktop sau un manager de ferestre, atunci aveți nevoie de aplicațiile ivman și pmount.

Mesajul de eroare

Acesta este mesajul de eroare care apare imediat după instalarea distribuției Slackware Linux 12.0 în momentul în care managerul de desktop primește informația de la HAL că un dispozitiv de stocare extern a fost conectat la sistem și încearcă montarea automată a sistemului de fișiere de pe acel dispozitiv.

A security policy in place prevents this sender from sending this message to this recipient,
see message bus configuration file (rejected message had interface 
"org.freedesktop.Hal.Device.Volume" member "Mount" error name "(unset)" destination "org.freedesktop.Hal")

Conform /etc/login.defs, utilizatorii care au dreptul de a utiliza consola ar trebui să fie adăugați în mod automat în grupurile cdrom și plugdev.

Code:

# List of groups to add to the user's supplementary group set
# when logging in on the console (as determined by the CONSOLE
# setting).  Default is none.
#
# Use with caution - it is possible for users to gain permanent
# access to these groups, even when not logged in on the console.
# How to do it is left as an exercise for the reader...
#
CONSOLE_GROUPS          floppy:audio:video:cdrom:plugdev

Acest lucru nu este realizat din cauza modului în care funcționează serviciul dbus: nu este necesar ca un nou utilizator adăugat la sistem să obțină în mod automat dreptul de a monta aceste dispozitive de stocare externe.

Rezolvarea problemei

Când serviciul messagebus pornește, citește conținutul fișierului /etc/group și determină ce utilizatori au dreptul de a monta aceste dispozitive externe. Deci rezolvarea este relativ simplă: editați fișierul /etc/group și adăugați la grupurile cdrom, plugdev (eventual și power) numele utilizatorilor care vor avea dreptul să monteze automat aceste dispozitive:

cdrom::19:gabel plugdev:x:83:gabel power:x:84:gabel