Страница 1 из 1
Автомонтирование цифровиков Canon
Добавлено: 2011-01-06 19:21:24
Alex Keda
Понадобилось вот, жене, как всегда.
КДЕ4 - штатно не зработало.
слепил такой костыль:
Код: Выделить всё
HP# cat /usr/local/etc/devd/canon.conf
# mount canon photo using gphotofs
attach 100 {
match "vendor" "0x04a9";
match "product" "0x31bf";
match "release" "0x0001";
action "/root/scripts/canon.A480.sh attach;";
};
# umount when dettach
detach 100 {
match "vendor" "0x04a9";
match "product" "0x31bf";
match "release" "0x0001";
action "/root/scripts/canon.A480.sh dettach;";
};
Код: Выделить всё
HP# cat /root/scripts/canon.A480.sh
#!/bin/sh
if [ x$1 = "xattach" ]
then
/usr/local/bin/gphotofs -o allow_other /mnt;
/bin/chmod 775 /mnt;
cd /home/ && ls |
{
while read user
do
# file path
file="/home/$user/Desktop/Canon.A480.desktop"
# create file link
echo '[Desktop Entry]' >> $file
echo 'Comment[ru]=' >> $file
echo 'Comment=' >> $file
echo 'Exec=/usr/local/kde4/bin/dolphin /mnt' >> $file
echo 'Icon=camera-photo' >> $file
echo 'Name[ru]=Canon.A480' >> $file
echo 'Name=Canon.A480' >> $file
echo 'StartupNotify=true' >> $file
echo 'Terminal=false' >> $file
echo 'TerminalOptions=' >> $file
echo 'Type=Application' >> $file
echo 'X-KDE-SubstituteUID=false' >> $file
# set permissions
chown $user $file
chmod 755 $file
done
}
exit 0;
fi
if [ x$1 = "xdettach" ]
then
/sbin/umount -f /mnt;
cd /home/ && ls |
{
while read user
do
cd /home/$user/Desktop && rm -f /home/$user/Desktop/Canon.A480.desktop
done
}
exit 0;
fi
echo "Usage: `basename $0` {attach|dettach}"
HP#
вроде работает.
юзает /usr/ports/graphics/fusefs-gphotofs
статью с изысканиями, дебагом и прочим - наверно не надо.
тут просто всё. у меня минут 15 ушло на всё про всё - больше всего ушло на создание ярлыка - забыл [Desktop Entry] и немог вкурить почему не пашет

)
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-06 20:26:37
Gamerman
А на венде подключил и работает

Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-06 20:40:50
Alex Keda
как сканер, насколько я помню.
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-06 20:49:21
Gamerman
Alex Keda писал(а):как сканер, насколько я помню.
Что-то подобное, по крайней мере НЕ как устройство памяти.
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-07 19:44:03
FiL
на /mnt моунтить нехорошо. Особенно так неглядя. Мало-ли что там уже замаунчено. Или два фотоаппарата подключили...
Хоть-бы проверку какую сделать...
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-07 23:05:34
Alex Keda
в ноутбуке жены две дырки под usb
одна занята мышью, во вторую втыкают либо mp3 плеер, либо цифровик.
без вариантов

)
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-10 8:10:36
QweЯty
делаю тоже самое но немного другого плана....
у меня вот это:
Код: Выделить всё
#dmesg
ugen4.2: <Sony> at usbus4
umass0: <Sony Sony DSC, class 0/0, rev 2.00/6.10, addr 2> on usbus4
umass0: RBC over CBI; quirks = 0x0000
umass0:3:0:-1: Attached to scbus3
(probe0:umass-sim0:0:0:0): AutoSense failed
# lsusb
Bus /dev/usb Device /dev/ugen4.2: ID 054c:0010 Sony Corp. DSC-S30/S70/S75/F505V/F505/FD92/W1 Cybershot/Mavica Digital Camera
вопрос тока в сторону devd, так как скрипт вроде запускаемый вручную, наполовину но работает...
как будет выглядеть /usr/local/etc/devd/sony.conf ?
всегда ли будет
?
или цыфры меняются?
и надо ли ставить пакет
/usr/ports/graphics/fusefs-gphotofs
хочется так сделать:
0. подрубаем фотоаппарат руками и дальше все автоматом:
1. моунтится в
/mnt/sony
2. в
/STORAGE/storage/foto создается директория с датой в виде 07.01.2010
вот тут проблема возникла... если я отфоткал в этот же день еще пару флешек... что будет? можно ли сделать так:
все что было в каталоге, переместить в созданный подкаталог 1 а новые фото уже копировать в каталог 2 следующую в 3 (предел мечтаний, пок еще думаю этот пункт сделать)
3. все что есть в
/mnt/sony копируется в
/STORAGE/storage/foto и потом уже в каталоге
/STORAGE/storage/foto задаются права 775 для каталогов и 664 для файлов(как это сделать одновременно, не знаю)
4. с
/mnt/sony все удаляется, оставляя флешку чистой... (точнее удаляются фотографии, а не папки DCIM/и какая то еще)
5. отмаунтивается от
/mnt/sony
6.
спикером ругается что все ок(морзянку знаю довольно хорошо) и наверное пишет в консоль(задумано, но еще думаю надо ли оно)
реализовал из всего этого тока пункты 1, 2, 3(перемещение каталогов с файлами), 4, 5
работает с флешкой обычной (скрипт под нее писал)
вручную запускается все нормально, полет отличный.. работает так как надо...
как теперь это сделать для фотоаппарата через devd
devd в режиме дебага выдает:
Код: Выделить всё
setting device-name=umass0
setting vendor=0x054c
setting product=0x0010
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0610
setting intclass=0x08
setting intsubclass=0xff
Processing attach event
Testing device-name=umass0 against ^ed50
Testing device-name=umass0 against ^ubt[0-9]+
Testing device-name=umass0 against ^ukbd0
Testing device-name=umass0 against ^ums[0-9]+
Testing vendor=0x054c against ^0x0854
Testing vendor=0x054c against ^0x1645
Testing media type of umass0 against 0x80
Testing device-name=umass0 against ^(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)[0-9]+
Popping table
setting system=USB
setting subsystem=DEVICE
setting type=ATTACH
setting cdev=ugen4.2
setting vendor=0x054c
setting product=0x0010
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0610
setting mode=host
setting port=1
setting parent=ugen4.1
Processing notify event
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x2001
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0d8e
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0cf3
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x168c
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x083a
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x07d1
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x1690
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x16ab
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0846
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x1385
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x157e
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x082d
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x1435
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0cde
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^INTERFACE
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-11 13:14:40
QweЯty
не поддерживается, или что то не так сделал:(
установил порт
/usr/ports/graphics/fusefs-gphotofs
Код: Выделить всё
radist04ka# gphotofs -o allow_other /mnt/sony
radist04ka# cd /mnt/sony/
radist04ka# ls
ls: .: Protocol error
radist04ka#
radist04ka# umount -f /mnt/sony
radist04ka#
radist04ka# gphotofs -o allow_other /mnt/sony
radist04ka# cd sony/
radist04ka# ls
ls: .: Protocol not supported
radist04ka# gphotofs -o allow_other /mnt/sony
radist04ka# rehash
radist04ka# rehash
radist04ka# rehash
radist04ka# ls /mnt/
./ ../ cdrom/ dwdrw/ floppy/ media/ sony/
radist04ka# ls /mnt/sony
ls: /mnt/sony: Protocol not supported
radist04ka#
Код: Выделить всё
# dmesg
fuse4bsd: version 0.3.9-pre1, FUSE ABI 7.8
ugen4.2: <Sony> at usbus4
umass0: <Sony Sony DSC, class 0/0, rev 2.00/6.10, addr 2> on usbus4
umass0: RBC over CBI; quirks = 0x0000
umass0:3:0:-1: Attached to scbus3
(probe0:umass-sim0:0:0:0): AutoSense failed
ugen4.2: <Sony> at usbus4 (disconnected)
umass0: at uhub4, port 1, addr 2 (disconnected)
ugen4.2: <Sony> at usbus4
umass0: <Sony Sony DSC, class 0/0, rev 2.00/6.10, addr 2> on usbus4
umass0: RBC over CBI; quirks = 0x0000
umass0:3:0:-1: Attached to scbus3
(probe0:umass-sim0:0:0:0): AutoSense failed
ugen4.2: <Sony> at usbus4 (disconnected)
umass0: at uhub4, port 1, addr 2 (disconnected)
ugen4.2: <Sony> at usbus4
umass0: <Sony Sony DSC, class 0/0, rev 2.00/6.00, addr 2> on usbus4
umass0: RBC over CBI; quirks = 0x1000
umass0:3:0:-1: Attached to scbus3
(probe0:umass-sim0:0:0:0): AutoSense failed
ugen4.2: <Sony> at usbus4 (disconnected)
umass0: at uhub4, port 1, addr 2 (disconnected)
ugen4.2: <Sony> at usbus4
umass0: <Sony Sony DSC, class 0/0, rev 2.00/6.00, addr 2> on usbus4
umass0: RBC over CBI; quirks = 0x1000
umass0:3:0:-1: Attached to scbus3
(probe0:umass-sim0:0:0:0): AutoSense failed
ugen4.2: <Sony> at usbus4 (disconnected)
umass0: at uhub4, port 1, addr 2 (disconnected)
radist04ka#
как мне смонтировать фотоаппарат?
Код: Выделить всё
radist04ka# uname -rpsi
FreeBSD 8.1-STABLE-201011 i386 KERN
radist04ka#
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-11 17:47:02
QweЯty
вопрос снят, все решилось переводом фотика с авто в режим PTP
вопрос остался с devd...
что и как писать в нем?
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-11 19:30:07
QweЯty
имеем:
Код: Выделить всё
radist04ka# cat sony.sh
#!/bin/sh
# монтируем фотоаппарат
gphotofs -o allow_other /mnt/sony
# создаем папку с текущей датой
mkdir /STORAGE/disk02/foto/`date +%d.%m.%Y`
# даем права
chmod 775 /mnt/sony/*
# пеермещаем фотографии с фотоаппарата в папку с сегодняшней датой
mv /mnt/sony/store_*/* /STORAGE/disk02/foto/`date +%d.%m.%Y`/
# отмонтируем фотоаппарат
umount /mnt/sonyradist04ka#
почему то ругается при удалении файлов..
Код: Выделить всё
radist04ka# ./sony.sh
mv: /mnt/sony/store_00010001/DSC05612.JPG: remove: Protocol not supported
mv: /mnt/sony/store_00010001/DSC05613.JPG: remove: Protocol not supported
mv: /mnt/sony/store_00010001/DSC05614.JPG: remove: Protocol not supported
mv: /mnt/sony/store_00010001/DSC05615.JPG: remove: Protocol not supported
radist04ka#
остальное проходит без проблем...
монтирование, создание, копирование, удаление не работает, отмонтирование работает....
так же вопрос отпал с тем что подключаешь два или три раза в день, копируются только файлы все видео/фото, папка не копируется...
но при повторном подключении ругается:
Код: Выделить всё
radist04ka# ./sony.sh
mkdir: /STORAGE/disk02/foto/11.01.2011: File exists
как сделать проверку на наличие папки?
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-11 23:35:27
Alex Keda
ничё не понял...
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-12 8:43:51
QweЯty
ничё не понял...
ладно, опишем пока имеющиеся вопросы....
- почему нельзя удалять файлы с флешки фотика?
- как ее можно отформатировать?
- как настроить devd на мой аппарат...
скрипт вот такой стал после нескольких экзекуций
Код: Выделить всё
#!/bin/sh
fld="/STORAGE/disk02/foto/`date +%d.%m.%Y`/"
remfld="/STORAGE/disk02/foto/`date +%d.%m.%Y.1`"
mountphoto="/mnt/sony"
# монтируем фотоаппарат
gphotofs -o allow_other $mountphoto
# даем права
find $mountphoto -type d -exec chmod 775 {} \;
find $mountphoto -type f -exec chmod 664 {} \;
# проверяем есть ли папка с текущей датой, нет то создаем папку с текущей датой
if [ ! -e "$fld" ]; then
if [ ! -d "$fld" ]; then
echo "не папка"
mv $fld $remfld
else
echo "существует"
fi
else
mkdir -p $fld
fi
# пеермещаем фотографии с фотоаппарата в папку с сегодняшней датой
cp $mountphoto/store_*/* $fld
# отмонтируем фотоаппарат
umount $mountphoto
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-12 17:46:10
Alex Keda
QweЯty писал(а):ничё не понял...
ладно, опишем пока имеющиеся вопросы....
- почему нельзя удалять файлы с флешки фотика?
у меня можно. проблемы конкретного цифровика, думаю.
QweЯty писал(а):
- как ее можно отформатировать?
из меню фотоаппарата
QweЯty писал(а):
- как настроить devd на мой аппарат...
указать вендора и продукт в настрйоках эвентов
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-15 23:07:00
QweЯty
Код: Выделить всё
radist04ka# cat sony.conf
attach 100 {
match "vendor" "0x054c";
match "product" "0x0010";
match "release" "0x0610";
action "/usr/local/scripts/sony.sh;";
};
Код: Выделить всё
radist04ka# /etc/rc.d/devd restart
Stopping devd.
Starting devd.
radist04ka#
Код: Выделить всё
radist04ka# cat /usr/local/scripts/sony.sh
#!/bin/sh
fld="/STORAGE/disk02/foto/`date +%d.%m.%Y`";
remfld="/STORAGE/disk02/foto/`date +%d.%m.%Y.1`";
mountphoto="/mnt/sony";
gphoto="/usr/local/bin/gphotofs";
# монтируем фотоаппарат
$gphoto -o allow_other $mountphoto;
sleep 5;
# проверяем есть ли папка с текущей датой, нет то создаем папку с текущей датой
if [ -f "$fld" ]
then
#echo "присутствует файл с $fld";
mv $fld $remfld;
mkdir -p $fld;
cp $mountphoto/store_*/* $fld/;
elif [ -d "$fld" ]
then
#echo "папка есть уже";
cp $mountphoto/store_*/* $fld/;
else
#echo "создаем папку";
mkdir -p $fld;
cp $mountphoto/store_*/* $fld/;
fi
# даем права
/bin/chmod 775 $fld;
/usr/bin/find $fld -type f -exec chmod 664 {} \;;
/usr/sbin/chown -Rf radist:operator $fld;
# отмонтируем фотоаппарат
/sbin/umount $mountphoto;
/usr/games/morse -p -d /dev/speaker "Sony OK";
radist04ka#
если запускать от руки скрипт то все ок, работает на ура...
причем абсолютно все что хотел....
а автоматом не хатит работать:(
раз 5 втыкал/вытыкал фотик:
Код: Выделить всё
radist04ka# dmesg | grep Sony
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.3: <Sony> at usbus4
ugen4.3: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
почему таки не работает devd
класс вендора и продукт назвал вроде те:
Код: Выделить всё
setting vendor=0x054c
setting product=0x0010
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0610
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-17 21:13:26
Alex Keda
пути пропишите
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-17 22:20:47
QweЯty
всмысле?
Код: Выделить всё
radist04ka# ls -l /usr/local/etc/devd/
total 8
-rw-r--r-- 1 root wheel 135 15 янв 23:14 sony.conf
-r--r--r-- 1 root wheel 227 30 ноя 07:35 webcamd.conf
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-17 22:44:48
Alex Keda
Код: Выделить всё
p3-800# env | grep PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin
p3-800#
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-17 22:58:25
QweЯty
Код: Выделить всё
radist04ka# env | grep PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin
и потом, у меня пути прописаны статические
Код: Выделить всё
radist04ka# cat /usr/local/scripts/sony.sh
#!/bin/sh
fld="/STORAGE/disk02/foto/`date +%d.%m.%Y`";
remfld="/STORAGE/disk02/foto/`date +%d.%m.%Y.1`";
mountphoto="/mnt/sony";
gphoto="/usr/local/bin/gphotofs";
# монтируем фотоаппарат;
$gphoto -o allow_other $mountphoto;
/bin/sleep 5;
# проверяем есть ли папка с текущей датой, нет то создаем папку с текущей датой;
# Заодно и копируем
if [ -f "$fld" ]
then
#echo "присутствует файл с $fld";
/bin/mv $fld $remfld;
/bin/mkdir -p $fld;
/bin/cp $mountphoto/store_*/* $fld/;
elif [ -d "$fld" ]
then
#echo "папка есть уже";
/bin/cp $mountphoto/store_*/* $fld/;
else
#echo "создаем папку";
/bin/mkdir -p $fld;
/bin/cp $mountphoto/store_*/* $fld/;
fi
# даем права;
/bin/chmod 775 $fld;
/usr/bin/find $fld -type f -exec chmod 664 {} \;;
/usr/sbin/chown -Rf radist:operator $fld;
# отмонтируем фотоаппарат;
/sbin/umount $mountphoto;
/usr/games/morse -p -d /dev/speaker "Sony OK";
radist04ka#
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-18 3:45:27
QweЯty
щаз воткнул и проверил логи all.log
Код: Выделить всё
radist04ka# cat /var/log/all.log | grep USB
Jan 18 03:41:45 radist04ka radist: Unknown USB device: vendor 0x054c product 0x004e bus uhub4
Jan 18 03:43:29 radist04ka radist: Unknown USB device: vendor 0x054c product 0x004e bus uhub4
что это значит?
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-27 23:16:46
QweЯty
подскажите, почему все равно через devd не запускаеся скрипт?
вот все давнные:
при devd -d -D
Код: Выделить всё
Processing event '? at bus=1 hubaddr=3 port=4 devaddr=2 interface=0 vendor=0x054c product=0x004e devclass=0x00 devsubclass=0x00 sernum="" release=0x0310 intclass=0x06 intsubclass=0x01 on uhub4'
Pushing table
setting bus=1
setting hubaddr=3
setting port=4
setting devaddr=2
setting interface=0
setting vendor=0x054c
setting product=0x004e
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0310
setting intclass=0x06
setting intsubclass=0x01
setting bus=uhub4
Processing nomatch event
Testing bus=uhub4 against ^pccard[0-9]+
Testing bus=uhub4 against ^uhub[0-9]+
Executing 'logger Unknown USB device: vendor 0x054c product 0x004e bus uhub4'
Popping table
dmesg
Код: Выделить всё
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
ugen4.2: <Sony> at usbus4
ugen4.2: <Sony> at usbus4 (disconnected)
скрипт:
Код: Выделить всё
radist04ka# cat /usr/local/etc/devd/sony.conf
attach 100 {
match "system" "USB";
match "vendor" "0x054c";
match "product" "0x004e";
action "/usr/local/scripts/sony.sh";
};
как я понял надо брать эти данные из логов devd
Код: Выделить всё
setting vendor=0x054c
setting product=0x004e
сам скрипт:
Код: Выделить всё
radist04ka# cat /usr/local/scripts/sony.sh
#!/bin/sh
fld="/STORAGE/disk02/foto/`date +%d.%m.%Y`";
remfld="/STORAGE/disk02/foto/`date +%d.%m.%Y.1`";
mountphoto="/mnt/sony";
gphoto="/usr/local/bin/gphotofs";
usephoto="radist:operator"
# монтируем фотоаппарат;
$gphoto -o allow_other $mountphoto;
/bin/sleep 5;
# проверяем есть ли папка с текущей датой, нет то создаем папку с текущей датой;
# Заодно и копируем
if [ -f "$fld" ]
then
#/bin/echo "присутствует файл с $fld";
/bin/mv $fld $remfld;
/bin/mkdir -p $fld;
/bin/cp $mountphoto/store_*/* $fld/;
elif [ -d "$fld" ]
then
#/bin/echo "папка есть уже";
/bin/cp $mountphoto/store_*/* $fld/;
else
#/bin/echo "создаем папку";
/bin/mkdir -p $fld;
/bin/cp $mountphoto/store_*/* $fld/;
fi
# даем права;
/bin/chmod 775 $fld;
/usr/bin/find $fld -type f -exec chmod 664 {} \;;
/usr/sbin/chown -Rf $usephoto $fld;
# отмонтируем фотоаппарат;
/sbin/umount $mountphoto;
/usr/games/morse -p -d /dev/speaker "Sony OK";
radist04ka#
сам скрипт работает должным образом, если его запустить в консоли или тем же кроном(тестил, может это глюк такой, что с консоли можно а через другую прграмму нет, но все работало...)
при включении фотоаппарата со всеми конфигами и скриптами в дирах при devd -d -D:
Код: Выделить всё
Processing event '+ugen4.2 vendor=0x054c product=0x004e devclass=0x00 devsubclass=0x00 sernum="" release=0x0310 at port=3 on ugen4.1'
Pushing table
setting device-name=ugen4.2
setting vendor=0x054c
setting product=0x004e
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0310
Processing attach event
Testing device-name=ugen4.2 against ^ed50
Testing device-name=ugen4.2 against ^ubt[0-9]+
Testing device-name=ugen4.2 against ^ukbd0
Testing device-name=ugen4.2 against ^ums[0-9]+
Testing vendor=0x054c against ^0x0854
Testing vendor=0x054c against ^0x1645
Testing system= against ^USB
Testing media type of ugen4.2 against 0x80
Testing device-name=ugen4.2 against ^(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)[0-9]+
Popping table
Processing event '!system=USB subsystem=DEVICE type=ATTACH cdev=ugen4.2 vendor=0x054c product=0x004e devclass=0x00 devsubclass=0x00 sernum="" release=0x0310 mode=host port=3 parent=ugen4.1'
Pushing table
setting system=USB
setting subsystem=DEVICE
setting type=ATTACH
setting cdev=ugen4.2
setting vendor=0x054c
setting product=0x004e
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0310
setting mode=host
setting port=3
setting parent=ugen4.1
Processing notify event
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x2001
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0d8e
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0cf3
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x168c
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x083a
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x07d1
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x1690
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x16ab
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0846
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x1385
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x157e
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x082d
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x1435
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^DEVICE
Testing type=ATTACH against ^ATTACH
Testing vendor=0x054c against ^0x0cde
Testing system=USB against ^USB
Testing subsystem=DEVICE against ^INTERFACE
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Popping table
Processing event '!system=USB subsystem=INTERFACE type=ATTACH cdev=ugen4.2 vendor=0x054c product=0x004e devclass=0x00 devsubclass=0x00 sernum="" release=0x0310 mode=host interface=0 endpoints=3 intclass=0x06 intsubclass=0x01 intprotocol=0x01'
Pushing table
setting system=USB
setting subsystem=INTERFACE
setting type=ATTACH
setting cdev=ugen4.2
setting vendor=0x054c
setting product=0x004e
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0310
setting mode=host
setting interface=0
setting endpoints=3
setting intclass=0x06
setting intsubclass=0x01
setting intprotocol=0x01
Processing notify event
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^DEVICE
Testing system=USB against ^USB
Testing subsystem=INTERFACE against ^INTERFACE
Testing type=ATTACH against ^ATTACH
Testing intclass=0x06 against ^(0x0e|0xff)
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ZFS
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^ACPI
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Testing system=USB against ^IFNET
Popping table
Processing event '? at bus=1 hubaddr=3 port=4 devaddr=2 interface=0 vendor=0x054c product=0x004e devclass=0x00 devsubclass=0x00 sernum="" release=0x0310 intclass=0x06 intsubclass=0x01 on uhub4'
Pushing table
setting bus=1
setting hubaddr=3
setting port=4
setting devaddr=2
setting interface=0
setting vendor=0x054c
setting product=0x004e
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x0310
setting intclass=0x06
setting intsubclass=0x01
setting bus=uhub4
Processing nomatch event
Testing bus=uhub4 against ^pccard[0-9]+
Testing bus=uhub4 against ^uhub[0-9]+
Executing 'logger Unknown USB device: vendor 0x054c product 0x004e bus uhub4'
Popping table
но ничего не происходит... активность фотоаппарата = 0
как и компа, впрочем, тоже....
при отключении
Код: Выделить всё
Processing event '!system=DEVFS subsystem=CDEV type=DESTROY cdev=usb/4.2.2'
Pushing table
setting system=DEVFS
setting subsystem=CDEV
setting type=DESTROY
setting cdev=usb/4.2.2
Processing notify event
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Popping table
Processing event '!system=DEVFS subsystem=CDEV type=DESTROY cdev=usb/4.2.1'
Pushing table
setting system=DEVFS
setting subsystem=CDEV
setting type=DESTROY
setting cdev=usb/4.2.1
Processing notify event
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^USB
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ZFS
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^ACPI
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Testing system=DEVFS against ^IFNET
Popping table
в чем глюк?!
почему ничего не работает:(
при этом работает скрипт для webcamd
Код: Выделить всё
radist04ka# cat /usr/local/etc/devd/webcamd.conf
notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "intclass" "(0x0e|0xff)";
action "env LD_PRELOAD=/usr/local/lib/libcuse4bsd.so /usr/local/sbin/webcamd -d $cdev -B -i 0";
};
при подключении запускается webcamd с нужными параметрами
а тут:(
не работает, хотя все правильно записано....

Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-28 22:49:46
Alex Keda
попробуйте только вендора оставить...
странно, вообще.
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-29 19:38:33
QweЯty
заработало если сделать так:
Код: Выделить всё
notify 100 {
match "system" "USB";
match "vendor" "0x054c";
match "product" "0x004e";
match "release" "0x0310";
action "/usr/local/scripts/sony.sh";
};
но один глюк возникает...
скрипт при одном подключении срабатывает дважды....
UPD.
оставлял при
attach
только
Код: Выделить всё
attach 100 {
match "vendor" "0x054c";
action "/usr/local/scripts/sony.sh";
};
не заработало...
UPD v2.
ради интереса заменил 100 на 200 и все заработало...
UPD v3.
работает
просто 100 на 200 заменить надо было....
p.p.s. может в статью добавить как "альтернативное и автоматизированое" подключение фотоаппарата ?
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-29 21:39:48
QweЯty
p.p.p.s.
а таким же способом можно автомонтировать сьемный усб-винт?
Re: Автомонтирование цифровиков Canon
Добавлено: 2011-01-30 14:19:52
Alex Keda
можно.
статью на сайте про тонкие клиенты поищщите, последнюю, там пример есть.
но там для 7.x - старовато, но работает