|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Шелезяки
—> Canon/gphotofs
Монтирование фотоаппарата Canon через gphotofs
Автор: lissyara.
Предистория. Подарил тёщще на новый год цифровик - Canon PowerShot A480 - попрощще, лишь бы снимал. Третье тысячелетие, а она с мыльницей плёночной рассекает =) К вечеру 1 января, вылезла проблема - цифровик был передан в руки жене, а та захотела смотреть/ковырять фотки в нём на компе...
Подрубаем к компу, и видим стандартную для Canon картинку:
Jan 7 18:03:56 dc7700p kernel: ugen4.3: <Canon Inc.> at usbus4
| Ладно. Это решаемо - топаем в порты и ставим:
dc7700p$ cd /usr/ports/
dc7700p$ make search name=gphotofs
Port: fusefs-gphotofs-0.4.0_1
Path: /usr/ports/graphics/fusefs-gphotofs
Info: Mount PTP camera as a file system
Maint: pav@FreeBSD.org
B-deps: fusefs-libs-2.7.4 gettext-0.18.1.1 glib-2.26.1_1 jpeg-8_3
libexif-0.6.18_1 libgphoto2-2.4.10.1 libiconv-1.13.1_1 libltdl-2.2.10
pcre-8.11 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6
R-deps: fusefs-kmod-0.3.9.p1.20080208_7 fusefs-libs-2.7.4
gamin-0.1.10_4 gettext-0.18.1.1 gio-fam-backend-2.26.1 glib-2.26.1_1
jpeg-8_3 libexif-0.6.18_1 libgphoto2-2.4.10.1 libiconv-1.13.1_1
libltdl-2.2.10 pcre-8.11 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6
WWW: http://gphoto.sourceforge.net/proj/gphotofs/
Port: sysutils/fusefs-gphotofs
Moved:
Date: 2009-10-05
Reason: Removed
dc7700p$ cd /usr/ports/graphics/fusefs-gphotofs
dc7700p$ make install clean
| Пробуем примонтировать цифровик:
dc7700p$ gphotofs /mnt
dc7700p$ df -h | grep mnt
/dev/fuse0 0B 0B 0B 0% /mnt
dc7700p$ ll /mnt/
total 0
drwxr-xr-x 2 root wheel 0B 1 янв 1970 store_00010001
dc7700p$ ll /mnt/store_00010001/
total 0
drwxr-xr-x 2 root wheel 0B 1 янв 1970 DCIM
dc7700p$ ll /mnt/store_00010001/DCIM/
total 0
drwxr-xr-x 2 root wheel 0B 1 янв 1970 100CANON
dc7700p$ ll /mnt/store_00010001/DCIM/100CANON/
total 9434
-rw-r--r-- 1 root wheel 2,0M 18 дек 11:10 IMG_0001.JPG
-rw-r--r-- 1 root wheel 2,6M 31 дек 21:42 IMG_0002.JPG
-rw-r--r-- 1 root wheel 2,7M 31 дек 21:42 IMG_0003.JPG
-rw-r--r-- 1 root wheel 2,0M 7 янв 15:13 IMG_0004.JPG
dc7700p$
| Чё-то виднеется. На этом можно было бы и остановится. Но, жене в консоль негоже втыкать. Порылся в панельке управления KDE4 - цифровик такой в списках есть, вот тока цепляться не хочет. Толи нехватает чё-то, толи совсем помойко-ориентированные стали они.
Ладно. Коммунисты не ищут лёгких путей. Есть sh, есть devd - больше ничё не надо. Для начала включаем дебаг и рестартуем devd:
dc7700p$ grep devd /etc/rc.conf
devd_flags="-d -D"
dc7700p$ /etc/rc.d/devd restart
devd not running?
Starting devd.
Parsing /etc/devd.conf
setting scsi-controller-regex=(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]+
Parsing files in /etc/devd
Parsing /etc/devd/asus.conf
Parsing /etc/devd/uath.conf
Parsing files in /usr/local/etc/devd
| Подрубаем аппарат, наблюдаем такой девайс на экране
Processing event '? at bus=1 hubaddr=1 port=4 devaddr=3 interface=0 vendor=0x04a9 product=0x31bf devclass=0x00 devsubclass=0x00 sernum="F7D1136708674498A2950C137682C518" release=0x0001 intclass=0x06 intsubclass=0x01 on uhub4'
Pushing table
setting bus=1
setting hubaddr=1
setting port=4
setting devaddr=3
setting interface=0
setting vendor=0x04a9
setting product=0x31bf
setting devclass=0x00
setting devsubclass=0x00
setting sernum=F7D1136708674498A2950C137682C518
setting release=0x0001
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 0x04a9 product 0x31bf bus uhub4'
Popping table
|
Изучение devd.conf подсказывает мысль - править конфиг не надо, достаточно создать инклюд. Что и делаем. Рисуем такой файл (на самом деле, это примерно третий вариант - в первых двух внешнего скрипта не было, просто монтировался цифровик и на рабочем столе создавался симлинк. Была обнаружена проблема, что KDE не всегда корректно его понимала... Причина не понятна, да и красоты хотелось - чтоб значок был какой нужно) - vendor/product/release - из вышеприведённого лога:
dc7700p$ 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;";
};
dc7700p$
| Плюс дополнительный скрипт, который занимается красивостями - и не забываем сделать его исполняемым:
dc7700p$ 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}"
| Далее, убираем дебаг, рестартуем devd и пробуем. Должно работать.
Обновление, от 2011-06-26:
В последнем -CURRENT чё-то снова поменяли, перестало работать. Так что файл инклюда теперь должен выглядеть так:
# mount canon photo using gphotofs
notify 100 {
match "vendor" "0x04a9";
match "type" "ATTACH";
action "/root/scripts/canon.A480.sh attach;";
};
# umount when dettach
notify 100 {
match "vendor" "0x04a9";
match "type" "DETACH";
action "/root/scripts/canon.A480.sh dettach;";
};
| И всё заработает.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=5&t=30611.
размещено: 2011-01-07,
последнее обновление: 2011-06-26,
автор: lissyara
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
|
Статистика сайта
|
Сейчас на сайте находится: 43 чел.
|
За последние 30 мин было: 235 человек
|
За сегодня было 3101 показов, 773 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [7 шт.]