Eu gostaria de copiar um arquivo de atualização de firmware para minha câmera Canon 7D, conectado via USB.
Depois que ele foi montado automaticamente por thunar
+ thunar-volman
+ gvfs-gphoto2
, tentei o seguinte:
$ 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
Então isso entrou em um buraco negro.
A primeira vez que tento copiá-lo com Ctrl - c e Ctrl - v imprime o seguinte mensagem de erro ao colar o arquivo:
Error writing file.
-108: No such file or directory.
Do you want to skip it?
Se eu tentar novamente depois disso, ele simplesmente falha:
$ thunar
Segmentation fault (core dumped)
$ echo $?
139
A capa do Gphoto 2 tem uma não documentada put
function que também tentei:
$ 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
Portanto, esta função aceita um argumento único com um diretório opcional . Estranho, mas deveria ser factível. Algumas tentativas de fazer isso funcionar:
$ 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') ***
Talvez seja não compatível ?
O Digikam tem um recurso de upload , mas isso reportou ' Falha ao fazer o upload do arquivo "7D000205.FIR". ' Executá-lo a partir do shell não produziu mais informações.
man gvfs-copy
não diz explicitamente que não pode copiar para uma câmera, mas não consigo descobrir como:
$ 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
diz que deve ser possível enviar arquivos para a câmera:
$ 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
O manual do gphoto2 diz que suporta arquivos "upload". Não funciona Tentando um comando relatado como trabalhando em outro lugar :
$ 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 <[email protected]>, 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.
Depois de tentar o comando debug, recebo as seguintes linhas de registro relevantes:
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 ............
Muitas WTFs por minuto . O que eu preciso fazer para copiar um arquivo para minha câmera no Arch Linux?
Caso seja relevante: tentei copiar o arquivo no Windows 7 e ele também falhar:
You do not have permission to create this item.