Digitalkamera

Från Unix.se, den fria unixresursen.

I unix-liknande system finns huvudsakligen två sätt att överföra bilder från en digitalkamera på. Det ena är att använda biblioteket/programmet gPhoto. Nuförtiden fungerar dock många kameror som USB mass storage-enheter, vilket gör det betydligt enklare.

Innehåll

USB mass storage

Linux

Ladda modulen usb-storage:

# modprobe usb-storage

Slå på kameran. Då bör något liknande det följande visas i dmesg:

Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
scsi1 : SCSI emulation for USB Mass Storage devices
  Vendor: NIKON     Model: D70               Rev: 1.02
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
SCSI device sda: 2001889 512-byte hdwr sectors (1025 MB)
sda: Write Protect is off
 sda: sda1
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 8
USB Mass Storage support registered.

Beroende på version av USB-drivrutinerna kanske det inte står vilken SCSI-emulerad enhet som används. Om ingen annan SCSI-enhet redan används är det sda1, annars får du prova dig fram. I det här fallet är sda1 den enhet som ska monteras:

# mkdir /mnt/cam
# mount -t vfat /dev/sda1 /mnt/cam

Gå sedan till /mnt/cam och ta reda på vad den katalog som innehåller själva bilderna heter. I det här fallet är det /mnt/cam/dcim/101ncd70. Sedan är det bara att kopiera eller flytta bilderna! Glöm inte att slå av kameran efter överföringen - har du inte en strömsladd inkopplad dras mycket ström från kamerans batteri.

Lägg in följande rad i /etc/fstab om du vill kunna montera/avmontera kameran som vanlig användare (med mount /mnt/cam):

/dev/sda1       /mnt/cam       vfat         rw,noauto,user  0   0

Skript

Ett skript kan användas för att underlätta hela processen. Exempel följer nedan (skapa först katalogen /home/användarnamn/foto).

OBS: Det här skriptet tar INTE hänsyn till befintliga filer. Om din kamera börjar numreringen från noll igen efter att bilderna överförts kommer bilder att skrivas över om du kör skriptet två gånger samma dag.

#!/bin/sh

DATE=`date +%Y-%m-%d`
DIR=/home/användarnamn/foto

cd $DIR
if [ -d $DATE ]; then
                cd $DATE
else
                mkdir $DATE
                cd $DATE
fi

/sbin/modprobe usb-storage
mount -t vfat /dev/sda1 /mnt/cam
mv /mnt/cam/dcim/*/* .
umount /mnt/cam
chown -R användarnamn $DIR/$DATE

En annan variant, där du själv bestämmer vilken katalog de ska kopieras till:

#!/bin/sh
echo "Välj katalog för bilderna:"
read DIR

if [ ! -d $DIR ]; then
                mkdir "$DIR"
fi

/sbin/modprobe usb-storage
mount -t vfat /dev/sda1 /mnt/cam
mv /mnt/cam/dcim/*/* "$DIR"
umount /mnt/cam
chown -R användarnamn "$DIR"

FreeBSD, NetBSD, OpenBSD

Tillvägagångssättet i dessa operativsystem är nästan identiskt med det för Linux, förutom laddandet av usb-storage-modulen; se bara till att du har USB-drivrutinerna inkompilerade (eller laddade som moduler). Enhetsnamnet är förmodligen /dev/da0s1c om du inte har någon annan SCSI-enhet på systemet. Använd mount_msdos(8) för att montera:

# mkdir /cam
# mount_msdos /dev/da0s1c /cam

Eller lägg in följande i /etc/fstab:

/dev/da0s1c             /cam         msdos   ro,noauto       0       0

Då monterar du sedan genom att skriva mount /cam.

gPhoto

Ladda ner [1] (http://www.gphoto.org/) och installera på vanligt vis. För att se vad din kamera heter, kör:

# gphoto2 --list-cameras

Specifiera kameratyp och ladda ner bilderna med t.ex.:

# gphoto2 --camera "Canon PowerShot S45 (normal mode)" --get-all-files

Olika grafiska gränssnitt finns, bl.a. gtkam (http://www.gphoto.org/proj/gtkam/) (GTK2).

Externa länkar

Personliga verktyg