blob: 023ae9b1b7ba8a81f934a4204ff1f31726c523ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/bin/bash
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301 USA
#
#
# $Id$
#
# /etc/hotplug/usb/usbcam
#
# Sets up newly plugged in USB camera so that just one certain user
USER=root
# can access it from user space. (Replace root by the user you want
# to have access to the cameras.)
# It then runs the X11 application (gtkam is used as an example)
X11_APP=/usr/bin/gtkam
# on the X11 display (:0 should work on most single user workstations)
DISPLAY=:0
# in the directory (~$USER is just the user's home directory)
DIRECTORY=~$USER
#
# Note that for this script to work, you'll need all of the following:
# a) a line in the file /etc/hotplug/usermap that corresponds to the
# camera you are using. You can get the correct lines for all cameras
# supported by libgphoto2 by running
# $ print-camera-list usb-usermap usbcam
# b) run your camera software as the user given above
# c) a Linux kernel supporting hotplug and usbdevfs
# d) the hotplug package (http://linux-hotplug.sourceforge.net/)
# e) su
# f) env
# g) X11
#
# In the usermap file, the first field "usb module" should be named
# "usbcam" like this script.
#
# Script written by Trevor Woerner but slightly adapted for inclusion
# into libgphoto2.
SU=/bin/su
ENV=/usr/bin/env
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
chmod a-rwx "${DEVICE}"
chown "${USER}" "${DEVICE}"
chmod u+rw "${DEVICE}"
if [ "${USER}" != "root" ]
then
# we don't want to run this as root. definitely not.
cd "${DIRECTORY}"
usrhome=~${USER}
"${SU}" "${USER}" -c "${ENV} DISPLAY=${DISPLAY} HOME=${usrhome} ${X11_APP}"
fi
fi
|