Digitális fényképezőgép és pendrive Linux alatt

Nemrég vettem egy Aosta AX-330C típusú digitális fényképezőt. USB Mass Storage eszközként viselkedik, tehát elvileg könnyen beizzítható Linux alatt. USB 2.0-ás interfésszel komunikál a számítógéppel.

Először is szerezzünk be egy friss kernelt. Jelenleg a 2.6.4-es a legújabb. (Ez a fényképező a 2.6.3-as kernellel nem működött). A kernel fordításkor fordítsuk le az usb-storage modult, a scsi_mod-ot (SCSI device support) és az sg modult (SCSI generic support).

Ezeket a modulokat installáljuk a modprobe paranccsal, vagy az /etc/modules fájlba be is írhatjuk, hogy töltődjenek be minden induláskor. Vagy használhatjuk a usbmgr vagy a hotplug csomagokat is. Ezek a saját adatbázisuk alapján az eszköznek megfelelő modulokat automatikusan betöltik.

Miután az eszközt csatlakoztattuk a számítógéphez és bekapcsoltuk a fényképezőt a következőt láthatjuk a /var/log/syslog-ban.

Mar 16 15:36:59 proteus kernel: usb 3-1: new full speed USB device using address 3
Mar 16 15:36:59 proteus kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Mar 16 15:36:59 proteus kernel:   Vendor:           Model: 300_CAMERA        Rev: 1.00
Mar 16 15:36:59 proteus kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
Mar 16 15:36:59 proteus kernel: Attached scsi generic sg0 at scsi0, channel 0, id 0, lun 0,  type 0
Mar 16 15:36:59 proteus kernel: WARNING: USB Mass Storage data integrity not assured
Mar 16 15:36:59 proteus kernel: USB Mass Storage device found at 3
Mar 16 15:37:00 proteus usbmgr[527]: vendor:0x52b product:0x1801
Mar 16 15:37:00 proteus usbmgr[527]: class:0x8 subclass:0x6 protocol:0x50
Mar 16 15:37:00 proteus usbmgr[527]: USB device is matched the configuration
Mar 16 15:37:00 proteus kernel: SCSI device sda: 30656 512-byte hdwr sectors (16 MB)
Mar 16 15:37:00 proteus kernel: sda: assuming Write Enabled
Mar 16 15:37:00 proteus kernel: sda: assuming drive cache: write through
Mar 16 15:37:00 proteus kernel:  sda: sda1
Mar 16 15:37:00 proteus kernel: Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Mar 16 15:37:00 proteus usbmgr[527]: "scsi_mod" was loaded
Mar 16 15:37:00 proteus usbmgr[527]: "sd_mod" was loaded
Mar 16 15:37:00 proteus usbmgr[527]: "usb-storage" was loaded
Vagyis SCSI emuláción keresztül látjuk az eszközt és az usbmgr betöltötte a megfelelő modulokat. Ezután már csatolhatjuk a fájlrendszerhez a mount paranccsal (Azért nem árt, ha az /mnt/cam könyvtár létezik):
mount -t vfat /dev/sda1 /mnt/cam/
Sok szép fájl és könyvtár van benne:
proteus:/mnt/cam# ls -lR
.:
total 32
drwxr--r--    3 root     root        16384 Dec  4  2001 dcim
drwxr--r--    2 root     root        16384 Dec  4  2001 misc
 
./dcim:
total 16
drwxr--r--    2 root     root        16384 Mar 15 22:51 1003mdsc
 
./dcim/1003mdsc:
total 3808
-rwxr--r--    1 root     root       704512 Apr 16  2004 pic00828.jpg
-rwxr--r--    1 root     root       835584 Apr 16  2004 pic00829.jpg
-rwxr--r--    1 root     root       802816 Apr 16  2004 pic00830.jpg
-rwxr--r--    1 root     root       737280 Apr 16  2004 pic00831.jpg
-rwxr--r--    1 root     root       819200 Apr 16  2004 pic00832.jpg
 
./misc:
total 16
-rwxr--r--    1 root     root           78 Apr 16  2004 autprint.mrk

Miután átmásoltuk ill. áthelyeztük az képeket umount-al válasszuk le az eszközt!

Ha automatizálni szeretnénk a mountolást és a képek áthelyezését ehhez hasonló script-el próbálkozhatunk:

#!/bin/sh
# kamera csatolási pontja
MOUNTPOINT=/mnt/cam
# kamera eszköz
DEV=/dev/sda1
# ahol a képeket tárolni szeretnénk
PICSDIR=~/kep

mount -t vfat $DEV $MOUNTPOINT
mkdir $PICSDIR >/dev/null
mv -vi $MOUNTPOINT/dcim/1003mdsc/* $PICSDIR
sleep 1
umount $MOUNTPOINT
Természetesen a dcim/1003mdsc írjuk át a saját kameránknak megfelelő útvonalra.