Canon EOS 450D on Debian GNU/Linux
1221880365|%Y-%m-%d|agohover
Canon 的數位單眼相機似乎都不提供 usb mass storage 的功能,所以在 Linux 底下沒辦法把它當成讀卡機一樣直接掛成 filesystem,而需要用 PTP 傳輸軟體才能把照片傳到電腦上。大多這類軟體都會用 gPhoto 這套 library,包括 Gnome 底下的 gThumb 和 KDE 底下的 digiKam 等等。
Debian 上目前使用 libgphoto2 2.4.1 的版本,其中對於 udev 自動偵測的地方因為沒有把 450D 的 device ID 列進去,因此當你把 450D 接上電腦時,雖然裝置會出現在 /dev 底下,但只有 root 可以存取。解決方法是編輯 /etc/udev/libgphoto2.rules,在裡面加入 device ID 讓 udev 可以自動設定正確的權限:
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="3145", \
MODE="0664", GROUP="plugdev"
這樣在相機連到電腦上時,就會自動把裝置的 group 設定為 plugdev,讓所有在 plugdev 中的成員都可以抓照片。

使用 gThumb 傳輸照片的樣子
其它的相機也可以用類似的方法讓 udev 去自動設定權限。如果你的相機不支援 usb mass storage,可以先用 root 執行 gThumb 或 digiKam 之類的程式,看看能不能用 PTP 去抓照片,如果可以,那只要照上面的方式去設定好權限,就可以用一般使用者來抓照片了。
至於相機的 device ID,把它接到電腦上,然後執行 lsusb:
~$ lsusb
Bus 002 Device 003: ID 046a:0001 Cherry GmbH My3000 Keyboard
Bus 002 Device 002: ID 046d:c041 Logitech, Inc. G5 Laser Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 007: ID 04a9:3145 Canon, Inc.
Bus 001 Device 002: ID 0411:00f4 MelCo., Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
看看其中有沒有出現相機製造商的名字 (Canon),前面的 04a9:3145 就分別對應到 idVendor 及 idProduct。
Comments
page revision: 3, last edited: 25 May 2009 16:18
Post preview:
Close preview