digikam и gphoto
Bodro 5 января, 2009 - 12:32
Добрый день!
Подскажите, как правильно пересобирать gphoto и digikam?
Я делаю так:
- прописываю в /etc/make.conf строчку
CAMERAS="ptp2"
- устанавливаю gphoto: # emerge -av gphoto2
- устанавливаю digikam: # emerge -av digikam
Всё ли я правильно делаю? Порядок установки подсказал знакомый, но я нигде не видел среди флагов выбор CAMERAS. Как правильно установить digikam?
Работать необходимо с фотоаппаратом CANON PowerShot A570 IS.
»
- Для комментирования войдите или зарегистрируйтесь
see:
less /usr/portage/profiles/desc/cameras.desc ;-)
Для gphoto2 критично libgphoto2 -- именно её и нужно пересобрать с правильными флагами CAMERAS. Также от этой либы условно зависят kdegraphics и sane-backends, которые в свою очередь могут использоваться digikam. Таким образом добавляем:
CAMERAS="ptp2"
USE="gphoto2"
в /etc/make.conf
после чего:
emerge -vauDN world
Поправьте, если ошибаюсь, но
Поправьте, если ошибаюсь, но если не указывать никакую определённую камеру, libgphoto2 соберётся с поддержкой всех возможных камер.
Я ♥ Gentoo & Funtoo
Это легко проверить
emerge --info | grep USE=
emerge -vp1 libgphoto2
А как это объяснить: #equery
А как это объяснить:
P.S. Никакие камеры специально не настраивал
Я ♥ Gentoo & Funtoo
Если только на уровне предположения...
Возможно когда-то давным давно (!!!), portage не маскировал значение CAMERAS подобно ALSA_PCM_PLUGINS или APACHE2_MODULES. И при установке пакета было установлено всё, что прописано в этой переменной. Но потом поведение этой USE_EXPAND было изменено, но уже собранный пакет в системе остался. Немножко вариации на тему: в результате эволюции дерева портежей (ебилда libgphoto2), раньше, если CAMERAS="", оно собиралось со всеми возможными камерами. А может оно и сейчас так -- в таком случае вы правы! :)
UPD: Нашёл - вот оно! И ещё: 01 Oct 2007
пофиксил в профилях портежей cameras.desc, которые стали поддерживаться через IUSE_CAMERAS начиная с libgphoto-2.4.0. Он же добавил туда новые описания камер 04 Aug 2008 и 29 Nov 2008. Так что многое зависит от того, насколько давно Вы обновлялись... ;-)
Раза два-три
Раза два-три в неделю. В моём предыдущем посте видна версия libgphoto2 - 2.4.3
Я ♥ Gentoo & Funtoo
Значит не в частоте, а в особенности
процесса обновления дело. Но суть вашего вопроса в точности объясняется выше приведённой ссылкой. Там, если глянуть сам патч, хорошо видно, что даже сейчас, если camers="", то оно будет ="all", что очевидно не есть гуд.
Подобным образом ведёт
Подобным образом ведёт себя и alsa-lib:
#emerge -pv alsa-lib These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-libs/alsa-lib-1.0.18 USE="midi python -alisp -debug -doc" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol"
Но здесь хотя бы видно, что эти плугины установились.
libgphoto2 отличает "скромность":
#emerge -pv libgphoto2 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] media-libs/libgphoto2-2.4.3 USE="exif hal nls -bonjour -doc" CAMERAS="-adc65 -agfa_cl20 -aox -barbie -canon -casio_qv -clicksmart310 -digigr8 -digita -dimagev -dimera3500 -directory -enigma13 -fuji -gsmart300 -hp215 -iclick -jamcam -jd11 -jl2005a -kodak_dc120 -kodak_dc210 -kodak_dc240 -kodak_dc3200 -kodak_ez200 -konica -konica_qm150 -largan -lg_gsm -mars -mustek -panasonic_coolshot -panasonic_dc1000-panasonic_dc1580 -panasonic_l859 -pccam300 -pccam600 -polaroid_pdc320 -polaroid_pdc640 -polaroid_pdc700 -ptp2 -ricoh -ricoh_g3 -samsung -sierra -sipix_blink -sipix_blink2 -sipix_web2 -smal -sonix -sony_dscf1 -sony_dscf55 -soundvision -spca50x -sq905 -stv0674 -stv0680 -sx330z -template -topfield -toshiba_pdrm11"
Я ♥ Gentoo & Funtoo
Да там в самом ебилде до
Да там в самом ебилде до тупости простой алгоритм. Если все флаги камер выключены, то libgphoto2 будет собираться с единственным флагом "all", что по сути равнозначно включению сразу всех флагов. Так что в исходном посте вы оказались абсолютно правы! Обратите внимание на начало pkg_setup() в ебилде версии 2.4.3. Примечательно что апстрим libgphoto2 не будет решать проблемы, если не было попыток решить проблему собрать сначала с поддержкой всех камер! В src_configure(): [ -z $cameras ] && cameras="all", что вообщем-то и объясняет такую "скромность" (либа будет собрана с --with-drivers=all, но это ни в коей мере не повлияет в обратную сторону на USE-флаги/CAMERAS).
Логика портежей тут
Логика портежей тут действительно не совсем понятна. Лишний повод укусить gentoo в больное место. Всё дело в постепенности и не однообразности эволюции! =))) Многое зависит от выбранного профиля и конкретных ебилдов, а также того, что прописано в /etc/make.conf. В совокупности - это понимание логики "автомата", котрый с одной стороны практичен, с другой - если его логика не очевидна, то и посыл "вы сами управляете всем и вся" не будет соблюдён. До тех пор, пока не поймёшь, как работает этот автомат.
Вот здесь как раз хороший (но не единственный) пример. Ряд USE_EXPAND-переменных в выбранном профиле изначально пуст, как в случае с CAMERAS. В случае же с APACHE2_MODULES или ALSA_PCM_PLUGINS - они изначально "набиты по максимуму". Вот отсюда и растут ноги этой "скромности"... =)))
Проблема была в отсутствии
Проблема была в отсутствии поддержки USB в ядре. Сейчас всё вклюсил и по идее с USB должно работать всё нормально. Я пересобрал libgphoto и digikam. Пересобрать gphoto2 не удалось. Ошибки. Пока решил оставить такой, какой есть.
Сейчас камера определяется, но работать с ней digikam не хочет. Автоопределение определяет камеру Canon PowerShot A570 IS (PTP mode). Но как только пытаешься сделать Импорт с камеры выдаёт ошибку, что подключиться не удалось.
bodro@bodro ~ $ dmesg | tail
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: adding 1-2:1.0 (config #1, interface 0)
usb 1-2:1.0: uevent
drivers/usb/core/inode.c: creating file '004'
usb 1-2: New USB device found, idVendor=04a9, idProduct=314c
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-2: Product: Canon Digital Camera
usb 1-2: Manufacturer: Canon Inc.
usb 1-2: SerialNumber: 0CEB6547F8E2487CAC240A77F3C0C64F
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0004
Ну вроде бы всё есть. Так в чём причина что не работает?
Может быть в этом:
"Пересобрать gphoto2 не удалось"
в конечном итоге всё упирается в неё...
А ты можешь мне объяснить
А ты можешь мне объяснить цепочку работу этой всей системы?
Как её понимаю я:
libgphoto2 работает непосредственно с камерой. digikam занимается просто импортом из папок, редактированием и прочими вещами. Кароче, просто предоставляет удобный интерфейс. Если что-то нужно сделать с камерой, то он обращается к libgphoto2. А какое место в этой цепочке занимает gphoto2?
Ведь CAMERAS для libgphoto2.
digikam при сборке ничего не говорит об использовании флага gphoto2.
А если ставить gphoto2, то он ничего не говорит про libgphoto2.
Объясни, пожалуйста, как это работает?
Дерево зависимостей я уже описал в первом ответе...
Но вы и сами можете в этом убедиться:
Судя по документации, gphoto2 — command-line gphoto2 client.
А вот digiKam зависит от всего выше перечисленного, кроме этой консольной тулзы.
Самое лучшее объяснение - в этой самой доке, там всё ясно и подробно.
Кстати, есть даже толковый рисунок и примеры fdi для hotplug helper...