added script for udev rule installation

This commit is contained in:
Daniel Pavel 2012-12-05 12:08:45 +02:00
parent b5b86ab8b8
commit 0e551383ba
2 changed files with 62 additions and 23 deletions

View File

@ -5,9 +5,7 @@ It comes in two flavours, command-line and GUI. Both are able to list the
devices paired to a Unifying Receiver, show detailed info for each device, and
also pair/unpair supported devices with the receiver.
Requirements
------------
## Requirements
You should have a reasonably new kernel (3.2+), with the `logitech-djreceiver`
driver enabled and loaded; also, the `udev` package must be installed and the
@ -24,32 +22,30 @@ distribution the required packages are most likely named something similar.
If the desktop notifications bindings are also installed (`gir1.2-notify-0.7`),
you will also get desktop notifications when devices come online/go offline.
Installation
------------
## Installation
Normally USB devices are not accessible for r/w by regular users, so you will
need to do a one-time udev rule installation to allow access to the Logitech
Unifying Receiver.
In the `rules.d/` folder of Solaar you'll find a udev rule file, to be copied in
`/etc/udev/rules.d/` (as the root user).
You can run the `rules.d/install.sh` script from Solaar to do this installation
(it will switch to root when necessary), or you can do all the required steps by
hand, as the root user:
In its current form it makes the Unifying Receiver device available for r/w by
all users belonging to the `plugdev` system group (standard Debian/Ubuntu group
for pluggable devices). It may need changes, specific to your particular
system's configuration.
- copy `rules.d/99-logitech-unfiying-receiver.rules` from Solaar to
`/etc/udev/rules.d/`
If in doubt, replacing `GROUP="plugdev"` with `GROUP="<your username>"` should just
work.
By default, the rule makes the Unifying Receiver device available for r/w by
all users belonging to the `plugdev` system group (standard Debian/Ubuntu
group for pluggable devices). It may need changes, specific to your
particular system's configuration. If in doubt, replacing `GROUP="plugdev"`
with `GROUP="<your username>"` should just work.
After you copy the file to `/etc/udev/rules.d` (and possibly modify it for your
system), run `udevadm control --reload-rules` as root for it to apply. Then
physically remove the Unifying Receiver, wait 10 seconds and re-insert it.
- run `udevadm control --reload-rules` to let the udev daemon know about the new
rule
- physically remove the Unifying Receiver, wait 10 seconds and re-insert it
Supported Devices
-----------------
## Supported Devices
**Solaar** will detect all devices paired with your Unifying Receiver, and at
the very least display some basic information about them. Depending on the
@ -66,9 +62,7 @@ Extended support for other devices will be added in the future, depending on the
documentation available, but the K750 keyboard is the only device I have and can
test on right now.
Thanks
------
## Thanks
This project began as a third-hand clone of [Noah K. Tilton](https://github.com/noah)'s
logitech-solar-k750 project on GitHub (no longer available). It was developed

45
rules.d/install.sh Executable file
View File

@ -0,0 +1,45 @@
#!/bin/sh
set -e
Z=$(readlink -f "$0")
RULES_D=/etc/udev/rules.d
if ! test -d "$RULES_D"; then
echo "$RULES_D not found; is udev installed?"
exit 1
fi
RULE=99-logitech-unifying-receiver.rules
if test -n "$1"; then
SOURCE=$1
else
SOURCE=$(dirname "$Z")/$RULE
if ! id -G -n | grep -q -F plugdev; then
GROUP=$(id -g -n)
echo "User '$USER' does not belong to the 'plugdev' group, will use group '$GROUP' in the udev rule."
TEMP_RULE=${TMPDIR:-/tmp}/$$-$RULE
cp -f "$SOURCE" "$TEMP_RULE"
SOURCE=$TEMP_RULE
sed -i -e "s/GROUP=\"plugdev\"/GROUP=\"$GROUP\"/" "$SOURCE"
fi
fi
if test "$(id -u)" != "0"; then
echo "Switching to root to install the udev rule."
test -x /usr/bin/pkexec && exec /usr/bin/pkexec "$Z" "$SOURCE"
test -x /usr/bin/sudo && exec /usr/bin/sudo -- "$Z" "$SOURCE"
test -x /bin/su && exec /bin/su -c "\"$Z\" \"$SOURCE\""
echo "Could not switch to root: none of pkexec, sudo or su were found?"
exit 1
fi
echo "Installing $RULE."
cp "$SOURCE" "$RULES_D/$RULE"
chmod a+r "$RULES_D/$RULE"
echo "Reloading udev rules."
udevadm control --reload-rules
echo "Done. Now remove the Unfiying Receiver, wait 10 seconds and plug it in again."