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-PTP.png
使用 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 就分別對應到 idVendoridProduct

Comments

Add a New Comment
or Sign in as Wikidot user
(will not be published)
- +
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License