作者:Guido Socher 翻译:Liu Tao
简介
Dimage 5相机在Linux下工作的非常好,但是你得先配置usb存储系统。还要 重新编译内核。
在这篇短文里我将只关注配置和安装部分,而不解释如何观看,编辑和打包 数字图象。
思路
Dimage 5 和 Dimage 7相机使用USB大容量存储系统。这意味着在Linux里它们 看起来象是一块硬盘。你可以用任何文件管理器(如konqueror)或者shell命令 来拷贝,移动,删除图象。换句话说,你不需要任何特殊的东西来得到那些图象。 你只需要让Linux能和你的相机"对话"就行。
步骤
在这篇文章里,我用的是2.4.17内核。用其他的2.4.x内核应该也可以。但是 不能用2.2.x内核,因为usb大容量存储系统还没有被移植到2.2.x内核。
编辑 /usr/src/linux/drivers/usb/storage/ 下的 unusual_devs.h 文件,加入下面 两项:
UNUSUAL_DEV( 0x0686, 0x4008, 0x0001, 0x0001,
"Minolta",
"Dimage 5",
US_SC_SCSI, US_PR_BULK, NULL, US_FL_START_STOP ),
UNUSUAL_DEV( 0x0686, 0x4006, 0x0001, 0x0001,
"Minolta",
"Dimage 7",
US_SC_SCSI, US_PR_BULK, NULL, US_FL_START_STOP ),
这就是最难的部分!剩下的就很简单了。我把这两项告诉了该文件的维护者。 希望以后的内核会包括这几行。
现在重新编译内核,除了你平常用的硬件配置选项,还要确保你选了以下选项。
# General setup
CONFIG_HOTPLUG=y
# SCSI support
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SD_EXTRA_DEVS=40
CONFIG_SR_EXTRA_DEVS=4
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
# File systems
CONFIG_FAT_FS=m
CONFIG_VFAT_FS=m
# USB support
CONFIG_USB=y CONFIG_USB_DEVICEFS=y
# USB Controllers
CONFIG_USB_UHCI=m
CONFIG_USB_UHCI_ALT=m
CONFIG_USB_OHCI=m
# USB Device Class drivers
CONFIG_USB_STORAGE=m
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_JUMPSHOT=y
你可以在 /usr/src/linux/.config 里检查这些选项。我并不认为你确实需要 CONFIG_USB_STORAGE_DATAFAB, CONFIG_USB_STORAGE_DPCM, CONFIG_USB_STORAGE_SDDR09 和CONFIG_USB_STORAGE_JUMPSHOT 等选项,这是一些flash卡读卡设备, 但是如果你有一台相机,再拥有它们会很不错。
SCSI支持是必须的,因为usb存储器在用户看来会是一块SCSI磁盘。
现在编译并安装内核。有很多文档介绍如何编译内核(www.linuxdoc.org的Kernel-HOWTO 或者 这篇 Linuxfocus 文章), 因此我将不解释任何细节。你主要要做以下这些:
#在 /usr/include 里建立以下连接:
scsi - ../src/linux/include/scsi
asm - ../src/linux/include/asm-i386
linux - ../src/linux/include/linux
# 配置:
make xconfig
# 编译:
make dep
make clean
make bzImage
make modules
make modules_install
cp /usr/src/linux/arch/i386/boot/zbImage /boot/vmlinuz-2.4.17
cp /usr/src/linux/System.map /boot/System.map-2.4.17
cp /boot/System.map-2.4.17 /boot/System.map
cp /usr/src/linux/.config /boot/Config-2.4.17
#编辑 /etc/lilo.conf
#运行 lilo (或grup, 如果你用grup)
/sbin/lilo
#重启机器
连接相机
把相机连上,并建立usb连接。这在相机的手册里有讲解。
用 /sbin/lsmod 命令检查 usb-storage 和 usb-uhci(或usb-ohci) 模块是否装入。 如果没有的话用下面的命令装入
modprobe usb-uhci
modprobe usb-storage
打开/proc/bus/usb/devices你会看到这台相机的条目:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.00 Cls=00(ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0686 ProdID=4008 Rev= 0.01
S: Manufacturer=MINOLTA DIMAGE CAMERA
S: Product=DIMAGE CAMERA
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=03(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
带有如上设备的usb proc文件系统通常会被自动装载,但如果不是这样,请 用下边的命令手动装载:
mount -t usbdevfs /proc/bus/usb /proc/bus/usb
这台相机看起来会是一块SCSI磁盘。如果你已经有其他的SCSI硬件(即使不是磁盘, 如SCSI 光驱),它会是/dev/sdb1,否则应该是/dev/sda1。你可以用fdisk检查 这个磁盘在哪儿:
fdisk -l /dev/sda
Disk /dev/sda: 4 heads, 32 sectors, 244 cylinders
Units = cylinders of 128 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 245 15664 1 FAT12
在/etc/fstab里添上这行:
/dev/sda1 /mnt/camera0 vfat rw,noauto,user 0 0
创建/mnt/camera0目录并使它可写:
mkdir /mnt/camera0
chmod 777 /mnt/camera0
chmod 666 /dev/sda1
这个配置允许任何用户装上或者卸下相机,而不用切换成root。
得到照片
我们已经安装配置好了。现在键入:
mount /mnt/camera0
你就可以从/mnt/camera0目录下得到你的照片了。
警告:决不要在未卸下相机(umount /mnt/camera0)的情况下断开相机。
关于这款相机
你来看这篇文章可能是因为你想买一台Minolta Dimage相机,并且对我对这款相机的 经验感兴趣。
总的来说这是一款非常好的相机,在很多方面它超过了我的预想。一旦你完成了相应 的配置并重新编译内核,它就可以很好的和Linux连接工作。
从这里可以得到这款相机技术方面的说明 www.dimage.minolta.com.
和其他的数码相机一样,这款相机有一个大问题:费电。我做了一些测试: 只打开电子取景器时它需要0.6安培的电流,电压6伏。再打开自动聚焦和小监视器,它平均要消耗1安培电流。平均1安培!峰值可达3安培。如果你连续使用的话, 4节小型 AA NiMh 电池 (1600 mAh)可以支撑1到1.5小时。Minolta 声称用一套电池你能拍摄大约200张照片。我个人认为你得以极快的速度拍完这200张照片,否则电池就会用完。这是因为不管你拍不拍照片,相机的耗电并没有多大不同。关键是相机开了多长时间。
参考
The linux usb pages linux-usb.org
The linux hotplug page linux-hotplug.sourceforge.net
热插拔是一套很复杂的自动装入象 usb-storage 这样的模块的shell脚本。 我更希望在 /etc/rc.d/rc.local (Redhat/Mandrake) 里有一个简单的 modprobe 入口,这就要看你的了。
A selection of image viewer programs:
gimp (www.gimp.org),
konqueror (www.kde.org),
gphoto (www.gphoto.org) You do not need the download function of gphoto but you can use it to browse any directory and generate html index pages,
gqview (gqview.sourceforge.net),
xv (www.trilon.com/xv/xv.html) This program did already exist when many computers had only text based desktops but it is still good.
Casio cameras and usb-storage: www.harald-schreiber.de