Re: [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal - SOLVED
- Date: Tue, 12 Jun 2007 15:08:38 +0200
- From: Hans Hacker <hacker@xxxxxxxxxxxxxxxxxxxx>
- Subject: Re: [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal - SOLVED
Hi, well i could solve the problem quite satisfying ! ... Not by adding ALL users to the group 'plugdev' ... but by the policy "at_console=true" For all who are interested ... read the attachment Cheers, HansKDE 3.5.5 - hal,dbus with Debain Edge HOWTO
Since i had various problems setting up our office system to use USB-devices like USB-sticks and cameras, i decided to write this HOWTO.
I installed the packages udev, dbus and hal.
To activate dbus i had to change the variable ENABLED=1 in '/etc/default/dbus'
Now restart dbus (hal gets started with it):
# /etc/init.d/dbus restart
KDE now recognizes if one plugs in a USB-device. And it presents a window where one can choose what to do.
But if you choose 'Open' ... you get the following warning
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")
This means, that the KDE session has not the nessescary rights to send a mount message via the dbus.
If you look at the config file '/etc/dbus-1/system.d/hal.conf' you can find the following policy
<policy group="plugdev">
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
my user account is member of the group plugdev ... but via '/etc/security/group.conf' that doesn't work ...
SOLUTION 1:
If you use your linux-box only at home, then just add your username to '/etc/group'
=> after logging out and in again it works !
SOLUTION 2:
If you have a big system with hundreds of users and groups, you can't add everybody by hand ...
So i had a look at '/etc/dbus-1/system.d/hal.conf' again ... and found this :
<!-- This will not work if pam_console support is not enabled -->
<policy at_console="true">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
Since i use a Debian distribution, there is no pam_console for security reasons.
Therefore i downloaded the dbus-source and pam_console packages and had a look
at it them how to set 'at_console=true'
I found out that it's sufficient, that you create a ordenary file (name of login) under '/var/run/console'.
If you now log in (kdm) as this user 'at_console=true' is set !
To automate that, i modified the files Xsetup and Xreset in the directory '/etc/kde3/kdm'
| /etc/kde3/kdm/Xsetup | |
#! /bin/sh
# Xstartup - run as root before session starts
PATH="$PATH:/usr/bin/X11"
if [ -e /etc/nologin ]; then
# always display the nologin message, if possible
if [ -s /etc/nologin ] && which xmessage > /dev/null 2>&1; then
xmessage -file /etc/nologin -geometry 640x480
fi
if [ "$(id -u)" != "0" ] && \
! grep -qs '^ignore-nologin' /etc/kde3/kdm/kdm.options; then
exit 1
fi
fi
|
|
if [ -d /var/run/console ]; then
rm -rf /var/run/console
fi
mkdir --mode 755 /var/run/console
touch /var/run/console/$USER
|
part to add |
if grep -qs '^use-sessreg' /etc/kde3/kdm/kdm.options && \
which sessreg > /dev/null 2>&1; then
exec sessreg -a -l "$DISPLAY" -u /var/run/utmp \
-h "`echo $DISPLAY | cut -d: -f1`" "$USER"
# NOTREACHED
fi
|
|
| /etc/kde3/kdm/Xreset | |
#! /bin/sh # Xreset - run as root after session exits # Reassign ownership of the console to root, this should disallow # assignment of console output to any random users's xterm. See Xstartup. # #chown root /dev/console #chmod 622 /dev/console |
|
rm -f /var/run/console/$USER |
part to add |
if grep -qs '^use-sessreg' /etc/kde3/kdm/kdm.options && \
which sessreg > /dev/null 2>&1; then
exec sessreg -d -l "$DISPLAY" -u /var/run/utmp \
-h "`echo $DISPLAY | cut -d: -f1`" "$USER"
# NOTREACHED
fi
|
|
ADDON:
If you use your own kernel (a newer one) than you should activate
General setup -> Create deprecated sysfs files
Else KDE recognizes USB-devices as Harddisks :( ...
ADDON 2:
If you want to change the name of real mount-point (/media/disk[-X])
You can add a new policy in '/etc/hal/fdi/policy/preferences.fdi'
<device>
<match key="@info.parent:storage.bus" string="usb">
<merge key="volume.policy.desired_mount_point" type="string">usbdevice</merge>
</match>
</device>
___________________________________________________ This message is from the kde-linux mailing list. Account management: https://mail.kde.org/mailman/listinfo/kde-linux. Archives: http://lists.kde.org/. More info: http://www.kde.org/faq.html.
- References:
- [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal
- From: Hans Hacker
- Re: [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal
- From: Kevin Krammer
- Re: [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal
- From: Philipp Paul
- [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal
- Prev by Date: [kde-linux] Error loading 'kio_smb'
- Next by Date: [kde-linux] Configuration options for "Recent Documents" applet?
- Previous by thread: Re: [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal
- Next by thread: Re: [kde-linux] Hotplug (USB) Problem with KDE 3.5.5 - dbus/hal
- Index(es):