ail-and-colleagues / ThetaZ

RICOH ThetaZ1用の輝度計測システム
GNU General Public License v3.0
0 stars 0 forks source link

libptp problem with Theta Z1/SC2 #1

Open kkado opened 2 years ago

kkado commented 2 years ago

USB APIにて紹介されているlibptpを用いたThetaへのアクセスがどうにもうまくいかなかったので状況を整理。 前提として環境はホストPCがwindows 10、VMware Workstation 16 Playerを用いた仮想マシン下での作業。

Theta Z1

Debian buster with Raspberry Pi Desktop

gphoto2 (sudo apt-get install gphoto2)

gphoto2 --summary: works. gphoto2 --capture-image: works.

libptp with libusb-dev

ptpcam --info: error. ptpcam --capture: error.

usb_bulk_write: Connection timed out ERROR: Could not open session!

libptp with libusb-compat-01.1.5 and libusb-1.0.0-dev

上(Debian buster with Raspberry Pi Desktop)と同じ状況。 libusb-compat-01.1.5はhttps://www.linuxfromscratch.org/blfs/view/8.0/general/libusb-compat.htmlのもの。 libusb-compat-0.1でも同じ結果。

Debian Bullseye with Raspberry Pi Desktop

当初USB APIでの環境がRaspberry Pi 3 with Raspian 10, buster.となっているのを見落とし2022-08-23現在最新であるDebian Bullseye with Raspberry Pi Desktopで試したが、Debian buster with Raspberry Pi Desktopのようにlibptpで同様のエラー発生した。このエラーはbusterでないことに起因すると考え上記のbusterでの試行を行った。

Theta SC2

gphoto2 (sudo apt-get install gphoto2)

gphoto2 --summary: works. gphoto2 --capture-image: error.

エラー
PTP Device Busy エラー: Could not capture image. エラー: 取り込みできませんでした。 エラー (-110: 'I/O in progress')

libptp with libusb-compat-01.1.5 and libusb-1.0.0-dev

ptpcam --info: works. ptpcam --capture: error?

camera returns 'PTP_EC_DevicePropChanged' usb_bulk_write: Connection timed out ERROR: Could not close session!

kkado commented 2 years ago

USB APIは2016-01-12近辺に書かれたものであるが、2021-02-28に書かれたSummary of THETA APIs (2020 Edition)では、USB APIのサンプルはlibptpを用いたものでなくgphoto2を用いたものに置き換わっている。現在ではgphoto2の利用が推奨されている可能性あり。

kkado commented 2 years ago

LCEPTさんより、svnの問題についてはhttp://svn.code.sf.net/p/libptp/code/trunkより直接アクセスできると情報を頂いたのでテストしたが、下記のようにsession Openができない。

kado@raspberry:~ $ ptpcam -i -v 1 Camera information

usb_bulk_write: Resource temporarily unavailable ERROR: Could not open session!

(エラーがusb_bulk_write: Connection timed outからusb_bulk_write: Resource temporarily unavailableに変わった。