如何複製數位相機上的照片到 Linux 上
在 326 大逛街的情形下,拗了我弟的 Sony W1 DSC 去拍了一些逛街記錄,拍完後當然要想辦法存到電腦上去。先前在 Windows 2000 作業系統時必須安裝 Sony 所提供的 Driver,但是要下載那個 Driver 並不是那麼容易;雖然 Windows XP 後可以提供對該 DSC 的支援,可是我沒有 XP,最後把腦筋動到 Linux 上。
當透過 USB 接上 Linux 時,Linux 馬上偵測到 DSC 的存在:
/var/log/message
Mar 27 09:55:14 www usb 2-1: new full speed USB device using ohci_hcd and address 4
Mar 27 09:55:14 www usb 2-1: not running at top speed; connect to a high speed hub
Mar 27 09:55:14 www Initializing USB Mass Storage driver…
Mar 27 09:55:14 www scsi0 : SCSI emulation for USB Mass Storage devices
Mar 27 09:55:14 www usbcore: registered new driver usb-storage
Mar 27 09:55:14 www USB Mass Storage support registered.
Mar 27 09:55:14 www usb-storage: device found at 4
Mar 27 09:55:14 www usb-storage: waiting for device to settle before scanning
Mar 27 09:55:19 www Vendor: Sony Model: Sony DSC Rev: 5.00
Mar 27 09:55:19 www Type: Direct-Access ANSI SCSI revision: 00
Mar 27 09:55:19 www SCSI device sda: 487936 512-byte hdwr sectors (250 MB)
Mar 27 09:55:19 www sda: Write Protect is off
Mar 27 09:55:19 www sda: Mode Sense: 00 00 00 00
Mar 27 09:55:19 www sda: assuming drive cache: write through
Mar 27 09:55:19 www SCSI device sda: 487936 512-byte hdwr sectors (250 MB)
Mar 27 09:55:19 www sda: Write Protect is off
Mar 27 09:55:19 www sda: Mode Sense: 00 00 00 00
Mar 27 09:55:19 www sda: assuming drive cache: write through
Mar 27 09:55:19 www sda: sda1
Mar 27 09:55:19 www Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Mar 27 09:55:19 www Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
Mar 27 09:55:19 www usb-storage: device scan complete
Mar 27 09:55:19 www scsi.agent[14553]: disk at /devices/pci0000:00/0000:00:10.0/0000:04:07.1/usb2/2-1/2-1:1.0/host0/target0:0:0/0:0:0:0
dmesg 記錄
usb 2-1: new full speed USB device using ohci_hcd and address 4
usb 2-1: not running at top speed; connect to a high speed hub
Initializing USB Mass Storage driver…
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usb-storage: device found at 4
usb-storage: waiting for device to settle before scanning
Vendor: Sony Model: Sony DSC Rev: 5.00
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sda: 487936 512-byte hdwr sectors (250 MB)
sda: Write Protect is off
sda: Mode Sense: 00 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 487936 512-byte hdwr sectors (250 MB)
sda: Write Protect is off
sda: Mode Sense: 00 00 00 00
sda: assuming drive cache: write through
sda: sda1
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0, type 0
usb-storage: device scan complete
當 Kernel 捕捉到上述訊息後,表示 Camera 上的照片集已可使用,只要 mount 上來即可。mount 後檢查一下是不是 mount 到正確的裝置。
www mnt # mount /dev/sda1 /mnt/camera/
www mnt # ls camera
dcim memstick.ind misc mstk_pro.ind
www mnt #
DSC 的相片似乎會統一放在 dcim/ 目錄下的某個子目錄:
www mnt # ls camera/dcim/
101msdcf
www mnt # ls camera/dcim/101msdcf/
dsc00003.jpg dsc00043.jpg dsc00074.jpg dsc00156.jpg dsc00173.jpg
dsc00005.jpg dsc00045.jpg dsc00075.jpg dsc00157.jpg dsc00174.jpg
dsc00010.jpg dsc00046.jpg dsc00076.jpg dsc00158.jpg dsc00175.jpg
dsc00011.jpg dsc00047.jpg dsc00081.jpg dsc00159.jpg dsc00176.jpg
dsc00013.jpg dsc00048.jpg dsc00083.jpg dsc00160.jpg dsc00177.jpg
dsc00016.jpg dsc00049.jpg dsc00085.jpg dsc00161.jpg dsc00178.jpg
dsc00018.jpg dsc00050.jpg dsc00087.jpg dsc00162.jpg dsc00179.jpg
dsc00025.jpg dsc00051.jpg dsc00089.jpg dsc00163.jpg dsc00180.jpg
dsc00027.jpg dsc00053.jpg dsc00090.jpg dsc00164.jpg dsc00181.jpg
dsc00029.jpg dsc00054.jpg dsc00091.jpg dsc00165.jpg dsc00182.jpg
dsc00032.jpg dsc00055.jpg dsc00092.jpg dsc00166.jpg dsc00183.jpg
dsc00036.jpg dsc00056.jpg dsc00093.jpg dsc00167.jpg dsc00184.jpg
dsc00037.jpg dsc00057.jpg dsc00094.jpg dsc00168.jpg dsc00185.jpg
dsc00038.jpg dsc00060.jpg dsc00095.jpg dsc00169.jpg dsc00186.jpg
dsc00039.jpg dsc00066.jpg dsc00153.jpg dsc00170.jpg dsc00187.jpg
dsc00041.jpg dsc00067.jpg dsc00154.jpg dsc00171.jpg dsc00188.jpg
dsc00042.jpg dsc00070.jpg dsc00155.jpg dsc00172.jpg dsc00189.jpg
www mnt #
再來本只需將檔案複製出來即可,不過因為這個裝置不能改變存取權限,因此一般使用者恐怕無法存取到這個被 mount 上來的目錄(沒有 x 權限):
ada@www 326大逛街 $ ls -al /mnt/
總計 37
drwxr-xr-x 6 root root 168 3月 27 10:12 .
drwxr-xr-x 24 root root 592 3月 27 01:44 ..
drwxr--r-- 4 root root 16384 1月 1 1970 camera
drwx------ 2 root root 72 10月 28 05:38 cdrom
drwx------ 2 root root 72 10月 28 05:38 floppy
drwxr-xr-x 5 ada users 4096 3月 27 01:37 hdd1
-rw-r--r-- 1 root root 0 3月 20 03:14 .keep
USB 裝置的權限似乎是固定的,解決之道是在 mount 時直接指定擁有者的身份:
www mnt # id ada
uid=1000(ada) gid=100(users) groups=100(users),10(wheel),16(cron),18(audio),19(cdrom),27(video),35(games),85(usb)
www mnt # mount -o uid=1000,gid=100 /dev/sda1 camera
www mnt # ls -al camera/
total 96
drwxr--r-- 4 ada users 16384 Jan 1 1970 .
drwxr-xr-x 6 root root 168 Mar 27 10:12 ..
drwxr--r-- 3 ada users 32768 Dec 1 19:39 dcim
-r-xr--r-- 1 ada users 0 Jan 1 1980 memstick.ind
drwxr--r-- 2 ada users 32768 Dec 1 19:39 misc
-r-xr--r-- 1 ada users 0 Jan 1 1980 mstk_pro.ind
www mnt #
好了,趕快把照片複製出來吧!
參考資料:
A brief HOWTO or Tutorial for using the Sony DSC-W1 in Linux :想使用影像處理軟體直接處理 DSC 上的照片,這篇 blog 有很全面性的說明。
備註:
要讓 Kernel 自動偵測到數位相機上的儲存空間,好像得在 kernel 中加入 usb massstorage 及 scsi emulation 支援。(待查)
沒有留言:
張貼留言