Как скопировать файлы * в * камеру?

Я хотел бы скопировать файл обновления прошивки на камеру Canon 7D, подключенную через USB.

После того, как он был установлен автоматически thunar + thunar-volman + gvfs-gphoto2 я попробовал следующее:

 $ cp eos7d-v205-win/7D000205.FIR /run/user/1000/gvfs/gphoto2\:host\=%5Busb%3A001%2C012%5D/ $ echo $? 0 $ ls /run/user/1000/gvfs/gphoto2\:host\=%5Busb%3A001%2C012%5D/ DCIM MISC 

Так что он попал в черную дыру.


В первый раз, когда я пытаюсь скопировать его с помощью Ctrl- c, а Ctrl- v выдает следующее сообщение об ошибке при вставке файла:

Ошибка записи файла.

-108: Нет такого файла или каталога.

Вы хотите пропустить его?

Если я попробую снова после этого, он просто сработает:

 $ thunar Segmentation fault (core dumped) $ echo $? 139 

В оболочке Gphoto 2 есть недокументированная функция put которую я также пробовал:

 $ sudo umount /run/user/1000/gvfs $ gphoto2 --shell gphoto2: {.../eos7d-v205-win} /> help put Help on "put": Usage: put [directory/]filename Description: Upload a file * Arguments in brackets [] are optional 

Таким образом, эта функция принимает один аргумент с дополнительным каталогом. Странно, но должно быть выполнимо. Некоторые попытки заставить его работать:

 $ gphoto2 --shell gphoto2: {.../eos7d-v205-win} /> ls store_00010001/ gphoto2: {.../eos7d-v205-win} /> put 7D000205.FIR *** Error *** You need to specify a folder starting with /store_xxxxxxxxx/ *** Error (-1: 'Unspecified error') *** gphoto2: {.../eos7d-v205-win} /> put /store_00010001/7D000205.FIR *** Error *** PTP Access Denied *** Error (-1: 'Unspecified error') *** gphoto2: {.../eos7d-v205-win} /> put /store_00010001/MISC/7D000205.FIR *** Error *** PTP Access Denied *** Error (-1: 'Unspecified error') *** 

Может быть, это не поддерживается ?


У Digikam есть функция загрузки , но это только что сообщило « Не удалось загрузить файл« 7D000205.FIR ». «Запуск из оболочки не дал больше информации.


man gvfs-copy явно не говорит, что он не может копировать на камеру, но я не могу понять, как:

 $ gvfs-copy "file://${HOME}/7D000203.FIR" /run/user/1000/gvfs/gphoto2\:host\=%5Busb%3A004%2C006%5D/ Error copying file file:///[...]/7D000203.FIR: Error writing file: -1: Unspecified error $ gvfs-copy "file://${HOME}/7D000203.FIR" file:///run/user/1000/gvfs/gphoto2\:host\=%5Busb%3A004%2C006%5D/ Error copying file file:///[...]/7D000203.FIR: Error opening file '/run/user/1000/gvfs/gphoto2:host=[usb:004,006]': No such file or directory $ gvfs-copy "file://${HOME}/7D000203.FIR" gphoto2://host\=%5Busb%3A004%2C006%5D/ Error copying file file:///[...]/7D000203.FIR: The specified location is not mounted 

gphoto2 говорит, что должно быть возможно загрузить файлы на камеру:

 $ gphoto2 --port usb: --abilities Abilities for camera : Canon EOS 7D Serial port support : no USB support : yes Capture choices : : Image : Preview Configuration support : yes Delete selected files on camera : yes Delete all files on camera : no File preview (thumbnail) support : yes File upload support : yes 

В руководстве gphoto2 говорится, что он поддерживает «загрузку» файлов. Это не работает. Попытка команды сообщалась как работающая в другом месте :

 $ gphoto2 --upload-file 7D000203.FIR --folder /store_00010001 *** Error *** PTP Access Denied *** Error (-1: 'Unspecified error') *** For debugging messages, please use the --debug option. Debugging messages may help finding a solution to your problem. If you intend to send any error or debug messages to the gphoto developer mailing list <gphoto-devel@lists.sourceforge.net>, please run gphoto2 as follows: env LANG=C gphoto2 --debug --debug-logfile=my-logfile.txt --upload-file 7D000203.FIR --folder /store_00010001 Please make sure there is sufficient quoting around the arguments. 

После попытки отладки команды я получаю следующие соответствующие строки журнала:

 ptp_usb_getresp [usb.c:434] (0): PTP_OC 0x100c receiving resp failed: PTP Access Denied (0x200f) put_file_func [library.c:5940](0): 'ptp_sendobjectinfo (params, &storage, &parent, &handle, &oi)' failed: 'PTP Access Denied' (0x200f) gp_context_error (0): PTP Access Denied gp_camera_folder_put_file [gphoto2-camera.c:1248](0): 'gp_filesystem_put_file (camera->fs, folder, filename, type, file, context)' failed: -1 gp_camera_free (2): Freeing camera... gp_camera_exit (2): Exiting camera ('Canon EOS 7D')... ptp_usb_sendreq (2): Sending PTP_OC 0x1003 / Close session request... gp_port_write (3): Writing 12 = 0xc bytes to port... gp_port_write (3): Wrote 12 = 0xc bytes to port: (hexdump of 12 bytes) 0c 00 00 00 01 00 03 10-0c 00 00 00 ............ 

Слишком много WTF в минуту . Что мне нужно сделать, чтобы скопировать файл на камеру в Arch Linux?

В случае, если это имеет значение: я попытался скопировать файл в Windows 7, и он также не работает:

У вас нет разрешения на создание этого элемента.

  • Смонтируйте закладку Thunar / Nautilus / Nemo gvfs с помощью командной строки
  • Как заставить gvfs-unmount мертвое монтирование SSH на Linux Mint 16 (Petra)?
  • запустить gvfs-mount как пользователь в скрипте, принадлежащем root для диспетчера сетевого менеджера
  • gvfs и разрешения на удаленном внешнем USB-накопителе
  • Отключить установку в `$ HOME / .gvfs`
  • Что касается .gvfs, не позволяющего удалить домашний каталог пользователя
  • Почему gvfs с тайм-аутом systemd?
  • Как я могу получить доступ к сетевым файловым системам, которые я установил в Nautilus?
  • 2 Solutions collect form web for “Как скопировать файлы * в * камеру?”

    Я не уверен, что вам понравится этот ответ, но, по моему опыту, использование PTP всегда вызывало высокий WTF / мин. Предположительно, сама камера ограничивает запись в корневую папку или что-то в равной степени чувствительное.

    Я бы посоветовал получить доступ к считывателю CompactFlash, напрямую подключив файловую систему и используя этот тип доступа для копирования файла прошивки в корневую папку карты (например, mount /dev/sdc1 /mnt/camera а затем cp eos7d-v205-win/7D000205.FIR /mnt/camera/ ).

    Я обнаружил, что читатели карт чувствуют себя намного быстрее, чем PTP, по-видимому, потому, что первый может извлечь выгоду из возможностей чтения с файловой системы вашего компьютера, а PTP – нет, поэтому я считаю их достойными (и небольшими) расходами.

    Вы можете использовать gvfs-copy . Синтаксис:

     gvfs-copy source-URI destination-URI 

    Поэтому это должно работать:

     gvfs-copy file:///home/user/eos7d-v205-win/7D000205.FIR file:///run/user/1000/gvfs/gphoto2\:host\=%5Busb%3A001%2C012%5D/ 
    Interesting Posts

    отправка и получение файлов с окнами

    Как я могу узнать, является ли относительная символьная ссылка внутренней для определенного поддерева или нет?

    zip-файлы в каталоге на основе шаблона перед перемещением в место архива

    Во время перезагрузки избегайте перезаписи имени хоста при использовании временного имени хоста

    Что делает оператор запятой в арифметике Баша?

    Ошибки задержки загрузки?

    Как удалить префикс из нескольких файлов в каталоге

    Как определить, какой сервис запускается во время загрузки, отвечает за определенное поведение?

    sudo после длительного вызова сна без повторного запроса пароля sudo

    Как добавить дополнительное устройство фреймбуфера в Linux?

    как искать файл для начала строки и сохранять переменную

    Считайте строки с определенным целым числом в столбце

    Найти PHP-процесс, который регистрируется в файле

    Как определить, какой процесс вызывает высокий уровень использования ЦП

    Доступ к переменной индекса массива из цикла сценария оболочки bash?

    Linux и Unix - лучшая ОС в мире.