82 lines
2.3 KiB
Bash
Executable File
82 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
for i in "$@"; do
|
|
case $i in
|
|
-g|--group)
|
|
GROUP=dialout
|
|
shift # past argument with no value
|
|
;;
|
|
-g=*|--group=*)
|
|
GROUP="${i#*=}"
|
|
shift # past argument=value
|
|
;;
|
|
-h|--help)
|
|
echo "This script writes a udev rule for Acroname devices"
|
|
echo " By default, Acroname devices will be set to file mode 0666"
|
|
echo " Supply -g or --group to set file mode to 0660 and group to dialout"
|
|
echo " Supply -g=<groupname> or --group=<groupname> to set file mode to 0660 and group to <groupname>"
|
|
exit 0
|
|
;;
|
|
-*)
|
|
echo "Unknown option $i"
|
|
exit 1
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ -n "$SUDO_USER" ]; then
|
|
UN=$SUDO_USER
|
|
else
|
|
UN=$USER
|
|
fi
|
|
|
|
REBOOT_REQUIRED=no
|
|
|
|
# Previous instances of the udev script don't work as expected on some distributions.
|
|
# So try and remove it from the list of active rules:
|
|
if test -f /etc/udev/rules.d/100-brainstem.rules; then
|
|
sudo mv /etc/udev/rules.d/100-brainstem.rules /etc/udev/rules.d/100-brainstem.rules.deactivated
|
|
fi
|
|
|
|
echo "This script adds a udev rule to automatically setup Acroname devices:"
|
|
echo -n " file mode to "
|
|
if [ -z "$GROUP" ]; then
|
|
MODE="0666"
|
|
echo "$MODE"
|
|
else
|
|
MODE="0660"
|
|
GROUP_STRING="GROUP=\"$GROUP\","
|
|
echo "$MODE"
|
|
echo " file group to $GROUP"
|
|
if groups "$UN" | grep -q "\b${GROUP}\b"; then
|
|
echo "User $UN is already in group $GROUP"
|
|
else
|
|
echo "User $UN will be added to group $GROUP"
|
|
REBOOT_REQUIRED=yes
|
|
sudo usermod -a -G "$GROUP" "$UN" || exit 1
|
|
fi
|
|
fi
|
|
|
|
cat <<EOF | sudo tee /etc/udev/rules.d/99-brainstem.rules > /dev/null
|
|
# generated by ${0##*/}
|
|
|
|
# Acroname Brainstem control devices
|
|
SUBSYSTEM=="usb",ATTRS{idVendor}=="24ff",${GROUP_STRING}MODE="$MODE"
|
|
|
|
# Acroname recovery devices (pb82, pb242, pb167)
|
|
SUBSYSTEM=="tty",ATTRS{idVendor}=="0424",ATTRS{idProduct}=="274e",${GROUP_STRING}MODE="$MODE"
|
|
SUBSYSTEM=="tty",ATTRS{idVendor}=="10c4",ATTRS{idProduct}=="ea60",${GROUP_STRING}MODE="$MODE"
|
|
KERNEL=="hidraw*",ATTRS{idVendor}=="1fc9",ATTRS{idProduct}=="0130",${GROUP_STRING}MODE="$MODE"
|
|
EOF
|
|
|
|
sudo udevadm control --reload-rules
|
|
|
|
echo -n "udev rule written. For changes to take effect, "
|
|
if [ "$REBOOT_REQUIRED" = "yes" ]; then
|
|
echo "either reboot or completely logout and login on $UN."
|
|
else
|
|
echo "disconnect and reconnect all Acroname devices."
|
|
fi
|