Linux下玩转数码相机(1)


数码相机是目前增长最快的外设之一,在Linux下它的配置非常简单。主要通过gphoto2软件包支持数码相机。通常只要安装配置gphoto2软件包就可以在Linux下使用数码相机。最新2.1.6 版本 的gphoto2支持27个厂商的616多种型号的数码相机,可以查看链接:http: //www.gphoto.org/proj/libgphoto2/support.php。如果你的数码相机在驱动之列。那么可以正常使用。说明:除了下载安装gphoto2外另外几个函数库:libgphoto2、libkexif、libkipi也要安装,在gphoto2官方网址都可以找到,下载方法:

#wget http://ovh.dl.sourceforge.net/sourceforge/gphoto/gphoto2-2.1.6.tar.gz

#wget http://keihanna.dl.sourceforge.net/sourceforge/gphoto/libgphoto2-2.1.6.tar.gz

#wget http://umn.dl.sourceforge.net/sourceforge/digikam/libkipi-0.1.2.tar.bz2

#wget http://umn.dl.sourceforge.net/sourceforge/digikam/libkexif-0.2.2.tar.bz2

安装过程比较简单,这里就不赘述了。下面介绍如何在Linux下玩转数码相机,操作系统Red Hat Enterprise Linux 4.0。

一、Linux环境下USB数码相机的驱动:
数码相机和PC之间一般采用USB接口进行通信,最理想的情况是可以即插即用的。在这种情况下,只需要使用简单的mount命令,就可以像存取闪盘一样存取数码相机上的资料。USB的技术特色此处不再赘述,看一看Linux对USB的支持。USB采用串行方式传输数据,USB 1.1最大数据传输率为12Mbps,Linux内核为2.4以上版本都可以支持。USB 2.0规范是由USB 1.1规范演变而来的,Linux内核2.4.19版本开始对USB 2.0进行支持。除了内核的版本要对USB接口进行支持之外,还要确定目前的系统是否编译了USB的驱动模块。如果让Linux系统支持USB设备,还需要一些驱动模块。我们都知道内置的驱动程序一般都在 /lib/modules/2.xxxx/kernel/drivers目录中。这个目录中会有usb及几个子目录,可以从中找到以下的几个USB关键基础模块:usbcore.o 是所有USB设备都需要的基本驱动模块;

host/ehci-hcd.o 是USB 2.0设备支持;host/usb-uhci.o 是Intel VIA等芯片组USB部分的驱动;
host/usb-ohci.o 是 iMac、SiS、Ali等非Intel芯片组USB部分的驱动;storage/usb-storage.o 是USB接口的存储设备,如移动硬盘、USB闪盘等都会用到;hid.o 是USB接口的键盘、鼠标等人机交互设备的基础支持。在该目录下还有一些具体设备的驱动程序,分别驱动不同设备:usb-storage.o USB是针对与存储部分的驱动模块;scsi_mod.o 是针对SCSI设备的支持; sd_mod.o 是针对SCSI硬盘支持模块;sr_mod.o 是针对SCSI光驱支持模块;ide-scsi.o 该模块可以把IDE设备模拟成SCSI接口。

数码相机接口类型繁多,但是我们知道USB接口是数码相机的主要接口,在Linux中访问数码相机,通常可以通过下面两种方法。

1.  命令行下操作数码相机

安装gphoto2软件包后就可以驱动数码相机了,通常有两个命令可以查询数码相机的情况,gphoto2 --auto-detect和gphoto2 -a。使用gphoto2 --auto-detect命令进行型号检测,而gphoto2 –a用于参数检测:

# gphoto2 --auto-detect

型号                         端口

HP PhotoSmart R507 (PTP mode)usb

----------------------------------------------------------

gphoto2 -a

相机功能             :HP PhotoSmart R507 (PTP mode)

串口支持             :否

USB 支持             :是

支持的传输速度        :9600

:19200

:38400

:576000

:1152000

捕捉选项              :图像

:预览

支持配置             :是

支持删除相机内文件   :是

支持文件预览 (缩略图):是

文件上载支持         :是

gphoto2重要操作命令:

--list-cameras          :列举支持的数码相机    

--list-ports             :列举支持的端口设备

--auto-detect         :自动检测数码相机功能

--list-files           :列出数码相机存储的文件

--num-files            :显示 数码相机存储的文件数量

-get-all-thumbnails      :获取所有文件

-delete-all-files             :删除所有文件

-upload-file          :上传文件到数码相机

-summary           : 数码相机目前工作状态 

-capture-movie       :捕捉数码相机的视频文件

―capture-sound       :捕捉数码相机的音频文件

―manual                     :打开相机启动手册页

2.使用专门软件
通常我们更加喜欢使用基于图形化应用程序对相机进行操 作,新款的数码相机一般都支持图片传输协议。 PTP是英语“图片传输协议(picture transfer protocol)”的缩写。ptp是最早由柯达公司与微软协商制定的一种标准,符合这种标准的图像设备在接入系统之后可以更好地被系统和应用程序所共享,尤其在网络传输方面,系统可以直接访问这些设备用于建立网络相册时图片的上传、网上聊天时图片的传送等。当然,这主要是为方便计算机知识不多的普通用户的,使相机、应用软件、网站结合在一起更容易地完成一些傻瓜式功能。一些Linux发行版本下也有多款支持PTP协议的软件,比较著名的是gtkam。一些Linux发行版本Red Hat Linux 9.0)中已经自带了该程序。如果是有经验的玩家,也可以下载源代码自己编译,下载链接:http: //ovh.dl.sourceforge.net/sourceforge/gphoto/gtkam-0.1.12.tar.gz。市面上的绝大多数新款数码相机都支持PTP协议,但往往不是缺省设置,需要自己将记忆体模式设定为PTP模式。运行gtkam软件,选择Camera选单中的Add Camera,单击gtkam的“camera”→“Add Camera”可以添加数码相机,然后在弹出的窗体中单击“Detect”,测试数码相机的连接类型。最后单击“OK”,就可以看到数码相机中的照片了。

图1 gtkam读取数码相机时的界面

图1所示使用gtkam连接HP 507相机,看到存储卡中的照片。选择照片,单击保存就可以把照片保存到硬盘上。其他优秀的数码照相机图形化界面的程序包括:digikamhttp: //keihanna.dl.sourceforge.net/sourceforge/digikam/  ),gThumbhttp://gthumb.sourceforge.net/ )
gtkam软件是一个提供了数码照相机图形化界面的程序,gtkam可以直接与数码照相机相连,允许直接打开、查看、并删除图像。gtkam基于gphoto2,有时无法使用gtkam的原因是因为gphoto2没有安装或模块被覆盖,所以需要重新安装gphoto2。不论采用那种前端程序,安装gphoto2程序是关键。

3.把数码相机作为存储设备

可以把数码相机当做是存储设备 ,这样就可以像访问优盘那样来访问数码相机:

# mkdir /mnt/camera

#mount -t vfat /dev/sda1 /mnt/camera


如果希望数码相机可以自动挂载,可以在/etc/fstab加入一行:

/dev/sda1 /mnt/camera auto defaults, user,noauto 0 0


但是只有以下型号支持,见表1:

厂商名称

具体型号

Casio卡西欧)

QV-2400UX, QV-2x00, QV-3x00, QV-4000 , QV-8000

Fuji富士)

FinePix 1300, 1400Zoom, 2300Zoom, 2400Zoom, 2800Zoom, 4200Z,

4500, 4700 Zoom, 4900 Zoom, 6800 Zoom, A101, A201, ,S1 Pro

HP惠普)

PhotoSmart 315, 318xi, 618, C912

Konica柯尼卡)

KD200Z, KD400Z, and Revio KD300Z

Leica莱卡)

Digilux 4.3

Olympus奥林巴斯)

Zoom D-15, C-100, C-200Z, C-2040, C-220Z, C-2Z, C-3020Z, C-3040Z,C-4040Zoom, C-700, C-700UZ, C-860L, D-510, D-520Z, E-10, E-20

Nikon尼康)

CoolPix 2500, 885, 5000, 775,  995

Pentax宾得)

EI2000, Optio 330,  Optio 430

Sony索尼)

DSC-F505,DSC-F505V,DSC-F707,DSC-P1,DSC-P20,DSC-P5, DSC-P71,DSC-S30,DSC-S70,DSC-S75,DSC-S85,MVC-CD300,MVC-FD92

Minolta美能达)

Dimage 5, Dimage 7,  Dimage X

Kyocera京瓷)

Finecam S3

Vivitar威达 )

Vivicam 3550


 非常遗憾的是Kodak系列数码相机不能当作存储设备使用。


相关内容